From 0440fbe56bef73a9a488bd78007ef3b1aa872abd Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Sun, 8 Aug 2021 21:30:17 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.1.1=E3=80=91=E3=80=90menu=E3=80=91?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8F=9C=E5=8D=95=E5=8F=B6=E5=AD=90=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E7=9A=84=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/modular/menu/entity/SysMenu.java | 7 +++++++ .../menu/factory/AntdMenusFactory.java | 19 +++++++++++++++++++ .../menu/service/impl/SysMenuServiceImpl.java | 3 +++ 3 files changed, 29 insertions(+) diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenu.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenu.java index fdf1bc2b2..3bff91ad8 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenu.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/entity/SysMenu.java @@ -209,6 +209,13 @@ public class SysMenu extends BaseEntity implements AbstractTreeNode { @ChineseDescription("父级菜单的名称") private String menuParentName; + /** + * 是否是叶子节点菜单 + */ + @TableField(exist = false) + @ChineseDescription("是否是叶子节点菜单") + private Boolean leafFlag; + @Override public String getNodeId() { return menuId.toString(); 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 f36d837e4..43247152f 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 @@ -91,6 +91,25 @@ public class AntdMenusFactory { return antdMenuSelectTreeNode; } + /** + * 填充叶子节点的标识 + * + * @author fengshuonan + * @date 2021/8/8 15:22 + */ + public static void fillLeafFlag(List sysMenuList) { + for (SysMenu sysMenu : sysMenuList) { + sysMenu.setLeafFlag(true); + + // 判断这个节点下面有没有节点 + for (SysMenu tempMenu : sysMenuList) { + if (tempMenu.getMenuPids().contains("[" + sysMenu.getMenuId() + "]")) { + sysMenu.setLeafFlag(false); + } + } + } + } + /** * 模型转化 * diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java index e6346cd84..be1c79749 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java @@ -221,6 +221,9 @@ public class SysMenuServiceImpl extends ServiceImpl impl List sysMenuList = this.findList(sysMenuRequest); + // 遍历菜单,设置是否是叶子节点属性 + AntdMenusFactory.fillLeafFlag(sysMenuList); + // 将结果集处理成树 return new DefaultTreeBuildFactory().doTreeBuild(sysMenuList); }