lifanagju_citu 8 месяцев назад
Родитель
Сommit
09ade3dd42
3 измененных файлов с 33 добавлено и 26 удалено
  1. 23 14
      src/store/user.js
  2. 9 11
      src/utils/auth.js
  3. 1 1
      src/views/login/components/passwordPage.vue

+ 23 - 14
src/store/user.js

@@ -55,13 +55,17 @@ export const useUserStore = defineStore('user',
         return new Promise((resolve, reject) => {
           data.account = data.phone
           passwordLogin(data).then(res => {
-            setToken(res.accessToken)
-            setRefreshToken(res.refreshToken)
-            this.accountInfo = res
-            localStorage.setItem('accountInfo', JSON.stringify(res))
-            localStorage.setItem('expiresTime', res.expiresTime) // token过期时间
-            this.getUserInfos()
-            this.getUserBaseInfos()
+            if (data.isEnterprise) { // 企业邮箱登录
+              this.changeRole('emailLogin', res)
+            } else {
+              setToken(res.accessToken)
+              setRefreshToken(res.refreshToken)
+              this.accountInfo = res
+              localStorage.setItem('accountInfo', JSON.stringify(res))
+              localStorage.setItem('expiresTime', res.expiresTime) // token过期时间
+              this.getUserInfos()
+              this.getUserBaseInfos()
+            }
             resolve()
           }).catch(err => { reject(err) })
         })
@@ -118,13 +122,17 @@ export const useUserStore = defineStore('user',
         localStorage.clear()
       },
       // 切换为招聘者
-      async changeRole () {
-        // 先退出个人登录
-        // await logout()
-        const enterpriseId = localStorage.getItem('enterpriseId') || ''
-        if (!enterpriseId) return Snackbar.error('切换失败,请重新登录!')
-
-        const data = await switchLoginOfEnterprise({ enterpriseId })
+      async changeRole (type, res) {
+        let data
+        if (type === 'emailLogin') {
+          data = res
+        } else {
+          // 先退出个人登录
+          // await logout()
+          const enterpriseId = localStorage.getItem('enterpriseId') || ''
+          if (!enterpriseId) return Snackbar.error('切换失败,请重新登录!')
+          data = await switchLoginOfEnterprise({ enterpriseId })
+        }
         setToken(data.accessToken, 1) // 个人切换企业->存放企业token
         setRefreshToken(data.refreshToken, 1) // 个人切换企业->存放企业refreshToken
         localStorage.setItem('accountInfo', JSON.stringify(data))
@@ -134,6 +142,7 @@ export const useUserStore = defineStore('user',
         updateEventList(false)
         Snackbar.success('切换成功')
         await this.checkEnterpriseBaseInfo() // 校验企业必填信息
+        console.log('1', 11111)
         window.location.href = '/enterprise'
       },
       // 获取当前登录的企业用户信息

+ 9 - 11
src/utils/auth.js

@@ -12,23 +12,21 @@ const isEnterprise = () => {
   const testUsePath = localStorage.getItem('routerTest')
   if (currentRoute?.path === '/' && (testUsePath?.includes(substr) || testUsePath?.includes('/enterpriseVerification'))) bool = true
   // console.log('currentRoute', currentRoute.path)
-  // console.log('isEnterprise-bool', bool)
+  // console.log('isEnterpriseBool', bool)
   return bool
 }
 
 export const getIsEnterprise = () => { return isEnterprise() }
 
 // 获取token
-export const getToken = (index) => { // index=1: 使用招聘token; index=2: 使用求职token
+export const getToken = (index = 2) => { // index=1: 使用招聘token; index=2: 使用求职token
   const arr = ['ENT_ACCESS_TOKEN', 'PER_ACCESS_TOKEN']
-  let type = index ? arr[index-1] : isEnterprise() ? arr[0] : arr[1]
-  //
-  return localStorage.getItem(type)
+  return localStorage.getItem(arr[index-1])
 }
 
 // 设置token
-export const setToken = (token, switchToEnt = 0) => { // 个人切换企业switchToEnt = 1
-  return localStorage.setItem((switchToEnt || isEnterprise() ? 'ENT_ACCESS_TOKEN' : 'PER_ACCESS_TOKEN'), token)
+export const setToken = (token, index = 2) => { // index=1: 招聘token; index=2: 求职token
+  return localStorage.setItem((index === 1 ? 'ENT_ACCESS_TOKEN' : 'PER_ACCESS_TOKEN'), token)
 }
 
 // 清除token
@@ -39,13 +37,13 @@ export const removeToken = () => {
   localStorage.removeItem('PER_REFRESH_TOKEN')
 }
 // 获取刷新token
-export const getRefreshToken = () => {
-  return localStorage.getItem(isEnterprise() ? 'ENT_REFRESH_TOKEN' : 'PER_REFRESH_TOKEN')
+export const getRefreshToken = (index) => {
+  return localStorage.getItem(index === 1 ? 'ENT_REFRESH_TOKEN' : 'PER_REFRESH_TOKEN')
 }
 
 // 设置刷新token
-export const setRefreshToken = (refreshToken, switchToEnt = 0) => { // 个人切换企业switchToEnt = 1
-  return localStorage.setItem((switchToEnt || isEnterprise() ? 'ENT_REFRESH_TOKEN' : 'PER_REFRESH_TOKEN'), refreshToken)
+export const setRefreshToken = (refreshToken, index = 2) => { // index=1: 招聘token; index=2: 求职token
+  return localStorage.setItem((index === 1 ? 'ENT_REFRESH_TOKEN' : 'PER_REFRESH_TOKEN'), refreshToken)
 }
 
 // 租户ID

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

@@ -1,6 +1,6 @@
 <template>
   <v-form ref="passwordForm" @submit.prevent>
-    <v-text-field v-model="loginData.phone" counter="11" :disabled="props.phoneDisabled" placeholder="请输入手机号码或邮箱" color="primary" 
+    <v-text-field v-model="loginData.phone" :disabled="props.phoneDisabled" placeholder="请输入手机号码(企业请输入邮箱登录)" color="primary" 
     variant="outlined" density="compact" :rules="phoneRules" validate-on="input" prepend-inner-icon="mdi-cellphone" >
       <!-- <template v-slot:prepend-inner>
         <span class="d-flex">