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