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 @@