修复数据查询分页异常的问题

This commit is contained in:
ChenYi 2025-07-11 14:01:20 +08:00
parent e4fcf728b8
commit 3384c9de4e

View File

@ -23,8 +23,7 @@ const { DeviceType, DeviceId, FocusAddress } = route.query;
//
const dynamicColumns = ref<any[]>([]);
//
const actualTotalCount = ref<number>(0);
// - IoTDBTreeModelDeviceDataDto
const fixedColumns = [
@ -156,15 +155,12 @@ const gridOptions: VxeGridProps<any> = {
}
}
//
// 使
if (data?.items && data.items.length > 0) {
console.log('原始items数据:', data.items);
// 使
const items = data.items;
//
const generatedColumns = generateDynamicColumns(items);
const generatedColumns = generateDynamicColumns(data.items);
console.log('生成的列定义:', generatedColumns);
//
@ -179,63 +175,19 @@ const gridOptions: VxeGridProps<any> = {
},
});
// APItotalCount
const currentPageSize = page.pageSize;
const currentItemsCount = data.items ? data.items.length : 0;
//
let estimatedTotalCount = 0;
// 使
if (page.currentPage === 1) {
if (currentItemsCount === currentPageSize) {
//
// 使
estimatedTotalCount = currentPageSize * 2;
} else {
//
estimatedTotalCount = currentItemsCount;
}
} else {
// 使
if (currentItemsCount === currentPageSize) {
//
estimatedTotalCount =
page.currentPage * currentPageSize + currentPageSize;
} else {
//
estimatedTotalCount =
(page.currentPage - 1) * currentPageSize + currentItemsCount;
}
}
//
estimatedTotalCount = Math.max(
estimatedTotalCount,
currentItemsCount,
);
//
if (currentItemsCount < currentPageSize) {
actualTotalCount.value = estimatedTotalCount;
console.log('更新缓存的实际总数:', estimatedTotalCount);
}
// 使totalCount
const result = {
items: data.items || [],
totalCount: estimatedTotalCount,
totalCount: data.totalCount || 0,
};
console.log('返回给表格的数据:', result);
console.log(
'估算总数:',
result.totalCount,
'当前页数据量:',
result.items.length,
);
console.log('总数:', result.totalCount, '当前页数据量:', result.items.length);
console.log('分页信息:', {
currentPage: page.currentPage,
pageSize: currentPageSize,
pageSize: page.pageSize,
});
return result;
}
@ -269,11 +221,6 @@ watch(
console.log('页面大小变化:', { newSize, oldSize });
if (newSize !== oldSize && oldSize) {
console.log('页面大小从', oldSize, '变为', newSize, ',重置到第一页');
//
if (actualTotalCount.value > 0 && newSize > actualTotalCount.value) {
console.log('新页面大小大于缓存总数,清除缓存');
actualTotalCount.value = 0;
}
//
gridApi.pagerApi.currentPage = 1;
}