Selaa lähdekoodia

被邀请加入企业作为同事时,需要填写邮箱

lifanagju_citu 6 kuukautta sitten
vanhempi
commit
9aa3d9be06

+ 36 - 0
src/components/VerificationCode/index.vue

@@ -1,6 +1,17 @@
 <template>
   <div>
     <v-form @submit.prevent ref="phoneForm">
+      <v-text-field
+        v-if="props.showEmailInput"
+        v-model="loginData.email"
+        placeholder="请输入企业邮箱"
+        color="primary"
+        variant="outlined"
+        density="compact"
+        validate-on="input"
+        prepend-inner-icon="mdi-email"
+        :rules="emailRules"
+      ></v-text-field>
       <v-text-field v-model="loginData.phone" counter="11" :disabled="props.phoneDisabled" :placeholder="$t('login.mobileNumberPlaceholder')" color="primary" variant="outlined" density="compact" :rules="phoneRules" validate-on="input">
         <template v-slot:prepend-inner>
           <span class="d-flex">
@@ -42,6 +53,7 @@
 defineOptions({ name: 'verification-code' })
 import { ref, reactive } from 'vue'
 import { setCodeTime } from '@/utils/code'
+import { checkEmail } from '@/utils/validate'
 import { sendSmsCode } from '@/api/common/index'
 import { useI18n } from '@/hooks/web/useI18n'
 import Snackbar from '@/plugins/snackbar'
@@ -51,6 +63,10 @@ const { t } = useI18n()
 const props = defineProps({
   phoneDisabled: Boolean,
   phone: String,
+  showEmailInput: { // 需要输入邮箱
+    type: Boolean,
+    default: false
+  },
   scene: { // 短信验证码scene参数: 30-手机号登陆  31-修改手机  32-修改密码  33-忘记密码
     type: [Number, String],
     default: 30
@@ -78,6 +94,17 @@ const codeValid = ref([
   }
 ])
 
+const emailRules = ref([
+  value => {
+    if (value) return true
+    return props.placeholder ? props.placeholder : '请输入企业邮箱'
+  },
+  value => {
+    if (checkEmail(value)) return true
+    return '请输入正确的企业邮箱'
+  }
+])
+
 // 手机号区域
 // const currentArea = ref('0086')
 // const items = [
@@ -135,6 +162,7 @@ const autoTimer = () => {
 autoTimer()
 const loginUserPhone = localStorage.getItem('loginUserPhone') || ''
 const loginData = reactive({
+  email: '',
   phone: loginUserPhone,
   code: ''
 })
@@ -144,7 +172,15 @@ const phoneForm = ref()
 const handleEnter = () => {
   emits('handleEnter')
 }
+
+const resetPhone = () => {
+  loginData.phone = ''
+  loginData.code = ''
+  count.value = 0
+}
+
 defineExpose({
+  resetPhone, 
   loginData, 
   phoneForm
 })

+ 12 - 2
src/views/login/components/passwordPage.vue

@@ -1,7 +1,17 @@
 <template>
   <v-form ref="passwordForm" @submit.prevent>
-    <v-text-field v-model="loginData.phone" counter="11" :disabled="props.phoneDisabled" :placeholder="placeholder ? placeholder : '请输入手机号码'" color="primary" 
-    variant="outlined" density="compact" :rules="phoneRules" validate-on="input" prepend-inner-icon="mdi-cellphone" >
+    <v-text-field
+      v-model="loginData.phone"
+      counter="11"
+      :disabled="props.phoneDisabled"
+      :placeholder="placeholder ? placeholder : '请输入手机号码'"
+      color="primary" 
+      variant="outlined"
+      density="compact"
+      :rules="phoneRules"
+      validate-on="input"
+      :prepend-inner-icon="props.validEmail ? 'mdi-email' : 'mdi-cellphone'"
+    >
       <!-- <template v-slot:prepend-inner>
         <span class="d-flex">
           <v-icon icon="mdi-cellphone" size="20"></v-icon>

+ 3 - 2
src/views/recruit/enterprise/systemManagement/groupAccount/inviteConfirm.vue

@@ -18,7 +18,7 @@
           <v-btn v-if="!isMobile" class="mt-10" color="warning" to="/recruitHome">{{ $t('common.toHome') }}</v-btn>
         </template>
         <template v-else>
-          <phoneFrom ref="phoneRef" @handleEnter="handleLogin" class="text-left" :style="{'width': isMobile ? '100%' : '350px' }"></phoneFrom>
+          <phoneFrom ref="phoneRef" showEmailInput @handleEnter="handleLogin" class="text-left" :style="{'width': isMobile ? '100%' : '350px' }"></phoneFrom>
           <v-btn :loading="loginLoading" color="warning" class="white--text mt-5" min-width="350" @click="handleLogin" :style="{'width': isMobile ? '100%' : '350px' }">
             {{ $t('common.confirmJoin') }}
           </v-btn>
@@ -127,7 +127,8 @@ const join = async () => {
     joinSuccess.value = true
     Snackbar.success('加入成功')
   } catch (error) {
-    Snackbar.error('加入失败! ' + error)
+    Snackbar.error('加入失败! ' + error + '请更换手机号')
+    if (phoneRef.value?.resetPhone) phoneRef.value.resetPhone()
   } finally {
     if (isMobile.value) logoutFun() // 网页打开保留登录状态
     loginLoading.value = false