fix:菜单复合模式下,点击一级菜单会自动选择首位子菜单,不含子菜单则定位为顶栏本体。
This commit is contained in:
parent
831bd61e02
commit
dae38d9b18
|
|
@ -73,6 +73,7 @@ export const useRouterStore = defineStore('router', () => {
|
||||||
const setLeftMenu = (name) => {
|
const setLeftMenu = (name) => {
|
||||||
sessionStorage.setItem('topActive', name)
|
sessionStorage.setItem('topActive', name)
|
||||||
topActive.value = name
|
topActive.value = name
|
||||||
|
leftMenu.value = []
|
||||||
if (menuMap[name]?.children) {
|
if (menuMap[name]?.children) {
|
||||||
leftMenu.value = menuMap[name].children
|
leftMenu.value = menuMap[name].children
|
||||||
}
|
}
|
||||||
|
|
@ -81,19 +82,12 @@ export const useRouterStore = defineStore('router', () => {
|
||||||
|
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
let topActive = sessionStorage.getItem('topActive')
|
let topActive = sessionStorage.getItem('topActive')
|
||||||
let firstHasChildren = ''
|
|
||||||
asyncRouters.value[0]?.children.forEach((item) => {
|
asyncRouters.value[0]?.children.forEach((item) => {
|
||||||
if (item.hidden) return
|
if (item.hidden) return
|
||||||
menuMap[item.name] = item
|
menuMap[item.name] = item
|
||||||
if (!firstHasChildren && item.children && item.children.length > 0) {
|
|
||||||
firstHasChildren = item.name
|
|
||||||
}
|
|
||||||
topMenu.value.push({ ...item, children: [] })
|
topMenu.value.push({ ...item, children: [] })
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!menuMap[topActive]?.children && firstHasChildren) {
|
|
||||||
topActive = firstHasChildren
|
|
||||||
}
|
|
||||||
setLeftMenu(topActive)
|
setLeftMenu(topActive)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -129,9 +129,13 @@
|
||||||
router.push({ name: index, query, params })
|
router.push({ name: index, query, params })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!routerStore.setLeftMenu(index)) {
|
const leftMenu = routerStore.setLeftMenu(index)
|
||||||
|
if (!leftMenu) {
|
||||||
router.push({ name: index, query, params })
|
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 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue