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
// @ts-nocheck
import axios from 'axios'
import { message, notification } from 'ant-design-vue'
import { getToken, removeToken, getType } from '@/views/utils/auth'
import store from '../store'
import router from '../router'
axios.defaults.timeout = 300000
// axios.defaults.baseURL = 'https://gzky-server.yiboshi.com'
axios.defaults.baseURL = ''
// type默认为form,如果要在请求体里传json,则传json,如果要上传文件,传file
function fetch (url = '', params = {}, method = 'get', contentType = 'form', token) {
contentType === 'form' && (contentType = 'application/x-www-form-urlencoded');
contentType === 'json' && (contentType = 'application/json; charset=utf-8')
contentType === 'file' && (contentType = 'multipart/form-data')
//移除空白参数
let keyArr = [];
for (let k in params) {
let val = params[k];
if (val === null || val === undefined || val === 'null' || val === '' || val === ' ') {
keyArr.push(k);
}
}
keyArr.forEach(x => {
delete params[x];
})
let query = [];
for (let k in params) {
query.push(k + '=' + params[k])
}
let qs = query.join('&')
if (method.toLowerCase() === 'get' && query.length > 0) {
url += (url.indexOf('?') < 0 ? '?' : '&') + qs
}
if (contentType !== 'application/x-www-form-urlencoded' && method !== 'get') {
qs = params
}
let headers = {}
if (getToken())
headers = {
Authorization: 'Bearer ' + getToken(),
'Content-Type': contentType,
}
else
headers = {
'Content-Type': contentType,
}
return new Promise((resolve, reject) => {
axios({ method: method, url: url, data: params, headers: headers })
.then(function (response) {
if (response.data.code === 'BIZ.BUSSINESS_EXCEPTION') {
message.error(response.data.msg);
}
if (response.data.code === 'PARAM.EXCEPTION') {
message.error(response.data.msg);
}
if (response.data.code === 'SYS.SERVER_ERROR') {
message.error('500 Internal Server Error!');
}
if (response.data.code === 'BIZ.TOKEN_EXPIRATION') {
message.error('登录过期,请重新登录');
removeToken()
store.commit('app/clearStore')
window.sessionStorage.clear();
router.push(`/login`)
}
resolve(response.data);
}).catch(err => {
message.error('500 Internal Server Error!');
reject(err.response)
})
})
}
export default fetch