简化侧边栏菜单逻辑
- 移除单个子路由的特殊处理 - 统一使用children方式渲染菜单项 - 优化菜单结构,提升代码可维护性
This commit is contained in:
parent
aa512e6154
commit
9337f06f6e
@ -59,32 +59,10 @@ function getMenuItem(route, basePath = '') {
|
|||||||
|
|
||||||
if (!visibleChildren.length) return menuItem
|
if (!visibleChildren.length) return menuItem
|
||||||
|
|
||||||
if (visibleChildren.length === 1) {
|
|
||||||
// 单个子路由处理
|
|
||||||
const singleRoute = visibleChildren[0]
|
|
||||||
menuItem = {
|
|
||||||
...menuItem,
|
|
||||||
label: singleRoute.meta?.title || singleRoute.name,
|
|
||||||
key: singleRoute.name,
|
|
||||||
path: resolvePath(menuItem.path, singleRoute.path),
|
|
||||||
icon: getIcon(singleRoute.meta),
|
|
||||||
}
|
|
||||||
const visibleItems = singleRoute.children
|
|
||||||
? singleRoute.children.filter((item) => item.name && !item.isHidden)
|
|
||||||
: []
|
|
||||||
|
|
||||||
if (visibleItems.length === 1) {
|
|
||||||
menuItem = getMenuItem(visibleItems[0], menuItem.path)
|
|
||||||
} else if (visibleItems.length > 1) {
|
|
||||||
menuItem.children = visibleItems
|
|
||||||
.map((item) => getMenuItem(item, menuItem.path))
|
|
||||||
.sort((a, b) => a.order - b.order)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
menuItem.children = visibleChildren
|
menuItem.children = visibleChildren
|
||||||
.map((item) => getMenuItem(item, menuItem.path))
|
.map((item) => getMenuItem(item, menuItem.path))
|
||||||
.sort((a, b) => a.order - b.order)
|
.sort((a, b) => a.order - b.order)
|
||||||
}
|
|
||||||
return menuItem
|
return menuItem
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user