”学生考核更新.txt

This commit is contained in:
weizhong committed 2025-08-18 12:03:44 +08:00
1 parent a2a0f54e84
commit 7c8cc72095
109 files changed
+21193 -18

No files matched your search

+57 -8
View File
@@ -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) => {