在使用elementui tree组件渲染权限列表时,后端要求子节点被全选时,返回此部分的父节点,未全选时,返回被选中的所有节点。
·测试的权限树图如下
此时返回给后台的数据中,应该是操作用户状态权限,修改用户资料权限,团队管理权限以及角色管理权限的ID值。
·· 具体函数
getSimpleCheckedNodes(store) {
// 定义数组
const checkedNodes = []
// 判断是否为全选,若为全选状态返回被全选的节点,不为全选状态正常返回被选中的节点
const traverse = function(node) {
const childNodes = node.root ? node.root.childNodes : node.childNodes
childNodes.forEach(child => {
if (child.checked) {
checkedNodes.push(child.data)
}
if (child.indeterminate) {
traverse(child)
}
})
}
traverse(store)
return checkedNodes
}
·调用
this.getSimpleCheckedNodes(this.$refs.tree.store) // tree为组件定义的ref
此时传给后台的Id