From eeeff9942e97e4b891a635a874d8573aa3ee1449 Mon Sep 17 00:00:00 2001 From: tangxinyue <524779910@qq.com> Date: Fri, 24 Jul 2026 15:50:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9C=AA=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E8=B7=B3=E8=BD=AC=20/profile=20=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E5=AF=BC=E8=88=AA=E6=8B=A6=E6=88=AA=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=9B=E4=BF=AE=E5=A4=8D=20401=20=E8=AF=AF?= =?UTF-8?q?=E9=87=8D=E5=AE=9A=E5=90=91=E8=87=B3=E4=B8=8D=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=20/login=20=E7=9A=84=20Bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/index.js | 2 +- src/components/common/AppHeader.vue | 4 ++++ src/router/index.js | 6 +++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index e4e7889..e9b497e 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -23,7 +23,7 @@ http.interceptors.response.use( userStore.reset() // _noRedirect 标记:静默验证时不跳转(避免注册/登录页被重定向) if (!err.config?._noRedirect) { - router.push('/login') + router.push({ path: '/', query: { showLogin: 1 } }) } return Promise.reject(err) } diff --git a/src/components/common/AppHeader.vue b/src/components/common/AppHeader.vue index c45395b..e035b92 100644 --- a/src/components/common/AppHeader.vue +++ b/src/components/common/AppHeader.vue @@ -200,6 +200,10 @@ async function handleCommand(cmd) { } router.push('/works') } else if (cmd === 'profile') { + if (!isLoggedIn.value) { + loginDialogRef.value?.open() + return + } router.push('/profile') } else if (cmd === 'vip') { showPayment?.() diff --git a/src/router/index.js b/src/router/index.js index 3ae1ffa..9a5a03d 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -48,7 +48,11 @@ router.beforeEach(async (to, from, next) => { router.onError((error) => { const pattern = /Failed to fetch dynamically imported module|Importing a module script failed/i if (pattern.test(error?.message || '')) { - window.location.reload() + const isReloaded = sessionStorage.getItem('chunk_reload_flag') + if (!isReloaded) { + sessionStorage.setItem('chunk_reload_flag', 'true') + window.location.reload() + } } })