给空模板的menu添加排序和单项不展开的功能
This commit is contained in:
parent
b7505c52f4
commit
9f6476673a
|
|
@ -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() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue