odc.xiaohui
2023-12-07 ea9ff9a1a021d0db1623bb0015fa607b968c6568
src/utils/request.ts
@@ -11,6 +11,7 @@
import { encryptBase64, encryptWithAes, generateAesKey } from '@/utils/crypto';
import { encrypt } from '@/utils/jsencrypt';
import router from "@/router";
import { ElLoading, ElMessage, ElNotification } from "element-plus";
let downloadLoadingInstance: LoadingInstance;
// 是否显示重新登录
@@ -65,7 +66,7 @@
        const s_url = sessionObj.url; // 请求地址
        const s_data = sessionObj.data; // 请求数据
        const s_time = sessionObj.time; // 请求时间
        const interval = 500; // 间隔时间(ms),小于此时间视为重复提交
        const interval = 600000; // 间隔时间(ms),小于此时间视为重复提交
        if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
          const message = '数据正在处理,请勿重复提交';
          console.warn(`[${s_url}]: ` + message);
@@ -94,9 +95,10 @@
  }
);
// 响应拦截器
service.interceptors.response.use(
  (res: AxiosResponse) => {
  async (res: AxiosResponse) => {
    // 未设置状态码则默认成功状态
    const code = res.data.code || HttpStatus.SUCCESS;
    // 获取错误信息
@@ -106,38 +108,25 @@
      return res.data;
    }
    if (code === 401) {
      console.log(code,'code==============');
      router.push({ path: '/login' });
      // prettier-ignore
      // if (!isRelogin.show) {
      //   // isRelogin.show = true;
      //   isRelogin.show = true;
      //   ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
      //     confirmButtonText: '重新登录',
      //     cancelButtonText: '取消',
      //     type: 'warning'
      //   }).then(() => {
      //     isRelogin.show = false;
      //     useUserStore().logout().then(() => {
      //         location.href = import.meta.env.VITE_APP_CONTEXT_PATH + 'index';
      //       });
      //   }).catch(() => {
      //     isRelogin.show = false;
      //   });
      // }
      return Promise.reject('无效的会话,或者会话已过期,请重新登录。');
      const userStore = useUserStore();
      await userStore.logout()
      console.log(code, 'code==============');
      await router.push({ path: '/login' });
      return
    } else if (code === HttpStatus.SERVER_ERROR) {
      console.log(msg);
      ElMessage({ message: msg, type: 'error' });
      return Promise.reject(new Error(msg));
      return Promise.reject(new Error('系统内部错误'));
    } else if (code === HttpStatus.WARN) {
      ElMessage({ message: msg, type: 'warning' });
      return Promise.reject(new Error(msg));
      return Promise.reject(new Error('系统警告消息'));
    } else if (code !== HttpStatus.SUCCESS) {
      ElNotification.error({ title: msg });
      return Promise.reject('error');
    } else {
      return Promise.resolve(res.data);
    }
  },
  (error: any) => {