el-table tree过滤
时间: 2023-11-09 14:05:16 浏览: 90
el-table tree组件支持使用filter-method属性进行过滤,但是需要注意的是,由于树形结构的特殊性,过滤时需要对每个节点进行递归判断。以下是一个简单的示例代码:
```html
<template>
<el-table :data="data" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" :filter-method="filterNode">
<el-table-column prop="name" label="名称"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
data: [
{
name: '张三',
age: 20,
hasChildren: true,
children: [
{
name: '李四',
age: 22,
hasChildren: false
},
{
name: '王五',
age: 25,
hasChildren: false
}
]
},
{
name: '赵六',
age: 30,
hasChildren: true,
children: [
{
name: '钱七',
age: 32,
hasChildren: false
}
]
}
]
}
},
methods: {
filterNode(value, data) {
if (!value) return true;
if (data.name.indexOf(value) !== -1) return true;
if (data.children) {
for (let i = 0; i < data.children.length; i++) {
if (this.filterNode(value, data.children[i])) return true;
}
}
return false;
}
}
}
</script>
```
在上面的示例代码中,我们使用了filter-method属性来指定过滤方法,然后在filterNode方法中对每个节点进行递归判断,如果节点的名称或其子节点的名称包含了过滤关键字,则返回true,否则返回false。
阅读全文