diff --git a/src/router/elegant/routes.ts b/src/router/elegant/routes.ts index 8c6e5067..25498774 100644 --- a/src/router/elegant/routes.ts +++ b/src/router/elegant/routes.ts @@ -194,7 +194,9 @@ export const generatedRoutes: GeneratedRoute[] = [ component: 'view.multi-menu_first_child', meta: { title: 'multi-menu_first_child', - i18nKey: 'route.multi-menu_first_child' + i18nKey: 'route.multi-menu_first_child', + hideInMenu: true, + // activeMenu: 'multi-menu_first' } } ] diff --git a/src/router/elegant/transform.ts b/src/router/elegant/transform.ts index 56189ef8..4a7d5270 100644 --- a/src/router/elegant/transform.ts +++ b/src/router/elegant/transform.ts @@ -114,18 +114,21 @@ function transformElegantRouteToVueRoute( } } - + // add redirect to child if (children?.length && !vueRoute.redirect) { - vueRoute.redirect = { - name: children[0].name - }; + const allHide = children.every(childrenSingle => childrenSingle?.meta?.hideInMenu === true); + if (!allHide) { + vueRoute.redirect = { + name: children[0].name + }; + } } - + if (children?.length) { const childRoutes = children.flatMap(child => transformElegantRouteToVueRoute(child, layouts, views)); - if(isFirstLevelRoute(route)) { + if (isFirstLevelRoute(route)) { vueRoute.children = childRoutes; } else { vueRoutes.push(...childRoutes); diff --git a/src/store/modules/route/shared.ts b/src/store/modules/route/shared.ts index 22b4945e..e14b6cd4 100644 --- a/src/store/modules/route/shared.ts +++ b/src/store/modules/route/shared.ts @@ -86,7 +86,8 @@ export function getGlobalMenusByAuthRoutes(routes: ElegantConstRoute[]) { const menu = getGlobalMenuByBaseRoute(route); if (route.children?.length) { - menu.children = getGlobalMenusByAuthRoutes(route.children); + const allHide = route.children.every(childrenSingle => childrenSingle?.meta?.hideInMenu === true); + if (!allHide) menu.children = getGlobalMenusByAuthRoutes(route.children); } menus.push(menu);