解决el-tree数据回显时子节点部分选中父节点都全选中的坑
el-tree
在编辑中回显数据时,有一个bug,就是只要我们回显的数据中有父节点的 id
,不管当前父节点下的子节点是部分选中还是全选中,回显的效果是该父子节点下的子节点都会全选中,这很显然不是我们需要的
看大家有用自己的办法解决,比如有说用 check-strictly
来控制父子互不互相关联的做法,还有自己手动写函数来控制父子节点的选中状态,但是方法多感觉很繁琐。
我这里用 getNode()
的方法来简单解决
预计的效果
目前实际效果
先上代码看如何实现
template 部分
<el-tree :data="list.data" show-checkbox node-key="id" :props="defaultProps" :default-expand-all="list.isExpand" v-loading="list.loading" ref="tree" @check-change="checkChange"> </el-tree>
js 部分
export default { data () { return { list: { data: [], loading: false, isExpand: true }, defaultProps: { children: 'children', label: 'name' }, loading:false } }, methods: { defaultChecked () { // 默认选中 this.$nextTick(() => { const arr = [] this.menus.forEach(item => { if (!this.$refs.tree.getNode(item.id).childNodes || !this.$refs.tree.getNode(item.id).childNodes.length) { arr.push(item.id) } }) this.$refs.tree.setCheckedKeys(arr) }) }, } }
解析:this.menus
是从后端获取回来的数据,getNode()
获取到当前节点,判断当前节点是否是叶子节点,是的话存入 arr
数组中,最后使用 setCheckedKeys()
将数据回显选中,从而实现父级的半选状态
打印了一下Node 节点
以上就是解决el-tree数据回显时子节点部分选中父节点都全选中的坑的详细内容,更多关于el-tree 数据回显的资料请关注脚本之家其它相关文章!
相关文章
轻量级富文本编辑器wangEditor结合vue使用方法示例
在我们项目中,有些时候需要使用富文本编辑器。本文将以百度开发的Ueditor结合Vue.js介绍一下。非常具有实用价值,需要的朋友可以参考下2018-10-10vue perfect-scrollbar(特定框架里使用非该框架定制库/插件)
这篇文章主要为大家介绍了vue perfect-scrollbar在特定框架里使用一款并非为该框架定制的库/插件如何实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>2023-05-05Vue——解决报错 Computed property "****" was assigned to but it ha
这篇文章主要介绍了Vue——解决报错 Computed property "****" was assigned to but it has no setter.的方法,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下2020-12-12el-date-picker 选择日期范围只保存左侧日期面板的实现代码
接到这样的需求,日期筛选,但限制只能选择同一个月的数据,故此应该去掉右侧月份面板,今天通过本文给大家分享el-date-picker 选择日期范围只保存左侧日期面板的实现代码,感兴趣的朋友一起看看吧2024-06-06
最新评论