给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 如果子节点含有含有搜索值 需要逐层展开其父级 }) }
|