diff --git a/src/components/station-card.vue b/src/components/station-card.vue index 1c23414..f03ffa5 100644 --- a/src/components/station-card.vue +++ b/src/components/station-card.vue @@ -4,31 +4,29 @@ import DeviceParamsConfigModal from './device-params-config-modal.vue'; import OfflineDeviceDetailModal from './offline-device-detail-modal.vue'; import type { Station } from '@/apis/domains'; import { DeviceType } from '@/enums/device-type'; -import { useStationDevicesQuery } from '@/composables/query'; +import { type StationAlarms, type StationDevices } from '@/composables/query'; import { ControlOutlined } from '@vicons/antd'; import { Video as VideoIcon } from '@vicons/carbon'; import axios from 'axios'; import { NCard, NStatistic, NTag, NGrid, NGi, NButton, NIcon, useThemeVars, NSpace, NTooltip } from 'naive-ui'; import { toRefs, computed, ref } from 'vue'; -import { useStationAlarmsQuery } from '@/composables/query'; interface Props { station: Station; + stationDevices: StationDevices; + stationAlarms: StationAlarms; } const props = defineProps(); -const { station } = toRefs(props); +const { station, stationDevices, stationAlarms } = toRefs(props); const { code, name, online } = toRefs(station.value); -const { data: stationDevices } = useStationDevicesQuery(code.value); -const { data: stationAlarms } = useStationAlarmsQuery(station.value.code); - // 计算总离线设备数量 const offlineDeviceCount = computed(() => { let count = 0; Object.values(DeviceType).forEach((deviceType) => { - const offlineDeviceList = stationDevices.value?.[deviceType].filter((device) => device.deviceStatus === '20') ?? []; + const offlineDeviceList = stationDevices.value[deviceType].filter((device) => device.deviceStatus === '20'); count += offlineDeviceList.length; }); return count; @@ -36,14 +34,14 @@ const offlineDeviceCount = computed(() => { const deviceCount = computed(() => { let count = 0; Object.values(DeviceType).forEach((deviceType) => { - count += stationDevices.value?.[deviceType].length ?? 0; + count += stationDevices.value[deviceType].length; }); return count; }); const devicAlarmCount = computed(() => { let count = 0; Object.values(DeviceType).forEach((deviceType) => { - count += stationAlarms.value?.[deviceType].length ?? 0; + count += stationAlarms.value[deviceType].length; }); return count; }); diff --git a/src/pages/dashboard-page.vue b/src/pages/dashboard-page.vue index c9d5102..eb98c79 100644 --- a/src/pages/dashboard-page.vue +++ b/src/pages/dashboard-page.vue @@ -3,15 +3,21 @@ import StationCard from '@/components/station-card.vue'; import { NGrid, NGi } from 'naive-ui'; import { useStationStore } from '@/stores/station'; import { storeToRefs } from 'pinia'; +import { useLineDevicesStore } from '@/stores/line-devices'; +import { useLineAlarmsStore } from '@/stores/line-alarms'; const stationStore = useStationStore(); const { stationList } = storeToRefs(stationStore); +const lineDevicesStore = useLineDevicesStore(); +const { lineDevices } = storeToRefs(lineDevicesStore); +const lineAlarmsStore = useLineAlarmsStore(); +const { lineAlarms } = storeToRefs(lineAlarmsStore); diff --git a/src/pages/device-page.vue b/src/pages/device-page.vue index 01a0cdc..c1b18d0 100644 --- a/src/pages/device-page.vue +++ b/src/pages/device-page.vue @@ -1,8 +1,8 @@