|
|
@@ -1,6 +1,7 @@
|
|
|
import axios, { AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
|
|
|
import { ElMessage as Message, ElMessageBox as MessageBox, ElLoading as Loading } from 'element-plus';
|
|
|
import tokenInfo from '@/stores/modules/token';
|
|
|
+import useUserInfo from "@/stores/modules/user";
|
|
|
|
|
|
// 加载动画的并发管理
|
|
|
const activeRequests = new Set<string>();
|
|
|
@@ -62,6 +63,7 @@ service.interceptors.response.use(
|
|
|
(response: AxiosResponse) => {
|
|
|
// 对响应数据做点什么
|
|
|
const res = response.data;
|
|
|
+ const useUserInfoStore = useUserInfo();
|
|
|
|
|
|
// 如果配置中启用了加载动画,则关闭加载动画
|
|
|
if (response.config?.loading && response.config.requestId) {
|
|
|
@@ -71,6 +73,14 @@ service.interceptors.response.use(
|
|
|
// 如果自定义状态码不为0,则判断为错误
|
|
|
if (res.code !== 0) {
|
|
|
switch (res.code) {
|
|
|
+ case 401:
|
|
|
+ Message({
|
|
|
+ message: '登录状态已失效,请重新登录',
|
|
|
+ type: 'error',
|
|
|
+ duration: 3 * 1000,
|
|
|
+ });
|
|
|
+ useUserInfoStore.updateLoginShow(true)
|
|
|
+ break;
|
|
|
default:
|
|
|
if (response.config.showErrorMessage) {
|
|
|
if (res.message?.length > 30 || res.code === 400011) {
|
|
|
@@ -103,11 +113,14 @@ service.interceptors.response.use(
|
|
|
loadingClose(error.config.requestId as string);
|
|
|
}
|
|
|
|
|
|
+ const useUserInfoStore = useUserInfo();
|
|
|
try {
|
|
|
if (error.response) {
|
|
|
switch (error.response.status) {
|
|
|
case 400: errMessage = '请求错误(400)'; break;
|
|
|
- case 401: errMessage = '登录失效'; break;
|
|
|
+ case 401: errMessage = '登录状态已失效,请重新登录';
|
|
|
+ useUserInfoStore.updateLoginShow(true)
|
|
|
+ break;
|
|
|
case 403: errMessage = '拒绝访问(403)'; break;
|
|
|
case 404: errMessage = '请求出错(404)'; break;
|
|
|
case 408: errMessage = '请求超时(408)'; break;
|