fix: json for query

This commit is contained in:
2025-12-10 13:23:37 +08:00
parent 9bbc245dcc
commit 37de79fba6
3 changed files with 11 additions and 19 deletions

View File

@@ -23,23 +23,11 @@ export type Data = {
payload?: Record<string, any>;
[key: string]: any;
};
export type Result<S = any> = {
export type Result<S = any, U = {}> = {
code: number;
data?: S;
message?: string;
success: boolean;
/**
* 是否不返回 message
*/
noMsg?: boolean;
/**
* 显示错误, 当 handle的信息被处理的时候如果不是success同时自己设置了noMsg那么就不显示错误信息了因为被处理。
*
* 日常: fetch().then(res=>if(res.sucess){message.error('error')})的时候比如401被处理过了就不再提示401错误了。
*
*/
showError: (fn?: () => void) => void;
};
} & U;
// 额外功能
export type DataOpts = Partial<QueryOpts> & {
beforeRequest?: Fn;
@@ -55,7 +43,7 @@ export type DataOpts = Partial<QueryOpts> & {
* showError 是 如果 success 为 false 且 noMsg 为 false, 则调用 showError
* @param res 响应
*/
export const setBaseResponse = (res: Partial<Result>) => {
export const setBaseResponse = (res: Partial<Result & { success?: boolean; showError?: (fn?: () => void) => void; noMsg?: boolean }>) => {
res.success = res.code === 200;
/**
* 显示错误
@@ -199,7 +187,6 @@ export class Query {
}
return _adapter(req).then(async (res) => {
try {
setBaseResponse(res);
if (_afterResponse) {
return await _afterResponse(res, {
req,
@@ -250,7 +237,13 @@ export class Query {
...(_options?.headers || {}),
},
});
return setBaseResponse(res);
if (res && !res.code) {
return {
code: 200,
data: res,
}
}
return res;
}
}