feat:版本迭代

This commit is contained in:
jiangrui
2025-02-20 12:00:19 +08:00
parent fd110590af
commit 510fdc48f6
86 changed files with 5045 additions and 1161 deletions

View File

@@ -1,28 +1,63 @@
import axios, { AxiosResponse } from "axios";
import { ElMessage } from "element-plus";
import { RequestResult } from "../types/response";
const request = axios.create({
const axiosInstance = axios.create({
baseURL: import.meta.env.VITE_API_BASE_URL as string,
timeout: 60000,
timeout: 9000,
withCredentials: true,
headers: {
"Content-Type": "application/json",
},
});
request.interceptors.response.use(
(response: AxiosResponse) => {
const res = response.data;
if (!res.success) {
ElMessage.error(res.error || "请求失败");
return Promise.reject(new Error(res.error || "请求失败"));
function isLoginAndRedirect(url: string) {
return url.includes("/api/user/login") || url.includes("/api/user/register");
}
axiosInstance.interceptors.request.use(
(config) => {
const token = localStorage.getItem("token");
if (token) {
config.headers.Authorization = `Bearer ${token}`;
} else if (!isLoginAndRedirect(config.url || "")) {
ElMessage.error("请先登录");
window.location.href = "/login";
}
return res;
return config;
},
(error) => {
ElMessage.error(error.message || "网络错误");
return Promise.reject(error);
}
);
axiosInstance.interceptors.response.use(
(response: AxiosResponse) => {
const res = response.data;
return res;
},
(error) => {
if (error.response.status === 401) {
ElMessage.error("登录过期,请重新登录");
localStorage.removeItem("token");
window.location.href = "/login";
return Promise.reject(new Error("登录过期,请重新登录"));
}
ElMessage.error(error.response.statusText);
return Promise.reject(new Error(error.response.statusText));
}
);
const request = {
get: <T>(
url: string,
config?: Record<string, any>
): Promise<RequestResult<T>> => {
return axiosInstance.get(url, { ...config });
},
post: axiosInstance.post,
put: axiosInstance.put,
delete: axiosInstance.delete,
};
export default request;