element-UI tree树形控件搜索过滤节点,不展示子节点的问题:
正常需求:搜索小区名称,展示对应的子节点“楼栋”
element官方案例:
当在搜索框输入时,会把子节点过滤 掩藏掉
<el-tree
class="filter-tree"
accordion
:data="data"
:filter-node-method="filterNode"
:props="defaultProps"
ref="tree"
eload="buildingData"
@node-click="buidingNode"
>
</el-tree>
methods: {
filterNode(value, data) {
if(!value) return true
return data. label.indexof (value) !=-1
}
},
官方代码掩藏子节点
代码更改后可展示子节点:
methods: {
filterNode (value, data, node) {
if (!value) return true
let parentNode = node.parent
labels = [node.label]
level = 1
while (level < node.level) {
labels = [...labels, parentNode.label]
parentNode = parentNode.parent
level++
}
return labels.some(label => label.indexOf(value) !== -1)
}
},
//楼栋查询
buidingNode(data) {
console . log( 2333',data .num) //直接获取楼栋信息
if (data.num) {
this.searchForm. building = data.num.
this.fetchPageListData()//重新请求接口渲染
}
},
//项目渲染
最终实现效果为,点击对应的楼栋信息,然后渲染对应的表格数据!