今天小编接到一个优化,需要把选中数据进行默认回填,特此小记作为总结:
做一个父子无关的tree(ps: 无半选,全选等默认操作)
拿到这个需求就是用官方通用el-tree加根据其类型回调其图标方法,使用插槽渲染el-checkBox!
勾选默认值
在父组件上传递已选中数据,在子组件中接收之后处理数据,其中最重要的逻辑是v-model,设置选中数据的id为true来标记数据;
此处敲黑板!!!若是需要处理重复数据,引用loadash,或者reduce方式可以参考~
点击复选框事件
差不多就是这几个步骤了,下面来更正下踩过的坑:
关闭弹框之后需要重新渲染数据;
- 首先想到是v-if来做dialoag的重新绘制渲染,但是对勾选数据有影响;
- 在父组件上定义子组件的ref,直接来this.$refs.子组件.重置方法;
- 直接用:destroy-on-close="true",el-dialog上的关闭时销毁 Dialog 中的元素属性,亲试有效;
prop传递过来的数据不可以修改
- 可以在computed中设置get,set方法来改变
部分节点选不上如何整治
- 首先想到的是使用$nextTick延迟,或者是render-after-expand造成的影响,结果是本人的v-if 造成的,<哭唧唧找了好久>
以后有时间了就把遇到的问题整理整理,帮助回忆!