- 之前做过这个保存勾选状态的东西,不过是使用
@selection-change
,@select-all
,@select
三个事件,取到各事件产生的值,然后去重,再使用toggleRowSelection
方法反显勾选项,非常麻烦。 - 现在就简单多了,直接使用
row-key
,reserve-selection
,@selection-change
,上代码:
<el-table
:data="tableData"
border
@selection-change="handleSelectionChange"
style="width: 100%"
:row-key="getRowKeys"
>
<!-- 加上:reserve-selection="true"保留之前勾选的数据,而clearSelection方法可以清空用户的选择 -->
<el-table-column type="selection" width="55" prop="id" :reserve-selection="true"></el-table-column>
<el-table-column prop="field" label="字段" align="center">
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pagination.currentPage"
:page-sizes="[10, 20,30,50]"
:page-size="pagination.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pagination.total"
></el-pagination>
methods: {
//保留合并勾选结果时使用的key为id字段
//如果你的数据中没有哪个字段是唯一值,也可以使用组合方式返回key
//例如:return row.name+row.age,只要保证几个字段组合后的字符串是唯一即可
getRowKeys(row) {
return row.id
},
handleSelectionChange(arr){
this.multipleSelection = arr
}
}