request.js
2.51 KB
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
const successCode = [200, '0']
async function axiosRequest(config) {
const {
methot,
url,
isMock,
timeOut = 10000,
mockTimeOut = 200,
prefix,
weakNetwork = false,
appStatus = true,
showError = true,
environment = 'sit',
data = {},
params = {}
} = config
return new Promise((resolve) => {
let mockUrl = url
if (isMock) mockUrl = '/mock' + mockUrl
if (isMock) {
setTimeout(() => {
const code = '0'
if (weakNetwork) {
resolve({
network: 0,
success: false,
data: null
})
}
if (appStatus) {
appBlock(true)
}
if (!successCode.includes(code) && showError) {
// errorBlock('./image/error.svg', '内容获取失败')
errorBlock('./image/content_fail.svg', '获取内容失败')
}
const data = mockList.find(el => el.url === mockUrl).data
resolve({
success: successCode.includes(code),
data: successCode.includes(code) ? data ? deepCopy(data) : null : null
})
}, mockTimeOut)
return
}
const VUE_BASE_API = window.config.VUE_BASE_API[environment]
let responseUrl = VUE_BASE_API + prefix + url
if (methot.toLowerCase() === 'get' && Object.keys(delectEmptyObj(params)).length) {
responseUrl = `${responseUrl}?${tansParams(params)}`
}
const ajaxConfig = {
method: methot,
url: responseUrl,
timeout: timeOut,
headers: config.headers
}
if (data && Object.keys(data).length) ajaxConfig.data = data
axios.request(ajaxConfig).then(res => {
if (appStatus) {
appBlock(true)
}
const { data } = res
if (!successCode.includes(data.code) && showError) {
if (navigator.onLine) {
errorBlock('./image/content_fail.svg', '获取内容失败')
} else {
errorBlock('./image/no_net.svg', '暂无网络')
}
}
resolve({
success: successCode.includes(data.code),
data: successCode.includes(data.code) ? data.data : data
})
}).catch(err => {
if (showError) {
if (err.message.includes('timeout')) {
errorBlock('./image/no_net.svg', '暂无网络')
} else if (navigator.onLine) {
errorBlock('./image/content_fail.svg', '获取内容失败')
} else {
errorBlock('./image/no_net.svg', '暂无网络')
}
}
resolve({
success: false
})
})
})
}