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

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