diff --git a/src/pages/vimp/composables/query/use-device-center-query.ts b/src/pages/vimp/composables/query/use-device-center-query.ts index 34b19a8..268fc64 100644 --- a/src/pages/vimp/composables/query/use-device-center-query.ts +++ b/src/pages/vimp/composables/query/use-device-center-query.ts @@ -30,6 +30,20 @@ const buildTrainAreas = () => { return codeTrainAreas; }; +const compareByCode = (a: T, b: T) => { + if (a.code < b.code) return -1; + if (a.code > b.code) return 1; + return 0; +}; +const sortSitesByCode = (sites: VimpStation[]) => { + sites.sort(compareByCode); +}; +const sortChannelsMapByCode = (siteCodeToChannelsMap: Map) => { + for (const channels of siteCodeToChannelsMap.values()) { + channels.sort(compareByCode); + } +}; + export const useDeviceCenterQuery = () => { const cameraStore = useCameraStore(); const alarmStore = useAlarmStore(); @@ -105,6 +119,13 @@ export const useDeviceCenterQuery = () => { }); } + // 1. 站点数组排序:稳定线路面板顺序和站点节点顺序 + sortSitesByCode(cameraSites); + sortSitesByCode(alarmSites); + // 2. 每站通道数组排序:稳定区域节点顺序和通道节点顺序 + sortChannelsMapByCode(siteCodeToCamerasMap); + sortChannelsMapByCode(siteCodeToAlarmsMap); + cameraStore.buildLineTabPanes({ sites: cameraSites, siteCodeToCamerasMap: siteCodeToCamerasMap,