Ver Fonte

完善个人信息

lifanagju_citu há 6 meses atrás
pai
commit
9dc66a549f

+ 12 - 3
src/plugins/necessaryInfo/components/infoForm.vue

@@ -11,6 +11,14 @@ import { reactive, ref } from 'vue'
 import { checkEmail } from '@/utils/validate'
 import { enterpriseSearchByName } from '@/api/recruit/personal/resume'
 
+const props = defineProps({
+  option: {
+    type: Object,
+    default: () => {}
+  }
+})
+const setInfo = ref(props.option?.setInfo ? props.option.setInfo : {})
+// console.log(1, 'setInfo', setInfo)
 const formPageRef = ref()
 let query = reactive({})
 
@@ -96,14 +104,14 @@ const items = ref({
       key: 'enterpriseId',
       value: null,
       default: null,
-      label: '任职企业名称(没有可填暂无)',
+      label: '任职企业名称(可填暂无)',
       outlined: true,
       clearable: true,
       canBeInputted: true, //
       itemTextName: 'enterpriseName',
       itemText: 'value',
       itemValue: 'key',
-      // rules: [v => !!v || '任职企业名称(没有可填“暂无”)'],
+      // rules: [v => !!v || '任职企业名称(可填“暂无”)'],
       search: getEnterpriseData,
       items: []
     },
@@ -112,7 +120,7 @@ const items = ref({
       key: 'positionId',
       value: null,
       default: null,
-      label: '任职职位名称(没有可填暂无)',
+      label: '任职职位名称(可填暂无)',
       outlined: true,
       clearable: true,
       canBeInputted: true, //
@@ -198,6 +206,7 @@ items.value.options.forEach((e) => {
   if (baseInfo.value && baseInfo.value[e.key]) e.value = baseInfo.value[e.key] // 人才信息回显
   if (userInfo.value && userInfo.value[e.key]) e.value = userInfo.value[e.key] // 人才信息回显
   if (e.key === 'sex' && e.value === '0') e.value = e.default
+  if (setInfo.value[e.key]) e.value = setInfo.value[e.key]
 })
 
 const getQuery = async () => {

+ 10 - 4
src/plugins/necessaryInfo/components/necessaryInfoDialog.vue

@@ -11,7 +11,7 @@
       @other="handleLogout"
       @submit="simpleInfoSubmit"
     >
-      <infoForm ref="formRef"></infoForm>
+      <infoForm ref="formRef" :option="option"></infoForm>
     </CtDialog>
   </v-app>
 </template>
@@ -38,10 +38,15 @@ const props = defineProps({
   option: {
     type: Object,
     default: () => {}
+  },
+  setInfo: {
+    type: Object,
+    default: () => {}
   }
 })
 
 const dialog = ref(false)
+// const isMobile = ref(false)
 onMounted(() => {
   dialog.value = true
 })
@@ -58,9 +63,10 @@ const simpleInfoSubmit = async () => {
     const obj = await formRef.value.getQuery()
     if (!obj) return
     await savePersonSimpleInfo(obj)
-    const info = localStorage.getItem('baseInfo') ? JSON.parse(localStorage.getItem('baseInfo')) : {}
-    localStorage.setItem('baseInfo', JSON.stringify({ ...info, ...obj }))
-    localStorage.setItem('necessaryInfoReady', 'ready') //
+    // const info = localStorage.getItem('baseInfo') ? JSON.parse(localStorage.getItem('baseInfo')) : {}
+    // localStorage.setItem('baseInfo', JSON.stringify({ ...info, ...obj }))
+    // localStorage.setItem('necessaryInfoReady', 'ready') //
+    await useUserStore().getUserBaseInfos() // 更新用户信息
     dialog.value = false
     props.sure()
   } catch (error) {

+ 63 - 45
src/views/recruit/enterprise/systemManagement/groupAccount/inviteConfirm.vue

@@ -34,7 +34,7 @@
     </div>
   </div>
   <!-- 快速填写简易人才信息 -->
-  <CtDialog
+  <!-- <CtDialog
     :visible="showSimpleInput"
     :widthType="2"
     titleClass="text-h6"
@@ -42,22 +42,25 @@
     @close="showSimpleInput = false"
     @submit="simpleInfoSubmit"
   >
-    <simplePageForm ref="formRef"></simplePageForm>
-  </CtDialog>
+    <infoForm ref="formRef"></infoForm>
+  </CtDialog> -->
 </template>
 
 <script setup>
 defineOptions({ name: 'inviteConfirm'})
 import { ref, onMounted } from 'vue'
 import phoneFrom from '@/components/VerificationCode'
-import simplePageForm from './components/simplePageForm.vue'
 import { useRoute } from 'vue-router'; const route = useRoute()
 import { enterpriseInviteRecordConsent, getEnterpriseInfoByCode } from '@/api/recruit/enterprise/enterpriseInvite.js'
 import Snackbar from '@/plugins/snackbar'
 import { getToken } from '@/utils/auth'
-import { getBaseInfo, logout } from '@/api/common'
+import { logout } from '@/api/common'
 import { useUserStore } from '@/store/user'
 import { savePersonSimpleInfo } from '@/api/recruit/personal/shareJob'
+// import infoForm from '@/plugins/necessaryInfo/components/infoForm.vue'
+// import simplePageForm from './components/simplePageForm.vue'
+import { checkPersonBaseInfo } from '@/utils/check'
+import necessaryInfo from '@/plugins/necessaryInfo'
 
 
 const joinSuccess = ref(false)
@@ -83,10 +86,19 @@ const handleLogin = async () => {
   try {
     const params = { ...phoneRef.value.loginData, autoRegister: true } // 只能验证码登录
     joinPersonEmail = params.email || ''
+    const setInfo = { email: joinPersonEmail, enterpriseId: enterpriseInfo.value.enterpriseName }
     // 如果用户登录后点击关闭填写简易人才信息,再次点击登录仅弹出填写,不再调用登录
     if (copyLoginData === (params.phone + params.code.toString()) && userId) {
-      getUserBaseInfos(userId)
-      return
+      // getUserBaseInfos(userId)
+      // return
+      if (!checkPersonBaseInfo()) { // 强制填写个人信息
+        necessaryInfo('necessaryInfoDialog', { setInfo }).then(() => {
+          join()
+        })
+        return
+      } else {
+        join()
+      }
     }
     if (!params.captchaVerification) {
       phoneRef.value.getCode(true)
@@ -95,7 +107,13 @@ const handleLogin = async () => {
     const data = await useUserStore().handleSmsLogin(params)
     copyLoginData = params.phone + params.code.toString()
     userId = data.userId
-    getUserBaseInfos(data.userId)
+    // getUserBaseInfos(data.userId)
+    if (!checkPersonBaseInfo()) { // 强制填写个人信息
+      necessaryInfo('necessaryInfoDialog', { setInfo }).then(() => {
+        join()
+      })
+      return
+    }
   } catch (error) {
     phoneRef.value && phoneRef.value.clearCaptcha()
     const msg = error?.msg || error
@@ -107,29 +125,29 @@ const handleLogin = async () => {
 }
 
 // 查询人才信息
-const showSimpleInput = ref(false)
-const getUserBaseInfos = async (userId) => {
-  loginLoading.value = true
-  try {
-    const data = await getBaseInfo({ userId })
-    if (!data) {
-      showSimpleInput.value = true; Snackbar.warning('请先完善个人基本信息')
-      return 
-    }
-    const keyArr = ['name', 'phone', 'jobStatus', 'expType', 'eduType'] // 必填人才信息
-    const simpleInfoReady = Object.keys(data).length && keyArr.every(e => data[e] && data[e] !== 0) // 校验必填人才信息
-    if (!simpleInfoReady) {
-      showSimpleInput.value = true; Snackbar.warning('请先完善个人基本信息')
-      return
-    }
-    join()
-  } catch (error) {
-    logoutFun()
-    Snackbar.error('获取用户信息失败! ' + error)
-  } finally {
-    loginLoading.value = false
-  }
-}
+// const showSimpleInput = ref(false)
+// const getUserBaseInfos = async (userId) => {
+//   loginLoading.value = true
+//   try {
+//     const data = await getBaseInfo({ userId })
+//     if (!data) {
+//       showSimpleInput.value = true; Snackbar.warning('请先完善个人基本信息')
+//       return 
+//     }
+//     const keyArr = ['name', 'phone', 'jobStatus', 'expType', 'eduType'] // 必填人才信息
+//     const simpleInfoReady = Object.keys(data).length && keyArr.every(e => data[e] && data[e] !== 0) // 校验必填人才信息
+//     if (!simpleInfoReady) {
+//       showSimpleInput.value = true; Snackbar.warning('请先完善个人基本信息')
+//       return
+//     }
+//     join()
+//   } catch (error) {
+//     logoutFun()
+//     Snackbar.error('获取用户信息失败! ' + error)
+//   } finally {
+//     loginLoading.value = false
+//   }
+// }
 
 // 调用加入接口
 const join = async () => {
@@ -162,22 +180,22 @@ const logoutFun = async () => {
     console.log('登出失败!', error)
   }
 }
-logoutFun() // 清除之前的token
+// logoutFun() // 清除之前的token
 
 // 提交简易人才信息
-const formRef = ref()
-const simpleInfoSubmit = async () => {
-  try {
-    const obj = await formRef.value.getQuery()
-    if (!obj) return
-    await savePersonSimpleInfo(obj)
-    join()
-    if (!isMobile.value) await useUserStore().getUserBaseInfos() // 网页打开需更新用户信息
-    showSimpleInput.value = false
-  } catch (error) {
-    console.error('error', error)
-  }
-}
+// const formRef = ref()
+// const simpleInfoSubmit = async () => {
+//   try {
+//     const obj = await formRef.value.getQuery()
+//     if (!obj) return
+//     await savePersonSimpleInfo(obj)
+//     join()
+//     if (!isMobile.value) await useUserStore().getUserBaseInfos() // 网页打开需更新用户信息
+//     // showSimpleInput.value = false
+//   } catch (error) {
+//     console.error('error', error)
+//   }
+// }
 
 const enterpriseInfo = ref({})
 // 根据邀请码获取企业信息