多选,复选,穿梭框之日常总结

3,430 阅读1分钟

今天小编接到一个优化,需要把选中数据进行默认回填,特此小记作为总结:

做一个父子无关的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 造成的,<哭唧唧找了好久>

以后有时间了就把遇到的问题整理整理,帮助回忆!