lifanagju_citu 10 месяцев назад
Родитель
Сommit
f621cdacfc

+ 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', [])
   }
 }

+ 35 - 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,39 @@ 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
+    if (info.name && info.phone && info.jobStatus && info.expType && info.eduType) {
+      // 符合快速投递,进入查看是否存在简历
+      emit('loginSuccess', 1, info)
+    } else {
+      // 不符合快速投递,进入填写基本信息
+      emit('loginSuccess', 0, info)
+    }
   }
+  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>

+ 1 - 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="{}"></login>
     </CtDialog>
   </div>
 </template>