基于廊坊系统为基础,国防科技大学系统演示Demo
surprise
2024-04-28 c310c155e3e91e6b285b3fb3519a3ef7c6690d66
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/*
 * @Description:
 * @Author: 王旭
 * @Date: 2022-03-03 15:10:54
 * @LastEditTime: 2022-03-08 17:40:02
 * @LastEditors: 王旭
 */
import axios from "axios";
import { Message } from "element-ui";
import store from "@/store";
import { getToken } from "@/utils/auth";
import router from "../router"
// create an axios instance
const service = axios.create({
  baseURL: BASE_URL, // api的base_url
  timeout: -1, // 请求超时时间
  headers: {
    "content-type": "application/json;charset=UTF-8",
  },
  // withCredentials: true,
});
 
// request interceptor
service.interceptors.request.use(
  (config) => {
    // 请求携带token
    let token = getToken();
    if (token) {
      config.headers["token"] = token;
    }
    //加载loading
    store.commit("UPDATE_API_COUNT", "add");
    return config;
  },
  (error) => {
    //减去loading
    store.commit("UPDATE_API_COUNT", "sub");
    console.log(error); // for debug
    return Promise.reject(error);
  }
); service.interceptors.response.use(
  (response) => {
    // if (window.localStorage.getItem("LFToken") != null) {
    //   var expire = JSON.parse(window.localStorage.getItem("LFToken")).expire;
    //   var timeire = new Date().getTime();
    //   console.log(timeire, expire)
    //   if (timeire >= expire) {
 
    //     router.push('/login')
    //     localStorage.removeItem("LFToken");
    //   }
    // }
 
 
    store.commit("UPDATE_LISTEN_TIME", response.data.time);
 
    store.commit("UPDATE_API_COUNT", "sub");
    //console.log(response) 
    //返回因有ResponeType===Blob ,分开处理
    if (Object.prototype.toString.call(response.data).indexOf("Blob") > -1) {
      let reader = new FileReader()
      reader.onload = function (e) {
        {
          try {
            let str = this.result.toString();
            let res = JSON.parse(str);
            if (res.code != null) {
              if (res.code !== 200) {
                Message.error(res.msg);
              }
            }
 
          } catch { }
        }
      }
      reader.readAsText(response.data, "utf-8");
    } else {
      if (response.data.code !== 200) {
        // Message.error(response.data.msg);
      }
    }// 报错提示
    return response.data;
  },
  (error) => {
    store.commit("UPDATE_API_COUNT", "sub");
    const { status, data } = error.response;
    //返回因有ResponeType===Blob ,分开处理
    if (Object.prototype.toString.call(data).indexOf("Blob") > -1) {
      let reader = new FileReader()
      reader.onload = function (e) {
        {
          let str = this.result.toString();
          let res = JSON.parse(str);
 
          Message({
            message: res.message,
            type: "error",
            duration: 5 * 1000,
          });
        }
      }
      reader.readAsText(data, "utf-8");
    } else {
      Message({
        message: data.message,
        type: "error",
        duration: 5 * 1000,
      });
    }
    return Promise.reject(error);
  }
);
 
 
export default service;