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();