瀏覽代碼

Merge branch 'dev' of https://git.citupro.com/zhengnaiwen_citu/menduner into dev

Xiao_123 10 月之前
父節點
當前提交
61bc48758e

+ 2 - 0
src/locales/en.js

@@ -104,6 +104,8 @@ export default {
     smsOrPassword: 'SMS, password login or registration',
     scanWeChatCode: 'Scan WeChat QR code for quick login',
     loginSuccess: 'Login successful',
+    getUserInfoFailed: 'Failed to obtain user information',
+    loginAgain: 'please log in again',
     loginFailed: 'Login failed, And no enterprise was found under this user'
   },
   form: {},

+ 2 - 0
src/locales/zh-CN.js

@@ -104,6 +104,8 @@ export default {
     smsOrPassword: '短信、密码登录或注册',
     scanWeChatCode: '微信扫码快速登录',
     loginSuccess: '登录成功',
+    getUserInfoFailed: '获取用户信息失败',
+    loginAgain: '请重新登录',
     loginFailed: '登录失败 未查询到该用户下存在企业'
   },
   form: {},

+ 1 - 0
src/utils/eventList.js

@@ -17,6 +17,7 @@ export const updateEventList = () => {
     }, 600000)
   } else {
     timer.value = null
+    clearInterval(timer.value)
     localStorage.setItem('eventList', [])
   }
 }

+ 1 - 1
src/utils/position.js

@@ -60,7 +60,7 @@ export const dealDictObjData = (res, obj) => {
     if (!data) return
     const valueKey = data.nameKey ? data.nameKey : 'label'
     const idKey = data.valueKey ? data.valueKey : 'value'
-    const result = dictObj[data.value].find(val => val[idKey] === obj[e])
+    const result = dictObj[data.value]?.find(val => val[idKey] === obj[e])
     if (!result) return
     res[data.label] = result[valueKey]
     res = { ...obj, ...res }

+ 32 - 3
src/views/recruit/personal/shareJob/components/login.vue

@@ -11,13 +11,18 @@
 <script setup>
 import phoneFrom from '@/components/VerificationCode'
 import { useUserStore } from '@/store/user'; const userStore = useUserStore()
+import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
+import Snackbar from '@/plugins/snackbar'
 import { ref } from 'vue'
 defineOptions({name: 'shareJob-login'})
+const emit = defineEmits(['loginSuccess'])
 
 // 验证码登录
 const phoneRef = ref()
 const loginLoading = ref(false)
 
+const timer = ref(null)
+const baseInfo = ref(null)
 const handleLogin = async () => {
   localStorage.removeItem('currentRole')
   const { valid } = await phoneRef.value.phoneForm.validate()
@@ -26,12 +31,36 @@ const handleLogin = async () => {
   try {
     const params = { ...phoneRef.value.loginData } // 只能验证码登录
     await userStore.handleSmsLogin(params)
-    // Snackbar.success(t('login.loginSuccess'))
-    // router.push({ path })
+    // 查询用户基本信息
+    timer.value = setInterval(() => { getUserInfoVerify() }, 1000)
+    // 十秒后停止获取清除timer
+    setTimeout(() => { if (!baseInfo.value) getUserInfoFail() }, 10000);
+  } catch (error) {
+    console.error('error', error)
   }
-  finally {
+}
+
+// 查询用户基本信息失败 
+const getUserInfoVerify = () => {
+  if (baseInfo.value) {
+    clearInterval(timer.value)
+    timer.value = null
     loginLoading.value = false
+    const info = baseInfo.value
+    const keyArr = ['name', 'phone', 'jobStatus', 'expType', 'eduType']
+    // type = true, 符合快速投递,进入查看是否存在简历 // type = false, 不符合快速投递,进入填写基本信息
+    const type = keyArr.every(e => baseInfo.value[e] && baseInfo.value[e] !== 0)
+    emit('loginSuccess', { type, info, keyArr })
   }
+  baseInfo.value = JSON.parse(localStorage.getItem('baseInfo'))
+}
+
+// 查询用户基本信息失败 
+const getUserInfoFail = () => {
+  clearInterval(timer.value)
+  timer.value = null
+  loginLoading.value = false
+  Snackbar.success(t('login.getUserInfoFailed')+','+t('login.loginAgain'))
 }
 </script>
 <style lang="scss" scoped>

+ 10 - 1
src/views/recruit/personal/shareJob/index.vue

@@ -72,7 +72,7 @@
       @close="showQuickResumeDialog = false"
       @submit="null"
     >
-      <login :jobId="jobId"></login>
+      <login :jobId="jobId" @loginSuccess="loginSuccess"></login>
     </CtDialog>
   </div>
 </template>
@@ -142,6 +142,15 @@ const handleDelivery = () => {
     showHandleDelivery.value = !showQuickResumeDialog.value
   }
 }
+// 快速登录成功
+const loginSuccess = ({ type = false, info = {}, keyArr = [] }) => {
+  showQuickResumeDialog.value = false
+  if (type) {
+    // type = true, 符合快速投递,进入查看是否存在简历
+  } else {
+    // type = false, 不符合快速投递,进入填写基本信息
+  }
+}
 </script>
 
 <style lang="scss" scoped>