”学生考核更新.txt
This commit is contained in:
1 parent
a2a0f54e84
commit
7c8cc72095
109 files changed
+21193
-18
No files matched your search
@@ -117,13 +117,40 @@ service.interceptors.response.use(
|
||||
}
|
||||
}
|
||||
// 未设置状态码则默认成功状态
|
||||
const code = res.data.code || HttpStatus.SUCCESS;
|
||||
const resData: any = res.data || {};
|
||||
let code: any = resData.code;
|
||||
// 兼容后端可能返回的字符串数值或缺省 code
|
||||
if (typeof code === 'string' && /^\d+$/.test(code)) {
|
||||
code = parseInt(code, 10);
|
||||
}
|
||||
if (code === undefined || code === null) {
|
||||
code = HttpStatus.SUCCESS;
|
||||
}
|
||||
|
||||
// 获取错误信息
|
||||
const msg = errorCode[code] || res.data.msg || errorCode['default'];
|
||||
const msg = errorCode[code] || resData.msg || errorCode['default'];
|
||||
// 二进制数据则直接返回
|
||||
if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
|
||||
return res.data;
|
||||
}
|
||||
|
||||
// 兼容部分后端成功 code 为 0 的情况,或未携带 code 但返回了 rows/total 的分页结构(含 data.* 兼容)
|
||||
if (
|
||||
code === HttpStatus.SUCCESS ||
|
||||
code === 0 ||
|
||||
code === 'SUCCESS' ||
|
||||
resData.success === true ||
|
||||
(res.status === 200 && (
|
||||
resData.rows !== undefined ||
|
||||
resData.total !== undefined ||
|
||||
(resData.data && (resData.data.rows !== undefined || resData.data.total !== undefined || resData.data.list !== undefined)) ||
|
||||
resData.list !== undefined
|
||||
)) ||
|
||||
(res.status === 200 && (res.config?.method === 'get'))
|
||||
) {
|
||||
return Promise.resolve(resData);
|
||||
}
|
||||
|
||||
if (code === 401) {
|
||||
// prettier-ignore
|
||||
if (!isRelogin.show) {
|
||||
@@ -146,22 +173,44 @@ service.interceptors.response.use(
|
||||
isRelogin.show = false;
|
||||
});
|
||||
}
|
||||
return Promise.reject('无效的会话,或者会话已过期,请重新登录。');
|
||||
const err401 = new Error('401 Unauthorized: 无效的会话,或者会话已过期,请重新登录。') as any;
|
||||
err401.response = res;
|
||||
return Promise.reject(err401);
|
||||
} else if (code === 403) {
|
||||
// 特殊处理403权限错误,提供更明确的错误提示
|
||||
const permissionMsg = '无访问权限,可能原因:\n1. 用户权限不足\n2. 权限配置问题\n请联系管理员检查权限配置';
|
||||
ElMessage({
|
||||
message: permissionMsg,
|
||||
type: 'warning',
|
||||
duration: 8000,
|
||||
showClose: true
|
||||
});
|
||||
const err403 = new Error('403 Forbidden: ' + permissionMsg) as any;
|
||||
err403.response = res;
|
||||
return Promise.reject(err403);
|
||||
} else if (code === HttpStatus.SERVER_ERROR) {
|
||||
ElMessage({ message: msg, type: 'error' });
|
||||
return Promise.reject(new Error(msg));
|
||||
const err = new Error(msg) as any;
|
||||
err.response = res;
|
||||
return Promise.reject(err);
|
||||
} else if (code === HttpStatus.WARN) {
|
||||
ElMessage({ message: msg, type: 'warning' });
|
||||
return Promise.reject(new Error(msg));
|
||||
const err = new Error(msg) as any;
|
||||
err.response = res;
|
||||
return Promise.reject(err);
|
||||
} else if (code === 404) {
|
||||
// 对404错误进行特殊处理,不显示错误提示
|
||||
console.log('404错误被静默处理,不显示用户提示');
|
||||
return Promise.reject(new Error('404'));
|
||||
const err = new Error('404') as any;
|
||||
err.response = res;
|
||||
return Promise.reject(err);
|
||||
} else if (code !== HttpStatus.SUCCESS) {
|
||||
ElNotification.error({ title: msg });
|
||||
return Promise.reject('error');
|
||||
const err = new Error(msg) as any;
|
||||
err.response = res;
|
||||
return Promise.reject(err);
|
||||
} else {
|
||||
return Promise.resolve(res.data);
|
||||
return Promise.resolve(resData);
|
||||
}
|
||||
},
|
||||
(error: any) => {
|
||||
|
||||
Reference in new issue
Block a user