关于ztree搜索问题
@zTree 你好,想跟你请教个问题:我有个业务 需要树,内容数据子节点科室 孙子节点是所在人员 ,我启用的异步,在点击科室的时候启动异步加载数据出来 没问题 但是,我如果添加一个搜索功能,不如名字,那么你必须先点击那个子节点科室讲人员信息加载出来,然后再输入内容才能查询出结果(PS:如果客户之间输入id的信息呢??客户没有点子节点科室,是找不到数据的)
//查询事件
$("#tosearch").on("click",function(){
var treeObj = $.fn.zTree.getZTreeObj("host");
var idnode= treeObj.getNodesByParam("name", "胡歌", null);//没有点击子节点科室时,查询的时候是个null,只有当你点击了这个节点 你再输入查询才有 如果这么做 我感觉我设计的思路就是个MDZZ PS:刚刚出来7个月
});
var init = function(){
$.ajax({
type:"post",
dataType: 'json',
url:"${base}/personnelFile/init.do",
success:function(msg){
var ogrin = msg.ogrin;//部门组织架构
var childrenogin = msg.childrenogin;//子架构
var userlist = msg.userlist;//所以用户
if(<#if powerMap.alldept?exists>true<#else>false</#if>){
for(var i = 0 ; i<ogrin.length;i++){
var arraytemp=new Array();
ogrin[i].isParent=true;
ogrin[i].flag=1;
//取出子节架构 如果 节点的id = childrenorin 拼装array
for(var j = 0 ; j<childrenogin.length;j++){
if(ogrin[i].id==childrenogin[j].pid){
childrenogin[j].flag=2;
childrenogin[j].isParent=true;
arraytemp.push(childrenogin[j]);
}
}
ogrin[i].children=arraytemp;
}
initajxNode(msg.root,msg.ogrin);
}
if(<#if powerMap.thisdept?exists>true<#else>false</#if>){
//先查
var point = new Array()
var arraytemp = new Array();
var pidtemp ="";
for(var i = 0 ; i<childrenogin.length;i++){
if(msg.groupid==childrenogin[i].id){
pidtemp = childrenogin[i].pid;
}
}
for(var i = 0 ; i<childrenogin.length;i++){
if(pidtemp==childrenogin[i].pid){//护士长 护士 普通
console.log(pidtemp+"---------"+childrenogin[i].pid)
childrenogin[i].flag= 2;
childrenogin[i].hs= "ok";
childrenogin[i].isParent= true;
point.push(childrenogin[i]);
}
}
for(var i = 0 ; i<ogrin.length;i++){
ogrin[i].isParent=true;
ogrin[i].flag=1;
childrenogin[i].pt= "ok";
//console.log(point);
if(ogrin[i].id==point[0].pid){
ogrin[i].open = true;
arraytemp.push(ogrin[i]);
}
}
arraytemp[0].children=point;
initajxNode(msg.root,arraytemp);
}
}
});
};
function zTreeOnAsyncSuccess(event, treeId, treeNode, msg)
{
var treeObj = $.fn.zTree.getZTreeObj("host");
treeObj.removeChildNodes(treeNode);
var hisNode =msg.localhist;
if(hisNode.length>0){
treeObj.addNodes(treeNode, hisNode);
}
};
function zTreeBeforeAsync(treeId, treeNode) {
return (treeNode.id !== 1);
};
function zTreeOnClick(event, treeId, treeNode) {
$("#userid").val(treeNode.user_id);
if(treeNode.flag==2){
return false;
}
if(treeNode.flag==1){
return false;
}
if(treeNode.root=="root"){
return false;
}
loadbaseinfo($("#userid").val());
};
/*
初始化 加载 树形节点
*/
function initajxNode(hostname,ogrin){
var zTreeObj,setting = {
treeId:"host",
view: {
selectedMulti: false,
},
keep:{
parent: true
},
async: {
enable: true,
url: "${base}/personnelFile/findnurseIncludeMan.do",
type:"post",
dataType:"json",
autoParam: ["id"]
},
callback: {
onAsyncSuccess: zTreeOnAsyncSuccess,
beforeAsync: zTreeBeforeAsync,
onClick: zTreeOnClick
},data: {
simpleData: {
enable: true,
}
}
};
zTreeNodes = [
{
name:hostname,root:"root",open:true,children:ogrin,id:0
},
];
zTreeObj = $.fn.zTree.init($("#host"), setting, zTreeNodes);
var nodes = zTreeObj.getNodesByParam("hs", "ok", null);
var node = zTreeObj.getNodeByParam("id", 0, null);
zTreeObj.expandNode(nodes[0], true, true, true);
zTreeObj.expandNode(nodes[1], true, true, true);
}//初始化树加载结束
//加载权限传递参数
if(alldept||thisdept){
init(alldept,thisdept);//初始化树入口
var treecontentheight = $("#contentbody").outerHeight(true)+3;
$("#ztree").height(treecontentheight);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
做前端搜索,肯定只能根据前端已有的数据进行,你这种需求,请务必实现 Server 的搜索功能,根据搜索结果返回对应的数据结构