ruoyi-plus-soybean/src/utils/router/helpers.ts

35 lines
980 B
TypeScript
Raw Normal View History

/**
*
* @param routes -
*/
export function getConstantRouteNames(routes: AuthRoute.Route[]) {
return routes.map(route => getConstantRouteName(route)).flat(1);
}
/**
*
* @param route -
*/
function getConstantRouteName(route: AuthRoute.Route) {
const names = [route.name];
if (route.children?.length) {
names.push(...route.children!.map(item => getConstantRouteName(item)).flat(1));
}
return names;
}
/**
*
* @param routeName - key
* @param menus -
*/
export function getTopLevelMenu(routeName: string, menus: App.GlobalMenuOption[]): App.GlobalMenuOption | undefined {
return menus.find(item => {
if (item.routeName === routeName) return true;
if (Array.isArray(item.children)) {
return getTopLevelMenu(routeName, item.children);
}
return false;
});
}