您现在的位置是:网站首页> 编程资料编程资料
解决el-tree数据回显时子节点部分选中父节点都全选中的坑_vue.js_
2023-05-24
461人已围观
简介 解决el-tree数据回显时子节点部分选中父节点都全选中的坑_vue.js_
el-tree 在编辑中回显数据时,有一个bug,就是只要我们回显的数据中有父节点的 id,不管当前父节点下的子节点是部分选中还是全选中,回显的效果是该父子节点下的子节点都会全选中,这很显然不是我们需要的
看大家有用自己的办法解决,比如有说用 check-strictly 来控制父子互不互相关联的做法,还有自己手动写函数来控制父子节点的选中状态,但是方法多感觉很繁琐。
我这里用 getNode() 的方法来简单解决
预计的效果

目前实际效果

先上代码看如何实现
template 部分
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 数据回显的资料请关注其它相关文章!
您可能感兴趣的文章:
相关内容
- 利用React实现一个有点意思的电梯小程序_React_
- el-table 行合并的实现示例_vue.js_
- JSON.stringify(递归)与 JSON.parse(有限状态自动机)的实现代码_javascript技巧_
- el-form错误提示信息手动添加和取消的示例代码_vue.js_
- 利用JavaScript实现防抖节流函数的示例代码_javascript技巧_
- 使用 JS 复制页面内容的三种方案_JavaScript_
- vue3中h函数的常用使用方式汇总_vue.js_
- npm报错:npm WARN config global '--global', '--local' are deprecated解决_node.js_
- Vue生命周期深入分析总结_vue.js_
- Vue环境搭建报错整理大全_vue.js_
