gjj
2023-02-07 de2588137749cc83dc0df2377a6c2e38074be91a
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
116
117
118
119
"use strict";
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;
 
var _axios = _interopRequireDefault(require("axios"));
 
var _elementUi = require("element-ui");
 
var _auth = require("@/utils/auth");
 
var _lockr = _interopRequireDefault(require("lockr"));
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
 
var showLoginMessageBox = false;
_axios["default"].defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'; // 创建axios实例
 
console.log(process.env);
 
var service = _axios["default"].create({
  baseURL: process.env.BASE_API,
  // api 的 base_url
  // baseURL: 'http://192.168.0.107:8080/api',
  timeout: 15000 // 请求超时时间
 
}); // request拦截器
 
 
service.interceptors.request.use(function (config) {
  var flag = config.headers['Content-Type'] && config.headers['Content-Type'].indexOf('application/json') !== -1;
 
  if (!flag) {
    var mult = config.headers['Content-Type'] && config.headers['Content-Type'].indexOf('multipart/form-data') !== -1;
 
    if (mult) {
      config.data = config.data;
    } else {
      // config.data = qs.stringify(config.data)
      config.data = config.data;
    }
  }
 
  config.headers['token'] = _lockr["default"].get('Admin-Token');
  var url = config.url;
  url += url.indexOf('?') >= 0 ? '&' : '?';
  url += 'r=' + (Math.random() * 100000 + 1);
  config.url = url;
  return config;
}, function (error) {
  console.log(error); // Do something with request error
 
  return Promise.reject(error);
}); // response 拦截器
 
service.interceptors.response.use(function (response) {
  /**
   * code为非200是抛错
   */
  var res = response.data;
 
  if (response.status === 200 && response.config.responseType === 'blob') {
    // 文件类型特殊处理
    return response;
  } else if (res && !res.ErrorCode) {
    return response;
  } else if (res.ErrorCode !== 0) {
    // 302登录已失效
    if (res.ErrorCode === 302 || res.ErrorCode === 401) {
      if (!showLoginMessageBox) {
        showLoginMessageBox = true;
 
        _elementUi.MessageBox.confirm('你已被登出,请重新登录', '确定登出', {
          showCancelButton: false,
          showClose: false,
          confirmButtonText: '重新登录',
          type: 'warning',
          callback: function callback(action) {
            showLoginMessageBox = false;
 
            if (action === 'confirm') {
              (0, _auth.removeAuth)().then(function () {
                var rout = window.location.href;
                var a = rout.lastIndexOf('/');
                rout = rout.substring(0, a);
                window.location.href = rout + '/login'; // location.reload() // 为了重新实例化vue-router对象 避免bug
              })["catch"](function () {
                location.reload();
              });
            }
          }
        });
      }
    } else if (res.ErrorCode === 200) {
      return response;
    } else {
      if (res.Message) {
        (0, _elementUi.Message)({
          message: res.Message,
          type: 'error'
        });
      }
    }
 
    return Promise.reject(res);
  } else {
    return res;
  }
}, function (error) {
  (0, _elementUi.Message)({
    message: '网络请求失败,请稍候再试',
    type: 'error'
  });
  return Promise.reject(error);
});
var _default = service;
exports["default"] = _default;