2021-11-27 20:09:13 +08:00
|
|
|
|
import store from '@/store'
|
2021-11-26 09:47:23 +08:00
|
|
|
|
import { msg, getAuthToken } from './util'
|
2021-11-25 22:33:28 +08:00
|
|
|
|
|
2021-11-27 20:09:13 +08:00
|
|
|
|
const BASE_URL = 'http://127.0.0.1:28080/api/';
|
|
|
|
|
|
2021-11-25 22:33:28 +08:00
|
|
|
|
export const request = (options) => {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
// 发起请求
|
2021-11-26 09:47:23 +08:00
|
|
|
|
const authToken = getAuthToken();
|
2021-11-25 22:33:28 +08:00
|
|
|
|
uni.request({
|
|
|
|
|
url: BASE_URL + options.url,
|
|
|
|
|
method: options.method || 'GET',
|
|
|
|
|
data: options.data || {},
|
|
|
|
|
header: {
|
2021-12-04 21:09:49 +08:00
|
|
|
|
...options.header,
|
2021-11-26 09:47:23 +08:00
|
|
|
|
'Authorization': authToken ? `Bearer ${authToken}` : ''
|
2021-11-25 22:33:28 +08:00
|
|
|
|
}
|
|
|
|
|
}).then(res => {
|
|
|
|
|
res = res[1];
|
|
|
|
|
const statusCode = res.statusCode;
|
|
|
|
|
if (statusCode !== 200) {
|
|
|
|
|
msg('请求失败,请重试');
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const code = res.data.code;
|
|
|
|
|
const message = res.data.msg;
|
|
|
|
|
// Token 过期,引导重新登陆
|
|
|
|
|
if (code === 401) {
|
|
|
|
|
msg('登录信息已过期,请重新登录');
|
|
|
|
|
store.commit('logout');
|
2021-11-26 07:21:47 +08:00
|
|
|
|
// reject('无效的登录信息');
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// 系统异常
|
|
|
|
|
if (code === 500) {
|
|
|
|
|
msg('系统异常,请稍后重试');
|
|
|
|
|
reject(new Error(message));
|
2021-11-25 22:33:28 +08:00
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// 其它失败情况
|
|
|
|
|
if (code > 0) {
|
|
|
|
|
msg(message);
|
2021-11-26 07:21:47 +08:00
|
|
|
|
// 提供 code + msg,可以基于 code 做进一步的处理。当然,一般情况下是不需要的。
|
|
|
|
|
// 不需要的场景:手机登录时,密码不正确;
|
|
|
|
|
// 需要的场景:微信登录时,未绑定手机,后端会返回一个 code 码,前端需要基于它跳转到绑定手机界面;
|
|
|
|
|
reject({
|
|
|
|
|
'code': code,
|
|
|
|
|
'msg': message
|
|
|
|
|
});
|
2021-11-25 22:33:28 +08:00
|
|
|
|
return;
|
|
|
|
|
}
|
2021-11-26 07:21:47 +08:00
|
|
|
|
// 处理成功,则只返回成功的 data 数据,不返回 code 和 msg
|
2021-11-25 22:33:28 +08:00
|
|
|
|
resolve(res.data.data);
|
|
|
|
|
}).catch((err) => {
|
|
|
|
|
reject(err);
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|