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 + ) + })) +)