微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

实例详解ztree在vue项目中使用并且带有搜索功能

zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

上篇文章给大家介绍了,大家可以点击查看。

之前博客介绍过怎么在vue里展示以及获取点击元素的内容,此文章之介绍搜索功能

html

main.js需要单独引入

如果不单独引入这个会获取不到很多元素,在input回车事件或者点击事件的时候直接执行此事件即可

代码部分

.搜索条件 var searchCondition = $('#' + searchConditionId).val(); //<2>.得到模糊匹配搜索条件的节点数组集合 var highlightNodes = new Array(); if (searchCondition != "") { var treeObj = $.fn.zTree.getZTreeObj(treeId); highlightNodes = treeObj.getNodesByParamFuzzy("name",searchCondition,null); } //<3>.高亮显示并展示【指定节点s】 this.highlightAndExpand_ztree(treeId,highlightNodes,flag); },highlightAndExpand_ztree(treeId,tx,flag) { var treeObj = $.fn.zTree.getZTreeObj(treeId); //<1>. 先把全部节点更新为普通样式 var treeNodes = treeObj.transformToArray(treeObj.getNodes()); for (var i = 0; i < treeNodes.length; i++) { treeNodes[i].highlight = false; treeObj.updateNode(treeNodes[i]); } //<2>.收起树,只展开根节点下的一级节点 this.close_ztree(treeId); //<3>.把指定节点的样式更新为高亮显示,并展开 if (highlightNodes != null) { for (var i = 0; i < highlightNodes.length; i++) { if (flag != null && flag != "") { if (highlightNodes[i].flag == flag) { //高亮显示节点,并展开 highlightNodes[i].highlight = true; treeObj.updateNode(highlightNodes[i]); //高亮显示节点的父节点的父节点....直到根节点,并展示 var parentNode = highlightNodes[i].getParentNode(); var parentNodes = this.getParentNodes_ztree(treeId,parentNode); treeObj.expandNode(parentNodes,true); treeObj.expandNode(parentNode,true); } } else { treeObj.updateNode(highlightNodes[i]); var parentNode = highlightNodes[i].getParentNode(); var parentNodes = this.getParentNodes_ztree(treeId,parentNode); treeObj.expandNode(parentNodes,true); treeObj.expandNode(parentNode,true); } } } },getParentNodes_ztree(treeId,node) { if (node != null) { var treeObj = $.fn.zTree.getZTreeObj(treeId); var parentNode = node.getParentNode(); return this.getParentNodes_ztree(treeId,parentNode); } else { return node; } }

展示

这个有个小小的bug,就是做键盘按下或者抬起的时候会有问题,,这个文章解决了这个问题

总结

以上所述是小编给大家介绍的ztree在vue项目中使用并且带有搜索功能。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

原文地址:https://www.jb51.cc/vue/30766.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐