更改全局监听 code配置,改变tab切换逻辑

This commit is contained in:
2026-05-09 18:23:25 +08:00
parent fa590f1e27
commit d1ef004100
2 changed files with 33 additions and 3 deletions

View File

@@ -189,9 +189,29 @@ const responseInterceptor = (response: AxiosResponse) => {
return Promise.reject(new Error('模块未开通'));
}
// 业务失败默认走全局提示;如果页面声明自己处理,这里只抛错不弹窗。
if (code !== undefined && code !== 0 && code !== 200 && code !== 403) {
const errorMsg = message || `请求失败(${code})`;
// 定义已知的正常 code
const knownSuccessCodes = [0, 200];
// 定义已知的业务错误 code这些 code 会显示后端返回的 message
const knownErrorCodes = [401, 402, 403, 404, 429, 500, 502, 503];
// 业务成功,直接返回
if (code !== undefined && knownSuccessCodes.includes(code)) {
return res;
}
// 业务失败处理
if (code !== undefined && !knownSuccessCodes.includes(code)) {
let errorMsg: string;
// 已知的业务错误 code使用后端返回的 message
if (knownErrorCodes.includes(code)) {
errorMsg = message || `请求失败(${code})`;
} else {
// 未知的 code统一提示后端异常
errorMsg = '后端异常,请联系管理员';
console.error(`未知的业务错误码: ${code}, 原始消息: ${message}`);
}
showErrorMessage(errorMsg, config);
return Promise.reject(new Error(errorMsg));
}