Element Tree 复选框获取选中的节点,只需要在 @check-change 事件时调用 this.$refs.tree.getCheckedNodes() 方法就可以了,el-tree 组件需要设置 ref=“tree”
<el-tree :filter-node-method="filterNode" :default-expanded-keys="defaultExpandedKeys" :default-checked-keys="defaultCheckedKeys" node-key="value" ref="tree" style="height: 300px;overflow: auto" show-checkbox :data="treeData" :props="defaultProps"
@check-change="handleCheckChange"></el-tree>
//节点选中状态发生变化时的回调
handleCheckChange(data, checked, indeterminate) {
//获取所有选中的节点 start
let res = this.$refs.tree.getCheckedNodes()
let arrDeptId = []
res.forEach((item) => {
arrDeptId.push(item.value)
})
// this.dataTree 就是选中的数据
this.dataTree = arrDeptId
}
更简单的方法,可以返回选中的子节点和半选的节点
//节点选中状态发生变化时的回调
handleCheckChange(data, checked, indeterminate) {
//获取所有选中的子节点 start
let res1 = this.$refs.tree.getCheckedKeys()
// 获取半选的节点
let res2 = this.$refs.tree.getHalfCheckedKeys()
let arrDeptId = [...res1,...res2]
this.dataTree = arrDeptId
}