From 8b791fb222f1de0c21909b9ae818b6455428382b Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 31 Oct 2025 09:52:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20base=20=E4=BF=AE=E6=94=B9router=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/request.js | 15 +++++++++------ src/components/layout/index.vue | 7 +++---- src/pages/login/index.vue | 4 ++-- src/store/index.js | 3 ++- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/api/request.js b/src/api/request.js index 5f71e8f..151a518 100644 --- a/src/api/request.js +++ b/src/api/request.js @@ -1,7 +1,7 @@ import axios from "axios"; import { authToken } from "@/store/index.js" import { MessagePlugin } from "tdesign-vue-next" -import { useRouter } from 'vue-router'; +import router from "@/router/index.js" function get_api_url() { if (import.meta.env.MODE === 'development' || (import.meta.env.MODE === 'production' && window.location.host.indexOf('localhost') > -1)) { @@ -39,15 +39,18 @@ instance.interceptors.response.use( }, error => { let err_msg = "请求错误"; - console.log(error) if (error.response) { - switch (error.response.status) { + const status = error.response.status; + const url = error.config?.url || ''; + switch (status) { case 401: if (authToken.access) { authToken.access = null } if (authToken.refresh) { authToken.refresh = null } - if (error.config.url.indexOf('/login') == -1) { - const router = useRouter(); - router.replace("/login") + if (!url.includes('/login')) { + // 避免重复跳转 + if (!window.location.pathname.includes('/login')) { + router.replace('/login'); + } } break; default: diff --git a/src/components/layout/index.vue b/src/components/layout/index.vue index 08e5a34..1f6b4ac 100644 --- a/src/components/layout/index.vue +++ b/src/components/layout/index.vue @@ -40,12 +40,11 @@