<template>
<div>
<input type="text" v-model="filterText" placeholder="过滤条件" />
<tree :data="filteredData"></tree>
</div>
</template>
<script>
export default {
data() {
return {
data: [
{
label: '节点1',
children: [
{
label: '子节点1',
},
{
label: '子节点2',
},
],
},
{
label: '节点2',
},
],
filterText: '',
}
},
computed: {
filteredData() {
if (!this.filterText) {
// 如果没有过滤条件,则返回完整数据
return this.data
}
// 使用递归算法筛选数据
return this.data.filter(node => {
if (node.label.includes(this.filterText)) {
// 如果节点符合条件,则返回节点
return true
} else if (node.chi
vue树形结构中节点过滤
最新推荐文章于 2024-06-16 09:34:56 发布