From 849f860ddcbc2933aae1fc8528b4a08371f27f6a Mon Sep 17 00:00:00 2001 From: wangqiyang Date: Sat, 1 Aug 2026 12:39:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E5=AE=9E=E6=97=B6=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E5=8D=81=E8=B7=AF=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Monitoring/index.vue | 39 ++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/src/views/Monitoring/index.vue b/src/views/Monitoring/index.vue index 5b4dfe7..0c247e3 100644 --- a/src/views/Monitoring/index.vue +++ b/src/views/Monitoring/index.vue @@ -374,8 +374,43 @@ const scanDeviceCount = computed(() => { return info.value?.scan_device_count ?? info.value?.ScanDeviceCount ?? info.value?.Loops?.length ?? 0 }) +const monitorDisplayLoopCount = 10 + +const createEmptyMonitorLoop = (index) => ({ + index, + name: `#${index + 1}`, + is_open: false, + pwm: 0, + A: 0, + V: 0, + Kw: 0, +}) + +const normalizeMonitorLoop = (loop, index) => { + const normalized = createEmptyMonitorLoop(index) + if (!loop) return normalized + return { + ...normalized, + ...loop, + index: loop.index ?? loop.Index ?? index, + name: loop.name ?? loop.Name ?? normalized.name, + is_open: loop.is_open ?? loop.IsOpen ?? normalized.is_open, + pwm: loop.pwm ?? loop.Pwm ?? normalized.pwm, + A: loop.A ?? normalized.A, + V: loop.V ?? normalized.V, + Kw: loop.Kw ?? normalized.Kw, + } +} + const monitorLoops = computed(() => { - return info.value?.Loops || [] + const loops = info.value?.Loops || [] + return Array.from({ length: monitorDisplayLoopCount }, (_, index) => normalizeMonitorLoop(loops[index], index)) +}) + +const faultPollingLoopCount = computed(() => { + const count = Number(scanDeviceCount.value) + if (!Number.isFinite(count) || count <= 0) return monitorDisplayLoopCount + return Math.min(count, monitorDisplayLoopCount) }) const loopNo = (loop, index) => { @@ -386,7 +421,7 @@ const loopNo = (loop, index) => { const maxVisibleFaultCount = 10 const currentFaults = computed(() => { - const loops = info.value?.Loops || [] + const loops = monitorLoops.value.slice(0, faultPollingLoopCount.value) return loops.flatMap((loop, index) => { const loopIdx = loop.loop_idx || loop.LoopIdx || loop.index + 1 || index + 1 const faults = loop.faults || loop.Faults || []