From f0582cf7214892f5945e1f1c1a078d67a43a1f98 Mon Sep 17 00:00:00 2001 From: Hooray <304327508@qq.com> Date: Sat, 7 Mar 2026 15:12:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E5=AE=88=E5=8D=AB=E9=80=BB=E8=BE=91=EF=BC=8C=E7=AE=80=E5=8C=96?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E5=88=A4=E6=96=AD=E5=92=8C=E9=87=8D=E5=AE=9A?= =?UTF-8?q?=E5=90=91=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/guards.ts | 42 ++++++++++++------------------------------ 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/src/router/guards.ts b/src/router/guards.ts index 651c8554..58c837dd 100644 --- a/src/router/guards.ts +++ b/src/router/guards.ts @@ -4,7 +4,7 @@ import { asyncRoutes, asyncRoutesByFilesystem } from './routes' import '@/assets/styles/nprogress.css' function setupRoutes(router: Router) { - router.beforeEach(async (to, _from, next) => { + router.beforeEach(async (to) => { const settingsStore = useSettingsStore() const userStore = useUserStore() const routeStore = useRouteStore() @@ -17,27 +17,19 @@ function setupRoutes(router: Router) { settingsStore.settings.menu.mode !== 'single' && menuStore.setActived(to.path) // 如果已登录状态下,进入登录页会强制跳转到主页 if (to.name === 'login') { - next({ + return { path: settingsStore.settings.home.fullPath, replace: true, - }) + } } // 如果未开启主页,但进入的是主页,则会进入侧边栏导航第一个模块 else if (!settingsStore.settings.home.enable && to.fullPath === settingsStore.settings.home.fullPath) { if (menuStore.sidebarMenus.length > 0) { - next({ + return { path: menuStore.sidebarMenusFirstDeepestPath, replace: true, - }) + } } - // 如果侧边栏导航第一个模块均无法命中,则还是进入主页 - else { - next() - } - } - // 正常访问页面 - else { - next() } } else { @@ -84,24 +76,21 @@ function setupRoutes(router: Router) { userStore.logout() } // 动态路由生成并注册后,重新进入当前路由 - next({ + return { path: to.path, query: to.query, replace: true, - }) + } } } else { if (to.name !== 'login') { - next({ + return { name: 'login', query: { redirect: to.fullPath !== settingsStore.settings.home.fullPath ? to.fullPath : undefined, }, - }) - } - else { - next() + } } } }) @@ -109,20 +98,14 @@ function setupRoutes(router: Router) { // 当父级路由未配置重定向时,自动重定向到有访问权限的子路由 function setupRedirectAuthChildrenRoute(router: Router) { - router.beforeEach((to, _from, next) => { + router.beforeEach((to) => { const { auth } = useAuth() const currentRoute = router.getRoutes().find(route => route.path === (to.matched.at(-1)?.path ?? '')) if (!currentRoute?.redirect) { const findAuthRoute = currentRoute?.children?.find(route => route.meta?.menu !== false && auth(route.meta?.auth ?? '')) if (findAuthRoute) { - next(findAuthRoute) + return findAuthRoute } - else { - next() - } - } - else { - next() } }) } @@ -130,12 +113,11 @@ function setupRedirectAuthChildrenRoute(router: Router) { // 进度条 function setupProgress(router: Router) { const { isLoading } = useNProgress() - router.beforeEach((_to, _from, next) => { + router.beforeEach(() => { const settingsStore = useSettingsStore() if (settingsStore.settings.app.enableProgress) { isLoading.value = true } - next() }) router.afterEach(() => { const settingsStore = useSettingsStore()