function searchFun() {
var value;
if($("#code2").val()!=null && $("#code2").val()!=''){
value="【"+$("#code2").val()+"】"+$("#productName").val();
}else {
value=$("#productName").val();
}
var allNode = zTreeObj.transformToArray(zTreeObj.getNodes());
zTreeObj.hideNodes(allNode);//隱藏所有節點
hiddenNodes = zTreeObj.getNodesByParamFuzzy("name", value, null);//搜索含有value關鍵字的節點
hiddenNodes = zTreeObj.transformToArray(hiddenNodes);//轉化為數組
for(var n in hiddenNodes){//遍歷
findParent(zTreeObj,hiddenNodes[n]);//找到其父節點
}
zTreeObj.showNodes(hiddenNodes);//顯示滿足的所有節點
/*highlightAndExpand_ztree(hiddenNodes);*/
if (value == "") {
zTreeObj.expandAll(false);
}
}
function findParent(treeObj,node){
treeObj.expandNode(node,true,true,true);//展開treeObj中所有節點並獲得焦點
var pNode = node.getParentNode();//獲取父節點
findNextNode(node);//后一個節點
findPreNode(node);//前一個節點
if(pNode != null){
hiddenNodes.push(pNode);//
findParent(treeObj,pNode);//遞歸查詢上上一級父節點
}
}
function findNextNode(node) {//獲取節點的下一個節點
var nextNode=node.getNextNode();
if(nextNode!=null){
if(nextNode.lvl==1){
return;
}
hiddenNodes.push(nextNode);
var children=nextNode.children;
if(children){
for(var i in children){
hiddenNodes.push(children[i]);
}
}
findNextNode(nextNode);//遞歸獲取
}
}
function findPreNode(node) {//獲取節點的上一個節點
var preNode=node.getPreNode();
if(preNode!=null){
if(preNode.lvl==1){
return;
}
hiddenNodes.push(preNode);
var children=preNode.children;//獲取節點的子節點集合
if(children){
for(var i in children){
hiddenNodes.push(children[i]);
}
}
findPreNode(preNode);
}
}
/!**
* 高亮顯示並展示
* @param highlightNodes 需要高亮顯示的節點數組
*!/
function highlightAndExpand_ztree(highlightNodes) {
//先把全部節點更新為普通樣式
for(var i = 0; i < highlightNodes.length; i++) {
highlightNodes[i].highlight = false;
zTreeObj.updateNode(highlightNodes[i]);
}
//把指定節點的樣式更新為高亮顯示,並展開
if(highlightNodes != null) {
for(var i = 0; i < highlightNodes.length; i++) {
//高亮顯示節點,並展開
highlightNodes[i].highlight = true;
var t = highlightNodes[i].name;
t = "span style='color:red'" + t + "</span";//改變顏色
highlightNodes[i].name = t;
zTreeObj.updateNode(highlightNodes[i]);//執行修改
zTreeObj.expandNode(highlightNodes[i], true, true, true);
}
}
}