fix: 第一版普遍修复完成。
This commit is contained in:
@@ -2,6 +2,7 @@ import { useUserStore } from "@/pinia";
|
||||
import axios from "axios";
|
||||
import type { AxiosInstance, AxiosResponse, InternalAxiosRequestConfig } from "axios";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { $t } from "@/common/languages";
|
||||
|
||||
// 创建 axios 实例
|
||||
const service: AxiosInstance = axios.create({
|
||||
@@ -24,7 +25,7 @@ service.interceptors.request.use(
|
||||
return config;
|
||||
},
|
||||
error => {
|
||||
ElMessage.error("请求发送失败");
|
||||
ElMessage.error($t("_http.request_failed"));
|
||||
return Promise.reject(error);
|
||||
}
|
||||
);
|
||||
@@ -38,31 +39,34 @@ service.interceptors.response.use(
|
||||
// 通常 code === 0 表示成功
|
||||
if (res.code === 0) {
|
||||
return res as any; // 直接返回业务数据
|
||||
} else if (res.code === 3) {
|
||||
ElMessage.error(res.msg || $t("_http.invalid_credentials"));
|
||||
return Promise.reject(new Error(res.msg || $t("_http.invalid_credentials")));
|
||||
} else {
|
||||
ElMessage.error(res.msg || "请求失败");
|
||||
ElMessage.error(res.msg || $t("_http.request_error"));
|
||||
return Promise.reject(new Error(res.msg || "Error"));
|
||||
}
|
||||
},
|
||||
error => {
|
||||
// 处理网络错误或 HTTP 状态码非 2xx 的情况
|
||||
let message = "网络异常";
|
||||
let message = $t("_http.network_error");
|
||||
const { isLogined } = storeToRefs(useUserStore());
|
||||
if (error.response) {
|
||||
const status = error.response.status;
|
||||
switch (status) {
|
||||
case 401:
|
||||
message = "未登录或会话已过期,请重新登录";
|
||||
message = $t("_http.unauthorized");
|
||||
isLogined.value = false;
|
||||
useRouter().push("/login");
|
||||
break;
|
||||
case 403:
|
||||
message = "权限不足";
|
||||
message = $t("_http.forbidden");
|
||||
break;
|
||||
case 500:
|
||||
message = "服务器内部错误";
|
||||
message = $t("_http.server_error");
|
||||
break;
|
||||
default:
|
||||
message = `请求失败 ( $ {status})`;
|
||||
message = $t("_http.request_failed_status", { status });
|
||||
}
|
||||
}
|
||||
ElMessage.error(message);
|
||||
|
||||
Reference in New Issue
Block a user