fix:菜单复合模式下,点击一级菜单会自动选择首位子菜单,不含子菜单则定位为顶栏本体。

This commit is contained in:
pixelmaxQM
2025-02-09 19:56:51 +08:00
parent 831bd61e02
commit dae38d9b18
2 changed files with 6 additions and 8 deletions

View File

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

View File

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