diff --git a/src/layout/components/sidebar/horizontal.vue b/src/layout/components/sidebar/horizontal.vue index dd8c84c..217fa6c 100644 --- a/src/layout/components/sidebar/horizontal.vue +++ b/src/layout/components/sidebar/horizontal.vue @@ -45,6 +45,13 @@ watch( } ); +watch( + () => route.path, + () => { + menuSelect(route.path, routers); + } +); + function translationCh() { instance.locale = { locale: "zh" }; locale.value = "zh"; diff --git a/src/layout/components/sidebar/vertical.vue b/src/layout/components/sidebar/vertical.vue index 56d1dc8..94b8108 100644 --- a/src/layout/components/sidebar/vertical.vue +++ b/src/layout/components/sidebar/vertical.vue @@ -49,7 +49,10 @@ onBeforeMount(() => { watch( () => route.path, - () => getSubMenuData(route.path) + () => { + getSubMenuData(route.path); + menuSelect(route.path, routers); + } ); diff --git a/src/layout/hooks/nav.ts b/src/layout/hooks/nav.ts index ba7a634..bb13d7a 100644 --- a/src/layout/hooks/nav.ts +++ b/src/layout/hooks/nav.ts @@ -7,6 +7,7 @@ import { storageSession } from "/@/utils/storage"; import { useAppStoreHook } from "/@/store/modules/app"; import { Title } from "../../../public/serverConfig.json"; import { useEpThemeStoreHook } from "/@/store/modules/epTheme"; +import { remainingPaths } from "/@/router/modules/index"; export function useNav() { const pureApp = useAppStoreHook(); @@ -67,6 +68,7 @@ export function useNav() { } function menuSelect(indexPath: string, routers): void { + if (isRemaining(indexPath)) return; let parentPath = ""; const parentPathIndex = indexPath.lastIndexOf("/"); if (parentPathIndex > 0) { @@ -93,6 +95,11 @@ export function useNav() { findCurrentRoute(indexPath, routers); } + // 判断路径是否参与菜单 + function isRemaining(path: string): boolean { + return remainingPaths.includes(path); + } + return { logout, backHome, diff --git a/src/router/modules/index.ts b/src/router/modules/index.ts index 9c76cb2..3adabe4 100644 --- a/src/router/modules/index.ts +++ b/src/router/modules/index.ts @@ -24,3 +24,8 @@ export const constantRoutes: Array = formatTwoStageRoutes( export const constantMenus: Array = ascending(routes).concat( ...remainingRouter ); + +// 不参与菜单的路由 +export const remainingPaths = Object.keys(remainingRouter).map(v => { + return remainingRouter[v].path; +});