elementui tree 无法获得根节点

elementui tree子节点没有全部被选中时候,无法获得根节点

在这里插入图片描述

如上图选中项目中的一个

在这里插入图片描述
打印输出console.log(this.$refs.tree.getCheckedNodes());根节点项目的数据并没有获取到

解决办法

node_modules/element-ui/lib/element-ui.common.js文件
在这里插入图片描述

TreeStore.prototype.getCheckedNodes = function getCheckedNodes() {
    var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
    var checkedNodes = [];
    var traverse = function traverse(node) {
      var childNodes = node.root ? node.root.childNodes : node.childNodes;
      childNodes.forEach(function (child) {
        if (!leafOnly && child.checked || leafOnly && child.isLeaf && child.checked ||child.indeterminate) {
          checkedNodes.push(child.data);
        }
        traverse(child);
      });
    };
    traverse(this);
    return checkedNodes;
  };

只需要找到该方法,加上 ||child.indeterminate 就可以了
因为子节点没全选,根节点为半选中状态,而 child.indeterminate 的意思就是把半选中状态的节点
在这里插入图片描述
打印输出是不是解决了

猜你喜欢

转载自blog.csdn.net/yu168yu1/article/details/84307886
今日推荐