您现在的位置是:网站首页> 编程资料编程资料
element-ui tree 手动展开功能实现(异步树也可以)_vue.js_
2023-05-24
400人已围观
简介 element-ui tree 手动展开功能实现(异步树也可以)_vue.js_
背景
项目中用到了vue的element-ui框架,用到了el-tree组件。由于数据量很大,使用了数据懒加载模式,即异步树。异步树采用复选框进行结点选择的时候,没法自动展开,官方文档找了半天也没有找到好的办法! 找不到相关的配置,或者方法可以使用。 经过调试与阅读elment-ui源码才发现有现成的方法可以进行结点展开。下面就介绍结点展开的实现!
1.监听复选框点击事件check
2.手动展开,使用node.expand()方法
handleCheck(nodeData, treeChecked) { let node = this.$refs.tree.getNode(nodeData.id) //将选中的未展开的节点进行展开 if(node.checked && !node.expanded){ node.expand(function(){ for(let i=0; i< node.childNodes.length; i++){ node.childNodes[i].expand() } }) } }项目中的实现
(复选框勾选后能自动展开并选中,先展开再勾选也可以自动展开)
1.监听check-change事件
2.编写展开结点方法
handleCheckChange(nodeData, nodeSelected) { //展开选中的未展开的节点 let tree = this.$refs.tree; let node = tree.getNode(nodeData.id) //展开选中的未展开的节点 this.expandNotExpandNodes(node); //具体业务实现 console.log(nodeData, nodeSelected) }, //展开选中的未展开的节点 expandNotExpandNodes(node) { let tree = this.$refs.tree; if (node.checked && !node.expanded && !node.isLeaf) { node.expand(function () { let childNodes = node.childNodes; for (let i = 0; i < childNodes.length; i++) { let childNode = childNodes[i]; //手动触发check-change事件,事件处理函数中回继续调用此函数,形成递归展开 tree.$emit('check-change', childNode.data, childNode.checked, childNode.indeterminate); } }) } },到此这篇关于element-ui tree 手动进行展开(异步树也可以)的文章就介绍到这了,更多相关element-ui tree手动展开内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- Modal.confirm是否违反了React模式分析_React_
- 关于element-ui中@selection-change执行两次的问题_vue.js_
- Vue3 reactive响应式赋值页面不渲染的解决_vue.js_
- 前端开发使用Ant Design项目评价_React_
- 基于vue3+antDesign2+echarts 实现雷达图效果_vue.js_
- Vue项目中props传值时子组件检测不到的问题及解决_vue.js_
- vue中使用el-dropdown方式_vue.js_
- Vue数据劫持详情介绍_vue.js_
- webpack4升级到webpack5的实战经验总结_javascript技巧_
- elementUI中el-dropdown的command实现传递多个参数_vue.js_
