fix:菜单复合模式下,点击一级菜单会自动选择首位子菜单,不含子菜单则定位为顶栏本体。
This commit is contained in:
@@ -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)
|
||||
})
|
||||
|
||||
|
@@ -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 })
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user