riku
2025-03-25 642d31285d7aff59415a5eb37f87a79f41d308a8
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
import axios from 'axios';
import md5 from 'md5';
import { ElMessage } from 'element-plus';
 
// let IP = 'http://101.230.224.80:8082/';
let IP = 'http://47.100.191.150:8080/jingan/';
 
const $jingan = axios.create({
  baseURL: IP,
  timeout: 20000
});
 
const TOKEN = 'e6dc8bb9e1ff0ce973fb92b4af2e4c3f';
// 统一时间戳请求头
const headTimeStamp = function () {
  const date = new Date();
  const nowS = parseInt(date.getTime() / 1000);
  const now = nowS - 200;
  // const now = 1722234092;
  const key = `${now}${TOKEN}`;
  const sign = md5(key);
  return [
    { key: 'JA-TIMESTAMP', value: now },
    { key: 'JA-SIGN', value: sign },
    { key: 'JA-TOKEN', value: TOKEN }
  ];
};
 
//添加拦截器
[$jingan].forEach((i) => {
  // 添加请求拦截器
  i.interceptors.request.use(
    function (config) {
      // 在发送请求之前做些什么
      console.log('==>请求开始');
      console.log(`${config.baseURL}${config.url}`);
      if (config.data) {
        console.log('==>请求数据', config.data);
      }
      const heads = headTimeStamp();
      heads.forEach((h) => {
        config.headers[h.key] = h.value;
      });
      return config;
    },
    function (error) {
      // 对请求错误做些什么
      console.log('==>请求开始');
      console.log(error);
      ElMessage({
        message: error,
        type: 'error'
      });
      return Promise.reject(error);
    }
  );
 
  // 添加响应拦截器
  i.interceptors.response.use(
    function (response) {
      // 2xx 范围内的状态码都会触发该函数。
      // 对响应数据做点什么
      console.log(response);
      console.log('==>请求结束');
      if (response.status == 200) {
        if (response.data.code != undefined && response.data.code != null) {
          if (response.data.code == 20000) {
            return response;
          } else {
            ElMessage({
              message: response.data.message,
              type: 'error'
            });
            return Promise.reject(response.data.message);
          }
        } else {
          return response;
        }
      } else {
        return Promise.reject(response);
      }
    },
    function (error) {
      // 超出 2xx 范围的状态码都会触发该函数。
      // 对响应错误做点什么
      console.log(error);
      console.log('==>请求结束');
      ElMessage({
        message: error,
        type: 'error'
      });
      return Promise.reject(error);
    }
  );
});
 
export { $jingan };