From 3384c9de4ea6ddff4be1c2a5e243033a7511dbac Mon Sep 17 00:00:00 2001 From: ChenYi <296215406@outlook.com> Date: Fri, 11 Jul 2025 14:01:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=88=86=E9=A1=B5=E5=BC=82=E5=B8=B8=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/dataManger/deviceData/index.vue | 71 +++---------------- 1 file changed, 9 insertions(+), 62 deletions(-) diff --git a/apps/web-antd/src/views/dataManger/deviceData/index.vue b/apps/web-antd/src/views/dataManger/deviceData/index.vue index 19a91ec..2f7cc41 100644 --- a/apps/web-antd/src/views/dataManger/deviceData/index.vue +++ b/apps/web-antd/src/views/dataManger/deviceData/index.vue @@ -23,8 +23,7 @@ const { DeviceType, DeviceId, FocusAddress } = route.query; // 动态列定义 const dynamicColumns = ref([]); -// 缓存实际的数据总量 -const actualTotalCount = ref(0); + // 固定列定义(始终显示)- 基于 IoTDBTreeModelDeviceDataDto 类型 const fixedColumns = [ @@ -156,15 +155,12 @@ const gridOptions: VxeGridProps = { } } - // 简化处理逻辑,先确保基本功能正常 + // 简化处理逻辑,直接使用接口返回的数据 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 = { }, }); - // 由于API没有返回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); - } - + // 直接使用接口返回的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; }