提交 4c658f48 编写于 作者: V vben

perf: the routeModule can ignore the layou configuration without writing

上级 b36d9486
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
- Layout 界面布局样式调整 - Layout 界面布局样式调整
- 优化表格渲染性能 - 优化表格渲染性能
- 表单折叠搜索添图标添加动画 - 表单折叠搜索添图标添加动画
- routeModule 可以忽略 layou 配置不写。方便配置一级菜单
### 🐛 Bug Fixes ### 🐛 Bug Fixes
......
...@@ -87,8 +87,13 @@ export async function getFlatChildrenMenus(children: Menu[]) { ...@@ -87,8 +87,13 @@ export async function getFlatChildrenMenus(children: Menu[]) {
function basicFilter(routes: RouteRecordNormalized[]) { function basicFilter(routes: RouteRecordNormalized[]) {
return (menu: Menu) => { return (menu: Menu) => {
const matchRoute = routes.find((route) => { const matchRoute = routes.find((route) => {
if (route.meta && route.meta.carryParam) { if (route.meta) {
return pathToRegexp(route.path).test(menu.path); if (route.meta.carryParam) {
return pathToRegexp(route.path).test(menu.path);
}
if (route.meta.ignoreAuth) {
return false;
}
} }
return route.path === menu.path; return route.path === menu.path;
}); });
......
...@@ -67,6 +67,6 @@ export interface MenuModule { ...@@ -67,6 +67,6 @@ export interface MenuModule {
} }
export interface AppRouteModule { export interface AppRouteModule {
layout: AppRouteRecordRaw; layout?: AppRouteRecordRaw;
routes: AppRouteRecordRaw[]; routes: AppRouteRecordRaw[];
} }
...@@ -49,8 +49,12 @@ export function transformRouteToMenu(routeModList: AppRouteModule[]) { ...@@ -49,8 +49,12 @@ export function transformRouteToMenu(routeModList: AppRouteModule[]) {
const routeList: AppRouteRecordRaw[] = []; const routeList: AppRouteRecordRaw[] = [];
cloneRouteModList.forEach((item) => { cloneRouteModList.forEach((item) => {
const { layout, routes } = item; const { layout, routes } = item;
layout.children = routes; if (layout) {
routeList.push(layout); layout.children = routes;
routeList.push(layout);
} else {
routeList.push(...routes);
}
}); });
return treeMap(routeList, { return treeMap(routeList, {
conversion: (node: AppRouteRecordRaw) => { conversion: (node: AppRouteRecordRaw) => {
......
...@@ -23,18 +23,24 @@ export function genRouteModule(moduleList: AppRouteModule[]) { ...@@ -23,18 +23,24 @@ export function genRouteModule(moduleList: AppRouteModule[]) {
for (const routeMod of moduleList) { for (const routeMod of moduleList) {
const routes = routeMod.routes as any; const routes = routeMod.routes as any;
const layout = routeMod.layout; const layout = routeMod.layout;
let router = createRouter({ routes, history: createWebHashHistory() }); const router = createRouter({ routes, history: createWebHashHistory() });
const flatList = toRaw(router.getRoutes()).filter((item) => item.children.length === 0); const flatList = (toRaw(router.getRoutes()).filter(
(item) => item.children.length === 0
) as unknown) as AppRouteRecordRaw[];
try { try {
(router as any) = null; (router as any) = null;
} catch (error) {} } catch (error) {}
flatList.forEach((item) => { flatList.forEach((item) => {
item.path = `${layout.path}${item.path}`; item.path = `${layout ? layout.path : ''}${item.path}`;
}); });
layout.children = (flatList as unknown) as AppRouteRecordRaw[]; if (layout) {
ret.push(layout); layout.children = flatList;
ret.push(layout);
} else {
ret.push(...flatList);
}
} }
return ret as RouteRecordRaw[]; return ret as RouteRecordRaw[];
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册