vuvivian's blog

越努力,越幸运.

给tree 添加模糊搜素功能, 给搜索结果集添加expand/checked/属性
子节点包含搜索结果的话 展开父级

1
2
3
4
5
6
7
8
9
10
11
12
13
_eventGroup (data) {
const that = this
data.map(item => {
if (item.title.indexOf(that.value) > -1) {
item.expand = true
item.selected = true
item.checked = true
}
if (item.children) {
this._eventGroup(item.children)
}
})
}

上述方法并不能触发tree的属性改变,需要使用set

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
_eventGroup (data) {
const that = this
data.map(item => {
// 任意节点含有该搜索值, 都设置expand
if (item.title.indexOf(that.value) > -1) {
that.$set(item, 'expand', true)
// 如果是叶子节点就选中
if (!item.children || item.children.length < 1) {
that.$set(item, 'checked', true)
}
}
// 如果节点含有孩子节点,继续遍历
if (item.children && item.children.length > 0) {
this._eventGroup(item.children)
}
// todo 如果子节点含有含有搜索值 需要逐层展开其父级
})
}
本文最后更新于 天前,文中所描述的信息可能已发生改变