要在没有数据时仍然展示分页,你可以设置 pagination
组件的 total
属性,以确保它显示正确的总记录数。下面是如何对你的代码进行简单修改的示例:
<template>
<div class="HistoricalReminder">
<a-table
:columns="columns"
:data-source="data"
:scroll="{ x: 'max-content' }"
:pagination="{
pageSize: pageSize,
total: totalRecords, // 使用一个变量来表示总记录数
showSizeChanger: true,
pageSizeOptions: ['5', '10', '20'],
onShowSizeChange: handlePageSizeChange,
showQuickJumper: true,
showTotal: (total, range) => `显示 ${range[0]}~${range[1]}条记录,共 ${total} 条记录`
}"
:rowClassName="(record, index) => (index % 2 === 0 ? 'red-row' : '')"
></a-table>
</div>
</template>
<script setup>
import { ref } from 'vue';
import { CollectionRecord } from '../../utils'; // 确保路径正确
const columns = [
{
title: '借据号',
dataIndex: 'loanInfoCode',
key: 'loanInfoCode',
width: 100,
},
{
title: '合同编号',
dataIndex: 'contractCode',
key: 'contractCode',
width: 150,
},
{
title: '客户姓名',
dataIndex: 'customerName',
key: 'customerName',
width: 150,
},
];
const data = ref([]);
const pageSize = ref(5);
const totalRecords = ref(0); // 新增一个变量来存储总记录数
const handlePageSizeChange = (current, size) => {
console.log(`每页条数变化为: ${size}`);
pageSize.value = size;
}
const params = {
draw: 1,
length: pageSize.value, // 使用pageSize.value而不是未定义的size
order: [],
searchParams:{
custId:'A10101',
dateStart:'',
dateEnd:''
},
};
CollectionRecord(params)
.then((response) => {
data.value = response.data;
totalRecords.value = response.totalCount; // 假设后端返回的数据中有totalCount字段表示总记录数
})
.catch((error) => console.error('请求失败:', error));
</script>
<style scoped>
.red-row {
background-color: #f5f5f5; /* 偶数行的背景色 */
}
</style>
修改内容说明:
totalRecords
:新增了一个响应式变量,用于存储总记录数。在你向后端请求数据成功后,假设后端返回的数据中包含了totalCount
字段(这个字段需要根据实际情况调整),你可以把它赋值给totalRecords
.分页配置:将
pagination
的total
属性设置为刚才定义的totalRecords
。页码和每页大小控制:确保在发起请求时使用当前选中的页面大小 (
pageSize.value
)。
通过这些调整,即使没有数据,也能让分页组件正常显示,并且能够反映出总的记录数。
内容由零声教学AI助手提供,问题来源于学员提问