el-tree自带的搜索方法无法展开下级问题

文章介绍了一个在el-tree组件中使用filter-node-method属性进行节点过滤的方法,特别是针对四级菜单的搜索功能。通过对不同层级的节点进行条件判断,确保搜索值在节点标签中出现时,能显示该节点及其所有子节点。示例代码提供了四级结构的处理逻辑,对于不同层级数的结构,可以按需调整。
摘要由CSDN通过智能技术生成

解决办法:

关键在于el-tree里的:filter-node-method="filterNode"

filterNode(value,data,node) {
	//如果共有四级菜单
	if (!value) return true
	let one = data.label.indexOf(value) !== -1
	let two = node.parent && node.parent.data && node.parent.data.label && (node.parent.data.label.indexOf(value) !== -1)
	let three = node.parent && node.parent.parent && node.parent.parent.data && node.parent.parent.data.label && (node.parent.parent.data.label.indexOf(value) !== -1)
	let four= node.parent && node.parent.parent && node.parent.parent.parent && node.parent.parent.parent.data && node.parent.parent.parent.data.label && (node.parent.parent.parent.data.label.indexOf(value) !== -1)
	let result_one = false
	let result_two = false
	let result_three = false
	let result_four = false
	if(node.level === 1) {
		result_one = one
	}else if(node.level === 2) {
		result_two = one || two
	}else if(node.level === 3) {
		result_three = one || two || three
	}else if(node.level === 4) {
		result_three = one || two || three || four
	}
    return result_one || result_two || result_three || result_four
}

注:这里展示是四级的结构,如果结构层数不同,根据方法进行适当的增删

参考链接:element ui Tree搜索显示节点和所有子节点 - 灰信网(软件开发博客聚合)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值