$("#userName").focus(function(){
if(this.value == this.defaultValue) {
this.value="";
$(this).css('color','#000');
}
});
$("#userName").blur(function(){
if(this.value == "") {
this.value=this.defaultValue;
$(this).css('color','#ccc');
}
});
var hiddenNodes=[];
var hiddenNodesFinal=[];
function queryData(){
var _keywords=$("#userName").val();
if($("#userName").val()=="输入员工姓名查询"){
_keywords="";
}
var shownNodes=[];
var parentNodesSet=new Set();
//显示上次搜索后被隐藏的结点
zTreeObj.showNodes(hiddenNodesFinal);
//查找不符合条件的叶子节点
function filter(node){
if(node.name.indexOf(_keywords)!=-1){
shownNodes.push(node);
return false;
}
return true;
};
//获取不符合条件的叶子结点
hiddenNodes=zTreeObj.getNodesByFilter(filter);
//放到父节点集合中
for(var i=0;i<shownNodes.length;i++){
addParentNodes(shownNodes[i]);
}
//递归找出所有父节点放到集合中
function addParentNodes(node){
if(node!=null){
var parentNode=node.getParentNode();
if(parentNode!=null){
console.log("parentNode:"+parentNode);
parentNodesSet.add(parentNode);
addParentNodes(parentNode);
}
}else{
return;
}
}
//隐藏节点与父节点求差集找出最终应该隐藏的节点
var a=new Set(hiddenNodes);
var b=parentNodesSet;
var differenceABSet = new Set([...a].filter(x => !b.has(x)));
//集合转数组
hiddenNodesFinal = Array.from(differenceABSet);
//隐藏不符合条件的叶子结点
zTreeObj.hideNodes(hiddenNodesFinal);
}