zTree插件的入门


前言

zTree入门案例的学习


一、zTree是什么?

zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件。
在这里插入图片描述

二、使用步骤

1.导入

代码如下(示例):

 <!--第一步: 引入ztree的css与js-->
    <link rel="stylesheet" href="/plugins/ztree/css/zTreeStyle/zTreeStyle.css" type="text/css">
    <script type="text/javascript" src="/plugins/ztree/js/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="/plugins/ztree/js/jquery.ztree.core-3.5.js"></script>
    <script type="text/javascript" src="/plugins/ztree/js/jquery.ztree.excheck-3.5.js"></script>
</head>
<body>
    <!--第二步: 预留一个ul标签用于展示树-->
    <ul id="treeDemo" class="ztree"></ul>
</body>

ztree需要数据的结构

var zNodes =[
    { id:1, pId:0, name:"saas管理", open:true},
    { id:11, pId:1, name:"企业管理"},
    { id:111, pId:1, name:"模块管理"}
];

2.通过异步查询数据

 <script>
    //1. 页面加载完毕之后,我们就发出异步请求,请求树的数据
    $(function(){
        $.ajax({
           url:"/system/role/getTreeNodes.do",
           data:{"roleid":"${role.id}"},
           dataType:"json",
           success:function(treeData){
               // 1.定义一个全局参数
               var setting = {
                   check: {
                       enable: true     //是否为复选框
                   },
                   data: {
                       simpleData: {
                           enable: true   //控制是否有子父节点
                       }
                   }
               };

               // 2. 获取到tree所要的数据

               var zNodes =treeData;

               // 3. 把数据与ul标签、全局参数三者整合一起就形成一颗树
               $.fn.zTree.init($("#treeDemo"), setting, zNodes);

           }
        });
    })

</script>

后端代码补充:

 /* 
   url:/system/role/getTreeNodes.do
   作用:得到ztree所要的数据
   参数:roleid : 角色id
   返回值:json对象
    */
    @RequestMapping("/getTreeNodes")
    @ResponseBody
    public List<Map<String,Object>>  getTreeNodes(String roleid) {
        //1. 查询所有模块
        List<Module> moduleList = moduleService.findAll();
        //2. 定义一个集合接收结果
        List<Map<String,Object>> resultList = new ArrayList<>();

        //3.把当前角色的权限id全部查询出来。
       List<String> moduleIdList =  moduleService.findRoleModuleByRoleId(roleid);

        //4. 遍历所有的模块,把模块的信息存储到结果中
        for (Module module : moduleList) {
            //一个module就要转换为一个map
            Map<String,Object> map = new HashMap<>();
            map.put("id",module.getId());
            map.put("pId",module.getParentId());
            map.put("name",module.getName());
            map.put("open",true);
            //如果当前角色拥有模块才选中。
            if(moduleIdList.contains(module.getId())) {
                map.put("checked", true);//选中
            }
            //把map存储结果的List中
            resultList.add(map);
        }
        //5. 返回
        return resultList;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GotBy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值