Explorar o código

getToken传参:index=1: 使用招聘token; index=2: 使用求职token

lifanagju_citu hai 8 meses
pai
achega
2b647bdfac
Modificáronse 5 ficheiros con 36 adicións e 24 borrados
  1. 1 0
      src/api/common/index.js
  2. 5 4
      src/config/axios/service.js
  3. 10 1
      src/permission.js
  4. 17 15
      src/store/user.js
  5. 3 4
      src/utils/auth.js

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

@@ -27,6 +27,7 @@ export const smsLogin = async (data) => {
 // 切换登录
 export const switchLoginOfEnterprise = async (data) => {
   return await request.post({
+    tokenIndex: 2, // 使用求职token
     url: '/app-api/menduner/system/recruit/enterprise/auth/switch-login',
     data
   })

+ 5 - 4
src/config/axios/service.js

@@ -65,8 +65,8 @@ service.interceptors.request.use(
       }
     })
     
-    if (getToken() && !isToken) {
-      (config).headers.Authorization = 'Bearer ' + getToken() // 让每个请求携带自定义token
+    if (getToken(config.tokenIndex) && !isToken) {
+      (config).headers.Authorization = 'Bearer ' + getToken(config.tokenIndex) // 让每个请求携带自定义token
     }
     // 设置租户
     if (tenantEnable && tenantEnable === 'true') {
@@ -118,6 +118,7 @@ service.interceptors.response.use(
     const { t } = useI18n()
     let { data } = response
     const config = response.config
+    
     if (!data) {
       // 返回“[HTTP]请求没有返回值”;
       throw new Error()
@@ -155,7 +156,7 @@ service.interceptors.response.use(
           setToken(data.accessToken)
           setRefreshToken(data.refreshToken)
 
-          config.headers.Authorization = 'Bearer ' + getToken()
+          config.headers.Authorization = 'Bearer ' + getToken(config.tokenIndex)
           requestList.forEach((cb) => {
             cb()
           })
@@ -177,7 +178,7 @@ service.interceptors.response.use(
         // 添加到队列,等待刷新获取到新的令牌
         return new Promise((resolve) => {
           requestList.push(() => {
-            config.headers.Authorization = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
+            config.headers.Authorization = 'Bearer ' + getToken(config.tokenIndex) // 让每个请求携带自定义token 请根据实际情况自行修改
             resolve(service(config))
           })
         })

+ 10 - 1
src/permission.js

@@ -4,6 +4,7 @@ import { useTitle } from '@/hooks/web/useTitle'
 import { getToken } from '@/utils/auth'
 import { useDictStore } from '@/store/dict'
 import { useUserStore } from '@/store/user'
+import Confirm from '@/plugins/confirm'
 
 const { start, done } = useNProgress()
 // loginType:1.enterprise: 企业路由
@@ -17,9 +18,17 @@ router.beforeEach(async (to, from, next) => {
   // loadStart()
   if (to.path === '/enterpriseVerification') {
     // 校验企业必填信息
-    useUserStore().checkEnterpriseBaseInfo()
+    // useUserStore().checkEnterpriseBaseInfo()
+    useUserStore().changeRole()
     next()
   } else if (getToken()) {
+    if (localStorage.getItem('checkEnterpriseBaseInfoFalseHref')) {
+      const href = localStorage.getItem('checkEnterpriseBaseInfoFalseHref')
+      localStorage.setItem('checkEnterpriseBaseInfoFalseHref', '')
+      Confirm('系统提示', '企业信息设置未完善,是否前往完善?').then(() => {
+        window.location.href = href
+      })
+    }
     if (to.path === '/login') {
       next({ path: '/recruitHome' })
     } else {

+ 17 - 15
src/store/user.js

@@ -18,7 +18,7 @@ import Snackbar from '@/plugins/snackbar'
 import { timesTampChange } from '@/utils/date'
 import { updateEventList } from '@/utils/eventList'
 import { getBaseInfoDictOfName } from '@/utils/getText'
-import Confirm from '@/plugins/confirm'
+// import Confirm from '@/plugins/confirm'
 
 // import { useIMStore } from './im'
 
@@ -136,8 +136,9 @@ export const useUserStore = defineStore('user',
         await this.getEnterpriseInfo()
         await this.getEnterpriseUserAccountInfo()
         updateEventList(false)
-        window.location.href = '/enterprise'
         Snackbar.success('切换成功')
+        await this.checkEnterpriseBaseInfo()
+        window.location.href = '/enterprise'
       },
       // 获取当前登录的企业用户信息
       async getEnterpriseInfo () {
@@ -162,20 +163,21 @@ export const useUserStore = defineStore('user',
 
       // 获取《企业基本信息》
       async checkEnterpriseBaseInfo () {
-        await this.changeRole()
-        const data = await getEnterpriseBaseInfo()
-        // 检验必填信息
-        const keyArr = ['industryId', 'financingStatus', 'scale', 'introduce', 'logoUrl'] // 必填信息列表
-        let href = '/recruit/enterprise/informationManagement/informationSettings'
-        const valid = Object.keys(data).length && keyArr.every(e => {
-          const bool = data[e] && data[e] !== 0
-          if (!bool && e === 'logoUrl') href = '/recruit/enterprise/informationManagement/informationSettings?tabKey=2'
-          return bool
-        })
-        if (!valid) {
-          Confirm('系统提示', '企业信息设置未完善,是否前往完善?').then(() => {
-            window.location.href = href
+        try {
+          const data = await getEnterpriseBaseInfo()
+          // 检验必填信息
+          const keyArr = ['industryId', 'financingStatus', 'scale', 'introduce', 'logoUrl'] // 必填信息列表
+          let href = '/recruit/enterprise/informationManagement/informationSettings'
+          const valid = Object.keys(data).length && keyArr.every(e => {
+            const bool = data[e] && data[e] !== 0
+            if (!bool && e === 'logoUrl') href = '/recruit/enterprise/informationManagement/informationSettings?tabKey=2'
+            return bool
           })
+          if (!valid) {
+            localStorage.setItem('checkEnterpriseBaseInfoFalseHref', href)
+          }
+        } catch (error) {
+          // console.log(error)
         }
         // return valid
       },

+ 3 - 4
src/utils/auth.js

@@ -10,17 +10,16 @@ const isEnterprise = () => {
 
   // 本地环境保存代码热更新会导致路径缺失问题
   const testUsePath = localStorage.getItem('routerTest')
-  if (currentRoute?.path === '/' && testUsePath?.includes(substr)) bool = true
+  if (currentRoute?.path === '/' && (testUsePath?.includes(substr) || testUsePath?.includes('/enterpriseVerification'))) bool = true
   return bool
 }
 
 export const getIsEnterprise = () => { isEnterprise() }
 
 // 获取token
-export const getToken = (ENT) => {
+export const getToken = (index) => { // index=1: 使用招聘token; index=2: 使用求职token
   const arr = ['ENT_ACCESS_TOKEN', 'PER_ACCESS_TOKEN']
-  let type = (ENT || isEnterprise()) ? arr[0] : arr[1]
-  console.log('getToken', type)
+  let type = index ? arr[index-1] : isEnterprise() ? arr[0] : arr[1]
   //
   return localStorage.getItem(type)
 }