Element-ui树形控件el-tree获取父级节点的id

Element-ui官网给的方法

getCheckedKeys() { console.log(this.$refs.tree.getCheckedKeys()); },

这种只有在所有子级都被选中的情况下才能获得父级的id,如果不选中所有的子级那么获取得到的id就只有子级的。但是一般提交数据时后台都需要父级id的。

1.找到node_modules/element-ui/lib/element-ui.common.js文件

2.按Ctrl+F搜索TreeStore.prototype.getCheckedKeys这个方法

3.把if(node.checked)改为if (node.checked||node.indeterminate) 如下:

  TreeStore.prototype.getCheckedKeys = function getCheckedKeys() {
    // var _this4 = this;
    var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
    var key = this.key;
    var allNodes = this._getAllNodes();
    var keys = [];
    allNodes.forEach(function(node){
      if(!leafOnly || leafOnly && node.isLeaf){
        if(node.checked||node.indeterminate){
          keys.push((node.data || {})[key]);
        }
      }
    })
    return keys;

    // return this.getCheckedNodes(leafOnly).map(function (data) {
    //   return (data || {})[_this4.key];
    // });
  };

4.保存重启项目console.log(this.$refs.tree.getCheckedKeys());这样就可以看到父级和子级的id了

上一篇:最后一页

下一篇:如何搭建一个vue项目(完整步骤)