"use strict"; const common_vendor = require("./vendor.js"); const common_config = require("./config.js"); function getTenantId() { try { return common_vendor.index.getStorageSync("backend-tenant-id") || ""; } catch (e) { common_vendor.index.__f__("error", "at common/request.js:15", "获取 tenantId 失败:", e); return ""; } } function redirectToLogin() { const loginPage = "/uni_modules/uni-id-pages/pages/login/login-withpwd"; const pages = getCurrentPages(); if (pages.length > 0) { const currentPage = pages[pages.length - 1]; if (currentPage.route && currentPage.route.includes("login")) { return; } } common_vendor.index.reLaunch({ url: loginPage, fail: (err) => { common_vendor.index.__f__("error", "at common/request.js:38", "跳转登录页失败:", err); } }); } function isLoginApi(url) { if (!url) return false; return url.includes("/api/sys/auth/login"); } function getToken() { try { return common_vendor.index.getStorageSync("backend-token") || ""; } catch (e) { common_vendor.index.__f__("error", "at common/request.js:59", "获取 token 失败:", e); return ""; } } function getRoleName() { try { return common_vendor.index.getStorageSync("backend-role-name") || ""; } catch (e) { common_vendor.index.__f__("error", "at common/request.js:71", "获取 roleName 失败:", e); return ""; } } function getScenario() { try { return common_vendor.index.getStorageSync("backend-scenario") || ""; } catch (e) { common_vendor.index.__f__("error", "at common/request.js:83", "获取 scenario 失败:", e); return ""; } } function request(options = {}) { const { url, method = "GET", data = {}, header = {}, timeout = 1e4, needTenantId = true, needToken = true, ...restOptions } = options; const fullUrl = url.startsWith("http") ? url : common_config.getApiUrl(url); const apiEnv = typeof common_config.getApiEnv === "function" ? common_config.getApiEnv() : ""; common_vendor.index.__f__("log", "at common/request.js:117", "[Request] 开始处理请求:", { originalUrl: url, fullUrl, method: method.toUpperCase(), isLoginApi: isLoginApi(fullUrl), apiEnv, needTenantId, needToken }); common_vendor.index.__f__("log", "at common/request.js:129", `[Request] 完整请求URL: ${fullUrl}`); const requestHeader = { "Content-Type": "application/json", ...header }; if (needToken && !isLoginApi(fullUrl)) { const token = getToken(); if (!token) { common_vendor.index.__f__("warn", "at common/request.js:142", "[Request] token 为空,拦截请求并跳转到登录页面"); redirectToLogin(); return Promise.reject(new Error("未登录或登录已失效,请先登录")); } requestHeader["Authorization"] = `Bearer ${token}`; } const roleName = getRoleName(); if (roleName) { requestHeader["X-Role-Name"] = roleName; } const scenario = getScenario(); if (scenario) { requestHeader["X-Scenario"] = scenario; } let requestData = { ...data }; if (needTenantId) { const tenantId = getTenantId(); if (!isLoginApi(fullUrl) && !tenantId) { common_vendor.index.__f__("warn", "at common/request.js:172", "[Request] 租户ID为空,跳转到登录页面"); redirectToLogin(); return Promise.reject(new Error("未登录,请先登录")); } if (tenantId) { requestHeader["X-Tenant-Id"] = tenantId; } } common_vendor.index.__f__("log", "at common/request.js:185", "[Request] 准备发起 uni.request:", { url: fullUrl, method: method.toUpperCase(), hasData: !!requestData, hasHeaders: !!requestHeader, timeout }); return new Promise((resolve, reject) => { common_vendor.index.__f__("log", "at common/request.js:194", "[Request] 调用 uni.request 开始执行"); common_vendor.index.request({ url: fullUrl, method: method.toUpperCase(), data: requestData, header: requestHeader, timeout, ...restOptions, success: (res) => { common_vendor.index.__f__("log", "at common/request.js:203", "[Request] 收到响应:", { url: fullUrl, method: method.toUpperCase(), statusCode: res.statusCode, hasData: !!res.data, dataType: typeof res.data }); if (res.statusCode === 401) { common_vendor.index.__f__("warn", "at common/request.js:213", "[Request] 收到401状态码,跳转到登录页面"); redirectToLogin(); reject(new Error("登录已过期,请重新登录")); return; } resolve(res); }, fail: (err) => { common_vendor.index.__f__("error", "at common/request.js:221", "[Request] 请求失败:", { url: fullUrl, method: method.toUpperCase(), error: err, errorMessage: err.errMsg || "未知错误", errorCode: err.code || "无错误码" }); reject(err); } }); }); } function get(url, data = {}, options = {}) { return request({ url, method: "GET", data, ...options }); } function post(url, data = {}, options = {}) { return request({ url, method: "POST", data, ...options }); } function put(url, data = {}, options = {}) { return request({ url, method: "PUT", data, ...options }); } exports.get = get; exports.post = post; exports.put = put; //# sourceMappingURL=../../.sourcemap/mp-weixin/common/request.js.map