"use strict"; const common_vendor = require("../common/vendor.js"); const request_luchRequest_core_Request = require("./luch-request/core/Request.js"); const baseUrl = "https://yingji.hexieapi.com/prod-api"; const imageBaseUrl = baseUrl.replace(/\/prod-api\/?$/, ""); new request_luchRequest_core_Request.Request({ baseURL: baseUrl, timeout: 1e4 }); const getToken = () => { const token = common_vendor.index.getStorageSync("token"); return token ? `Bearer ${token}` : ""; }; const isEmptyObject = (obj) => { return Object.keys(obj).length === 0; }; const objectToQueryString = (obj) => { const keyValuePairs = []; for (let key in obj) { if (obj.hasOwnProperty(key)) { keyValuePairs.push(encodeURIComponent(key) + "=" + encodeURIComponent(obj[key])); } } return keyValuePairs.join("&"); }; function showToast(title) { setTimeout(() => { common_vendor.index.showToast({ title, icon: "none", duration: 2e3 }); }, 100); } const requestAPI = (config) => { let { url, method = "GET", data = {}, noAuth = false, loadingText } = typeof config === "object" && config.url ? config : { url: config, method: arguments[1] || "GET", data: arguments[2] || {} }; if (method == "GET" && !isEmptyObject(data)) { url += "?" + objectToQueryString(data); } if (loadingText !== false) { common_vendor.index.showLoading({ title: loadingText || "加载中..." }); } const header = { "Content-Type": "application/json" }; if (!noAuth) { const token = getToken(); if (token) { header["Authorization"] = token; } } return new Promise((resolve, reject) => { common_vendor.index.request({ url: baseUrl + url, method, data, header, success: (res) => { common_vendor.index.hideLoading(); if (res.statusCode !== 200) { common_vendor.index.__f__("error", "at request/request.js:85", "HTTP错误:", res.statusCode); reject(`HTTP_${res.statusCode}`); return; } if (res.data && res.data.code !== void 0) { if (res.data.code === 200 || res.data.code === 0 || res.code === 0) { resolve(res.data); } else if (res.data.code === 401) { common_vendor.index.removeStorageSync("token"); common_vendor.index.removeStorageSync("userInfo"); showToast("登录已过期,请重新登录"); setTimeout(() => { common_vendor.index.reLaunch({ url: "/pages/login/login" }); }, 1500); reject({ code: 401, msg: "登录已过期" }); } else { const errorMsg = res.data.msg || res.data.message || res.data.error || res.msg || "请求失败"; common_vendor.index.__f__("error", "at request/request.js:110", "接口错误:", res.data); showToast(errorMsg); reject({ code: res.data.code, msg: errorMsg, data: res.data }); } } else { resolve(res.data); } }, fail: (err) => { common_vendor.index.__f__("error", "at request/request.js:121", "网络请求失败:", err); common_vendor.index.hideLoading(); if (err.errMsg && err.errMsg.includes("request:fail")) { showToast("网络连接失败,请检查网络设置"); } else if (err.errMsg && err.errMsg.includes("timeout")) { showToast("请求超时,请稍后重试"); } else { showToast("网络异常,请稍后重试"); } reject(err); } }); }); }; const toImageUrl = (filePath) => { if (!filePath) return ""; const p = String(filePath); if (p.startsWith("http://") || p.startsWith("https://")) { return p.replace(/\/prod-api(?=\/|$)/, ""); } const normalized = p.startsWith("/") ? p : `/${p}`; return imageBaseUrl + normalized; }; exports.baseUrl = baseUrl; exports.getToken = getToken; exports.requestAPI = requestAPI; exports.toImageUrl = toImageUrl; //# sourceMappingURL=../../.sourcemap/mp-weixin/request/request.js.map