fix: 第一版普遍修复完成。

This commit is contained in:
c
2026-03-21 15:56:53 +08:00
parent d88701f4ee
commit cc87985576
17 changed files with 218 additions and 93 deletions

View File

@@ -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);