From 14d7d879a0d631aadf054380b1afd8aa86d0067c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=9D=E5=85=88=E7=91=9E?= <1490493387@qq.com> Date: Wed, 18 May 2022 23:54:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=B7=B3=E8=BD=AC=E4=B8=8D=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E7=9A=84=E8=B7=AF=E7=94=B1=E7=A9=BA=E7=99=BD=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: c797a3a474df0d0ec78daafff27f52e47d1d3777 --- src/layout/components/Navbar.vue | 13 +++++++++---- src/permission.ts | 7 +++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 7c6a328a..6fdb28e5 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -69,7 +69,7 @@ import LangSelect from '@/components/LangSelect/index.vue'; // 图标依赖 import { CaretBottom } from '@element-plus/icons-vue'; -const { app, user } = useStore(); +const { app, user, tagsView } = useStore(); const route = useRoute(); const router = useRouter(); @@ -88,9 +88,14 @@ function logout() { cancelButtonText: '取消', type: 'warning' }).then(() => { - user.logout().then(() => { - router.push(`/login?redirect=${route.fullPath}`); - }); + user + .logout() + .then(() => { + tagsView.delAllViews(); + }) + .then(() => { + router.push(`/login?redirect=${route.fullPath}`); + }); }); } diff --git a/src/permission.ts b/src/permission.ts index 89d30dcc..e41d80c7 100644 --- a/src/permission.ts +++ b/src/permission.ts @@ -9,7 +9,6 @@ NProgress.configure({ showSpinner: false }); // 进度环显示/隐藏 const whiteList = ['/login', '/auth-redirect']; router.beforeEach(async (to, from, next) => { - console.log('beforeEach', to); NProgress.start(); const { user, permission } = useStore(); const hasToken = user.token; @@ -21,7 +20,11 @@ router.beforeEach(async (to, from, next) => { } else { const hasGetUserInfo = user.roles.length > 0; if (hasGetUserInfo) { - next(); + if (to.matched.length === 0) { + from.name ? next({ name: from.name }) : next('/'); + } else { + next(); + } } else { try { await user.getUserInfo();