"use strict"; const common_vendor = require("../common/vendor.js"); const ENV_BASE_URL = { development: "http://localhost:3000", production: "https://api.example.com" // 部署时替换为真实域名 }; const BASE_URL = ENV_BASE_URL["development"]; function toCamelCase(obj) { if (obj === null || typeof obj !== "object") return obj; if (Array.isArray(obj)) { return obj.map((item) => toCamelCase(item)); } const result = {}; for (const key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase()); result[camelKey] = toCamelCase(obj[key]); } } return result; } function getToken() { return common_vendor.index.getStorageSync("token") || ""; } function request(options) { const { url, method = "GET", data, header = {} } = options; const token = getToken(); return new Promise((resolve, reject) => { common_vendor.index.request({ url: `${BASE_URL}${url}`, method, data, header: { "Content-Type": "application/json", ...token ? { Authorization: `Bearer ${token}` } : {}, ...header }, success(res) { const statusCode = res.statusCode; if (statusCode === 401) { common_vendor.index.removeStorageSync("token"); common_vendor.index.showToast({ title: "请重新登录", icon: "none" }); autoLogin(); reject(new Error("未授权")); return; } if (statusCode >= 200 && statusCode < 300) { const body = res.data; if (body.code === 0) { const camelData = toCamelCase(body.data); resolve(camelData); } else { common_vendor.index.showToast({ title: body.message || "请求失败", icon: "none" }); reject(new Error(body.message)); } } else { common_vendor.index.showToast({ title: "网络异常,请稍后重试", icon: "none" }); reject(new Error(`HTTP ${statusCode}`)); } }, fail(err) { common_vendor.index.showToast({ title: "网络异常,请稍后重试", icon: "none" }); reject(err); } }); }); } function autoLogin() { return new Promise((resolve, reject) => { common_vendor.index.login({ provider: "weixin", success: async (loginRes) => { if (loginRes.code) { try { const data = await request({ url: "/api/auth/wx-login", method: "POST", data: { code: loginRes.code } }); common_vendor.index.setStorageSync("token", data.token); resolve(); } catch (err) { common_vendor.index.__f__("error", "at utils/request.ts:109", "登录接口调用失败:", err); reject(err); } } else { common_vendor.index.__f__("error", "at utils/request.ts:113", "微信登录获取 code 失败"); reject(new Error("获取微信 code 失败")); } }, fail: (err) => { common_vendor.index.__f__("error", "at utils/request.ts:118", "uni.login 失败:", err); reject(err); } }); }); } const get = (url, data) => request({ url, method: "GET", data }); const post = (url, data) => request({ url, method: "POST", data }); const put = (url, data) => request({ url, method: "PUT", data }); const del = (url, data) => request({ url, method: "DELETE", data }); exports.BASE_URL = BASE_URL; exports.autoLogin = autoLogin; exports.del = del; exports.get = get; exports.post = post; exports.put = put; //# sourceMappingURL=../../.sourcemap/mp-weixin/utils/request.js.map