Ztree使用

一,包

<script src="${APP_PATH }/ztree/jquery.ztree.all-3.5.min.js"></script>

<link rel="stylesheet" href="${APP_PATH }/ztree/zTreeStyle.css"> 

二、html  

<ul id="treeDemo" class="ztree"></ul>

三、js

 function loadTree(){

var setting = {        
                        view : {
                                addDiyDom: function(treeId, treeNode){ //第一个参数,容器的标签ID。第二个参数 :树的节点
                                var icoObj = $("#" + treeNode.tId + "_ico"); // tId = permissionTree_1, $("#permissionTree_1_ico")
                                        if ( treeNode.icon ) { //字符串也可以当作boolean 判断,不是空的,则为true 执行
                                                icoObj.removeClass("button ico_docu ico_open").addClass(treeNode.icon).css("background","");
                                        }
                                }
                       }
                    };
                $.ajax({            
                        url:"${APP_PATH}/permission/loadData.do",
                        type:"post",
                        success:function(result){
                                if(result.success){
                                         var zNodes = result.data ;
                                         $.fn.zTree.init($("#treeDemo"), setting, zNodes);
                                }
                        }            
                    });
            }

四、后端逻辑

List<Permission> perimission = permissionService.queryAllPermission();//查询出所有数据
            Permission root = null;
            Map<Integer,Object> allMap = new  HashMap<Integer,Object>(); //map用于快速查找父节点
            for (Permission permission : perimission) {
                allMap.put(permission.getId(), permission);
            }
            for (Permission permission : perimission) {     //循环给所有节点找爸爸,然后放里边
                if(permission.getPid()==null){
                    root=permission;
                }else{
                    Permission parent = (Permission) allMap.get(permission.getPid()); //找到这个节点父节点
                    parent.getChildren().add(permission);//把孩子放入爸爸的口袋
                }
            }

public class Permission {
    private Integer id;

    private Integer pid;

    private String name;

    private String icon;

    private String url;
    
    private ArrayList<Permission> children = new ArrayList<Permission>();
    
    private boolean open = true;
getxxx......set.....   

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值