Xiao_123 7 mesiacov pred
rodič
commit
9a75fb4ec2

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

@@ -16,6 +16,14 @@ export const sendSmsCode = async (data) => {
   })
 }
 
+// 个人注册并登录
+export const userRegister = async (data) => {
+  return await request.post({
+    url: '/app-api/menduner/system/auth/register',
+    data
+  })
+}
+
 // 验证码登录
 export const smsLogin = async (data) => {
   return await request.post({

+ 8 - 7
src/config/axios/service.js

@@ -7,7 +7,7 @@ import { useUserStore } from '@/store/user'
 import { getSuffixAfterPrefix, showNextAction } from '@/utils/prefixUrl'
 import { getCurrentLocaleLang } from '@/utils/lang'
 import { enterpriseRefreshToken, userRefreshToken } from '@/api/common'
-import { getToken, getRefreshToken, removeToken, setToken, setRefreshToken, getIsEnterprise } from '@/utils/auth'
+import { getToken, getRefreshToken, setToken, setRefreshToken, getIsEnterprise } from '@/utils/auth'
 import { rewardEventTrackClick } from '@/api/integral'
 import errorCode from './errorCode'
 
@@ -205,11 +205,11 @@ service.interceptors.response.use(
       Snackbar.error(t('sys.api.errMsg901'))
       return Promise.reject(new Error(msg))
     } else if (code !== 200) {
-      if (msg === '无效的刷新令牌') {
-        // hard coding:忽略这个提示,直接登出
-        console.log(msg)
-      }
-      else {
+      if (code === 1100017019 || code === 1100016002) {
+        // 1100017019邮箱未注册、1100016002手机号未注册过
+        // 未注册过的手机号将code码返回
+        return Promise.reject(data)
+      } else {
         Snackbar.error(msg)
       }
       return Promise.reject(msg)
@@ -244,6 +244,7 @@ service.interceptors.response.use(
 
 const handleAuthorized = () => {
   const { t } = useI18n()
+  const user = useUserStore()
   if (!isReLogin.show) {
     // 如果已经到重新登录页面则不进行弹窗提示
     if (window.location.href.includes('login?redirect=')) {
@@ -255,7 +256,7 @@ const handleAuthorized = () => {
     }).then(() => {
       // resetRouter() // 重置静态路由表
       // deleteUserCache() // 删除用户缓存
-      removeToken()
+      user.handleClearStorage()
       isReLogin.show = false
       // 干掉token后再走一次路由让它过router.beforeEach的校验
       // location.reload()

+ 23 - 3
src/store/user.js

@@ -10,7 +10,7 @@ import {
   logout 
 } from '@/api/common'
 import { getUserInfo } from '@/api/personal/user'
-import { getEnterpriseUserAccount, getAccountBalance, getUserAccount } from '@/api/common'
+import { getEnterpriseUserAccount, getAccountBalance, getUserAccount, userRegister } from '@/api/common'
 import { getEnterpriseBaseInfo } from '@/api/enterprise'
 import Snackbar from '@/plugins/snackbar'
 import { timesTampChange } from '@/utils/date'
@@ -34,6 +34,21 @@ export const useUserStore = defineStore('user',
       enterpriseUserAccount: {} // 企业账户信息
     }),
     actions: {
+      // 个人用户注册并登录
+      handleUserRegister (data) {
+        return new Promise((resolve, reject) => {
+          userRegister(data).then(async res => {
+            setToken(res.accessToken)
+            setRefreshToken(res.refreshToken)
+            this.accountInfo = res
+            localStorage.setItem('accountInfo', JSON.stringify(res))
+            localStorage.setItem('expiresTime', res.expiresTime) // token过期时间
+            await this.getUserInfos()
+            this.getUserBaseInfos()
+            resolve()
+          }).catch(err => { reject(err) })
+        })
+      },
       // 短信登录
       handleSmsLogin (data) {
         return new Promise((resolve, reject) => {
@@ -49,7 +64,6 @@ export const useUserStore = defineStore('user',
           }).catch(err => { reject(err) })
         })
       },
-
       // 密码登录
       async handlePasswordLogin(data) {
         return new Promise((resolve, reject) => {
@@ -69,7 +83,9 @@ export const useUserStore = defineStore('user',
               this.getUserBaseInfos()
             }
             resolve()
-          }).catch(err => { reject(err) })
+          }).catch(err => {
+            reject(err)
+          })
         })
       },
       // 获取当前登录账户信息
@@ -117,6 +133,10 @@ export const useUserStore = defineStore('user',
         if (type === 1) {
           await logout()
         } else await logoutToken(getToken(1))
+        this.handleClearStorage()
+      },
+      // 清除缓存
+      handleClearStorage () {
         removeToken()
         this.userInfo = {}
         this.baseInfo = {}

+ 1 - 1
src/utils/index.js

@@ -21,7 +21,7 @@ export const checkIsImage = (url) => {
   var link = new URL(url)
   var path = link.pathname
   var extension = path.split('.').pop().toLowerCase()
-  var imageExtensions = ['jpg', 'jpeg', 'gif', 'png']
+  var imageExtensions = ['jpg', 'jpeg', 'gif', 'png', 'jfif']
   var videoExtensions = ['mp4', 'wmv', 'avi', 'mov']
 
   // 图片

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

@@ -52,6 +52,7 @@ import { useUserStore } from '@/store/user'
 import { useRouter } from 'vue-router'
 import { useI18n } from '@/hooks/web/useI18n'
 import Snackbar from '@/plugins/snackbar'
+import Confirm from '@/plugins/confirm'
 defineOptions({ name: 'login-index' })
 
 const { t } = useI18n()
@@ -85,8 +86,17 @@ const handleLogin = async () => {
     if (params.isEnterprise) return // 企业邮箱登录
     Snackbar.success(t('login.loginSuccess'))
     router.push({ path: '/recruitHome' })
-  }
-  finally {
+
+  } catch (err) {
+    console.log(err, 'login-catch', passRef.value.loginData)
+    const text = err.code === 1100016002 ? '您的手机号还未注册过' : '您的邮箱还未注册过'
+    Confirm('系统提示',  `${text},去注册?`, {
+      cancelCallback: true
+    }).then(() => {
+      localStorage.setItem('loginAccount', tab.value === 1 ? phoneRef.value.loginData.phone : passRef.value.loginData.phone)
+      router.push(err.code === 1100016002 ? '/register/person?type=noLoginToRegister' : '/register/company?type=noLoginToRegister')
+    })
+  } finally {
     loginLoading.value = false
   }
 }

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

@@ -72,8 +72,9 @@ const loginLoading = ref(false)
 // 图片预览
 const showPreview = ref(false)
 const current = ref(0)
+const email = localStorage.getItem('loginAccount') || ''
 
-// 组件挂载后添加事件监听器  
+// 组件挂载后添加事件监听器
 const isMobile = ref(false)
 onMounted(() => {
   const userAgent = navigator.userAgent
@@ -132,7 +133,7 @@ const formItems = ref({
     {
       type: 'text',
       key: 'email',
-      value: '',
+      value: email ? email : '',
       label: '联系邮箱(可用于企业招聘登录) *',
       rules: [
         value => {

+ 1 - 1
src/views/recruit/personal/PersonalCenter/jobFeedback/components/companyCollection.vue

@@ -9,7 +9,7 @@
         @handleChange="handleChangePage"
       ></CtPagination>
     </div>
-    <Empty v-else></Empty>
+    <Empty v-else :elevation="false"></Empty>
   </div>
 </template>
 

+ 1 - 1
src/views/recruit/personal/PersonalCenter/jobFeedback/components/delivery.vue

@@ -9,7 +9,7 @@
         @handleChange="handleChangePage"
       ></CtPagination>
     </div>
-    <Empty v-else></Empty>
+    <Empty v-else :elevation="false"></Empty>
   </div>
 </template>
 

+ 1 - 1
src/views/recruit/personal/PersonalCenter/jobFeedback/components/interview/index.vue

@@ -14,7 +14,7 @@
           @handleChange="handleChangePage"
         ></CtPagination>
       </div>
-      <Empty v-else class="mt-3"></Empty>
+      <Empty v-else class="mt-3" :elevation="false"></Empty>
   </div>
 </template>
 

+ 1 - 1
src/views/recruit/personal/PersonalCenter/jobFeedback/components/positionCollection.vue

@@ -9,7 +9,7 @@
         @handleChange="handleChangePage"
       ></CtPagination>
     </div>
-    <Empty v-else></Empty>
+    <Empty v-else :elevation="false"></Empty>
   </div>
 </template>
 

+ 1 - 1
src/views/recruit/personal/PersonalCenter/jobFeedback/components/seenMe.vue

@@ -33,7 +33,7 @@
         @handleChange="handleChangePage"
       ></CtPagination>
     </div>
-    <Empty v-else></Empty>
+    <Empty v-else :elevation="false"></Empty>
   </div>
 </template>
 

+ 4 - 2
src/views/recruit/personal/PersonalCenter/resume/online/index.vue

@@ -103,15 +103,17 @@ const complete = (val) => {
   overflow: auto;
 }
 ::-webkit-scrollbar {
-  width: 0;
-  height: 0;
+  width: 8px;
+  height: 10px;
 }
 ::-webkit-scrollbar-thumb, .temporaryAdd ::-webkit-scrollbar-thumb, .details_edit ::-webkit-scrollbar-thumb {
   // 滚动条-颜色
   background: #c3c3c379;
+  border-radius: 10px;
 }
 ::-webkit-scrollbar-track, .temporaryAdd ::-webkit-scrollbar-track, .details_edit ::-webkit-scrollbar-track {
   // 滚动条-底色
   background: #e5e5e58f;
+  border-radius: 10px;
 }
 </style>

+ 5 - 3
src/views/register/person.vue

@@ -2,8 +2,8 @@
   <div class="box">
     <div class="content pa-10">
       <div class="content-title text-center mt-4">请输入手机号码进行注册认证</div>
-      <phoneFrom class="mt-10" ref="phoneRef" @handleEnter="handleRegister"></phoneFrom>
-      <div v-if="!isCompany" class="font-size-14 tips color-primary cursor-pointer text-end" @click="router.push('/login')">已有账号?去登录</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>
       <div class="login-tips mt-3" v-if="!isCompany">
         点击注册即代表您同意
@@ -21,6 +21,7 @@ import { useRouter } from 'vue-router'
 import phoneFrom from '@/components/VerificationCode'
 import { useUserStore } from '@/store/user'
 import Snackbar from '@/plugins/snackbar'
+import { checkEmail } from '@/utils/validate'
 
 const emit = defineEmits(['success'])
 const props = defineProps({
@@ -34,6 +35,7 @@ const router = useRouter()
 const phoneRef = ref()
 const loading = ref(false)
 const userStore = useUserStore()
+const phone = localStorage.getItem('loginAccount') && !checkEmail(localStorage.getItem('loginAccount')) ? localStorage.getItem('loginAccount') : ''
 
 // 注册
 const handleRegister = async () => {
@@ -41,7 +43,7 @@ const handleRegister = async () => {
   if (!valid) return
   loading.value = true
   try {
-    await userStore.handleSmsLogin({ ...phoneRef.value.loginData })
+    await userStore.handleUserRegister({ ...phoneRef.value.loginData })
     Snackbar.success(props.isCompany ? '手机号验证成功' : '注册成功')
     if (!props.isCompany) router.push({ path: '/recruitHome' })
     else emit('success')