let baseUrl = ''; if (process.env.NODE_ENV === 'development') { // baseUrl = 'https://wuyeapi.ckdzkj.com'; // 开发环境 baseUrl = "http://192.168.0.222:8080" // baseUrl = "https://wuyeapi.ckdzkj.com"; } else { baseUrl = 'https://wuyeapi.ckdzkj.com'; // 生产环境 // baseUrl = "https://apitest.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.showToast({ title: '登录已过期,请重新登录', icon: 'none', duration: 2000 }); uni.removeStorageSync('token'); uni.removeStorageSync('userId'); // 使用 navigateTo 而非 reLaunch,用户可通过返回按钮退出登录页 setTimeout(() => { uni.navigateTo({ url: '/pageSubPack/loginSub/pwd-login', fail: () => { // 如果 navigateTo 失败(如页面栈满),则用 reLaunch uni.reLaunch({ url: '/pageSubPack/loginSub/pwd-login' }); } }); }, 1500); 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');