Files
ShaFaFanXin/前端/unpackage/dist/dev/mp-weixin/utils/request.js
2026-01-27 18:06:04 +08:00

170 lines
4.9 KiB
JavaScript

"use strict";
const common_vendor = require("../common/vendor.js");
const utils_config = require("./config.js");
require("./mock.js");
class RequestOptions extends UTS.UTSType {
static get$UTSMetadata$() {
return {
kind: 2,
get fields() {
return {
url: { type: String, optional: false },
method: { type: "Unknown", optional: true },
data: { type: "Unknown", optional: true },
header: { type: "Unknown", optional: true },
showLoading: { type: Boolean, optional: true },
loadingText: { type: String, optional: true }
};
},
name: "RequestOptions"
};
}
constructor(options, metadata = RequestOptions.get$UTSMetadata$(), isJSONParse = false) {
super();
this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);
this.url = this.__props__.url;
this.method = this.__props__.method;
this.data = this.__props__.data;
this.header = this.__props__.header;
this.showLoading = this.__props__.showLoading;
this.loadingText = this.__props__.loadingText;
delete this.__props__;
}
}
class ResponseData extends UTS.UTSType {
static get$UTSMetadata$() {
return {
kind: 2,
get fields() {
return {
code: { type: Number, optional: false },
message: { type: String, optional: false },
data: { type: "Any", optional: false }
};
},
name: "ResponseData"
};
}
constructor(options, metadata = ResponseData.get$UTSMetadata$(), isJSONParse = false) {
super();
this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);
this.code = this.__props__.code;
this.message = this.__props__.message;
this.data = this.__props__.data;
delete this.__props__;
}
}
const requestInterceptor = (options) => {
const token = common_vendor.index.getStorageSync(utils_config.STORAGE_KEYS.TOKEN);
if (token != "") {
if (options.header == null) {
options.header = new UTSJSONObject({});
}
options.header["Authorization"] = `Bearer ${token}`;
}
return options;
};
const responseInterceptor = (response) => {
var _a, _b, _c;
const statusCode = response["statusCode"];
const data = response["data"];
if (statusCode == 200) {
const code = (_a = data["code"]) !== null && _a !== void 0 ? _a : 0;
if (code == 0 || code == 200) {
return new ResponseData({
code: 0,
message: "success",
data: data["data"]
});
} else if (code == 401) {
common_vendor.index.removeStorageSync(utils_config.STORAGE_KEYS.TOKEN);
common_vendor.index.showToast({
title: "请重新登录",
icon: "none"
});
return new ResponseData({
code,
message: (_b = data["message"]) !== null && _b !== void 0 ? _b : "请重新登录",
data: null
});
} else {
return new ResponseData({
code,
message: (_c = data["message"]) !== null && _c !== void 0 ? _c : "请求失败",
data: null
});
}
} else {
return new ResponseData({
code: statusCode,
message: "网络请求失败",
data: null
});
}
};
const request = (options) => {
return new Promise((resolve, reject) => {
var _b, _c;
const finalOptions = requestInterceptor(options);
if (finalOptions.showLoading == true) {
common_vendor.index.showLoading({
title: (_b = finalOptions.loadingText) !== null && _b !== void 0 ? _b : "加载中..."
});
}
const config = utils_config.getEnvConfig();
const baseUrl = config["baseUrl"];
common_vendor.index.request({
url: baseUrl + finalOptions.url,
method: (_c = finalOptions.method) !== null && _c !== void 0 ? _c : "GET",
data: finalOptions.data,
header: finalOptions.header,
success: (res) => {
if (finalOptions.showLoading == true) {
common_vendor.index.hideLoading();
}
const result = responseInterceptor(res);
if (result.code == 0) {
resolve(result);
} else {
common_vendor.index.showToast({
title: result.message,
icon: "none"
});
reject(result);
}
},
fail: (err) => {
if (finalOptions.showLoading == true) {
common_vendor.index.hideLoading();
}
common_vendor.index.showToast({
title: "网络连接失败",
icon: "none"
});
reject(new ResponseData({
code: -1,
message: "网络连接失败",
data: null
}));
}
});
});
};
const get = (url, data = null) => {
return request(new RequestOptions({
url,
method: "GET",
data
}));
};
const post = (url, data = null) => {
return request(new RequestOptions({
url,
method: "POST",
data
}));
};
exports.get = get;
exports.post = post;
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/request.js.map