From 7f5aa7bb82647581f2bf3caa181a57a4408439b4 Mon Sep 17 00:00:00 2001 From: yangsy Date: Fri, 29 May 2026 15:02:31 +0800 Subject: [PATCH] =?UTF-8?q?refactor(vimp):=20=E9=87=8D=E6=9E=84=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E4=B8=AD=E5=BF=83=E4=BB=A3=E7=A0=81=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=9B=BE=E6=A0=87=E6=B8=B2=E6=9F=93=E5=B9=B6=E6=95=B4?= =?UTF-8?q?=E7=90=86=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重新组织use-device-center-query的导入语句,合并api与类型导入 - 将接口返回的站点数据重命名为sitesFromApi以提升代码可读性 - 修复camera和alarm store中图标的渲染插槽语法 - 更新store方法调用时的参数传递 --- .../composables/query/use-device-center-query.ts | 13 ++++++------- src/pages/vimp/stores/alarm.ts | 12 ++++++------ src/pages/vimp/stores/camera.ts | 16 ++++++++-------- 3 files changed, 20 insertions(+), 21 deletions(-) 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 b3e4756..a7b3dd5 100644 --- a/src/pages/vimp/composables/query/use-device-center-query.ts +++ b/src/pages/vimp/composables/query/use-device-center-query.ts @@ -1,11 +1,10 @@ import { useQuery } from '@tanstack/vue-query'; import { computed } from 'vue'; -import { catalogChannelApi, catalogAllDeviceApi } from '../../apis/request'; import type { AxiosRequestConfig } from 'axios'; import axios from 'axios'; import type { CodeArea, CodeLines, CodeSites } from '../../types'; import { useCameraStore, useAlarmStore } from '../../stores'; -import type { VimpChannel } from '../../apis/model'; +import { catalogAllDeviceApi, catalogChannelApi, type VimpChannel } from '../../apis'; export const useDeviceCenterQuery = () => { const cameraStore = useCameraStore(); @@ -49,10 +48,10 @@ export const useDeviceCenterQuery = () => { const siteCamerasMap: Record = {}; const siteAlarmsMap: Record = {}; - const sites = await catalogAllDeviceApi({ signal }); + const sitesFromApi = await catalogAllDeviceApi({ signal }); - if (!!sites) { - for (const site of sites) { + if (!!sitesFromApi) { + for (const site of sitesFromApi) { const channels = await catalogChannelApi(site.code, { signal }); if (!channels || channels.length === 0) continue; @@ -74,7 +73,7 @@ export const useDeviceCenterQuery = () => { } cameraStore.buildLineTabPanes({ - sites, + sitesFromApi, siteCamerasMap, codeLines, codeSites, @@ -85,7 +84,7 @@ export const useDeviceCenterQuery = () => { }); alarmStore.buildLineTabPanes({ - sites, + sitesFromApi, siteAlarmsMap, codeLines, codeSites, diff --git a/src/pages/vimp/stores/alarm.ts b/src/pages/vimp/stores/alarm.ts index 2119eae..ba8e9b7 100644 --- a/src/pages/vimp/stores/alarm.ts +++ b/src/pages/vimp/stores/alarm.ts @@ -6,7 +6,7 @@ import { NIcon } from 'naive-ui'; import { SirenIcon } from 'lucide-vue-next'; interface BuildLineTabPanesParams { - sites: VimpStation[] | null; + sitesFromApi: VimpStation[] | null; siteAlarmsMap: Record; codeLines: CodeLines; codeSites: CodeSites; @@ -20,14 +20,14 @@ export const useAlarmStore = defineStore('vimp-alarm-store', () => { const lineTabPanes = ref([]); const buildLineTabPanes = (params: BuildLineTabPanesParams) => { - const { sites, siteAlarmsMap, codeLines, codeSites, codeStationAreas, codeParkingAreas, codeOccAreas, codeTrainAreas } = params; - if (!sites) { + const { sitesFromApi, siteAlarmsMap, codeLines, codeSites, codeStationAreas, codeParkingAreas, codeOccAreas, codeTrainAreas } = params; + if (!sitesFromApi) { lineTabPanes.value = []; return; } // 构造线路TabPane const _lineTabPanes: AlarmLineTabPane[] = []; - const lineCode = sites.at(0)?.code.substring(0, 3) ?? ''; + const lineCode = sitesFromApi.at(0)?.code.substring(0, 3) ?? ''; const lineName = codeLines[lineCode]?.name ?? ''; if (!_lineTabPanes.some((lineNode) => lineNode.lineCode === lineCode)) { _lineTabPanes.push({ @@ -38,7 +38,7 @@ export const useAlarmStore = defineStore('vimp-alarm-store', () => { } // 遍历所有站点 - for (const site of sites) { + for (const site of sitesFromApi) { const siteCode = site.code.substring(0, 6); const siteName = codeSites[siteCode]?.name; if (!siteName) continue; @@ -132,7 +132,7 @@ export const useAlarmStore = defineStore('vimp-alarm-store', () => { alarm: alarm, site: site, prefix: () => { - return h(NIcon, h(SirenIcon)); + return h(NIcon, () => h(SirenIcon)); }, }; diff --git a/src/pages/vimp/stores/camera.ts b/src/pages/vimp/stores/camera.ts index 30e6d8a..d04762f 100644 --- a/src/pages/vimp/stores/camera.ts +++ b/src/pages/vimp/stores/camera.ts @@ -8,7 +8,7 @@ import PtzCamera from '../components/icon/ptz-camera.vue'; import HemiPtzCamera from '../components/icon/hemi-ptz-camera.vue'; interface BuildLineTabPanesParams { - sites: VimpStation[] | null; + sitesFromApi: VimpStation[] | null; siteCamerasMap: Record; codeLines: CodeLines; codeSites: CodeSites; @@ -22,14 +22,14 @@ export const useCameraStore = defineStore('vimp-camera-store', () => { const lineTabPanes = ref([]); const buildLineTabPanes = (params: BuildLineTabPanesParams) => { - const { sites, siteCamerasMap, codeLines, codeSites, codeStationAreas, codeParkingAreas, codeOccAreas, codeTrainAreas } = params; - if (!sites) { + const { sitesFromApi, siteCamerasMap, codeLines, codeSites, codeStationAreas, codeParkingAreas, codeOccAreas, codeTrainAreas } = params; + if (!sitesFromApi) { lineTabPanes.value = []; return; } // 构造线路TabPane const _lineTabPanes: CameraLineTabPane[] = []; - const lineCode = sites.at(0)?.code.substring(0, 3) ?? ''; + const lineCode = sitesFromApi.at(0)?.code.substring(0, 3) ?? ''; const lineName = codeLines[lineCode]?.name ?? ''; if (!_lineTabPanes.some((lineNode) => lineNode.lineCode === lineCode)) { _lineTabPanes.push({ @@ -40,7 +40,7 @@ export const useCameraStore = defineStore('vimp-camera-store', () => { } // 遍历所有站点 - for (const site of sites) { + for (const site of sitesFromApi) { const siteCode = site.code.substring(0, 6); const siteName = codeSites[siteCode]?.name; if (!siteName) continue; @@ -134,9 +134,9 @@ export const useCameraStore = defineStore('vimp-camera-store', () => { camera: camera, site: site, prefix: () => { - if (cameraType === '004') return h(NIcon, h(PtzCamera)); - if (cameraType === '005') return h(NIcon, h(HemiPtzCamera)); - if (cameraType === '006') return h(NIcon, h(BulletCamera)); + if (cameraType === '004') return h(NIcon, () => h(PtzCamera)); + if (cameraType === '005') return h(NIcon, () => h(HemiPtzCamera)); + if (cameraType === '006') return h(NIcon, () => h(BulletCamera)); }, };