75 lines
2.1 KiB
JavaScript
75 lines
2.1 KiB
JavaScript
let baseUrl = '';
|
||
if (process.env.NODE_ENV === 'development') {
|
||
// baseUrl = 'https://wuyeapi.ckdzkj.com'; // 开发环境
|
||
baseUrl = "http://192.168.1.222:8080"
|
||
} else {
|
||
baseUrl = 'https://wuyeapi.ckdzkj.com'; // 生产环境
|
||
}
|
||
|
||
/**
|
||
* 显示接口错误提示(自动处理长消息截断问题)
|
||
* @param {string|Object} msg - 错误消息或含 msg 字段的错误对象
|
||
*/
|
||
export function showApiError(msg) {
|
||
const message = typeof msg === 'string' ? msg : (msg.msg || msg.message || '请求失败');
|
||
uni.showToast({ title: message || '请求失败', icon: 'error', duration: 2000 });
|
||
}
|
||
|
||
export default function request(url, data = {}, method = "GET") {
|
||
return new Promise((resolve, reject) => {
|
||
uni.showLoading({
|
||
title: '请求中...',
|
||
mask: true
|
||
});
|
||
|
||
uni.request({
|
||
url: baseUrl + url,
|
||
data: data,
|
||
method: method,
|
||
header: {
|
||
"Authorization": "Bearer " + (uni.getStorageSync("token") || ''),
|
||
"clientid": "resident",
|
||
'content-type': 'application/json'
|
||
},
|
||
success: (res) => {
|
||
uni.hideLoading();
|
||
|
||
// HTTP 失败
|
||
if (res.statusCode !== 200) {
|
||
reject({ msg: `请求异常 ${res.statusCode}`, code: res.statusCode });
|
||
return;
|
||
}
|
||
|
||
const resData = res.data || {};
|
||
|
||
// token 过期 — 静默清除登录态,不强制跳转登录页
|
||
if (resData.code === 401) {
|
||
uni.removeStorageSync('token');
|
||
uni.removeStorageSync('userId');
|
||
reject({ msg: '登录过期', code: 401 });
|
||
return;
|
||
}
|
||
|
||
// 成功
|
||
if (resData.code === 200) {
|
||
resolve(resData);
|
||
}
|
||
// 业务失败(code === 500 统一 showToast 展示完整 msg)
|
||
else {
|
||
if (resData.code === 500 && resData.msg) {
|
||
uni.showToast({ title: resData.msg, icon: 'error', duration: 2500 });
|
||
}
|
||
reject({ msg: resData.msg || '请求失败', code: resData.code, data: resData });
|
||
}
|
||
},
|
||
fail: (err) => {
|
||
uni.hideLoading();
|
||
reject({ msg: '网络异常', code: -1, raw: err });
|
||
}
|
||
});
|
||
});
|
||
}
|
||
|
||
export const get = (url, data = {}) => request(url, data, 'GET');
|
||
export const post = (url, data) => request(url, data, 'POST');
|