Blame view

src/api/axios.js 3.01 KB
8f573b82   阿宝   组卷接口联调
1
  import axios from "axios";
8f573b82   阿宝   组卷接口联调
2
3
4
5
  import NProgress from "nprogress";
  import { Message } from "element-ui";
  import router from "@/router/index";
  import store from "@/store";
13b58a42   梁保满   备题组卷部分前端页面基本完成
6
  import conf from "../config/index"; // 路径配置
0bb1a617   梁保满   兼容长水登录错误信息隐藏
7
8
  import { getURLParams } from "@/utils";
  
d06cf631   梁保满   兼容长水登录错误
9
  let code = getURLParams("code") || getURLParams("dockkey") || localStorage.getItem("csCode") || "";
0bb1a617   梁保满   兼容长水登录错误信息隐藏
10
11
  
  
c1b532ad   梁保满   权限配置,路由基础设置
12
  // axios默认配置
b769660c   梁保满   备课组题细节调整,随堂问列表页面开发完成
13
14
15
16
17
  const service = axios.create({
    baseURL: conf.baseURL, // api的base_url
    timeout: 600000000000000, // 请求超时时间
    withCredentials: true,
  });
c1b532ad   梁保满   权限配置,路由基础设置
18
  // http request 拦截器
8f573b82   阿宝   组卷接口联调
19
20
21
  service.interceptors.request.use(
    (config) => {
      NProgress.start();
255e2506   梁保满   飞书bug及优化
22
      // config.headers["Content-Type"] = "application/json;charset=UTF-8";
8f573b82   阿宝   组卷接口联调
23
24
25
      const source = axios.CancelToken.source();
      store.commit("setTokenSources", [source.token, source.cancel]);
      config.cancelToken = source.token;
049db2b2   梁保满   接口联调
26
      const role = store.getters.info?.showRole
7812e986   梁保满   班主任查看报表添加额外信息
27
      if (role == "ROLE_BANZHUREN") {
049db2b2   梁保满   接口联调
28
        const classes = store.getters?.classes
7812e986   梁保满   班主任查看报表添加额外信息
29
30
31
        config.manager = 1
        config.classes = classes
      }
8f573b82   阿宝   组卷接口联调
32
33
34
35
36
37
      return config;
    },
    (error) => {
      return Promise.reject(error.response);
    }
  );
c1b532ad   梁保满   权限配置,路由基础设置
38
39
  
  // http response 拦截器
b769660c   梁保满   备课组题细节调整,随堂问列表页面开发完成
40
  service.interceptors.response.use(
8f573b82   阿宝   组卷接口联调
41
    (response) => {
b769660c   梁保满   备课组题细节调整,随堂问列表页面开发完成
42
      const res = response.data;
8f573b82   阿宝   组卷接口联调
43
      NProgress.done();
b769660c   梁保满   备课组题细节调整,随堂问列表页面开发完成
44
      if (response.config.cancelToken) {
8f573b82   阿宝   组卷接口联调
45
        store.commit("delTokenSources", response.config.cancelToken);
65f592b6   梁保满   答题卡列表页
46
      }
b769660c   梁保满   备课组题细节调整,随堂问列表页面开发完成
47
      if (response.status == 200) {
8f573b82   阿宝   组卷接口联调
48
        if (res.status == 999) {
bbc51d4b   梁保满   组卷添加修改分数,打开新开页面跳转...
49
          // if (!location.href.includes("localhost")) {
0bb1a617   梁保满   兼容长水登录错误信息隐藏
50
51
52
53
54
55
56
57
58
59
          if (res.data) {
            window.location.href = res.data;
          } else {
            router.push({ path: "/login" });
            if (res.info.includes("不存在")) {
              Message({
                info: res.info,
                type: "error",
                duration: 3 * 1000,
              });
13b58a42   梁保满   备题组卷部分前端页面基本完成
60
            }
0bb1a617   梁保满   兼容长水登录错误信息隐藏
61
          }
bbc51d4b   梁保满   组卷添加修改分数,打开新开页面跳转...
62
          // }
d06cf631   梁保满   兼容长水登录错误
63
        }
c1b532ad   梁保满   权限配置,路由基础设置
64
      }
8f573b82   阿宝   组卷接口联调
65
      return Promise.resolve(res);
c1b532ad   梁保满   权限配置,路由基础设置
66
    },
8f573b82   阿宝   组卷接口联调
67
    (error) => {
b21d90ef   梁保满   长水登录
68
      const { data, status } = error.response;
13b58a42   梁保满   备题组卷部分前端页面基本完成
69
70
71
      if (error.response == undefined) {
        return Promise.reject(error);
      }
b21d90ef   梁保满   长水登录
72
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
73
      if (status === 403 || status === 401) {
b21d90ef   梁保满   长水登录
74
        if (data.status === 999) {
6d7bd862   梁保满   飞书bug
75
          if (data.data) {
255e2506   梁保满   飞书bug及优化
76
            window.location.href = data.data;
6d7bd862   梁保满   飞书bug
77
78
79
80
81
82
83
          } else {
            Message({
              message: data.info,
              type: "error",
              duration: 3 * 1000,
            });
            router.push({ path: "/login" });
b21d90ef   梁保满   长水登录
84
          }
0bb1a617   梁保满   兼容长水登录错误信息隐藏
85
86
87
88
89
          if (code) {
            return
          } else {
            return Promise.resolve(data);
          }
b21d90ef   梁保满   长水登录
90
        }
8f573b82   阿宝   组卷接口联调
91
        Message.closeAll();
c1b532ad   梁保满   权限配置,路由基础设置
92
        Message({
8f573b82   阿宝   组卷接口联调
93
94
95
96
          message: data.info || "未登录或登录超时,即将跳转到登录页面",
          type: "error",
          duration: 3 * 1000,
        });
b21d90ef   梁保满   长水登录
97
  
8f573b82   阿宝   组卷接口联调
98
        if (!window.location.href.includes("login")) {
ee6e7628   梁保满   备题组卷借口数据对接调整
99
          router.push({
8f573b82   阿宝   组卷接口联调
100
            path: "/login",
ee6e7628   梁保满   备题组卷借口数据对接调整
101
            query: {
8f573b82   阿宝   组卷接口联调
102
103
104
              url: window.location.href,
            },
          });
b21d90ef   梁保满   长水登录
105
  
ee6e7628   梁保满   备题组卷借口数据对接调整
106
        }
8f573b82   阿宝   组卷接口联调
107
        return;
c1b532ad   梁保满   权限配置,路由基础设置
108
      }
29319cfb   梁保满   设备。教师管理
109
110
111
112
113
114
115
  
      return Promise.resolve(
        {
          status: status,
          info: data.info || error,
        }
      ); // 返回接口返回的错误信息
8f573b82   阿宝   组卷接口联调
116
117
118
    }
  );
  export default service;