vue elementUI treeツリーコントロール親ノードIDの取得方法

1658 ワード

まずelement-uiを見つけます.common.jsファイルは以下のように具体的にあなたの工事の下のnodeを見ます.modules
D:\workSpace\vue_manageode_modules\element-ui\lib\element-ui.common.js
getCheckedNodesメソッドの詳細は次のとおりです.私のメソッドは21618行です.
  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 (child.checked && (!leafOnly || leafOnly && child.isLeaf)) {
          checkedNodes.push(child.data);
        }

        traverse(child);
      });
    };
    traverse(this);
    return checkedNodes;
  };

その中のif判断を修正する
  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 ((child.checked || child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) {
          checkedNodes.push(child.data);
        }
        traverse(child);
      });
    };

    traverse(this);

    return checkedNodes;
  };

プロジェクトを再開しますlog(this.$refs.tree.getCheckedKeys());親ノードのIDを入手できます
 
階下の大神はこれでもいいと言った.refs.tree.getCheckedKeys().concat(this.$refs.tree.getHalfCheckedKeys())