第一种情况:在有复选框的情况下
方法一
1.找到node_modules/element-ui/lib/element-ui.common.js文件
2.按Ctrl+F搜索TreeStore.prototype.getCheckedKeys这个方法,低版本教程到这一步就直接修改了(具体看上面教程),发现没有找到if(node.checked) 如图:
但可以发现它return this.getCheckedNodes 我们搜索这个方法试试(其实这个函数就在当前函数的上面)。如图:
将上面的代码改成:
保存重启就可
方法二:
elementUI官网中给出的
this.$refs.tree.getHalfCheckedKeys().concat(this.$refs.tree.getCheckedKeys())
第二种情况:没有复选框,只是单纯的点击节点
方法一:
直接在el-tree单击时获取当前节点node,会接收三种参数,分别是当前data节点数据,node当前节点,root根节点数据,我们获取当前node节点即可,通过node.parent可获取父节点数据,祖先级可一层层遍历上去node.parent.parent获取。
let oriFatherId = node.parent.parent.data // 祖父节点信息
let fatherId = node.parent.data // 父节点信息
方法二:
可通过单击获取当前节点id,通过el-tree中parentNode=getNode(node.parent.id)获取祖父节点数据。这个属于比较绕一点的,使用这个方式需要节点id唯一,不能重复,否则就会查到多个id,节点不唯一