iview Table实现跨页勾选记忆功能以及利用ES6的Map数据结构实现根据id进行对象数组的去重

因为iview Table组件的勾选是选中当前页的所有数据,当我们切到别的页面时,会发送请求给后端,这个时候就会刷新我们之前页码已经选中的数据。现在有个需求就是,在我们选择不同页码的数据勾选中之后,实现跨页勾选记忆功能,就是说已经打钩了的数据,不管切到哪一页它都是打钩状态。效果如下,第一页勾了10条,第二页勾了2条,第三页勾了1条:
iview Table实现跨页勾选记忆功能以及利用ES6的Map数据结构实现根据id进行对象数组的去重_第1张图片
iview Table实现跨页勾选记忆功能以及利用ES6的Map数据结构实现根据id进行对象数组的去重_第2张图片
iview Table实现跨页勾选记忆功能以及利用ES6的Map数据结构实现根据id进行对象数组的去重_第3张图片
实现思路就是Table组件的columns里配置 type: "selection"开启勾选功能,然后利用 **@on-selection-change=“onSelectChange” @on-select-cancel=“onSelectCancel”**这两个方法,
这里我封装了一个去重方法deWeightThree,它可以根据对象数组里id进行去重。onSelectChange方法里如果val有值表示勾选中了某一条,否则就是取消全选当前页的数据。我们在data里定义了一个数组selectArr,用于存储我们当前所有页面已经选中打钩的数据。getTableData_new获取当前页table数据,需注意的是在我们调获取当前页table数据的接口成功后&

你可能感兴趣的:(vue2,vue.js)