101 lines
3.1 KiB
JavaScript
101 lines
3.1 KiB
JavaScript
"use strict";
|
|
const common_vendor = require("../common/vendor.js");
|
|
const request_luchRequest_core_Request = require("./luch-request/core/Request.js");
|
|
const baseUrl = "http://192.168.1.168:5004";
|
|
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) {
|
|
common_vendor.index.showToast({
|
|
title,
|
|
icon: "none",
|
|
duration: 1e3
|
|
});
|
|
}
|
|
const requestAPI = (config) => {
|
|
let { url, method = "GET", data = {}, noAuth = false } = typeof config === "object" && config.url ? config : { url: config, method: arguments[1] || "GET", data: arguments[2] || {} };
|
|
if (method == "GET" && !isEmptyObject(data)) {
|
|
url += "?" + objectToQueryString(data);
|
|
}
|
|
common_vendor.index.showLoading({
|
|
title: "加载中..."
|
|
});
|
|
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) {
|
|
console.error("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) {
|
|
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("401");
|
|
} else {
|
|
showToast(res.data.msg || "请求失败");
|
|
reject(res.data.code);
|
|
}
|
|
} else {
|
|
resolve(res.data);
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
console.error("网络请求失败:", 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);
|
|
}
|
|
});
|
|
});
|
|
};
|
|
exports.baseUrl = baseUrl;
|
|
exports.getToken = getToken;
|
|
exports.requestAPI = requestAPI;
|