当前位置: 代码迷 >> 综合 >> vue elementUI tree树形控件如何获取父节点ID
  详细解决方案

vue elementUI tree树形控件如何获取父节点ID

热度:30   发布时间:2023-11-19 18:42:59.0

首先找到element-ui.common.js文件 如下 具体看你工程下的node_modules

D:\workSpace\vue_manage\node_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;};

然后重启项目    console.log(this.$refs.tree.getCheckedKeys());就可以拿到父节点的ID啦

 

楼下大神说这样也可以 this.$refs.tree.getCheckedKeys().concat(this.$refs.tree.getHalfCheckedKeys()) 

  相关解决方案