elementUI自定义table多选

首先看下我的效果图


需求

当选择某一行的时候要选择当前行,并且将当前行的用户数据显示在头部;如果已经选中,则取消选中效果同时删除头部对应的用户图像,当切换分页时如果头部已经有选中,则勾选对应的行,当编辑时,也要进行回显

原因

elementUI的table组件提供的toggleRowSelection方法不生效

实现

    a-首先放弃使用组件内置提供的seletion选项,使用插槽自定义


    b-当获取数据后,向自定义的选择框添加绑定事件


        (使用jquery是因为原生的removeEventListener无法成功解绑事件,这会导致事件重复执行多次而渲染错误;当为激活状态时                                    使用active作为标记)

c-筛选el-table点击事件,使其只在点击选择框时触发,同时向头像框数据push或者delete


    (经过调试,当column.label不存在时,即表示点击多选框;actorsImgs就是用于显示图像的数据容器;activeRow则是内部记录的每一页的激活项)

d-当用户点击某个图像时,删除图像同时让对应多选框恢复为默认状态


e-当用户分页时,记录当前激活的page,并在相等时激活当前页的已选中项



    f-当为编辑时,首先需要获取当前行关联的用户;由于无法记录用户在那页有选中数据,因此需要手动计算



    (xb即计算出的当前页选中的变量)



至此,该功能实现完毕。(ps,如果有相同需求的小伙伴,能够使用el-table提供的方法,麻烦留个言。因为本人尝试了多次无效)



2021-1-30更新,本文章只提供实现思路,因为在交付测试过程中仍然有bug,但由于本人偏懒就不重新整理了

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容