更新模板
This commit is contained in:
@@ -42,7 +42,7 @@ const isIgnoreToken = (url: string) => {
|
||||
* @param options 请求参数
|
||||
* @returns Promise<T>
|
||||
*/
|
||||
export function request(options: RequestOptions): Promise<any | null> {
|
||||
export function request(options: RequestOptions): Promise<any> {
|
||||
let { url, method = "GET", data = {}, header = {}, timeout = 60000 } = options;
|
||||
|
||||
const { user } = useStore();
|
||||
@@ -80,17 +80,26 @@ export function request(options: RequestOptions): Promise<any | null> {
|
||||
timeout,
|
||||
|
||||
success(res) {
|
||||
// 401 无权限
|
||||
if (res.statusCode == 401) {
|
||||
if (isDev) console.log(`[Response] ${url} status: ${res.statusCode}`, JSON.stringify(res.data));
|
||||
// 401 无权限 或 业务码 1001 (未登录/失效)
|
||||
const resData = res.data;
|
||||
if (resData != null && isObject(resData)) {
|
||||
const dataObj = resData as UTSJSONObject;
|
||||
const bizCode = dataObj["code"];
|
||||
if (res.statusCode == 401 || bizCode == 1001) {
|
||||
user.logout();
|
||||
reject({ message: t("登录已失效"), code: 1001 } as Response);
|
||||
return;
|
||||
}
|
||||
} else if (res.statusCode == 401) {
|
||||
user.logout();
|
||||
reject({ message: t("无权限") } as Response);
|
||||
reject({ message: t("登录已失效"), code: 1001 } as Response);
|
||||
return;
|
||||
}
|
||||
|
||||
// 502 服务异常
|
||||
else if (res.statusCode == 502) {
|
||||
reject({
|
||||
message: t("服务异常")
|
||||
} as Response);
|
||||
reject({ message: t("服务异常") } as Response);
|
||||
}
|
||||
|
||||
// 404 未找到
|
||||
@@ -105,20 +114,30 @@ export function request(options: RequestOptions): Promise<any | null> {
|
||||
if (res.data == null) {
|
||||
resolve(null);
|
||||
} else if (!isObject(res.data as any)) {
|
||||
// 处理非对象格式的数据(如字符串)
|
||||
console.warn(`[Service] Received non-object data from ${url}:`, res.data);
|
||||
resolve(res.data);
|
||||
} else {
|
||||
// 解析响应数据
|
||||
const { code, message, data } = parse<Response>(
|
||||
res.data ?? { code: 0 }
|
||||
)!;
|
||||
try {
|
||||
const resDataObj = res.data as UTSJSONObject;
|
||||
const { code, message, data } = parse<Response>(
|
||||
resDataObj ?? { code: 0 }
|
||||
)!;
|
||||
|
||||
switch (code) {
|
||||
case 1000:
|
||||
resolve(data);
|
||||
break;
|
||||
default:
|
||||
reject({ message, code } as Response);
|
||||
break;
|
||||
switch (code) {
|
||||
case 1000:
|
||||
console.log(`[Service] Request success for ${url}, data:`, JSON.stringify(data));
|
||||
resolve(data);
|
||||
break;
|
||||
default:
|
||||
console.warn(`[Service] Business error from ${url}:`, code, message);
|
||||
reject({ message: message || t("请求失败"), code } as Response);
|
||||
break;
|
||||
}
|
||||
} catch (e : any) {
|
||||
console.error(`[Service] Parse error for ${url}:`, e);
|
||||
reject({ message: e.message || t("服务异常") } as Response);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -128,9 +147,11 @@ export function request(options: RequestOptions): Promise<any | null> {
|
||||
|
||||
// 网络请求失败
|
||||
fail(err) {
|
||||
console.error(`[Request Failed] ${url}`, err);
|
||||
reject({ message: err.errMsg } as Response);
|
||||
}
|
||||
});
|
||||
if (isDev) console.log(`[Request Sent] ${url}`);
|
||||
};
|
||||
|
||||
// 非刷新token接口才进行token有效性校验
|
||||
|
||||
Reference in New Issue
Block a user