liuzhihui 2 lat temu
rodzic
commit
386cb7705d
1 zmienionych plików z 100 dodań i 100 usunięć
  1. 100 100
      CallCenterWeb.UI/RMYY/src/utils/request.js

+ 100 - 100
CallCenterWeb.UI/RMYY/src/utils/request.js

@@ -1,11 +1,11 @@
1
-import axios from "axios";
2
-import qs from "qs"; // 引入axios时同时引入qs即可。
3
-import { Message, MessageBox } from "element-ui";
4
-import store from "../store";
5
-import { getToken } from "@/utils/auth";
1
+import axios from 'axios'
2
+import qs from 'qs' // 引入axios时同时引入qs即可。
3
+import { Message, MessageBox } from 'element-ui'
4
+import store from '../store'
5
+import { getToken } from '@/utils/auth'
6 6
 
7 7
 // 正在进行中的请求列表
8
-const reqList = [];
8
+const reqList = []
9 9
 /**
10 10
  * 阻止重复请求
11 11
  * @param {array} reqList - 请求缓存列表
@@ -14,15 +14,15 @@ const reqList = [];
14 14
  * @param {string} errorMessage - 请求中断时需要显示的错误信息
15 15
  */
16 16
 const stopRepeatRequest = function(reqList, url, cancel, errorMessage) {
17
-  const errorMsg = errorMessage || "";
17
+  const errorMsg = errorMessage || ''
18 18
   for (let i = 0; i < reqList.length; i++) {
19 19
     if (reqList[i] === url) {
20
-      cancel(errorMsg);
21
-      return;
20
+      cancel(errorMsg)
21
+      return
22 22
     }
23 23
   }
24
-  reqList.push(url);
25
-};
24
+  reqList.push(url)
25
+}
26 26
 
27 27
 /**
28 28
  * 允许某个请求可以继续进行
@@ -32,32 +32,32 @@ const stopRepeatRequest = function(reqList, url, cancel, errorMessage) {
32 32
 const allowRequest = function(reqList, url) {
33 33
   for (let i = 0; i < reqList.length; i++) {
34 34
     if (reqList[i] === url) {
35
-      reqList.splice(i, 1);
36
-      break;
35
+      reqList.splice(i, 1)
36
+      break
37 37
     }
38 38
   }
39
-  console.log(reqList);
40
-};
39
+  console.log(reqList)
40
+}
41 41
 axios.interceptors.request.use(
42 42
   config => {
43
-    if (config.method === "post") {
44
-      config.data = qs.stringify(config.data);
43
+    if (config.method === 'post') {
44
+      config.data = qs.stringify(config.data)
45 45
     }
46 46
 
47
-    return config;
47
+    return config
48 48
   },
49 49
   error => {
50
-    return Promise.reject(error);
50
+    return Promise.reject(error)
51 51
   }
52
-);
52
+)
53 53
 // const baseURL = process.env.BASE_API
54 54
 // 创建axios实例
55 55
 const service = axios.create({
56 56
   // baseURL: baseURL, // api的base_url  axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
57 57
 
58
-  timeout: 30000, // 请求超时时间
58
+  timeout: 300000, // 请求超时时间
59 59
   headers: {
60
-    "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
60
+    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
61 61
   },
62 62
   // `transformRequest` 允许在向服务器发送前,修改请求数据
63 63
   // 只能用在 'PUT', 'POST' 和 'PATCH' 这几个请求方法
@@ -66,7 +66,7 @@ const service = axios.create({
66 66
   transformRequest: [
67 67
     function(data) {
68 68
       // 对 data 进行任意转换处理
69
-      return qs.stringify(data);
69
+      return qs.stringify(data)
70 70
     }
71 71
   ],
72 72
 
@@ -77,40 +77,40 @@ const service = axios.create({
77 77
   // return qs.stringify({ids: [1, 2, 3]}, {arrayFormat: 'brackets'})  // 形式:ids[]=1&ids[]=2&ids[]=3
78 78
   // return qs.stringify({ids: [1, 2, 3]}, {arrayFormat: 'repeat'})  // 形式: ids=1&ids=2&id=3
79 79
   paramsSerializer: function(params) {
80
-    return qs.stringify(params, { arrayFormat: "indices" }); // 形式:ids=1&ids=2&id=3
80
+    return qs.stringify(params, { arrayFormat: 'indices' }) // 形式:ids=1&ids=2&id=3
81 81
   }
82
-});
82
+})
83 83
 // request拦截器
84 84
 service.interceptors.request.use(
85 85
   config => {
86 86
     if (store.getters.token) {
87 87
       // config.headers["Authorization"] = getToken(); // 让每个请求携带自定义token 请根据实际情况自行修改 Bearer
88 88
     }
89
-    config.url = config.url + "?token=" + getToken();
90
-    let cancel;
91
-    if (config.method === "post") {
89
+    config.url = config.url + '?token=' + getToken()
90
+    let cancel
91
+    if (config.method === 'post') {
92 92
       // 设置cancelToken对象
93 93
       config.cancelToken = new axios.CancelToken(function(c) {
94
-        cancel = c;
95
-      });
94
+        cancel = c
95
+      })
96 96
       // 阻止重复请求。当上个请求未完成时,相同的请求不会进行
97 97
       stopRepeatRequest(
98 98
         reqList,
99 99
         config.url,
100 100
         cancel,
101 101
         `${config.url} 请求被中断`
102
-      );
102
+      )
103 103
       // stopRepeatRequest(reqList, config.url, cancel, `请求被中断`)
104 104
     } else {
105 105
     }
106 106
 
107
-    return config;
107
+    return config
108 108
   },
109 109
   error => {
110 110
     // Do something with request error
111
-    Promise.reject(error);
111
+    Promise.reject(error)
112 112
   }
113
-);
113
+)
114 114
 
115 115
 // respone拦截器
116 116
 service.interceptors.response.use(
@@ -119,130 +119,130 @@ service.interceptors.response.use(
119 119
      * state为非"success"时抛错
120 120
      */
121 121
     // 增加延迟,相同请求不得在短时间内重复发送
122
-    if (response.config.method === "post") {
122
+    if (response.config.method === 'post') {
123 123
       setTimeout(() => {
124
-        const replaceList = response.config.url.split("/");
124
+        const replaceList = response.config.url.split('/')
125 125
         const newUrl =
126 126
           replaceList[replaceList.length - 2] +
127
-          "/" +
128
-          replaceList[replaceList.length - 1];
129
-        allowRequest(reqList, newUrl);
130
-      }, 1000);
127
+          '/' +
128
+          replaceList[replaceList.length - 1]
129
+        allowRequest(reqList, newUrl)
130
+      }, 1000)
131 131
     }
132
-    const res = response.data;
133
-    if (res.state && res.state.toLowerCase() !== "success") {
132
+    const res = response.data
133
+    if (res.state && res.state.toLowerCase() !== 'success') {
134 134
       Message({
135 135
         message: res.message,
136
-        type: "error",
136
+        type: 'error',
137 137
         duration: 5 * 1000
138
-      });
138
+      })
139 139
       // 50008:非法的token; 50012:其他客户端登录了;  "notoken":Token 过期了
140 140
       if (
141 141
         res.state.toLowerCase() === 50008 ||
142 142
         res.state.toLowerCase() === 50012 ||
143
-        res.state.toLowerCase() === "notoken"
143
+        res.state.toLowerCase() === 'notoken'
144 144
       ) {
145 145
         MessageBox.confirm(
146
-          "你已被登出,可以取消继续留在该页面,或者重新登录",
147
-          "确定登出",
146
+          '你已被登出,可以取消继续留在该页面,或者重新登录',
147
+          '确定登出',
148 148
           {
149
-            confirmButtonText: "重新登录",
150
-            cancelButtonText: "取消",
151
-            type: "warning"
149
+            confirmButtonText: '重新登录',
150
+            cancelButtonText: '取消',
151
+            type: 'warning'
152 152
           }
153 153
         ).then(() => {
154
-          store.dispatch("FedLogOut").then(() => {
155
-            location.reload(); // 为了重新实例化vue-router对象 避免bug
156
-          });
157
-        });
154
+          store.dispatch('FedLogOut').then(() => {
155
+            location.reload() // 为了重新实例化vue-router对象 避免bug
156
+          })
157
+        })
158 158
       }
159
-      return Promise.reject("error");
159
+      return Promise.reject('error')
160 160
     } else {
161
-      if (response.config.responseType === "blob") {
162
-        return response;
161
+      if (response.config.responseType === 'blob') {
162
+        return response
163 163
       }
164
-      return response.data;
164
+      return response.data
165 165
     }
166 166
   },
167 167
   error => {
168
-    if (error && !error.message && error.response.config.method === "post") {
168
+    if (error && !error.message && error.response.config.method === 'post') {
169 169
       setTimeout(() => {
170
-        const replaceList = error.response.config.url.split("/");
170
+        const replaceList = error.response.config.url.split('/')
171 171
         const newUrl =
172 172
           replaceList[replaceList.length - 2] +
173
-          "/" +
174
-          replaceList[replaceList.length - 1];
175
-        allowRequest(reqList, newUrl);
176
-      }, 500);
173
+          '/' +
174
+          replaceList[replaceList.length - 1]
175
+        allowRequest(reqList, newUrl)
176
+      }, 500)
177 177
     }
178
-    console.log("err:" + error); // for debug
178
+    console.log('err:' + error) // for debug
179 179
     if (error && error.response) {
180 180
       switch (
181 181
         error.response.status // 跨域存在获取不到状态码的情况
182 182
       ) {
183 183
         case 400:
184
-          error.message = `请求错误(400):${error.response.config.url}`;
185
-          break;
184
+          error.message = `请求错误(400):${error.response.config.url}`
185
+          break
186 186
 
187 187
         case 401:
188
-          error.message = `未授权,请登录(401):${error.response.config.url}`;
189
-          store.dispatch("FedLogOut").then(() => {
190
-            location.reload(); // 为了重新实例化vue-router对象 避免bug
191
-          });
192
-          break;
188
+          error.message = `未授权,请登录(401):${error.response.config.url}`
189
+          store.dispatch('FedLogOut').then(() => {
190
+            location.reload() // 为了重新实例化vue-router对象 避免bug
191
+          })
192
+          break
193 193
 
194 194
         case 403:
195
-          error.message = `拒绝访问(403):${error.response.config.url}`;
196
-          break;
195
+          error.message = `拒绝访问(403):${error.response.config.url}`
196
+          break
197 197
 
198 198
         case 404:
199
-          error.message = `请求地址出错(404): ${error.response.config.url}`;
200
-          break;
199
+          error.message = `请求地址出错(404): ${error.response.config.url}`
200
+          break
201 201
 
202 202
         case 408:
203
-          error.message = `请求超时(408):${error.response.config.url}`;
204
-          break;
203
+          error.message = `请求超时(408):${error.response.config.url}`
204
+          break
205 205
 
206 206
         case 500:
207
-          error.message = `服务器内部错误(500):${error.response.config.url}`;
208
-          break;
207
+          error.message = `服务器内部错误(500):${error.response.config.url}`
208
+          break
209 209
 
210 210
         case 501:
211
-          error.message = `服务未实现(501):${error.response.config.url}`;
212
-          break;
211
+          error.message = `服务未实现(501):${error.response.config.url}`
212
+          break
213 213
 
214 214
         case 502:
215
-          error.message = `网关错误(502):${error.response.config.url}`;
216
-          break;
215
+          error.message = `网关错误(502):${error.response.config.url}`
216
+          break
217 217
 
218 218
         case 503:
219
-          error.message = `服务不可用(503):${error.response.config.url}`;
220
-          break;
219
+          error.message = `服务不可用(503):${error.response.config.url}`
220
+          break
221 221
 
222 222
         case 504:
223
-          error.message = `网关超时(504):${error.response.config.url}`;
224
-          break;
223
+          error.message = `网关超时(504):${error.response.config.url}`
224
+          break
225 225
 
226 226
         case 505:
227
-          error.message = `HTTP版本不受支持(505):${error.response.config.url}`;
228
-          break;
227
+          error.message = `HTTP版本不受支持(505):${error.response.config.url}`
228
+          break
229 229
 
230 230
         default:
231
-          error.message = `连接错误:${error.response.status}`;
232
-          break;
231
+          error.message = `连接错误:${error.response.status}`
232
+          break
233 233
       }
234
-    } else if (error.message.indexOf("请求被中断") !== -1) {
235
-      error.message = "请勿重复请求!";
234
+    } else if (error.message.indexOf('请求被中断') !== -1) {
235
+      error.message = '请勿重复请求!'
236 236
     } else {
237
-      error.message = "网络出现问题,请稍后重试!";
237
+      // error.message = "网络出现问题,请稍后重试!";
238 238
     }
239 239
     Message({
240 240
       message: error.message,
241
-      type: "error",
241
+      type: 'error',
242 242
       duration: 5 * 1000
243
-    });
244
-    return Promise.reject(error);
243
+    })
244
+    return Promise.reject(error)
245 245
   }
246
-);
246
+)
247 247
 
248
-export default service;
248
+export default service