el-tree 如何实现选中节点的所有直属父节点和子节点都取消选中

新手上路,请多包涵

现在只单独实现了所有父节点和所有子节点取消选中,如果同时设置就会有问题,需求是选中节点的所有父节点和字节点都取消选中
image.png

const setNode = (node) => {
  if(node.checked) {
    // 如果当前是选中checkbox,则递归设置父节点和父父节点取消选中
    setParentNode(node);
  } else {
    // 当前是取消选中,将所有子节点都取消选中
    setChildenNode(node);
  }
}
const setParentNode = (node) => {
  // 所有父节点取消选中
  if(node.parent) {
    for(const key in node) {
      if(key === 'parent') {
        node[key].checked = false;
        setParentNode(node[key]);
      }
    }
  }
  // 所有子节点取消选中
  if(node.childNodes) {
    setChildenNode(node)
  }
}
const setChildenNode = (node) => {
  let len = node.childNodes.length;
  for(let i = 0; i < len; i++) {
    node.childNodes[i].checked = false;
    setChildenNode(node.childNodes[i]);
  }
}
阅读 2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏