63 lines
1.6 KiB
JavaScript
63 lines
1.6 KiB
JavaScript
import { Feature } from 'oak-frontend-base';
|
|
;
|
|
;
|
|
const groups = [
|
|
{
|
|
name: 'System', // 系统级别配置
|
|
icon: 'setup_fill',
|
|
},
|
|
];
|
|
const menus = [
|
|
{
|
|
name: 'Dashboard',
|
|
icon: 'document',
|
|
url: '',
|
|
},
|
|
{
|
|
name: 'relationManage',
|
|
icon: 'share',
|
|
url: '/relation/entityList',
|
|
parent: 'System',
|
|
entity: 'relation',
|
|
action: 'create',
|
|
paths: [],
|
|
},
|
|
];
|
|
export default class Menu extends Feature {
|
|
contextMenuFactory;
|
|
console;
|
|
menus;
|
|
constructor(contextMenuFactory, console) {
|
|
super();
|
|
this.contextMenuFactory = contextMenuFactory;
|
|
this.contextMenuFactory.setMenus(menus);
|
|
this.console = console;
|
|
this.console.subscribe(() => {
|
|
this.refreshMenus();
|
|
});
|
|
}
|
|
refreshMenus() {
|
|
/* const roomId = this.console.getRoomId();
|
|
const menus = this.contextMenuFactory.getMenusByContext<IMenu<keyof EntityDict>>('room', roomId);
|
|
const menuGroup = groupBy(menus, 'parent');
|
|
this.menus = (menus as any[]).filter(ele => !ele.parent).concat(
|
|
groups.map((ele) => {
|
|
const { name, icon } = ele;
|
|
const children = menuGroup[name];
|
|
return {
|
|
name,
|
|
icon,
|
|
children,
|
|
};
|
|
}).filter((ele) => !!ele.children)
|
|
);
|
|
this.publish(); */
|
|
}
|
|
getMenus() {
|
|
if (!this.menus) {
|
|
this.refreshMenus();
|
|
}
|
|
return this.menus;
|
|
}
|
|
}
|