export default async (params) => { let url = params.url; let method = params.method || "get"; let data = params.data || {}; let type = params.type || 1; let toast = params.toast || true; let token = uni.cache.get("token") || ""; const shopId = uni.cache.get("shopId") * 1; const userInfo = uni.cache.get("userInfo") || {}; let header = { version: uni.conf.version, type: uni.getSystemInfoSync().platform, // #ifdef APP-PLUS platformType: "APP", // #endif // #ifdef H5 platformType: "H5", // #endif // #ifdef MP-WEIXIN platformType: "WX", // #endif // #ifdef MP-ALIPAY platformType: "ALI", // #endif token, id: userInfo.id || "", shopId: shopId || "", userId: userInfo.id || "", }; if (toast) { uni.showLoading({ title: "加载中", mask: true, }); } // #ifdef H5 uni.cache.set('token', '1b5e8baf0cc1492a858a208f113d0971') uni.cache.set('userInfo',{"acQrcodeValidTime":"2026-01-13 13:35:59","alipayOpenId":"","birthDay":"2025-12-25","createTime":"2024-03-13 10:56:40","distributionAmount":0,"headImg":"https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132","id":"36689","idCard":"","isAc":0,"lastLoginTime":"2025-12-26 10:01:12","nickName":"微信用户","password":"","payPwd":"e10adc3949ba59abbe56e057f20f883e","phone":"18049104914","realName":"","sex":1,"status":1,"updateTime":"2025-12-26 09:59:31","usePayPwd":0,"wechatAcOpenId":"","wechatAcQrcode":"http://weixin.qq.com/q/029s5JtP1xfmJ1g_HDxFco","wechatOpenId":"or1l86yipGvwyfPhrKIAcQuSfAV8"}) // #endif return new Promise((resolve, reject) => { const timeoutDuration = params.timeout || 10000; // 可以通过 params 传入超时时间,默认 10 秒 uni.request({ url: uni.conf.baseUrl + url, method: method, header: header, data: data, timeout: timeoutDuration, success(response) { const res = response.data; // 根据返回的状态码做出对应的操作 //获取成功 if (res.code == 200) { uni.hideLoading(); uni.hideToast(); resolve(res.data ? res.data : true); } else { switch (res.code) { case "501": uni.cache.remove("shopId"); // uni.showToast({ // title: '', // icon: "none", // success: () => { // } // }) setTimeout(() => { uni.reLaunch({ url: "/pages/index/index", }); }, 1000); break; case 404: uni.showToast({ title: "请求地址不存在...", duration: 2000, }); break; default: // 是否提示 if (toast) { uni.showToast({ title: (() => { // 1. 获取原始提示文本(兜底空字符串避免报错) const originMsg = res.message || res.msg || res .error || ""; // 2. 定义要匹配的前缀 const exceptionPrefix = "Exception:"; // 3. 判断是否包含目标前缀 if (originMsg.includes(exceptionPrefix)) { // 截取前缀后的内容 → 去除首尾空格 → 限制最大20个字符 return originMsg .slice( originMsg.indexOf( exceptionPrefix) + exceptionPrefix.length ) .trim() .slice(0, 20); } else { // 不包含则按原逻辑截取前20个字符 return originMsg.slice(0, 20); } })(), icon: "none", success: () => { // 修复:去掉多余的 res 参数(避免覆盖外层 res) setTimeout(() => { reject(false); }, 1000); }, }); } break; } } }, fail(err) { if (err.errMsg.indexOf("request:fail") !== -1) { if (err.errMsg.indexOf("timeout") !== -1) { if (toast) { uni.showToast({ title: `请求超时,请稍后重试`, icon: "error", duration: 2000, }); } } } reject(err); }, complete() { // 不管成功还是失败都会执行 setTimeout((res) => { uni.hideLoading(); uni.hideToast(); }, 10000); }, }); }).catch((e) => {}); };