el-tree勾选或者取消节点后获取勾选的所有节点的数组结合怎么写
时间: 2024-11-09 22:20:44 浏览: 39
在Element UI(简称El-Tree)中,当你想要获取用户在树形组件中勾选或取消选中的节点时,可以监听`check-change`事件。这个事件会提供两个参数:当前被操作的节点和新的状态(true表示选中,false表示取消选中)。你可以通过遍历返回的节点数组来收集所有的选中节点。
以下是一个简单的示例:
```javascript
<template>
<el-tree
:data="treeData"
:props="treeProps"
@check-change="handleCheckChange"
></el-tree>
</template>
<script>
export default {
data() {
return {
treeData: [], // 树状结构的数据
selectedNodes: [], // 存储选中节点的数组
treeProps: {
children: 'children',
expandAndCollapse: 'expand-and-collapse'
}
};
},
methods: {
handleCheckChange(node, checked) {
if (checked) {
// 当节点被选中时,push到selectedNodes数组
this.selectedNodes.push(node);
} else if (node && node.parent) {
// 如果节点取消选中,则从数组中移除
const parentIndex = this.selectedNodes.findIndex(item => item === node.parent);
if (parentIndex !== -1) {
this.selectedNodes.splice(parentIndex, 1); // 移除所有属于该节点的子节点
}
}
}
}
};
</script>
```
在这个例子中,`handleCheckChange`方法会被调用,每当节点的状态变化时,我们会检查新状态是否为选中状态,并将选中的节点添加到`selectedNodes`数组中。如果取消选中,我们还会检查其父节点及其所有子节点是否在选中列表中,然后从列表中移除。
阅读全文