17 lines
526 B
TypeScript
17 lines
526 B
TypeScript
/**
|
|
* 根据权限过滤菜单
|
|
*/
|
|
export const filterMenu = (permissions: string[], menus: any[]) => {
|
|
return menus.filter((item) => {
|
|
let isShow = false;
|
|
if (item.showPage && item.showPage.length) {
|
|
isShow = item.showPage.every((pItem: any) => {
|
|
return permissions.includes(pItem);
|
|
});
|
|
}
|
|
if (item.children) {
|
|
item.children = filterMenu(permissions, item.children);
|
|
}
|
|
return isShow || !!item.children?.length;
|
|
});
|
|
}; |