思路:在ztree树加载完成之后,根据接口的返回值选遍历返回值,然后查找数的id然后选中
var setting = {
view: {
showIcon: function(treeId, treeNode){return !treeNode.isParent;},
dblClickExpand: true, // true双击打开节点
selectedMulti: false,
autoCancelSelected: false,
expandSpeed: "normal"
},
check: {
enable: true,
chkStyle: "checkbox",
autoCheckTrigger: true,
chkboxType: { "Y" : "ps", "N" : "ps" }
},
data: {
simpleData: {
// enable: true
},
key: {
name: "Mname",
}
},
callback:{ //回调函数
onCheck:function(event,treeId,treeNode){
console.log(treeNode)
}
},
};
var zNodes = getPower(); // 获取数据
var zTreeObj = $.fn.zTree.init($("#ztree"), setting, zNodes);
if(getCheckCode != undefined){
// 第一次进入不会打开,点击 查看权限,默认打开
zTreeObj.expandAll(true);
// ztree树加载完成之后,调用这个方法
checkMaterial()
}
第二步:遍历 从接口获取到的数据,遍历数据,通过id查找节点,然后将节点的 check属性改为true
function checkMaterial(){
var ret = getRoleMenuList(id)
var treeObj = $.fn.zTree.getZTreeObj("ztree");
if(ret !='' && ret.length>0){
var nodes = treeObj.getNodes();//获取所有子节点
for(var i = 0; i < ret.length; i++){
//通过id查找节点
var node = treeObj.getNodeByParam("classId",ret[i].id,null);
//先判断节点是否为空
if(node !=null){
//选中该节点
treeObj.checkNode(node,true,true);
//获取该节点父节点
var parent = node.getParentNode();
if(!parent.open){//如果父节点没有展开则展开父节点
treeObj.expandNode(parent,true,true);
}
}
}
}
}