oak-pay-business/es/features/Menu.js

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;
}
}