做一个项目的功能菜单权限,用到了element的树结构。
如下图所示:eg
:
<el-tree
:data="menuList"
show-checkbox
default-expand-all
node-key="menuId"
ref="tree"
highlight-current
@check="changetree"
:props="defaultProps">
</el-tree>
该树结构代码,从饿了么的官方文档中可简单得到。但是我们的需要要初始化树的勾选状态?
此时我们需要用到setCheckedKeys
事件,该事件传递的首个参数可以是需要勾选的树结构数据,也可以是需要勾选的树结构数据中的node-key
对应的那个属性值数组!(看node-key,该配置对应是你树结构每个节点唯一的标识符,比如你树结构数据data中的每项id是唯一的,那就用id=>node-key=‘id’,在用到初始化勾选状态的时候,node-key必不可少)。
如果已经设置了node-key=‘id’,那么在打开树组件的时候调用setCheckedKeys
事件,将需要勾选已选中的数据id数组放进去即可。这里放在了nextTick事件:
this.$nextTick(()=>{
this.$refs.tree.setCheckedKeys(checkedArr);
})
这里有个需要注意点,当初始化勾选状态后,我们再次点击某个勾选状态后,得到的值还是此时点击的值,得不到初始换勾选的值(可能配置项的某个状态我没拿到),所以我们在初始化勾选时得到的id要进行保存,方便进一步操作。