Files
smartDriveEEUniApp/unpackage/dist/dev/mp-weixin/common/request.js
2026-03-31 21:04:53 +08:00

186 lines
5.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"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