From 0098750698820705ae5c2750d60f9d724fc26c63 Mon Sep 17 00:00:00 2001 From: yangsy Date: Tue, 26 Aug 2025 12:36:43 +0800 Subject: [PATCH] perf: reduce ref update times --- src/composables/query/alarm/use-line-alarms-query.ts | 5 ++++- src/composables/query/device/use-line-devices-query.ts | 5 ++++- src/pages/dashboard-page.vue | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/composables/query/alarm/use-line-alarms-query.ts b/src/composables/query/alarm/use-line-alarms-query.ts index 577889b..69fb727 100644 --- a/src/composables/query/alarm/use-line-alarms-query.ts +++ b/src/composables/query/alarm/use-line-alarms-query.ts @@ -62,7 +62,8 @@ export function useLineAlarmsQuery() { if (!lineAlarms.value[station.code]) { lineAlarms.value[station.code] = createEmptyStationAlarms(); } - const stationAlarms = lineAlarms.value[station.code]; + // const stationAlarms = lineAlarms.value[station.code]; + const stationAlarms = createEmptyStationAlarms(); try { const now = dayjs(); @@ -100,6 +101,8 @@ export function useLineAlarmsQuery() { const videoServerAlarms = alarmList.filter((device) => device.deviceType === DeviceType.VideoServer); stationAlarms[DeviceType.VideoServer] = videoServerAlarms; stationAlarms.unclassified = alarmList; + + lineAlarms.value[station.code] = stationAlarms; } catch (error) { if (error instanceof CanceledError) return lineAlarms.value; console.error(`获取车站 ${station.name} 设备告警数据失败:`, error); diff --git a/src/composables/query/device/use-line-devices-query.ts b/src/composables/query/device/use-line-devices-query.ts index 154de0a..a6606a5 100644 --- a/src/composables/query/device/use-line-devices-query.ts +++ b/src/composables/query/device/use-line-devices-query.ts @@ -68,7 +68,8 @@ export function useLineDevicesQuery() { if (!lineDevices.value[station.code]) { lineDevices.value[station.code] = createEmptyStationDevices(); } - const stationDevices = lineDevices.value[station.code]; + // const stationDevices = lineDevices.value[station.code]; + const stationDevices = createEmptyStationDevices(); await Promise.allSettled([ postNdmCameraPage(station.code, pageQuery, signal) @@ -144,6 +145,8 @@ export function useLineDevicesQuery() { stationDevices[DeviceType.VideoServer] = []; }), ]); + + lineDevices.value[station.code] = stationDevices; } // console.timeEnd('useLineDevicesQuery'); diff --git a/src/pages/dashboard-page.vue b/src/pages/dashboard-page.vue index 2d4ac97..247dc6b 100644 --- a/src/pages/dashboard-page.vue +++ b/src/pages/dashboard-page.vue @@ -20,7 +20,7 @@ useLineAlarmsQuery();