节点类型
约定:整个树形结构节点的层次最多只能三层
在数据库中表示树形结构
创建菜单的数据结构表
插入数据
insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'1\',NULL,\'系统权限菜单\',\'glyphicon glyphicon-th-list\',NULL); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'2\',\'1\',\' 控 制 面 板 \',\'glyphicon glyphicon-dashboard\',\'main.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'3\',\'1\',\'权限管理\',\'glyphicon glyphicon glyphicon-tasks\',NULL); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'4\',\'3\',\' 用 户 维 护 \',\'glyphicon glyphicon-user\',\'user/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'5\',\'3\',\' 角 色 维 护 \',\'glyphicon glyphicon-king\',\'role/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'6\',\'3\',\' 菜 单 维 护 \',\'glyphicon glyphicon-lock\',\'permission/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'7\',\'1\',\' 业 务 审 核 \',\'glyphicon glyphicon-ok\',NULL); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'8\',\'7\',\'实名认证审核\',\'glyphicon glyphicon-check\',\'auth_cert/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'9\',\'7\',\' 广 告 审 核 \',\'glyphicon glyphicon-check\',\'auth_adv/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'10\',\'7\',\'项目审核\',\'glyphicon glyphicon-check\',\'auth_project/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'11\',\'1\',\'业务管理\',\'glyphicon glyphicon-th-large\',NULL); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'12\',\'11\',\'资质维护\',\'glyphicon glyphicon-picture\',\'cert/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'13\',\'11\',\'分类管理\',\'glyphicon glyphicon-equalizer\',\'certtype/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'14\',\'11\',\'流程管理\',\'glyphicon glyphicon-random\',\'process/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'15\',\'11\',\'广告管理\',\'glyphicon glyphicon-hdd\',\'advert/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'16\',\'11\',\'消息模板\',\'glyphicon glyphicon-comment\',\'message/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'17\',\'11\',\'项目分类\',\'glyphicon glyphicon-list\',\'projectType/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'18\',\'11\',\'项目标签\',\'glyphicon glyphicon-tags\',\'tag/index.htm\'); insert into `t_menu` (`id`, `pid`, `name`, `icon`, `url`) values(\'19\',\'1\',\'参数管理\',\'glyphicon glyphicon-list-alt\',\'param/index.htm\');
关联方式
子节点通过pid字段关联到父节点的id字段,建立父子关系
- 根节点的pid为null
- pid:parentID
- 父子关系是一对多的关系
在java类中表示树形结构
基本方式
在Menu类中使用List<Menu>children属性存储当前节点的子节点
为了配合zTree所需要添加的属性
zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。
- pid(parent id)属性:找到父节点
- name属性:作为节点的名称
- icon属性:当前节点使用的图标
- open属性:控制节点是否默认打开
- url属性:点击节点时跳转的位置
按钮增删改查的规则
- Level0:根节点
- 添加子节点
- Level1:分支节点
- 修改
- 添加子节点
- 没有子节点:可以删除
- 有子节点:不能删除
- Level2:叶子节点
- 修改
- 删除