吉安感知网项目-前端
罗广辉
11 hours ago ad57696cef86a678512e93207bc5538d30bc40ee
applications/task-work-order/src/axiosXT.js
@@ -1,7 +1,10 @@
import axios from 'axios'
import store from '@/store/'
import { serialize } from '@/utils/util'
import { serialize, logOutFun } from '@/utils/util'
import { getToken, removeToken, removeRefreshToken } from '@/utils/auth'
import { ElMessage } from 'element-plus'
let isErrorShown = false
let _retry = false
// 全局未授权错误提示状态,只提示一次
const { VITE_APP_API_XT, VITE_APP_ENV, VITE_APP_URL_XT } = import.meta.env
@@ -12,15 +15,6 @@
   withCredentials: false,
})
function logOutFun () {
   store.dispatch('FedLogOut').then(() => {
      const { VITE_APP_PARENT_SYSTEM, VITE_APP_ENV } = import.meta.env
      const isDev = VITE_APP_ENV === 'development'
      isDev
         ? router.push({ path: '/login' })
         : window.location.replace(`${VITE_APP_PARENT_SYSTEM}/#/login`)
   })
}
//http request拦截
serviceXT.interceptors.request.use(
@@ -53,20 +47,21 @@
      const message = res?.data?.msg || res?.data?.message || '系统错误'
      // 如果是401并且已经重试过,直接跳转到登录页面
      if ((status === 500 || status === 401) && !_retry) {
      if ((status === 401) && !_retry) {
         _retry = true
         // 首次报错时提示
         if (!isErrorShown) {
            isErrorShown = true
            ElMessage({
               message: '用户令牌过期,请重新登录',
               type: 'error',
            })
            ElMessage.error('用户令牌过期,请重新登录')
         }
         // 清除token信息
         removeToken()
         removeRefreshToken()
         // 重定向到登录页
         logOutFun()
         logOutFun().then(() => {
            isErrorShown = false
            _retry = false
         })
         return Promise.reject(new Error(message))
      }