给空模板的menu添加排序和单项不展开的功能

This commit is contained in:
pqcqaq 2024-10-27 12:49:25 +08:00
parent b7505c52f4
commit 9f6476673a
1 changed files with 25 additions and 10 deletions

View File

@ -3,18 +3,19 @@ import { EntityDict } from '@project/oak-app-domain';
import { groupBy } from 'oak-domain/lib/utils/lodash';
import { ConsoleModeIllegalException } from '@project/types/Exception';
type GroupName = 'System';
type Groups = {
icon: string;
name: GroupName;
order?: number;
}[];
interface IMenu extends Menu<EntityDict, keyof EntityDict> {
name: string;
icon: string;
parent: GroupName;
order?: number;
};
export interface OMenu {
@ -30,6 +31,7 @@ const groups: Groups = [
{
name: 'System', // 系统级别配置
icon: 'setup_fill',
order: 0,
},
];
@ -40,12 +42,14 @@ const menus: IMenu[] = [
url: '/userRelation/manage',
parent: 'System',
destEntity: 'userRelation',
order: 1,
},
{
name: 'relationManage',
icon: 'share',
url: '/relation/entityList',
parent: 'System',
order: 2,
},
];
@ -57,15 +61,26 @@ export default class Console extends BaseConsole<EntityDict, IMenu> {
const menus = this.getAvailMenus();
const menuGroup = groupBy(menus, 'parent');
return groups.map((ele) => {
const { name, icon } = ele;
const children = menuGroup[name];
return {
name,
icon,
children,
};
}).filter((ele) => !!ele.children);
const groupedMenus = groups
.map((ele) => {
const { name, icon, order } = ele;
const children = menuGroup[name];
return children
? {
name,
icon,
children,
order,
}
: null;
})
.filter((ele) => !!ele);
// 添加没有父分组的菜单项
const ungroupedMenus = menuGroup['undefined'] || [];
const allMenus = [...groupedMenus, ...ungroupedMenus];
return allMenus.sort((a, b) => (a.order || 0) - (b.order || 0));
}
getName() {