ant design vue中表格里面自带分页,目前使用的是远程加载数据的形式。
需要注意的是一定要设置total

<a-table
:columns="columns"
:data-source="tableData"
:row-key="record => record.id"
:pagination="pagination"
:loading="loading"
:scroll="scroll"
@change="handleTableChange"
tableLayout="fixed"
class="table-wrapper"
>
</a-table>
data() {
return {
size: 'small',
from:{},
tableData: [],
columns,
status: [],
//分页栏
pagination: {
position:'bottom',
pageSize: 10,
current: 1,
total: 0
},
//表格数据是否正在加载
loading: false,
//表格表头筛选条件
filteredInfo: null,
//表格表头排序条件
sortedInfo: null,
//表格选中行
selectedRowKeys: [],
//表格横向与纵向宽度
//设置表格锁定表头和列时必须设置此配置
scroll: {
x: 2000,
y: "calc(100vh - 450px)",
},
}
},
methods: {
//表格刷新
refreshTableData(e){
if (e) {
e.preventDefault();
this.pagination.current = 1;
}
let that = this;
let pagination = that.pagination|| {}
let sorter = that.sortedInfo|| {}
let formData = {...that.form}
that.fetch({
pageSize: pagination.pageSize,
pageNumber: pagination.current,
...formData
})
},
//表格分页条件、筛选条件、排序条件发生变化后刷新表格数据
handleTableChange(pagination, filters, sorter) {
console.log(pagination, 'pagination');
let that = this;
that.sortedInfo = sorter;
const pager = { ...that.pagination };
pager.current = pagination.current;
that.pagination = pager;
that.refreshTableData()
},
//表格渲染
fetch(params = {}) {
console.log('params:', params);
this.loading = true;
publicapi.getfindAllByLimit(params).then(data => {
const pagination = { ...this.pagination };
this.loading = false;
this.pagination.total = data.preProjectData.totalElements;
this.tableData.splice(0, this.tableData.length);
this.tableData = data.preProjectData.content
});
},
}