fix(projects): dic become link when childrens are all hide

fix the issue https://github.com/soybeanjs/soybean-admin/issues/325
This commit is contained in:
June Wu 2024-02-23 15:58:13 +08:00
parent 3bdcbc71eb
commit adbb164037
3 changed files with 14 additions and 8 deletions

View File

@ -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'
}
}
]

View File

@ -117,15 +117,18 @@ function transformElegantRouteToVueRoute(
// add redirect to child
if (children?.length && !vueRoute.redirect) {
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);

View File

@ -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);