request.js
3.29 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
"use strict";
const common_vendor = require("./vendor.js");
const config = require("../config.js");
const common_login = require("./login.js");
const excludeUrls = ["/system/wx/getUserInfo"];
function getToken() {
try {
const token = common_vendor.index.getStorageSync("token");
if (token) {
return token;
} else {
return "";
}
} catch (e) {
console.log(e);
}
}
function getHeaders() {
let token = getToken();
let header = {
"Authorization": token,
"Content-Type": "application/json"
//根据自己的数据类型
// "Content-Type":"application/x-www-form-urlencoded",
};
return header;
}
let request = function(req) {
req.method = req.method.toUpperCase();
if (!["GET", "POST", "PUT", "DELETE"].includes(req.method)) {
common_vendor.index.showToast({
title: `暂不支持的请求方式: ${req.method}`,
icon: "none"
});
return;
}
return new Promise((resolve, reject) => {
common_vendor.index.request({
url: config.config.baseUrl_api + req.url,
method: req.method,
data: req.params,
header: getHeaders()
}).then((res) => {
switch (res.statusCode) {
case 200:
const data = res.data || {};
if (data.code == 200) {
resolve(data);
} else {
if (data.code == 60002 || data.code == 60001) {
if (req.url != "/system/wx/getUserInfo") {
reLogin();
}
} else if (data.code == 401 && req.url != "/system/wx/getUserInfo") {
common_login.pcLogin().then(() => {
return common_login.getNowOpenId();
}).then(() => {
return common_login.initData();
}).then(() => {
common_vendor.index.hideLoading();
common_vendor.index.redirectTo({
url: getCurrentPages()[getCurrentPages().length - 1].$page.fullPath
});
});
} else {
if (!excludeUrls.includes(req.url)) {
common_vendor.index.showToast({
title: data.msg,
icon: "none",
duration: 3e3
});
}
}
reject(res);
}
break;
default:
reject(res);
}
}).catch((res) => {
reject(res);
}).finally(() => {
});
});
};
function reLogin() {
const currUser = common_vendor.index.getStorageSync("currUser") || {};
if (currUser.openId) {
const accountInfo = common_vendor.index.getAccountInfoSync();
pcLoginByOpenId(accountInfo.miniProgram.appId, currUser.openId).then((res) => {
let user = res.data;
common_vendor.index.setStorageSync("token", "Bearer " + user.token);
common_vendor.index.setStorageSync("currUser", user);
common_vendor.index.showToast({
title: "一走神把您的操作遗漏了,请重试",
icon: "none"
});
}).catch(() => {
common_vendor.index.showToast({
title: "服务异常,请稍后重试",
icon: "none"
});
});
}
}
function pcLoginByOpenId(appId, openId) {
return request({
url: "/system/wx/loginByOpenId",
method: "POST",
params: {
appId,
openId
}
});
}
exports.request = request;