ztree查找节点功能模块:
/**
*查找节点
*/
var nodeList = [];
$scope.searchNode=function(event, treeNode, treeId) {
var key = $scope.preState.seachValue;
var zTree = $.fn.zTree.getZTreeObj("tree");
if (key != "") {
//updateNodes(false);
clearFlag();
shownodeone();
nodeList = zTree.getNodesByParamFuzzy("name", key);
updateNodes(true);
} else if (key == "") {
//updateNodes(false);
clearFlag();
shownodeone();
}
};
function updateNodes(highlight, treeId) {
var zTree = $.fn.zTree.getZTreeObj("tree");
for (var i = 0, l = nodeList.length; i < l; i++) {
var parentNode = null;
var parentNodes = null;
nodeList[i].highlight = highlight;
console.log("detect");
console.log(nodeList[i]);
zTree.updateNode(nodeList[i]);
parentNode = nodeList[i].getParentNode();
parentNodes = getParentNodes_ztree(treeId, parentNode);
zTree.expandNode(parentNodes, true, false, false);
zTree.expandNode(parentNode, true, false, false);
}
}
function clearFlag(){
var zTree = $.fn.zTree.getZTreeObj("tree");
zTree.expandAll(false);
var nodes = zTree.transformToArray(zTree.getNodes());
var nodeLength = nodes.length;
for (var i = 0; i < nodeLength; i++) {
var parentNode = null;
var parentNodes = null;
nodes[i].highlight = false;
zTree.updateNode(nodes[i]);
}
}
function shownodeone() {
var treeObj = $.fn.zTree.getZTreeObj("tree");
var nodes = treeObj.transformToArray(treeObj.getNodes());
var nodeLength = nodes.length;
for (var i = 0; i < nodeLength; i++) {
if (nodes[i].id == '0') {
//根节点:展开
treeObj.expandNode(nodes[i], true, false, false);
} else {
//非根节点:收起
treeObj.expandNode(nodes[i], false, false, false);
}
}
};
//递归得到指定节点的父节点的父节点....直到根节点
function getParentNodes_ztree(treeId, node) {
if (node != null) {
var treeObj = $.fn.zTree.getZTreeObj(treeId);
var parentNode = node.getParentNode();
return getParentNodes_ztree(treeId, parentNode);
} else {
return node;
}
}
好