官网地址:www.jeasyui.net/plugins/186…

前端代码:

$("#menuTreegrid").treegrid({url: SysResource.URL.list(),method: 'get',pagination: false,pageSize: 30,width:'100%',toolbar: '#SysResourceToolbar',idField: 'menuId',treeField: 'name',parentField: 'parentId', //父级菜单singleSelect: false,collapsible: false, // panel是否折叠rownumbers: true,nowrap: false, // 允许换行autoRowHeight: false, //自动行高autoRowWidth: true,animate:true,columns: [[{field: 'ck', checkbox: true},{field: 'menuId', title: '主键', hidden: true},{field: 'name', title: '菜单名称', width: '10%', hidden: false},{field: 'url', title: '菜单路径', width: '10%', hidden: false },{field: 'description', title: '菜单描述', width: '7.917%', hidden: false},{field: 'perms', title: '授权标识', width: '20%', hidden: false},{field: 'orderNum', title: '排序', width: '3%', hidden: false},{field: 'delFlag',title: '状态',width: '3%',hidden: false,formatter: function (value, row, index) {return value == 0 ? '启用' : '停用';}},{field: 'type',title: '资源类别',width: '5%',hidden: false,formatter: function (value, row, index) {return value == 0 ? '目录' : value == 1 ? '菜单' : '按钮';}},]],//对返回的数据进行处理,便于显示树形结构loadFilter: function (resultData) {return resultData.data;},//设置选中事件,清除之前的行选择onClickRow: function (row) {$("#menuTreegrid").treegrid("unselectAll");$("#menuTreegrid").treegrid("selectRow",row.menuId);},
});
复制代码

数据库结构:

CREATE TABLE `sys_menu` (`menu_id` bigint(20) NOT NULL AUTO_INCREMENT,`parent_id` bigint(20) DEFAULT NULL COMMENT '父菜单ID,一级菜单为0',`name` varchar(50) DEFAULT NULL COMMENT '菜单名称',`description` varchar(255) DEFAULT NULL COMMENT '描述',`url` varchar(200) DEFAULT NULL COMMENT '菜单URL',`perms` varchar(500) DEFAULT NULL COMMENT '授权(多个用逗号分隔,如:user:list,user:create)',`type` int(11) DEFAULT NULL COMMENT '类型   0:目录   1:菜单   2:按钮',`icon` varchar(50) DEFAULT NULL COMMENT '菜单图标',`order_num` int(11) DEFAULT NULL COMMENT '排序',`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',`create_time` bigint(50) DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) DEFAULT NULL COMMENT '修改人',`update_time` bigint(50) DEFAULT NULL COMMENT '修改时间',`del_flag` tinyint(4) DEFAULT '0' COMMENT '是否删除  1:删除、 0:正常',PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8 COMMENT='菜单管理';
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('1', '0', '系统管理', '系统', NULL, NULL, '0', 'fa fa-cog', '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('2', '1', '员工管理', '管理员', '/user', NULL, '1', 'fa fa-user', '1', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('3', '1', '角色管理', '角色', '/role', NULL, '1', 'fa fa-user-secret', '2', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('4', '1', '菜单管理', '菜单', '/menu', NULL, '1', 'fa fa-th-list', '3', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('15', '2', '查看', NULL, NULL, 'sys:user:list,sys:user:info', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('16', '2', '新增', NULL, NULL, 'sys:user:save,sys:role:select', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('17', '2', '修改', NULL, NULL, 'sys:user:update,sys:role:select', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('18', '2', '删除', NULL, NULL, 'sys:user:delete', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('19', '3', '查看', NULL, NULL, 'sys:role:list,sys:role:info', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('20', '3', '新增', NULL, NULL, 'sys:role:save,sys:menu:perms', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('21', '3', '修改', NULL, NULL, 'sys:role:update,sys:menu:perms', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('22', '3', '删除', NULL, NULL, 'sys:role:delete', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('23', '4', '查看', NULL, NULL, 'sys:menu:list,sys:menu:info', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('24', '4', '新增', NULL, NULL, 'sys:menu:save,sys:menu:select', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('25', '4', '修改', NULL, NULL, 'sys:menu:update,sys:menu:select', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('26', '4', '删除', NULL, NULL, 'sys:menu:delete', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('31', '1', '部门管理', '部门', '/dept', NULL, '1', 'fa fa-file-code-o', '1', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('32', '31', '查看', NULL, NULL, 'sys:dept:list,sys:dept:info', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('33', '31', '新增', NULL, NULL, 'sys:dept:save,sys:dept:select', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('34', '31', '修改', NULL, NULL, 'sys:dept:update,sys:dept:select', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('35', '31', '删除', NULL, NULL, 'sys:dept:delete', '2', NULL, '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('41', '0', '商品管理', '商品', NULL, NULL, '0', 'fa fa-cog', '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('42', '41', '商品1', NULL, 'modules/sys/user.html', NULL, '1', 'fa fa-user', '1', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('43', '41', '商品2', NULL, 'modules/sys/user.html', NULL, '1', 'fa fa-user', '1', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('44', '41', '商品3', NULL, 'modules/sys/user.html', NULL, '1', 'fa fa-user', '1', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('45', '0', '订单管理', '交易', NULL, NULL, '0', 'fa fa-cog', '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('46', '0', '结算管理', '结算', NULL, NULL, '0', 'fa fa-cog', '0', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('47', '45', '订单列表', NULL, 'modules/sys/user.html', NULL, '1', 'fa fa-user', '1', NULL, NULL, NULL, NULL, '0');
INSERT INTO `localdb`.`sys_menu` (`menu_id`, `parent_id`, `name`, `description`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('48', '46', '结算管理', NULL, 'modules/sys/user.html', NULL, '1', 'fa fa-user', '1', NULL, NULL, NULL, NULL, '0');复制代码

Java后台核心代码:

public List<SysMenuEntity> queryToTreeList(){List<SysMenuEntity> menuList = sysMenuMapper.queryList();if (menuList != null && menuList.size() > 0) {ArrayList child = new ArrayList<SysMenuEntity>();child.addAll(menuList);Iterator<SysMenuEntity> dept = menuList.iterator();while (dept.hasNext()){SysMenuEntity resource = dept.next();List<SysDeptEntity> childList = this.getChildList(resource.getMenuId(),child);if(resource.getParentId()!=0 && (childList == null || childList.size()==0) ){dept.remove();}else{resource.setChildren(childList);}}}if (menuList != null && menuList.size() > 0) {Iterator<SysMenuEntity> menu = menuList.iterator();while (menu.hasNext()){SysMenuEntity resource = menu.next();if(resource.getParentId()!=0){menu.remove();}}}return menuList;
}
List<SysMenuEntity> getChildList(Long parentId,List<SysMenuEntity> deptList){List<SysMenuEntity> childList =new ArrayList<>();if (deptList != null && deptList.size() > 0) {for (SysMenuEntity resource : deptList) {if(parentId.equals(resource.getParentId())){childList.add(resource);}}}return childList;
}
复制代码

转载于:https://juejin.im/post/5cea0c3de51d4556d86c7a38

EasyUI之Tree树形结构(一)相关推荐

  1. ztree和php结合实例,实例详解jQuery EasyUI结合zTree树形结构制作web页面

    JQuery EasyUI 结合 zTree树形结构制作web页面.easyui用起来比较简单,很好的封装了jquery的部分功能,使用起来更加方便,但是从1.2.3版本以后,商业用途是需要付费的,z ...

  2. 使用ztree.js,受益一生,十分钟学会使用tree树形结构插件

    看到ztree.js,这几个字眼,毋庸置疑,那肯定就是tree树形结构了,曾经的swing年代有jtree,后来jquery年代有jstree和treeview,虽然我没写过,但是我见过,一些小功能做 ...

  3. java 树结构_Java通用tree树形结构

    前言 现在大部分都是后端封装树形结构,第一次做的时候想从网上找通用,发现大部分都是要用类的get/set方法,不一样就要改,毕竟懒,改就改改,后来发现部门要,地区要,分类要,于是想着就把之前的用注解和 ...

  4. 把数据转换为在内存中Tree(树形结构)。_备战秋招:一文搞定数据库常见面试题...

    点击上方"蓝字",关注了解更多 1.数据库范式 第一范式:列不可分,eg:[联系人](姓名,性别,电话),一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF: 第 ...

  5. 关于element tree树形结构设置默认展开第一级,第二级,第三级,以此类推

    官方default-expand-all是否默认展开所有节点,这个在这里已经不够用了. 第一步:设置node-key属性,每个树节点用来作为唯一标识的属性,整棵树应该是唯一的.例如:node-key= ...

  6. XML Tree(树形结构)

    xml文档(xml document)使用树形结构表达,以根结点root为开始,逐渐向下发散.它使用一种可自我描述的简单的语法. 一个xml文档分为文件序言(declaration)和文件主体两个大的 ...

  7. 03【若依框架解读】Tree树形结构的控制(菜单,部门)

    背景 若依管理框架中包含了不少菜单树和权限树的控制,主要实现的方式是递归,比较容易阅读和理解.构建属性结构本身是开发中非常常见的场景.掌握后非常容易在工作中使用. 属性结构控制 后端返回列表,前端控制 ...

  8. 把数据转换为在内存中Tree(树形结构)。_Linux的中断处理机制 [二] - 数据结构(2)...

    Linux的中断处理机制 [一] - 数据结构(1) 上文提到,每个IRQ同时有"irq"和"hwirq"两个编号.这里"hwirq"是硬件 ...

  9. ElementUI Tree 树形结构展示

    效果图 实现参考ElementUI提供的控件 官网链接:ElementUITree 树形控件 我使用了节点过滤这个控件,以下为ElementUI官方提供的代码. 在需要对节点进行过滤时,调用 Tree ...

最新文章

  1. Windows Phone 7第一次亲密接触
  2. XebiaLabs DevOps平台推出软件发布风险和合规性管理功能
  3. Scrapy 爬虫教程导航
  4. Android_bug之Default Activity not found
  5. 开源wms php,BIWEB WMS门户网站PHP开源建站系统
  6. 2021高考成绩查询截图,科目四2021模拟考试成绩截图
  7. 华为P40或将搭载鸿蒙,华为P40或将在明年3月发布,很有可能是首部搭载鸿蒙的手机...
  8. 如何仅凭 README 就名列 GitHub No.1 并收获上万 Star?
  9. 【debug】googlecode 使用代理svn下载代码
  10. java 最新手机号校验
  11. 学校机房计算机类型,学校计算机机房的管理和维护建议原稿(备份存档)
  12. 奥托尼克斯接近开关型号_奥托尼克斯接近开关型号如何选
  13. 网站图片怎么优化搜索排名
  14. Ubuntu 开机时间
  15. python pandas 讲解ppt_Python数据分析之pandas基本功能讲解
  16. 【SAP】根据生产订单号查询序列号并导出序列号数据
  17. js前端判断登录超时即清除登录状态
  18. 计算机处理器i5和i7,i5与i7有什么区别 酷睿i5和i7区别汇总【详细介绍】
  19. 【概念】等位基因相关概念辨析
  20. cPython的GIL

热门文章

  1. ASP.NET MVC4中用 BundleCollection
  2. 高性能IO设计的Reactor和Proactor模式(转)
  3. Asp.net报表制作 OpenFlashChart免费图表组件
  4. Linux(Ubuntu) lib 缺失问题
  5. 极大似然估计的渐进正态性
  6. 在java中对null的理解
  7. HBase 配置详解
  8. windows server 2012 R2 standard 评估版过期重启
  9. Ribbon中的负载均衡算法实现
  10. 10桌面管理文件收纳_二十余件精选桌面好物推荐,让学习工作生活满满正能量!...