解决当elmentui里面的el-tree组件使用场景,当搜索为空,或者清空搜索时,折叠eltree所有子节点
时间: 2023-08-07 12:36:20 浏览: 83
element el-tree组件的动态加载、新增、更新节点的实现
可以使用 `el-tree` 的 `filter-method` 方法监听搜索框中的变化,当搜索框中的值为空时,通过 `this.$refs.tree` 获取 `el-tree` 的实例,然后调用 `collapseAll()` 方法折叠所有节点。
同时,为了在清空搜索框时也能折叠所有节点,可以在 `handleClear` 方法中调用 `collapseAll()` 方法。
示例代码如下:
```html
<template>
<div>
<el-input v-model="searchKey" placeholder="请输入搜索关键词" @input="handleSearch" @clear="handleClear" />
<el-tree :data="data" :filter-method="filterNode" ref="tree"></el-tree>
</div>
</template>
<script>
export default {
data() {
return {
searchKey: '',
data: [
{
label: '节点1',
children: [
{ label: '子节点1' },
{ label: '子节点2' },
],
},
{
label: '节点2',
children: [
{ label: '子节点3' },
{ label: '子节点4' },
],
},
],
};
},
methods: {
filterNode(value, data) {
if (!value) {
const tree = this.$refs.tree;
tree.collapseAll();
return true;
}
return data.label.indexOf(value) !== -1;
},
handleSearch() {
// do nothing
},
handleClear() {
const tree = this.$refs.tree;
tree.collapseAll();
},
},
};
</script>
```
在 `filter-method` 方法中判断搜索框中的值是否为空,如果为空则通过 `this.$refs.tree` 获取 `el-tree` 的实例,然后调用 `collapseAll()` 方法折叠所有节点。
在 `handleClear` 方法中也调用 `collapseAll()` 方法,这样在清空搜索框的值时也可以折叠所有节点。
希望能够帮助到你。
阅读全文