总结:使用vue的表格,在模板中混用Checkbox(针对翻页保持选中效果的实现)(有特殊情况,不可以使用reserve-selection属性的情况)

1、项目背景:开发一款图片处理流程的系统,主要目的是给图片进行一些特殊标注,用于算法训练。其中有个功能,图片处理需要人员去处理,所以就存在了一个任务分配机制:

点击  “+” 这个按钮,添加人员, 

 这个地方就会有一小问题,你分页查询出来的人员列表,在你翻页的时候,你要保证在你翻回已经做出选择的页码时,这些人依然是被勾选上的状态,而不是被取消,像这样

 这里我刚开始想的太复杂了,踩坑不说,还贼垃圾,各种bug,大佬稍微指点了一下,豁然开朗。

原理:在获取到接口数据的时候,直接把他们每一条数据都加上一个属性(自定义,我的就是checked:false),然后鼠标点击的时候,将这个属性改成 true,然后翻页的时候将其缓存在一个变量中,翻页后拿到新数据跟这个数据做个对比,如果检测到数组中存在相等的元素(我的就是按照人员id 来区别的,做两次遍历,一个遍历接口返回数据的数组,一个遍历缓存的变量数组)就把这个变量里面的checked值赋给接口数组。选中效果是通过el-table自带的属性,toggleRowSelection 来实现,具体不清楚的可以去看elementUI教程。

 

 (表格数据绑定的数组别误会写错,是图截错位置了,peopleList2就是 tagPeoplePower)

翻页缓存以及勾选的数据(翻页的时候调用):

 然后,在对数据设置勾选:

说白就是遍历,找相同,然后赋值:

 翻页保持选中总结:

1、接口拿到的数据绑定一个属性,用于checkbox 的 v-model绑定,true就会勾选,false就是取消勾选

2、在翻页前,调用一下缓存数据的方法,这里有其他方法保存,这个随你们,只要能筛选出来相同的值,方便就行

3、在数据重新被拉取的时候,对数据进行遍历、对比、赋值操作。

目前前端小半年,基础知识不牢固,自己边写边学,有不对的地方欢迎指正,互相学习,有疑问可以留言,工作全天在线~~

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值