From 9337f06f6e9ef9acd8aa5e00459f7bbb9a77edc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wei=5F=E4=BD=B3?= Date: Thu, 13 Nov 2025 15:40:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=E4=BE=A7=E8=BE=B9=E6=A0=8F?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除单个子路由的特殊处理 - 统一使用children方式渲染菜单项 - 优化菜单结构,提升代码可维护性 --- .../sidebar/components/SideMenu.vue | 28 ++----------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/web/src/layout/components/sidebar/components/SideMenu.vue b/web/src/layout/components/sidebar/components/SideMenu.vue index ee8d14b..3822c32 100644 --- a/web/src/layout/components/sidebar/components/SideMenu.vue +++ b/web/src/layout/components/sidebar/components/SideMenu.vue @@ -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 }