简化侧边栏菜单逻辑

- 移除单个子路由的特殊处理
- 统一使用children方式渲染菜单项
- 优化菜单结构,提升代码可维护性
This commit is contained in:
Wei_佳 2025-11-13 15:40:17 +08:00
parent aa512e6154
commit 9337f06f6e

View File

@ -59,32 +59,10 @@ function getMenuItem(route, basePath = '') {
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)
: []
menuItem.children = visibleChildren
.map((item) => getMenuItem(item, menuItem.path))
.sort((a, b) => a.order - b.order)
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
.map((item) => getMenuItem(item, menuItem.path))
.sort((a, b) => a.order - b.order)
}
return menuItem
}