Prechádzať zdrojové kódy

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

lifanagju_citu 8 mesiacov pred
rodič
commit
bd2417b983

+ 7 - 0
src/api/common/index.js

@@ -66,6 +66,13 @@ export const passwordLogin = async (data) => {
   })
 }
 
+// 根据邮箱获取企业注册申请
+export const getEnterpriseRegisterApply = async (email) => {
+  return await request.get({
+    url: '/app-api/menduner/system/enterprise-register/by/email?email=' + email
+  })
+}
+
 // 退出登录
 export const logout = async () => {
   return await request.post({

+ 2 - 2
src/config/axios/service.js

@@ -205,8 +205,8 @@ service.interceptors.response.use(
       Snackbar.error(t('sys.api.errMsg901'))
       return Promise.reject(new Error(msg))
     } else if (code !== 200) {
-      if (code === 1100017019 || code === 1100016002) {
-        // 1100017019邮箱未注册、1100016002手机号未注册过
+      if (code === 1100017019 || code === 1100016002 || code === 1100021016) {
+        // 1100017019邮箱未注册、1100016002手机号未注册过、1100021016注册企业申请中
         // 未注册过的手机号将code码返回
         return Promise.reject(data)
       } else {

+ 2 - 8
src/layout/company/navBar.vue

@@ -129,12 +129,6 @@ const handleLogout = async () => {
 const enterpriseList = ref([])
 
 const menuList = ref([
-  // { title: t('enterprise.account.myAccount'), icon: 'mdi-account', change: () => router.push({ path: '/recruit/enterprise/memberCenter/myAccount' }) },
-  // { title: t('vipPackage.purchasePackage'), icon: 'mdi-gift-outline', change: () => window.open('/recruit/enterprise/purchasePackage') },
-  // { title: t('enterprise.personalInformationSettings'), icon: 'mdi-account-cog', change: () => router.push({ path: '/recruit/enterprise/staffInfoSetting' }) },
-  // { title: t('setting.switchToOtherCompany'), icon: 'mdi-home-switch', hidden: enterpriseList.value?.length < 2, change: () => handleSwitchToAnotherEnterprise },
-  // { title: t('enterprise.registeringNewEnterprise'), icon: 'mdi-home-plus-outline', change: () => handleRegisteringNewEnterprise },
-  // { title: t('setting.switchToJobSeeker'), icon: 'mdi-swap-horizontal', change: handleLogout },
   { title: t('setting.logOut'), icon: 'mdi-logout', change: handleLogout }
 ])
 const items = computed(() => {
@@ -146,8 +140,8 @@ let baseInfo = ref(JSON.parse(localStorage.getItem('entBaseInfo')) || {})
 let enterpriseUserAccount = ref(JSON.parse(localStorage.getItem('enterpriseUserAccount')) || {}) // 账户信息
 
 userStore.$subscribe((mutation, state) => {
-  baseInfo.value = state.baseInfo
-  enterpriseUserAccount.value = state.enterpriseUserAccount
+  if (Object.keys(state.baseInfo).length) baseInfo.value = state.entBaseInfo
+  if (Object.keys(state.enterpriseUserAccount).length) enterpriseUserAccount.value = state.enterpriseUserAccount
 })
 
 // 语言切换

+ 2 - 3
src/views/integral/pointsManagement/components/integralShow.vue

@@ -58,11 +58,10 @@ const list = ref([
 ])
 
 const userStore = useUserStore()
-const key = props.isEnterprise ? 'enterpriseUserAccount' : 'userAccount'
-let accountData = ref(JSON.parse(localStorage.getItem(key)) || {})
+let accountData = ref(JSON.parse(localStorage.getItem('userAccount')) || {})
 
 userStore.$subscribe((mutation, state) => {
-  if (Object.keys(state[key]).length) accountData.value = state[key]
+  if (Object.keys(state.userAccount).length) accountData.value = state.userAccount
 })
 
 // 积分规则

+ 21 - 12
src/views/login/index.vue

@@ -36,8 +36,8 @@
         </v-btn>
         <div class="login-tips mt-3">
           {{ $t('login.agreeLogin') }}
-          <span class="color" style="cursor: pointer;" @click="handleToUserAgreement"> [{{ $t('login.userAgreement') }}] </span>和
-          <span class="color" style="cursor: pointer;" @click="handlePrivacyPolicy">[{{ $t('login.privacyPolicy') }}]</span>
+          <span class="color" style="cursor: pointer;" @click="router.push('/userAgreement')"> [{{ $t('login.userAgreement') }}] </span>和
+          <span class="color" style="cursor: pointer;" @click="router.push('/privacyPolicy')">[{{ $t('login.privacyPolicy') }}]</span>
         </div>
       </div>
     </div>
@@ -45,15 +45,16 @@
 </template>
 
 <script setup>
+defineOptions({ name: 'login-index' })
 import { ref } from 'vue'
 import passwordFrom from './components/passwordPage.vue'
 import phoneFrom from '@/components/VerificationCode'
 import { useUserStore } from '@/store/user'
 import { useRouter } from 'vue-router'
 import { useI18n } from '@/hooks/web/useI18n'
+import { getEnterpriseRegisterApply } from '@/api/common'
 import Snackbar from '@/plugins/snackbar'
 import Confirm from '@/plugins/confirm'
-defineOptions({ name: 'login-index' })
 
 const { t } = useI18n()
 const router = useRouter()
@@ -65,6 +66,16 @@ const passRef = ref()
 const loginLoading = ref(false)
 const userStore = useUserStore()
 
+const handleCheckEnterprise = async () => {
+  const data = await getEnterpriseRegisterApply(passRef.value.loginData.phone)
+  if (data && Object.keys(data).length) {
+    // 查看申请状态
+    localStorage.setItem('entRegisterData', JSON.stringify(data))
+    localStorage.setItem('loginAccount', data.phone)
+    router.push({ path: '/recruit/entRegister/inReview', query: { type: 'noLoginToRegister', noLogin: true } })
+  }
+}
+
 const handleLogin = async () => {
   const { valid } = tab.value === 1 ? await phoneRef.value.phoneForm.validate() : await passRef.value.passwordForm.validate()
   if (!valid) return
@@ -80,7 +91,6 @@ const handleLogin = async () => {
       const isEnterprise = pattern.test(params.phone)
       params.isEnterprise = isEnterprise
     }
-    // if (params.isEnterprise) router.push({ path: '/enterpriseVerification' }) // 先跳转到会使用企业token的路由
     await userStore[api](params)
     // 跳转
     if (params.isEnterprise) return // 企业邮箱登录
@@ -88,6 +98,13 @@ const handleLogin = async () => {
     router.push({ path: '/recruitHome' })
 
   } catch (err) {
+    if (!err.code) return
+    // 企业注册申请中
+    if (err.code === 1100021016) {
+      handleCheckEnterprise()
+      return
+    }
+    // 登录未注册过的账号跳转注册
     const text = err.code === 1100016002 ? '您的手机号还未注册过' : '您的邮箱还未注册过'
     Confirm('系统提示',  `${text},去注册?`, {
       cancelCallback: true
@@ -99,14 +116,6 @@ const handleLogin = async () => {
     loginLoading.value = false
   }
 }
-
-// 隐私、用户协议
-const handleToUserAgreement = () => {
-  router.push({ path: '/userAgreement' })
-}
-const handlePrivacyPolicy = () => {
-  router.push({ path: '/privacyPolicy' })
-}
 </script>
 
 <style lang="scss" scoped>

+ 1 - 1
src/views/recruit/components/message/components/chatting.vue

@@ -142,7 +142,7 @@
               </v-chip>
               <v-card v-if="val.payload.content?.type !== 2 || val.from_uid !== IM.uid" width="300" class="pa-3 ma-2" color="teal" variant="tonal" :elevation="3">
                 <v-card-text class="d-flex">
-                  <p v-if="val.payload.content?.type === 1">{{ val.payload.content?.query?.title || t('resume.attachmentResume') }}</p>
+                  <p v-if="val.payload.content?.type === 1" style="width: 100%; text-align: left;">{{ val.payload.content?.query?.title || t('resume.attachmentResume') }}</p>
                   <p v-if="val.payload.content?.type === 2">{{ t('resume.requestResume') }}</p>
                 </v-card-text>
                 <v-card-actions class="justify-center">

+ 13 - 8
src/views/recruit/entRegister/inReview.vue

@@ -2,7 +2,8 @@
 <template>
   <div class="my-5">
     <div :class="isMobile? 'mobileBox' : 'default-width'">
-      <v-btn class="my-2" color="primary" variant="text" size="large" @click="router.push('/recruitHome')">{{ `<< 回到首页` }}</v-btn>
+      <v-btn v-if="query?.noLogin" class="my-2" color="primary" variant="text" size="large" @click="router.push('/login')">{{ `<< 回到登录页` }}</v-btn>
+      <v-btn v-else class="my-2" color="primary" variant="text" size="large" @click="router.push('/recruitHome')">{{ `<< 回到首页` }}</v-btn>
     </div>
     <v-card class="pa-5" :class="isMobile? 'mobileBox' : 'default-width'" :elevation="isMobile? '0' : '3'">
 
@@ -11,7 +12,7 @@
         <!-- 提交企业注册以后跳转显示页面 -->
         <div v-if="!applyInfo || !(Object.keys(applyInfo).length)" class="d-flex flex-column align-center">
           <svg-icon name="submit" size="300"></svg-icon>
-          <div>提交成功,审核时间在1~3个工作日内,申请结果会以短信方式通知到您的手机上,请注意查收</div>
+          <div>提交成功,审核时间在1~3个工作日内,申请结果会以短信方式通知到您的手机上,请注意查收</div>
           <!-- <div>提交成功,审核时间在1~3个工作日内,申请结果会通过邮件的方式通知到您,请注意查看邮箱</div> -->
         </div>
 
@@ -20,7 +21,7 @@
           <div class="d-flex flex-column align-center">
             <svg-icon name="submit" size="300"></svg-icon>
           </div>
-          <div>您的申请正在审核中,审核时间在1~3个工作日内,申请结果会以短信方式通知到您的手机上,请注意查收</div>
+          <div>您的企业账号申请正在审核中,审核时间在1~3个工作日内,申请结果会以短信方式通知到您的手机上,请注意查收</div>
           <!-- <span>您的申请正在审核中,审核时间在1~3个工作日内,申请结果会通过邮件的方式通知到您,请注意查看邮箱</span> -->
           <div class="mt-5">
             <span>提交时间:{{ applyInfo.createTime }}</span>
@@ -29,8 +30,7 @@
 
         <!-- 审核不通过 -->
         <div v-else-if="applyInfo.status === '2'">
-          <div class="mb-3" style="color: red;">审核不通过</div>
-          <div class="mb-3" style="color: red;">原因:{{ applyInfo.reason }}</div>
+          <div class="mb-3" style="color: red;">您的企业账号注册申请审核不通过,具体原因如下:{{ applyInfo.reason }}</div>
           <div v-if="applyInfo.remark">备注:{{ applyInfo.remark }}</div>
           <div class="mt-5">
             <span>审核时间:{{ applyInfo.updateTime }}</span>
@@ -46,7 +46,7 @@
         </div>
         <div class="text-center" v-if="!isMobile">
           <v-btn class="mt-16 buttons" color="primary" to="/recruitHome">{{ $t('common.toHome') }}</v-btn>
-          <v-btn v-if="applyInfo.status === '2'" class="mt-16 ml-12 buttons" color="primary" to="/recruit/entRegister">{{ $t('common.resubmit') }}</v-btn>
+          <v-btn v-if="applyInfo.status === '2'" class="mt-16 ml-12 buttons" color="primary" @click="handleConfirm">{{ $t('common.resubmit') }}</v-btn>
         </div>
       </div>
     </v-card>
@@ -54,13 +54,14 @@
 </template>
 
 <script setup>
+defineOptions({name: 'enterprise-enterpriseRegister-inReview'})
 import { timesTampChange } from '@/utils/date'
 import { getUserRegisterEnterpriseApply } from '@/api/personal/user'
 import { onMounted, ref } from 'vue';
 import { useRouter } from 'vue-router'; const router = useRouter()
-defineOptions({name: 'enterprise-enterpriseRegister-inReview'})
 
 const applyInfo = ref({})
+const query = router.currentRoute.value.query
 
 // 组件挂载后添加事件监听器  
 const isMobile = ref(false)
@@ -71,7 +72,7 @@ onMounted(() => {
 
 // 查看用户是否有在申请中的数据
 const getApplyInfo = async () => {
-  const data = await getUserRegisterEnterpriseApply() // 已经有数据说明已经申请过了
+  const data = query?.noLogin ? JSON.parse(localStorage.getItem('entRegisterData')) : await getUserRegisterEnterpriseApply() // 已经有数据说明已经申请过了
   localStorage.setItem('userApplyInfo', JSON.stringify(data))
   const obj = {
     createTime: timesTampChange(data.createTime), // 创建时间
@@ -84,6 +85,10 @@ const getApplyInfo = async () => {
 }
 getApplyInfo()
 
+const handleConfirm = () => {
+  router.push(query?.noLogin ? '/register/company?type=noLoginToRegister&login=true' : '/recruit/entRegister')
+}
+
 </script>
 <style lang="scss" scoped>
 .mobileBox {

+ 5 - 2
src/views/recruit/entRegister/register.vue

@@ -225,7 +225,7 @@ const handleCommit = async () => {
   }
   formItems.value.options.forEach(e => { params[e.key] = e.value })
   // 邮箱登录密码校验
-  if (params.password !== params.passwordConfirm) return Snackbar.warning('两次输入的密码不一致,请确认')
+  // if (params.password !== params.passwordConfirm) return Snackbar.warning('两次输入的密码不一致,请确认')
 
   await enterpriseRegisterApply(params)
   localStorage.removeItem('loginAccount')
@@ -242,7 +242,10 @@ if (info && Object.keys(info).length && info.status === '2') {
   licenseUrl.value = info?.businessLicenseUrl
   isPrepare.value = info?.prepare || false
   isPrepareChange()
-  formItems.value.options.forEach(e => { e.value = info[e.key] })
+  formItems.value.options.forEach(e => {
+    if (e.key === 'passwordConfirm') e.value = info.password
+    else e.value = info[e.key]
+  })
 }
 
 </script>

+ 1 - 0
src/views/recruit/enterprise/entInfoSetting/index.vue

@@ -32,6 +32,7 @@
               class="mb-3"
               :is="item.path"
               @complete="complete"
+              @change="val => tab = val"
             />
           </div>
         </template>

+ 2 - 2
src/views/recruit/enterprise/entInfoSetting/informationSettingsComponents/basicInfo.vue

@@ -6,7 +6,7 @@
       <template #name="{ item }">
         <div v-show="!item.show" class="text-right" style="width: 80px; line-height: 40px;">
           <v-icon :color="statusInfo.color" size="20">{{ statusInfo.mdi }}</v-icon>
-          <span :style="{'color': statusInfo.color,'font-size': '14px'}">{{ statusInfo.label }}</span>
+          <span class="cursor-pointer text-decoration-underline" :style="{'color': statusInfo.color,'font-size': '14px'}" @click="emit('change', 6)">{{ statusInfo.label }}</span>
         </div>
       </template>
       <template #industryId="{ item }">
@@ -40,7 +40,7 @@ import { getDict } from '@/hooks/web/useDictionaries'
 import { useI18n } from '@/hooks/web/useI18n'
 import industryTypeCard from '@/components/industryTypeCard'
 import Snackbar from '@/plugins/snackbar'
-const emit = defineEmits(['complete'])
+const emit = defineEmits(['complete', 'change'])
 
 const { t } = useI18n()
 const CtFormRef = ref()

+ 8 - 0
src/views/recruit/enterprise/hirePosition/components/jobRequirements.vue

@@ -119,6 +119,10 @@ const items = ref({
         value => {
           if (value >= 1) return true
           return '数额不得小于1'
+        },
+        value => {
+          if (value < items.value.options.find(e => e.key === 'payTo').value) return true
+          return '不得大于最高薪资'
         }
       ]
     },
@@ -138,6 +142,10 @@ const items = ref({
         value => {
           if (value >= 1) return true
           return '数额不得小于1'
+        },
+        value => {
+          if (value > items.value.options.find(e => e.key === 'payFrom').value) return true
+          return '不得小于最高薪资'
         }
       ]
     },

+ 1 - 0
src/views/recruit/enterprise/interviewManagement/components/invite.vue

@@ -7,6 +7,7 @@
         class="mb-4"
         model-type="timestamp"
         :disabled-dates="disabledDates"
+        :day-names="['一', '二', '三', '四', '五', '六', '七']"
         :text-input="{ format: 'MM.dd.yyyy HH:mm' }" />
     </template>
   </CtForm>

+ 7 - 0
src/views/recruit/enterprise/personnelManagement/components/invite.vue

@@ -6,6 +6,8 @@
         placeholder="面试时间 *"
         class="mb-4"
         model-type="timestamp"
+        :disabled-dates="disabledDates"
+        :day-names="['一', '二', '三', '四', '五', '六', '七']"
         :text-input="{ format: 'MM.dd.yyyy HH:mm' }" />
     </template>
   </CtForm>
@@ -22,6 +24,11 @@ const props = defineProps({
   }
 })
 
+// 过去的日期不可选
+const disabledDates = (date) => {
+  return date.getTime() < new Date().getTime()
+}
+
 const CtFormRef = ref()
 const formItems = ref({
   options: [

+ 9 - 1
src/views/recruit/enterprise/positionManagement/components/jobRequirements.vue

@@ -119,13 +119,17 @@ const items = ref({
         value => {
           if (value >= 1) return true
           return '数额不得小于1'
+        },
+        value => {
+          if (value < items.value.options.find(e => e.key === 'payTo').value) return true
+          return '不得大于最高薪资'
         }
       ]
     },
     {
       type: 'text',
       key: 'payTo',
-      value: '',
+      value: '10',
       col: 4,
       label: '最高薪资 *',
       flexStyle: 'mx-3',
@@ -138,6 +142,10 @@ const items = ref({
         value => {
           if (value >= 1) return true
           return '数额不得小于1'
+        },
+        value => {
+          if (value > items.value.options.find(e => e.key === 'payFrom').value) return true
+          return '不得小于最高薪资'
         }
       ]
     },

+ 7 - 0
src/views/recruit/enterprise/resume/components/invite.vue

@@ -6,6 +6,8 @@
         placeholder="面试时间 *"
         class="mb-4"
         model-type="timestamp"
+        :disabled-dates="disabledDates"
+        :day-names="['一', '二', '三', '四', '五', '六', '七']"
         :text-input="{ format: 'MM.dd.yyyy HH:mm' }" />
     </template>
   </CtForm>
@@ -22,6 +24,11 @@ const props = defineProps({
   }
 })
 
+// 过去的日期不可选
+const disabledDates = (date) => {
+  return date.getTime() < new Date().getTime()
+}
+
 const CtFormRef = ref()
 const formItems = ref({
   options: [

+ 1 - 1
src/views/recruit/enterprise/resume/components/table.vue

@@ -33,7 +33,7 @@
         <v-btn v-if="tab === 0" color="primary" variant="text" @click="handleInterviewInvite(item)">邀请面试</v-btn>
         <v-btn v-if="tab === 0" color="primary" variant="text" @click="handleToCommunicate(item)">立即沟通</v-btn>
         <v-btn v-if="tab === 0 || tab === 1" color="primary" variant="text" @click="handleEliminate(item)">不合适</v-btn>
-        <v-btn v-if="!item.inTalentPool && (tab === 1 || tab === 2 || tab === 3)" color="primary" variant="text" @click="handleJoinToTalentPool(item)">加入人才库</v-btn>
+        <v-btn v-if="!item.inTalentPool && (tab === 1 || tab === 2 || tab === 3)" color="primary" variant="text" @click="handleJoinToTalentPool(item)">加入精英储备</v-btn>
         <v-btn v-if="tab === 1 && (item.status === '3' || item.status === '4')" color="primary" variant="text" @click="handleEnterByEnterprise(item)">入职</v-btn>
         <v-btn v-if="tab === 4" color="primary" variant="text" @click="handleCancelEliminate(item)">取消不合适</v-btn>
         <v-btn v-if="tab === 2 && item?.job?.hire" color="primary" variant="text" @click="handleSettlement(item)">结算</v-btn>

+ 7 - 1
src/views/recruit/personal/PersonalCenter/resume/online/components/projectExperience.vue

@@ -2,7 +2,7 @@
   <div class="resume-box">
     <div class="resume-header">
       <div class="resume-title">{{ $t('resume.projectExperience') }}</div>
-      <v-btn variant="text" color="primary" prepend-icon="mdi-plus-box" @click="isEdit = true; type = 'add'">{{ $t('common.add') }}</v-btn>
+      <v-btn variant="text" color="primary" prepend-icon="mdi-plus-box" @click="handleAdd">{{ $t('common.add') }}</v-btn>
     </div>
     <div v-if="isEdit" class="edit">
       <h4 class="label-title my-3 mx-2"> {{ type === 'add' ? $t('common.add') : $t('common.edit') }}{{ $t('resume.projectExperience') }}</h4>
@@ -129,6 +129,12 @@ const getResumeTrainExpData = async () => {
 }
 getResumeTrainExpData()
 
+const handleAdd = () => {
+  items.value.options.forEach(e => e.value = null)
+  type.value = 'add'
+  isEdit.value = true
+}
+
 // 保存项目经历
 const handleSave = async () => {
   const { valid } = await formPageRef.value.formRef.validate()

+ 6 - 0
src/views/recruit/personal/PersonalCenter/wallet/myBalance/index.vue

@@ -48,11 +48,17 @@ import { ref } from 'vue'
 import { timesTampChange } from '@/utils/date'
 import { FenYuanTransform } from '@/utils/position'
 import { getUserWalletRechargePage } from '@/api/recruit/personal/myWallet.js'
+import { useUserStore } from '@/store/user'
 
 const tab = ref('rechargeDetails')
 
+const userStore = useUserStore()
 const userAccount = ref(JSON.parse(localStorage.getItem('userAccount')) || {}) // 账户信息
 
+userStore.$subscribe((mutation, state) => {
+  if (Object.keys(state.userAccount).length) userAccount.value = state.userAccount
+})
+
 const total = ref(0)
 const query = ref({
   pageNo: 1,

+ 5 - 7
src/views/recruit/personal/home/components/advertisement/index.vue

@@ -25,9 +25,7 @@ const list = [
   { url: 'https://dfws-file.veimg.cn/plutus/img/finish/2021/01/1611813992000.webp' },
   { url: 'https://dfws-file.veimg.cn/plutus/img/finish/2021/01/1611813992000.webp' },
   { url: 'https://admin.61hr.com/admin/uploads/images/ad/202407/e684374c0ff349b4945bc0c7a4a2713f.gif' },
-  { url: 'https://dfws-file.veimg.cn/plutus/img/finish/2024/08/1722492376000.webp' },
-  { url: 'https://dfws-file.veimg.cn/plutus/img/finish/2024/08/1722492376000.webp' },
-  { url: 'https://admin.61hr.com/admin/uploads/images/ad/202407/e684374c0ff349b4945bc0c7a4a2713f.gif' },
+  { url: 'https://dfws-file.veimg.cn/plutus/img/finish/2024/08/1722492376000.webp' }
 ]
 
 const handleOpen = () => {
@@ -62,12 +60,12 @@ const handleOpen = () => {
 }
 .col-item {
   cursor: pointer;
-  width: calc((100% - 36px) / 4);
-  min-width: calc((100% - 36px) / 4);
-  max-width: calc((100% - 36px) / 4);
+  width: calc((100% - 24px) / 3);
+  min-width: calc((100% - 24px) / 3);
+  max-width: calc((100% - 24px) / 3);
   margin: 0 12px 12px 0;
   box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
-  &:nth-child(4n) {
+  &:nth-child(3n) {
     margin-right: 0;
   }
   &:hover {

+ 6 - 1
src/views/register/company.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="box">
-    <PhonePage v-if="!valid" :isCompany="true" @success="handleValidate"></PhonePage>
+    <PhonePage v-if="!valid" :isCompany="true" @success="handleValidate" :isLogin="query.login ? true : false"></PhonePage>
   </div>
 </template>
 
@@ -12,11 +12,16 @@ import PhonePage from './person.vue'
 import { useRouter } from 'vue-router'
 
 const router = useRouter()
+const query = router.currentRoute.value.query
 
 const valid = ref(false)
 const handleValidate = async () => {
   // 已短信登录
   valid.value = true
+  if (query.login) {
+    router.push({ path: '/recruit/entRegister' })
+    return
+  } 
   // 查看用户是否有在申请中的数据
   const data = await getUserRegisterEnterpriseApply()
   const bool = data && Object.keys(data).length // 已经有数据说明已经申请过了

+ 7 - 2
src/views/register/person.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="box">
     <div class="content pa-10">
-      <div class="content-title text-center mt-4">请输入手机号码进行注册认证</div>
+      <div class="content-title text-center mt-4">{{ isLogin ? '请输入您申请企业账号时填入的手机号进行效验' : '请输入手机号码进行注册认证'}}</div>
       <phoneFrom class="mt-10" ref="phoneRef" @handleEnter="handleRegister" :phone="phone"></phoneFrom>
       <div class="font-size-14 tips color-primary cursor-pointer text-end" @click="router.push('/login')">已有账号?去登录</div>
       <v-btn :loading="loading" color="primary" class="white--text mt-5" min-width="370" @click="handleRegister">{{ isCompany ? '下一步' : '注册' }}</v-btn>
@@ -28,6 +28,10 @@ const props = defineProps({
   isCompany: {
     type: Boolean,
     default: false
+  },
+  isLogin: {
+    type: Boolean,
+    default: false
   }
 })
 
@@ -43,7 +47,8 @@ const handleRegister = async () => {
   if (!valid) return
   loading.value = true
   try {
-    await userStore.handleUserRegister({ ...phoneRef.value.loginData })
+    // isLogin:企业注册申请被驳回后,再次提交时需先登录个人账号
+    props.isLogin ? await userStore.handleSmsLogin({ ...phoneRef.value.loginData }) : await userStore.handleUserRegister({ ...phoneRef.value.loginData })
     Snackbar.success(props.isCompany ? '手机号验证成功' : '注册成功')
     if (!props.isCompany) {
       router.push({ path: '/recruitHome' })