ztree使用

jsp代码

//引入ztree的css与js文件

<div>

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

</div>

<div>

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

</div>


js代码

**引入ztree的css与js文件

var setting={

        data:{

            key:{

                title:"title"

            },

            simpleData:{

                enable:true;

            }

        },

        treeNode:{

            isHidden:true

        },

        callback:{

            onClick:zNodeClick   //点击节点后回调函数

        },

        view:{

            selectedMulti:true,

            fontCss:setHighlight,

            addDiyDom:addDiyDom

        },

        check:{

            enable:true      //设置ztree数可勾选

        },

};

//展示所有节点

$(function(){

    $.ajax({

        type:'post',

        url:contPath+'/q/roleList',     //获取所有的role

        dataType:'json',

        success:function(result){

            $.fn.zTree.init($("#roleTree"),setting,result.data);        //初始化ztree

            var treeObj=$.fn.zTree.getZTreeObj("roleTree");     //获取ztree对象

            zNodes=treeObj.getNodes();       //获取所有ztree节点

            treeObj.selectNode(zNodes[0]);    //默认选中第一个节点

        }

    });

})

//role节点点击事件

function zNodeClick(eventjs,treeId,treeNode,clickFlag){

    $.fn.zTree.init($("#sonTree"),setting,zNodes);

    cancelSelect();    //取消节点选中状态

    var treeObj=$.fn.zTree.getZTreeObj("sonTree");

    treeObj.checkAllNodes(false);     //取消节点选中状态

    $.ajax({

        type:'post',

        url:contPath+'/q/sonList?roleId='+treeNode.id,    //根据roleId获取对应子数

        dataType:'json',

        success:function(result){

            var znodes=result.data;

            for(var i=0;i<znodes.length;i++){

                var nodes=treeObj.getNodesByParam("id",znodes[i].id,null);    //通过id获取所有需要的节点

                if(nodes[0].isParent && nodes[0].children.length>0){}      //判断如果该节点是父节点或者子节点长度大于0,则什么也不做

                else{

                    treeObj.checkNode(nodes[0],true,true);      //否则设置该节点为选中状态

                }

                for(var j=0;j<zNodes.length;j++){

                    var nodes1=treeObj.getNodesByParam("id",zNodes[j].id,null);    //通过id获取所有需要的节点

                    treeObj.setChkDisabled(nodes[0],true,true,true);     //设置节点不可选属性为true,即节点不可以被勾选

                }

            }

        }

    })

}

//取消节点选中状态

function cancelSelect(){

    var treeObj=$.fn.zTree.getZTreeObj("sonTree");     //获取ztree对象

    var disabledNodes=treeObj.getNodesByParam("chkDisabled",true);    //获取所有被设置不能勾选的节点

    for(var i=0;i<disabledNodes.length;i++){      //循环遍历不可选节点,逐个修改属性

        treeObj.setChkDisabled(disabledNodes[i],false);     //设置节点不可选属性为false,即节点可以被勾选

    }

}

//获取所有被选中的节点

sons=treeObj.getCheckedNodes(true);

RoleService.java代码

//获取所有角色

public static Map<String,Object> queryAllRole(HttpServletRequest request) throws SQLException{

    String path=request.getContextPath();

    String imgConn=path+"/js/ztree/img/access.png";     //节点图标

    String imgClose=path+"/js/ztree/img/ztree-close.png";    //父节点关闭图标

    String imgOpen=path+"/js/ztree/img/ztree-open.png";    //父节点打开图标

    List<Map<String,Object>> alist=RoleDao.queryAllRole();

    List<Map<String,Object>> rolelist= new ArrayList<Map<String,Object>>();

    Map<String,Object> aMap = new HashMap<String,Object>();

    for(Map<String,Object> list:alist){

        Map<String,Object> rMap=new HashMap<String,Object>();

        rMap.put("id",list.get("ROLE_ID"));

        rMap.put("name",list.get("ROLE_NAME"));

        rMap.put("pId",list.get("PARENT_ID"));

        rMap.put("open",true);   //父节点默认为打开状态

        rMap.put("icon",imgConn);

        rMap.put("iconOpen",imgOpen);

        rMap.put("iconClose",imgClose);

        rolelist.add(rMap);

    }

    aMap.put("data",rolelist);

    return aMap;

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值