解决当elmentui里面的eltree组件,当搜索为空,或者搜索条件清空时,折叠所有节点
时间: 2024-03-17 09:47:43 浏览: 62
可以在 `el-tree` 的 `filter-method` 方法中判断搜索框中的值是否为空,如果为空则通过 `this.$refs.tree` 获取 `el-tree` 的实例,然后调用 `collapseAll()` 方法折叠所有节点。
示例代码如下:
```html
<template>
<div>
<el-input v-model="searchKey" placeholder="请输入搜索关键词" @input="handleSearch" />
<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() {
if (!this.searchKey) {
const tree = this.$refs.tree;
tree.collapseAll();
}
},
},
};
</script>
```
在 `filter-method` 方法中判断搜索框中的值是否为空,如果为空则通过 `this.$refs.tree` 获取 `el-tree` 的实例,然后调用 `collapseAll()` 方法折叠所有节点。
同时,在 `handleSearch` 方法中也可以判断搜索框中的值是否为空,如果为空则折叠所有节点。这样在清空搜索框的值时也可以折叠所有节点。
希望能够帮助到你。
阅读全文