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 的意思就是把半选中状态的节点
打印输出是不是解决了