From 1d9075460217062e9a80ea39d9c22c7da05283b9 Mon Sep 17 00:00:00 2001 From: ChenYi <296215406@outlook.com> Date: Thu, 10 Jul 2025 13:50:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A8=E6=80=81=E6=A8=A1=E5=9E=8B=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataManger/deviceData/dynamicColumns.ts | 14 ++++++++++++-- .../src/views/dataManger/deviceData/index.vue | 16 +++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/apps/web-antd/src/views/dataManger/deviceData/dynamicColumns.ts b/apps/web-antd/src/views/dataManger/deviceData/dynamicColumns.ts index e7f96cc..d01b09c 100644 --- a/apps/web-antd/src/views/dataManger/deviceData/dynamicColumns.ts +++ b/apps/web-antd/src/views/dataManger/deviceData/dynamicColumns.ts @@ -27,6 +27,16 @@ export const fieldTypeConfig: FieldTypeConfig = { // 可以根据需要添加更多类型配置 }; +// 固定字段列表 - 这些字段已经在固定列中定义,不需要在动态列中重复生成 +const FIXED_FIELDS = [ + 'SystemName', + 'ProjectId', + 'DeviceType', + 'IoTDataType', + 'DeviceId', + 'Timestamps' +]; + // 动态生成表格列 export const generateDynamicColumns = (data: DynamicDeviceData[]): ColumnConfig[] => { if (!data || data.length === 0) return []; @@ -36,8 +46,8 @@ export const generateDynamicColumns = (data: DynamicDeviceData[]): ColumnConfig[ if (!firstRow) return []; const fields = Object.keys(firstRow); - // 过滤掉不需要显示的字段 - const excludeFields = ['id', 'key', '__typename']; + // 过滤掉不需要显示的字段和固定字段 + const excludeFields = ['id', 'key', '__typename', ...FIXED_FIELDS]; return fields .filter(field => !excludeFields.includes(field)) diff --git a/apps/web-antd/src/views/dataManger/deviceData/index.vue b/apps/web-antd/src/views/dataManger/deviceData/index.vue index 0a5d52c..150c5f9 100644 --- a/apps/web-antd/src/views/dataManger/deviceData/index.vue +++ b/apps/web-antd/src/views/dataManger/deviceData/index.vue @@ -24,10 +24,15 @@ const { DeviceType, DeviceId, FocusAddress } = route.query; // 动态列定义 const dynamicColumns = ref([]); -// 固定列定义(始终显示) +// 固定列定义(始终显示)- 基于 IoTDBTreeModelDeviceDataDto 类型 const fixedColumns = [ { title: '序号', type: 'seq', width: 50 }, - // 可以在这里添加其他固定列 + { field: 'SystemName', title: '系统名称', minWidth: 150 }, + { field: 'ProjectId', title: '项目ID', minWidth: 150 }, + { field: 'DeviceType', title: '设备类型', minWidth: 150 }, + { field: 'IoTDataType', title: 'IoT数据类型', minWidth: 150 }, + { field: 'DeviceId', title: '设备ID', minWidth: 150 }, + { field: 'Timestamps', title: '时间戳', minWidth: 150 }, ]; // 合并固定列和动态列 - 使用计算属性确保响应式 @@ -39,11 +44,8 @@ const allColumns = computed(() => [ // 初始化默认列(防止表格空白) 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 }, - ]; + // 不再需要在这里设置默认列,因为固定列已经包含了基本字段 + dynamicColumns.value = []; } };