From 160f21b06b92daa64c4c10dfe33c3caa3d473aed Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Thu, 29 Sep 2022 11:29:01 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.2.5=E3=80=91=E3=80=90role=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8E=88=E6=9D=83=E7=95=8C=E9=9D=A2=E5=85=A8?= =?UTF-8?q?=E9=80=89=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modular/menu/factory/AntdMenusFactory.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/AntdMenusFactory.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/AntdMenusFactory.java index 574d6600b..f40260dd1 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/AntdMenusFactory.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/AntdMenusFactory.java @@ -383,16 +383,32 @@ public class AntdMenusFactory { // 遍历所有菜单中的按钮,将选中标识加上 for (MenuAndButtonTreeResponse menuAndButtonTreeResponse : menuAndButtonTreeResponses) { + + // 获取菜单中所有的按钮 List buttons = menuAndButtonTreeResponse.getButtons(); + + // 当前菜单中的所有按钮的数量 + int totalSize = buttons.size(); + + // 当前菜单中所有已选择的数量 + int totalSelectSize = 0; + for (MenuAndButtonTreeResponse button : buttons) { for (SysRoleMenuButtonDTO sysRoleMenuButtonDTO : roleMenuButtonList) { if (sysRoleMenuButtonDTO.getButtonId().equals(button.getId())) { button.setChecked(true); + totalSelectSize++; } } } + + // 如果所有按钮都选中行,则设置菜单的选中标识 + if (totalSelectSize == totalSize) { + menuAndButtonTreeResponse.setChecked(true); + } } return menuAndButtonTreeResponses; } + }