`

[Ext扩展]QM.ux.TreeFilter:树节点智能过滤,添加中文模糊匹配功能

    博客分类:
  • Ext
阅读更多
Ext自带一个Ext.tree.TreeFilter类,可以实现树节点的过滤,但是功能太单薄了。我自己实现了一个树的过滤功能,支持以下功能:
  • 过滤时忽略父节点,默认情况下忽略
  • 中文、拼音首字母过滤,你输中文就按照中文进行匹配,输拼音就按照首字母匹配
  • 过滤后自动展开匹配结点的所有父节点
  • 匹配字符串为空时将结点全部显示,可配置全部显示时结点状态为全收缩还是全展开,默认不处理
  • 拼音缓存:确保汉字只转一次拼音,提高效率

1.1 改动:
1.支持中文模糊匹配,输入汉字可以是字符串任意位置

注意事项:
1.循环遍历操作,树节点过多会卡
2.这是前台过滤,请保证过滤前所有结点加载完毕

考虑到新手,附件的例子直接下载到Ext根目录下用浏览器打开即可查看

初始状态:

汉字匹配:

拼音首字母匹配:

  • 大小: 2.4 KB
  • 大小: 2.6 KB
  • 大小: 5.4 KB
  • 大小: 2.1 KB
分享到:
评论
9 楼 -惜帅- 2013-05-08  
-惜帅- 写道
楼主,貌似过滤的时候,有些节点查不出来啊,不知道是哪里出问题了?
比如组织架构中有N个部门是“...部”,输入“部”后,只出来一个,其他的都显示不了,全称也不行,拼音也不行,麻烦解答下



测试后发现,原来是查找的只能是叶子节点,非叶子节点就不行,后来我自己在楼主代码基础上,改了下,增加个属性 includeFolder ,判断是否包含非叶子节点,这个参数由构造的config传入,  并增加了判断
includeFolder:false,//过滤时,是否包含非叶子节点

//private get the matchs and hide other nodes
	filterAll:function(fn,startNode){
		var arr = [];
		startNode = startNode||this.tree.root;				
		startNode.cascade(function(n){
			if(!n.leaf){
				n.expand(false,false);
				if (!this.includeFolder&&this.ignoreFolder) {
					n.ui.hide();
					return;
				}	
			}
			if(fn.call(this,n)){
				arr.push(n);	
			}
			else{
				n.ui.hide();
			}
		},this);
		this.matches = arr;
	},

请指正,谢谢!
8 楼 -惜帅- 2013-05-08  
楼主,貌似过滤的时候,有些节点查不出来啊,不知道是哪里出问题了?
比如组织架构中有N个部门是“...部”,输入“部”后,只出来一个,其他的都显示不了,全称也不行,拼音也不行,麻烦解答下
7 楼 八岭书生 2012-01-11  
楼主写得非常好啊  如果里面的数据是从后台获取的

loader: new Ext.tree.TreeLoader({
       dataUrl:'testTree.do?json=1'
}),

root: new Ext.tree.AsyncTreeNode({
    text: '测试组',
    draggable:false,
    id:'0'
})

那该怎么弄啊

希望楼主百忙中抽空 为我解答下
6 楼 haorb 2011-11-30  
非常的不错,有借鉴价值,谢谢了
5 楼 fh2002 2010-10-27  
good,没问题
再加上
http://blog.csdn.net/zhaoqiliang527/archive/2010/09/13/5880729.aspx
的使用更简单了。
4 楼 mingchong2882 2010-09-02  
不以用,EXT3.2
3 楼 0obeiiedo0 2010-08-18  
很不错的例子!  得研看研看
2 楼 meteorzc 2010-08-18  
非常的不错
1 楼 toyanjie 2010-07-29  
下载不了. 麻烦楼主看下.. 写写. 

相关推荐

    课程设计基于python+mediapipe+opencv开发的手势识别系统源码(含超详细注释).zip

    课程设计基于python+mediapipe+opencv开发的手势识别系统源码(含超详细注释).zip个人经导师指导并认可通过的98分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。 课程设计基于python+mediapipe+opencv开发的手势识别系统源码(含超详细注释).zip个人经导师指导并认可通过的98分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。 课程设计基于python+mediapipe+opencv开发的手势识别系统源码(含超详细注释).zip个人经导师指导并认可通过的98分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。 课程设计基于python+mediapipe+opencv开发的手势识别系统源码(含超详细注释).zip个人经导师指导并认可通过的98分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计。

    yolov7 车牌检测 车牌识别 中文车牌识别 检测 支持双层车牌 支持12种中文车牌

    yolov7

    基于MQTT的智能宠物投喂系统.zip

    基于MQTT的智能宠物投喂系统:STM32、ESP8266、LCDST7789、压力传感器、按键中断修改定时投喂时间、云平台

    Qt进阶:优秀QT开源项目

    详细说明:https://blog.csdn.net/u010168781/article/details/138924179 1、Krita 2、QGIS 3、Kdenlive 4、Clementine 5、Syncthing 6、KDevelop

    2023-04-06-项目笔记 - 第一百三十四阶段 - 4.4.2.132全局变量的作用域-132 -2024.05.15

    2023-04-06-项目笔记-第一百三十四阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.132全局变量的作用域_132 - 2024-05-15

    matlab基于区间知识的大脑情绪学习算法.zip

    matlab基于区间知识的大脑情绪学习算法.zip

    Scrapy-0.8.win32.exe

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    setuptools-34.1.0-py2.py3-none-any.whl

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于python+PyQt5开发的智能照明控制系统上位机软件源码.zip

    基于python+PyQt5开发的智能照明控制系统上位机软件源码.zip

    pytest-4.6.3.tar.gz

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    麦肯锡战略咨询经验.ppt

    麦肯锡战略咨询经验.ppt

    Redis入门基础篇+源码(springboot、maven)

    Redis入门基础篇-源码

    基于Python+flask+echarts实现的天气展示系统源码.zip

    基于Python+flask+echarts实现的天气展示系统源码.zip

    人工水母优化算法JS MATLAB源码, 应用案例为函数极值求解以及优化svm进行分类,代码注释详细,可结合自身需求进行应用

    人工水母优化算法JS MATLAB源码, 应用案例为函数极值求解以及优化svm进行分类,代码注释详细,可结合自身需求进行应用

    pytest-3.2.5.tar.gz

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    四旋翼双环pid控制matlab版本R2020b源码.zip

    四旋翼双环pid控制matlab版本R2020b源码.zip

    1-3.py

    1-3

    基于YOLOV5部署性能比较 opencvDNN、ONNX onnxruntime Openvion源码.zip

    基于YOLOV5部署性能比较 opencvDNN、ONNX onnxruntime Openvion源码.zip

    第五次作业答案.zip

    第五次作业答案.zip

Global site tag (gtag.js) - Google Analytics