From aea8605a601c725b7592b22575ebc194348b273f Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Mon, 28 Feb 2022 22:33:56 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=90=8C=E6=AD=A5=E5=AE=8C=E6=95=B4?= =?UTF-8?q?=E7=89=88=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/components/sidebar/horizontal.vue | 7 +++++++ src/layout/components/sidebar/vertical.vue | 5 ++++- src/layout/hooks/nav.ts | 7 +++++++ src/router/modules/index.ts | 5 +++++ 4 files changed, 23 insertions(+), 1 deletion(-) 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; +});