index.js
4.5 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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
"use strict";
const common_vendor = require("../../common/vendor.js");
const ty_config_index = require("../config/index.js");
const store_index = require("../../store/index.js");
const options = {
// 显示操作成功消息 默认不显示
showSuccess: false,
// 成功提醒 默认使用后端返回值
successMsg: "",
// 显示失败消息 默认显示
showError: true,
// 失败提醒 默认使用后端返回信息
errorMsg: "",
// 显示请求时loading模态框 默认显示
showLoading: true,
// loading提醒文字
loadingMsg: "加载中",
// 需要授权才能请求 默认放开
auth: false
// ...
};
let LoadingInstance = {
target: null,
count: 0
};
function closeLoading() {
if (LoadingInstance.count > 0)
LoadingInstance.count--;
if (LoadingInstance.count === 0)
common_vendor.index.hideLoading();
}
const http = new common_vendor.Request({
baseURL: ty_config_index.baseUrl,
timeout: 8e3,
method: "GET",
header: {
Accept: "text/json",
"Content-Type": "application/json;charset=UTF-8"
},
custom: options
});
http.interceptors.request.use(
(config) => {
if (config.custom.auth && !store_index.$store("user").isLogin) {
return Promise.reject();
}
if (config.custom.showLoading) {
LoadingInstance.count++;
LoadingInstance.count === 1 && common_vendor.index.showLoading({
title: config.custom.loadingMsg,
mask: true,
fail: () => {
common_vendor.index.hideLoading();
}
});
}
const token = common_vendor.index.getStorageSync("token");
if (token)
config.header["token"] = token;
return config;
},
(error) => {
return Promise.reject(error);
}
);
http.interceptors.response.use(
(response) => {
if (response.header.authorization || response.header.Authorization) {
store_index.$store("user").setToken(response.header.authorization || response.header.Authorization);
}
response.config.custom.showLoading && closeLoading();
if (response.data.code !== 1) {
if (response.config.custom.showError)
common_vendor.index.showToast({
title: response.data.msg || "服务器开小差啦,请稍后再试~",
icon: "none",
mask: true
});
return Promise.resolve(response.data);
}
if (response.data.code !== 1 && response.data.msg !== "" && response.config.custom.showSuccess) {
common_vendor.index.showToast({
title: response.config.custom.successMsg || response.data.msg,
icon: "none"
});
}
return Promise.resolve(response.data);
},
(error) => {
var _a;
const userStore = store_index.$store("user");
const isLogin = userStore.isLogin;
let errorMessage = "网络请求出错";
if (error !== void 0) {
switch (error.statusCode) {
case 400:
errorMessage = "请求错误";
break;
case 401:
if (isLogin) {
errorMessage = "您的登陆已过期";
} else {
errorMessage = "请先登录";
}
userStore.logout(true);
break;
case 403:
errorMessage = "拒绝访问";
break;
case 404:
errorMessage = "请求出错";
break;
case 408:
errorMessage = "请求超时";
break;
case 429:
errorMessage = "请求频繁, 请稍后再访问";
break;
case 500:
errorMessage = "服务器开小差啦,请稍后再试~";
break;
case 501:
errorMessage = "服务未实现";
break;
case 502:
errorMessage = "网络错误";
break;
case 503:
errorMessage = "服务不可用";
break;
case 504:
errorMessage = "网络超时";
break;
case 505:
errorMessage = "HTTP版本不受支持";
break;
}
if (error.errMsg.includes("timeout"))
errorMessage = "请求超时";
}
if (error && error.config) {
if (error.config.custom.showError === false) {
common_vendor.index.showToast({
title: ((_a = error.data) == null ? void 0 : _a.msg) || errorMessage,
icon: "none",
mask: true
});
}
error.config.custom.showLoading && closeLoading();
}
return false;
}
);
const request = (config) => {
if (config.url[0] !== "/") {
config.url = ty_config_index.apiPath + config.url;
}
return http.middleware(config);
};
exports.request = request;