From d0db5f5a906843a8655c90c8c86e3f53915f5f29 Mon Sep 17 00:00:00 2001 From: liutao <790864623@qq.com> Date: Sat, 9 May 2026 11:02:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=AE=A1=E7=90=86=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/OperationTimelineChart.vue | 23 ++++-- src/views/iot/runoverview/index.vue | 19 +++-- src/views/iot/runoverview/mock.ts | 73 +------------------ 3 files changed, 27 insertions(+), 88 deletions(-) diff --git a/src/views/iot/runoverview/components/OperationTimelineChart.vue b/src/views/iot/runoverview/components/OperationTimelineChart.vue index a5ec5dd2..670b1f12 100644 --- a/src/views/iot/runoverview/components/OperationTimelineChart.vue +++ b/src/views/iot/runoverview/components/OperationTimelineChart.vue @@ -38,7 +38,7 @@ -
+
{{ row.name }}
{{ row.utilizationRate.toFixed(2) }}%
@@ -116,12 +116,20 @@ const legendItems = computed(() => [ { status: 'offline' as const, color: statusColors.offline, label: t('DataCollection.RunOverview.legend.offline') } ]) -const hourTicks = Array.from({ length: 13 }, (_, index) => `${String(index * 2).padStart(2, '0')}:00`) - -const pagedRows = computed(() => { - const start = (props.pageNo - 1) * props.pageSize - return props.rows.slice(start, start + props.pageSize) -}) +const hourTicks = Array.from({ length: 24 }, (_, index) => `${String(index).padStart(2, '0')}:00`) + +const timelineRows = computed(() => + props.rows.map((row) => ({ + ...row, + segments: (row.segments || []).filter( + (segment) => + !!statusColors[segment.status] && + Number.isFinite(segment.startHour) && + Number.isFinite(segment.endHour) && + segment.endHour > segment.startHour + ) + })) +)