diff --git a/web/src/pinia/modules/router.js b/web/src/pinia/modules/router.js index 8afd8c3e..33ebbc9a 100644 --- a/web/src/pinia/modules/router.js +++ b/web/src/pinia/modules/router.js @@ -73,6 +73,7 @@ export const useRouterStore = defineStore('router', () => { const setLeftMenu = (name) => { sessionStorage.setItem('topActive', name) topActive.value = name + leftMenu.value = [] if (menuMap[name]?.children) { leftMenu.value = menuMap[name].children } @@ -81,19 +82,12 @@ export const useRouterStore = defineStore('router', () => { watchEffect(() => { let topActive = sessionStorage.getItem('topActive') - let firstHasChildren = '' asyncRouters.value[0]?.children.forEach((item) => { if (item.hidden) return menuMap[item.name] = item - if (!firstHasChildren && item.children && item.children.length > 0) { - firstHasChildren = item.name - } topMenu.value.push({ ...item, children: [] }) }) - if (!menuMap[topActive]?.children && firstHasChildren) { - topActive = firstHasChildren - } setLeftMenu(topActive) }) diff --git a/web/src/view/layout/aside/combinationMode.vue b/web/src/view/layout/aside/combinationMode.vue index 22c6c38d..e9f82ecc 100644 --- a/web/src/view/layout/aside/combinationMode.vue +++ b/web/src/view/layout/aside/combinationMode.vue @@ -129,9 +129,13 @@ router.push({ name: index, query, params }) return } - if (!routerStore.setLeftMenu(index)) { + const leftMenu = routerStore.setLeftMenu(index) + if (!leftMenu) { router.push({ name: index, query, params }) + return; } + const firstMenu = leftMenu.find((item) => !item.hidden && item.path.indexOf("http://") === -1 && item.path.indexOf("https://") === -1) + router.push({ name: firstMenu.name, query, params }) } }