Sfoglia il codice sorgente

登录注册调整

Xiao_123 7 mesi fa
parent
commit
1dee7d9fe7

+ 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 {

+ 1 - 1
src/views/login/components/passwordPage.vue

@@ -74,7 +74,7 @@ const loginData = reactive({
 if (window.location.hostname === 'localhost' || window.location.hostname === '192.168.3.152') {
   // loginData.phone = '18400000022@qq.com'
   // loginData.password = 'Citu123456'
-  loginData.phone = '13229740092'
+  loginData.phone = '13229741111@qq.com'
   loginData.password = 'Citu123456'
 }
 

+ 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>

+ 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 {

+ 4 - 1
src/views/recruit/entRegister/register.vue

@@ -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>

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