2023年6月22日发(作者:)
超级详细的Ztree详解超级详细的Ztree详解1、添加样式、js如果想要hideNodes、showNodes等⽅法,必须加⼊如果不需要那些hideNodes、showNodes等⽅法以只添加⼀个js,代替上⾯的三个js2、html设置⼀个div、ul,注意ul的class是固定的ztree
} } 2、搜索变⾊功能,但是会显⽰全部信息,查询到的结果会显⽰不同的颜⾊ //展开所有节点 function expand_ztree(treeId){ var treeObj = $.eeObj(treeId); All(true); } //节点没有⽗节点,展开,有⽗节点隐藏 function close_ztree(treeId){ var treeObj = $.eeObj(treeId); var nodes = ormToArray(es()); var nodeLength = ; for (var i = 0; i < nodeLength; i++) { if (nodes[i].PARENT_ID == null) { //根节点:展开 Node(nodes[i], true, true, false); } else { //⾮根节点:收起 Node(nodes[i], false, true, false); } } } //查询的onclick时间 function searchByValue(){ searchByFlag_ztree("treeDemo","codeName"); } //得到查询结果,并进⾏设置样式和展开 function searchByFlag_ztree(treeId, searchConditionId){ //<1>.搜索条件 var searchCondition = $('#' + searchConditionId).val(); //<2>.得到模糊匹配搜索条件的节点数组集合 var highlightNodes = new Array(); if (searchCondition != "") { var treeObj = $.eeObj(treeId); //模糊查询 highlightNodes = esByParamFuzzy("CODE_NAME", searchCondition, null); } //<3>.⾼亮显⽰并展⽰【指定节点】 highlightAndExpand_ztree(treeId, highlightNodes); } //展开,并显⽰不同颜⾊ function highlightAndExpand_ztree(treeId, highlightNodes){ var treeObj = $.eeObj(treeId); //<1>. 先把全部节点更新为普通样式 var treeNodes = ormToArray(es()); var nodes = ormToArray(es()[0].children); for (var i = 0; i < ; i++) { treeNodes[i].highlight = false; Node(treeNodes[i]); } //<2>.收起树, 只展开根节点下的⼀级节点 close_ztree(treeId); //<3>.把指定节点的样式更新为⾼亮显⽰,并展开 //<3>.把指定节点的样式更新为⾼亮显⽰,并展开 if (highlightNodes != null) { for (var i = 0; i < ; i++) { //⾼亮显⽰节点,并展开 highlightNodes[i].highlight = true; Node(highlightNodes[i]); //⾼亮显⽰节点的⽗节点的⽗节点....直到根节点,并展⽰ var parentNode = highlightNodes[i].getParentNode(); var parentNodes = getParentNodes_ztree(treeId, parentNode); //展开 Node(parentNodes, true, false, true); Node(parentNode, true, false, true); //设置颜⾊ setFontCss_ztree("",highlightNodes[i]); } } } //递归查找⽗节点 function getParentNodes_ztree(treeId, node){ if (node != null) { var treeObj = $.eeObj(treeId); var parentNode = entNode(); return getParentNodes_ztree(treeId, parentNode); } else { return node; } } //设置颜⾊ function setFontCss_ztree(treeId, treeNode) { if (_ID == null) { //根节点 return {color:"#333", "font-weight":"bold"}; } else if (nt == false){ //叶⼦节点 return (!!ght) ? {color:"#ff0000", "font-weight":"bold"} : {color:"#660099", "font-weight":"normal"}; } else { //⽗节点 return (!!ght) ? {color:"#ff0000", "font-weight":"bold"} : {color:"#333", "font-weight":"normal"}; } } //点击的时候判断节点有没有数据,以便于datadrid是否请求后台刷新 if(nt){ datagrid刷新 }else{ 提⽰ } //获取过滤之外的所有数据 var filterNodes = esByFilter(filters); function filters(node) { return (ght == true); } //获取过滤的所有数据 esByParamFuzzy("CODE_NAME", searchCondition, null); //当焦点放在节点上显⽰新增Logo function addHoverDom(treeId, treeNode) { var sObj = $("#" + + "_span"); if (meFlag || $("#addBtn_"+).length>0) return; var addStr = ""; (addStr); var btn = $("#addBtn_"+); if (btn) ("click", function(){ //弹出easy-ui新增对话框 eDialog(); return false; }); }); }; //当⿏标不在节点的时候,⾃动隐藏新增按钮 function removeHoverDom(treeId, treeNode) { $("#addBtn_"+).unbind().remove(); }; //获取某个节点下的所有节点 //需求:当只能在叶⼦节点上添加数据的时候,但是展现的时候,需要如果点击叶⼦节点显⽰叶⼦节点的数据,点击节点显⽰该节点下的所有叶⼦节点的信息。 //注意:这⾥数据⽤,区分id,是为了去后台进⾏in查询 function getAllChildNodes(treeNode) { var treeObj = $.eeObj("sheetTree");//获取ztree var childNodes = ormToArray(treeNode);//把该节点的下的所有数据转换为数组 var nodes = new Array(); var j = 0; for(i = 0; i < ; i++) { //只有保存叶⼦节点的数据 if(!childNodes[i].isParent){ nodes[j] = childNodes[i].id; //(","); j++; } } return nodes; } //获取该节点下的所有⼦节点 getChildNodes:function(treeNode,result){ if (nt) { var childrenNodes = en; if (childrenNodes) { for (var i = 0; i < ; i++) { result += ',' + childrenNodes[i].id; result = ldNodes(childrenNodes[i], result); } } } return result; } //刷新节点 function refreshNode(id) { var treeObj = $.eeObj("busTree"); var node = eByParam("id", id, null); if (node) { cChildNodes(node, "refresh"); } else { setTimeout(function() { refreshNode(id); }, 10); } } //刷新⽗节点 function refreshParentNode(id) { var treeObj = $.eeObj("busTree"); var node = eByParam("id", id, null); var pNode = entNode(); if (pNode) { refreshNode(); } else { refreshNode("0"); } }//删除根节点的时候,销毁整棵树$.y("busTree");//修改节点名,判断是否为空,或者超出限制function zTreeBeforeRename(treeId, treeNode, newName, isCancel) { if (>10||().length<=0) { if (>10||().length<=0) { ("填写信息不符合规则!"); var treeObj = $.eeObj("treeDemo"); EditName(); return false; } return true;}function zTreeOnRename(event, treeId, treeNodes, isCancel) { //真正触发的时候为undefiend。触发不成功的时候,为true if(isCancel == undefined){ //修改操作 }} //右键显⽰新增,修改,删除(与easy-ui整体类似) //右键,填出编辑框 function zTreeOnRightClick(event, treeId, treeNode) { var treeObj = $.eeObj("busTree"); //设置选中右键节点 Node(treeNode); //这⾥可以为为div添加click事件,进⾏新增,修改,删除操作。 注意:设置选中节点,才能去对应的操作⽅法中获取选中的⼏点 (var treeObj = $.eeObj("busTree"); var nodes = ectedNodes();) $('#configure-tree-menu').menu('show',{left: ,top: }); }; //删除节点的时候需要注意 //由于数据是异步加载的,所以不仅需要进⾏数据删除,还需要进⾏逻辑删除。否则数据没有及时的回显,那么树的状态isParent还没改变。 for (var i=0, l=; i < l; i++) { Node(nodes[i]); } //在onBeforeRemove中操作,异步的判断 //在数据操作成功之后 var treeObj = $.eeObj("busTree"); Node(treeNode); var nodes = ectedNodes(); for (var i=0, l=; i < l; i++) { Node(nodes[i]);//默认是false,如果设置为true,那么就会触发onRemove函数 } //html中的menu
评论列表(0条)