diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/ztree/ZTreeNode.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/ztree/ZTreeNode.java new file mode 100644 index 000000000..f4a1457f9 --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/ztree/ZTreeNode.java @@ -0,0 +1,104 @@ +package cn.stylefeng.roses.kernel.system.pojo.ztree; + +/** + * jquery ztree 插件的节点封装 + * + * @author fengshuonan + * @date 2021/1/6 21:47 + */ +public class ZTreeNode { + + /** + * 节点id + */ + private Long id; + + /** + * 父节点id + */ + private Long pId; + + /** + * 节点名称 + */ + private String name; + + /** + * 是否打开节点 + */ + private Boolean open; + + /** + * 是否被选中 + */ + private Boolean checked; + + /** + * 节点图标 single or group + */ + private String iconSkin; + + /** + * 创建ztree的父级节点 + * + * @author fengshuonan + * @date 2021/1/6 21:47 + */ + public static ZTreeNode createParent() { + ZTreeNode zTreeNode = new ZTreeNode(); + zTreeNode.setChecked(true); + zTreeNode.setId(0L); + zTreeNode.setName("顶级"); + zTreeNode.setOpen(true); + zTreeNode.setpId(0L); + return zTreeNode; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getpId() { + return pId; + } + + public void setpId(Long pId) { + this.pId = pId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Boolean getOpen() { + return open; + } + + public void setOpen(Boolean open) { + this.open = open; + } + + public Boolean getChecked() { + return checked; + } + + public void setChecked(Boolean checked) { + this.checked = checked; + } + + public String getIconSkin() { + return iconSkin; + } + + public void setIconSkin(String iconSkin) { + this.iconSkin = iconSkin; + } +} diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/controller/SysMenuController.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/controller/SysMenuController.java index 0ec7cc511..ec622b13f 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/controller/SysMenuController.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/controller/SysMenuController.java @@ -7,11 +7,13 @@ import cn.stylefeng.roses.kernel.resource.api.annotation.PostResource; import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuRequest; +import cn.stylefeng.roses.kernel.system.pojo.ztree.ZTreeNode; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; /** * 系统菜单控制器 @@ -84,6 +86,17 @@ public class SysMenuController { return new SuccessResponseData(sysMenuService.layuiList(sysMenuRequest)); } + /** + * 获取菜单的树形列表(用于选择上级菜单)(layui版本) + * + * @author fengshuonan + * @date 2021/1/6 17:09 + */ + @GetResource(name = "获取菜单的树形列表(用于选择上级菜单)(layui版本)", path = "/sysMenu/layuiSelectParentMenuTreeList") + public List layuiSelectParentMenuTreeList() { + return sysMenuService.layuiSelectParentMenuTreeList(); + } + /** * 系统菜单列表,树形结构,用于菜单管理界面的列表展示 * diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/SysMenuService.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/SysMenuService.java index cf848c883..d096ede86 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/SysMenuService.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/SysMenuService.java @@ -29,6 +29,7 @@ import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuRequest; import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdIndexMenuTreeNode; import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiAppIndexMenus; import cn.stylefeng.roses.kernel.system.pojo.menu.other.MenuSelectTreeNode; +import cn.stylefeng.roses.kernel.system.pojo.ztree.ZTreeNode; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -86,6 +87,15 @@ public interface SysMenuService extends IService { */ List layuiList(SysMenuRequest sysMenuRequest); + /** + * 获取菜单的树形列表(用于选择上级菜单)(layui版本) + * + * @return 菜单树 + * @author fengshuonan + * @date 2021/1/6 21:47 + */ + List layuiSelectParentMenuTreeList(); + /** * 系统菜单列表,树形结构,用于菜单管理界面的列表展示 * diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java index 15783a31f..0425571e2 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java @@ -54,6 +54,7 @@ import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuRequest; import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdIndexMenuTreeNode; import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiAppIndexMenus; import cn.stylefeng.roses.kernel.system.pojo.menu.other.MenuSelectTreeNode; +import cn.stylefeng.roses.kernel.system.pojo.ztree.ZTreeNode; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -61,6 +62,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Set; @@ -168,6 +170,24 @@ public class SysMenuServiceImpl extends ServiceImpl impl return list; } + @Override + public List layuiSelectParentMenuTreeList() { + + ArrayList zTreeNodes = new ArrayList<>(); + + List allMenus = this.list(); + for (SysMenu sysMenu : allMenus) { + ZTreeNode zTreeNode = new ZTreeNode(); + zTreeNode.setId(sysMenu.getMenuId()); + zTreeNode.setpId(sysMenu.getMenuParentId()); + zTreeNode.setName(sysMenu.getMenuName()); + zTreeNode.setOpen(false); + zTreeNodes.add(zTreeNode); + } + + return zTreeNodes; + } + @Override public List list(SysMenuRequest sysMenuRequest) {