zhouwenxuan
2023-12-05 93eb6650f02a734e91584c7cacad6aea8fcf6a31
src/utils/request.js
@@ -6,7 +6,7 @@
import cache from '@/plugins/cache'
import { saveAs } from 'file-saver'
import useUserStore from '@/store/modules/user'
import router from '../router'
let downloadLoadingInstance;
// 是否显示重新登录
export let isRelogin = { show: false };
@@ -27,7 +27,7 @@
  // 是否需要防止数据重复提交
  const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
  if (getToken() && !isToken) {
    config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
    config.headers['Authorization'] =  getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
  }
  // get请求映射params参数
  if (config.method === 'get' && config.params) {
@@ -82,18 +82,25 @@
      return res.data
    }
    if (code === 401) {
      // if (!isRelogin.show) {
        isRelogin.show = true;
        ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
          isRelogin.show = false;
          useUserStore().logOut().then(() => {
            location.href = '/index';
          })
      }).catch(() => {
        isRelogin.show = false
      });
    // }
      // return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
      if(location.href.indexOf('homePage') == -1 ){
        if (!isRelogin.show) {
          isRelogin.show = true;
          ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
            isRelogin.show = false;
            useUserStore().logOut().then(() => {
              // router.push('/homePage')
              location.href = '/homePage';
            })
          }).catch(() => {
            isRelogin.show = false
          });
        }
      }else{
        // ElMessage({ message: res.data.message, type: 'error' })
        console.log(res.data.message)
      }
      return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
    } else if (code === 500) {
      ElMessage({ message: msg, type: 'error' })
      return Promise.reject(new Error(msg))