From 531bfaf1b98829be75e52b34a7275e781d6ec915 Mon Sep 17 00:00:00 2001 From: Soybean Date: Sat, 7 Sep 2024 07:23:38 +0800 Subject: [PATCH] optimize(projects): optimize menu selectedKey --- src/layouts/context/index.ts | 25 ++++++++++++++----- .../global-menu/modules/horizontal-menu.vue | 14 ++--------- .../modules/horizontal-mix-menu.vue | 17 +++---------- .../modules/reversed-horizontal-mix-menu.vue | 16 +++--------- .../global-menu/modules/vertical-menu.vue | 11 ++------ .../global-menu/modules/vertical-mix-menu.vue | 12 ++------- 6 files changed, 32 insertions(+), 63 deletions(-) diff --git a/src/layouts/context/index.ts b/src/layouts/context/index.ts index b2a0c274..8b542644 100644 --- a/src/layouts/context/index.ts +++ b/src/layouts/context/index.ts @@ -8,6 +8,7 @@ export const { setupStore: setupMixMenuContext, useStore: useMixMenuContext } = function useMixMenu() { const route = useRoute(); const routeStore = useRouteStore(); + const { selectedKey } = useMenu(); const activeFirstLevelMenuKey = ref(''); @@ -16,12 +17,7 @@ function useMixMenu() { } function getActiveFirstLevelMenuKey() { - const { hideInMenu, activeMenu } = route.meta; - const name = route.name as string; - - const routeName = (hideInMenu ? activeMenu : name) || name; - - const [firstLevelRouteName] = routeName.split('_'); + const [firstLevelRouteName] = selectedKey.value.split('_'); setActiveFirstLevelMenuKey(firstLevelRouteName); } @@ -68,3 +64,20 @@ function useMixMenu() { getActiveFirstLevelMenuKey }; } + +export function useMenu() { + const route = useRoute(); + + const selectedKey = computed(() => { + const { hideInMenu, activeMenu } = route.meta; + const name = route.name as string; + + const routeName = (hideInMenu ? activeMenu : name) || name; + + return routeName; + }); + + return { + selectedKey + }; +} diff --git a/src/layouts/modules/global-menu/modules/horizontal-menu.vue b/src/layouts/modules/global-menu/modules/horizontal-menu.vue index ade38acd..93df1095 100644 --- a/src/layouts/modules/global-menu/modules/horizontal-menu.vue +++ b/src/layouts/modules/global-menu/modules/horizontal-menu.vue @@ -1,26 +1,16 @@