diff --git a/apps/web-antd/src/views/dataManger/ctwingLog/index.vue b/apps/web-antd/src/views/dataManger/ctwingLog/index.vue index ade5042..58f1d46 100644 --- a/apps/web-antd/src/views/dataManger/ctwingLog/index.vue +++ b/apps/web-antd/src/views/dataManger/ctwingLog/index.vue @@ -7,7 +7,7 @@ import { useRoute } from 'vue-router'; import { Page } from '@vben/common-ui'; import { useVbenVxeGrid } from '#/adapter/vxe-table'; -import { postTableModelDeviceDataInfoPage } from '#/api-client'; +import { postTreeModelDeviceDataInfoPage } from '#/api-client'; import { querySchema, tableSchema } from './schema'; @@ -48,7 +48,12 @@ const gridOptions: VxeGridProps = { FocusAddress, }, }); - return data; + // 确保返回的数据包含totalCount字段 + const result = { + items: data.items || [], + totalCount: data.totalCount || (data.items ? data.items.length : 0), + }; + return result; }, }, }, diff --git a/apps/web-antd/src/views/dataManger/deviceData/basic-test.vue b/apps/web-antd/src/views/dataManger/deviceData/basic-test.vue new file mode 100644 index 0000000..1b79463 --- /dev/null +++ b/apps/web-antd/src/views/dataManger/deviceData/basic-test.vue @@ -0,0 +1,111 @@ + + + diff --git a/apps/web-antd/src/views/dataManger/deviceData/dynamicColumns.ts b/apps/web-antd/src/views/dataManger/deviceData/dynamicColumns.ts index db18a38..e7f96cc 100644 --- a/apps/web-antd/src/views/dataManger/deviceData/dynamicColumns.ts +++ b/apps/web-antd/src/views/dataManger/deviceData/dynamicColumns.ts @@ -45,7 +45,7 @@ export const generateDynamicColumns = (data: DynamicDeviceData[]): ColumnConfig[ const columnConfig: any = { field, title: fieldNameMapping[field] || field, - minWidth: '150', + minWidth: 150, showOverflow: true, }; @@ -68,7 +68,7 @@ export const getPredefinedColumns = () => { return getAllPossibleFields().map(field => ({ field, title: fieldNameMapping[field] || field, - minWidth: '150', + minWidth: 150, showOverflow: true, ...fieldTypeConfig[field], })); diff --git a/apps/web-antd/src/views/dataManger/deviceData/index.vue b/apps/web-antd/src/views/dataManger/deviceData/index.vue index 37b0fb0..95fbe02 100644 --- a/apps/web-antd/src/views/dataManger/deviceData/index.vue +++ b/apps/web-antd/src/views/dataManger/deviceData/index.vue @@ -25,28 +25,24 @@ const { DeviceType, DeviceId, FocusAddress } = route.query; const dynamicColumns = ref([]); // 固定列定义(始终显示) -const fixedColumns = computed(() => [ +const fixedColumns = [ { title: '序号', type: 'seq', width: 50 }, // 可以在这里添加其他固定列 -]); +]; // 合并固定列和动态列 -const allColumns = computed(() => { - const columns = [ - ...fixedColumns.value, - ...dynamicColumns.value, - ]; - console.log('当前所有列定义:', columns); - return columns; -}); +const allColumns = ref([ + ...fixedColumns, + ...dynamicColumns.value, +]); // 初始化默认列(防止表格空白) const initDefaultColumns = () => { if (dynamicColumns.value.length === 0) { dynamicColumns.value = [ - { field: 'SystemName', title: '系统名称', minWidth: '150' }, - { field: 'DeviceType', title: '设备类型', minWidth: '150' }, - { field: 'DeviceId', title: '设备ID', minWidth: '150' }, + { field: 'SystemName', title: '系统名称', minWidth: 150 }, + { field: 'DeviceType', title: '设备类型', minWidth: 150 }, + { field: 'DeviceId', title: '设备ID', minWidth: 150 }, ]; } }; @@ -96,6 +92,9 @@ const gridOptions: VxeGridProps = { customConfig: { storage: true, }, + // 添加调试配置 + showOverflow: true, + showHeaderOverflow: true, proxyConfig: { ajax: { query: async ({ page }, formValues) => { @@ -110,31 +109,75 @@ const gridOptions: VxeGridProps = { }, }); - console.log('API返回的原始数据:', data); + console.log('=== API调用开始 ==='); + console.log('请求参数:', { page, formValues, DeviceType, DeviceId, FocusAddress }); - // 简化处理逻辑,先确保基本功能正常 - if (data?.items && data.items.length > 0) { - console.log('原始items数据:', data.items); + try { + const { data } = await postTreeModelDeviceDataInfoPage({ + body: { + ...formValues, + pageIndex: page.currentPage, + pageSize: page.pageSize, + DeviceType, + DeviceId, + FocusAddress, + }, + }); - // 直接使用原始数据,不进行复杂处理 - const items = data.items; + console.log('API返回的原始数据:', data); + console.log('数据类型:', typeof data); + console.log('data是否为null/undefined:', data === null || data === undefined); - // 动态生成列定义 - const generatedColumns = generateDynamicColumns(items); - console.log('生成的列定义:', generatedColumns); + if (data) { + console.log('data.items存在:', !!data.items); + console.log('data.items类型:', Array.isArray(data.items) ? 'Array' : typeof data.items); + if (data.items) { + console.log('data.items长度:', data.items.length); + if (data.items.length > 0) { + console.log('第一条数据:', data.items[0]); + console.log('第一条数据的所有字段:', Object.keys(data.items[0])); + } + } + } - // 更新动态列 + // 简化处理逻辑,先确保基本功能正常 + if (data?.items && data.items.length > 0) { + console.log('原始items数据:', data.items); + + // 直接使用原始数据,不进行复杂处理 + const items = data.items; + + // 动态生成列定义 + const generatedColumns = generateDynamicColumns(items); + console.log('生成的列定义:', generatedColumns); + + // 更新动态列 dynamicColumns.value = generatedColumns; + // 更新合并的列定义 + allColumns.value = [ + ...fixedColumns, + ...generatedColumns, + ]; + // 强制更新列定义 await nextTick(); + + // 确保返回的数据包含totalCount字段 + const result = { + items: data.items || [], + totalCount: data.totalCount || (data.items ? data.items.length : 0), + }; + console.log('返回给表格的数据:', result); + return result; + } - console.log('返回给表格的数据:', data); + console.log('没有数据或数据为空'); return data; + } catch (error) { + console.error('API调用出错:', error); + throw error; } - - console.log('没有数据或数据为空'); - return data; }, }, }, diff --git a/apps/web-antd/src/views/dataManger/deviceData/simple-test.vue b/apps/web-antd/src/views/dataManger/deviceData/simple-test.vue new file mode 100644 index 0000000..7c040d5 --- /dev/null +++ b/apps/web-antd/src/views/dataManger/deviceData/simple-test.vue @@ -0,0 +1,110 @@ + + + diff --git a/apps/web-antd/src/views/dataManger/deviceData/test.vue b/apps/web-antd/src/views/dataManger/deviceData/test.vue index 265d4cb..8eb298f 100644 --- a/apps/web-antd/src/views/dataManger/deviceData/test.vue +++ b/apps/web-antd/src/views/dataManger/deviceData/test.vue @@ -87,7 +87,12 @@ const gridOptions: VxeGridProps = { console.log('测试 - 第一条数据:', data.items[0]); } - return data; + // 确保返回的数据包含totalCount字段 + const result = { + items: data.items || [], + totalCount: data.totalCount || (data.items ? data.items.length : 0), + }; + return result; }, }, }, diff --git a/apps/web-antd/src/views/dataManger/onenetLog/index.vue b/apps/web-antd/src/views/dataManger/onenetLog/index.vue index 439bb1f..52d157d 100644 --- a/apps/web-antd/src/views/dataManger/onenetLog/index.vue +++ b/apps/web-antd/src/views/dataManger/onenetLog/index.vue @@ -7,7 +7,7 @@ import { useRoute } from 'vue-router'; import { Page } from '@vben/common-ui'; import { useVbenVxeGrid } from '#/adapter/vxe-table'; -import { postTableModelDeviceDataInfoPage } from '#/api-client'; +import { postTreeModelDeviceDataInfoPage } from '#/api-client'; import { querySchema, tableSchema } from './schema'; @@ -38,7 +38,7 @@ const gridOptions: VxeGridProps = { proxyConfig: { ajax: { query: async ({ page }, formValues) => { - const { data } = await postTableModelDeviceDataInfoPage({ + const { data } = await postTreeModelDeviceDataInfoPage({ body: { ...formValues, pageIndex: page.currentPage, @@ -48,7 +48,12 @@ const gridOptions: VxeGridProps = { FocusAddress, }, }); - return data; + // 确保返回的数据包含totalCount字段 + const result = { + items: data.items || [], + totalCount: data.totalCount || (data.items ? data.items.length : 0), + }; + return result; }, }, },