From 9f6476673acf5685dadfe88ad7bbf7b149fe7cbf Mon Sep 17 00:00:00 2001 From: pqcqaq <905739777@qq.com> Date: Sun, 27 Oct 2024 12:49:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E7=A9=BA=E6=A8=A1=E6=9D=BF=E7=9A=84me?= =?UTF-8?q?nu=E6=B7=BB=E5=8A=A0=E6=8E=92=E5=BA=8F=E5=92=8C=E5=8D=95?= =?UTF-8?q?=E9=A1=B9=E4=B8=8D=E5=B1=95=E5=BC=80=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- template/src/features/Console.ts | 35 +++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/template/src/features/Console.ts b/template/src/features/Console.ts index 67e5618..44e3d17 100644 --- a/template/src/features/Console.ts +++ b/template/src/features/Console.ts @@ -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 { 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 { 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() {