/** * 权限路由排序 * @param routes - 权限路由 */ export function sortRoutes(routes: AuthRoute.Route[]) { return routes .sort((next, pre) => Number(next.meta?.order) - Number(pre.meta?.order)) .map(i => { if (i.children) sortRoutes(i.children); return i; }); } /** * 处理全部导入的路由模块 * @param modules - 路由模块 */ export function handleModuleRoutes(modules: AuthRoute.RouteModule) { const routes: AuthRoute.Route[] = []; Object.keys(modules).forEach(key => { const item = modules[key].default; if (item) { routes.push(item); } else { window.console.error(`路由模块解析出错: key = ${key}`); } }); return sortRoutes(routes); }