From ec3c634630d4fc44c01bf4e5902c7f9fee67adab Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Wed, 02 Apr 2025 18:11:13 +0800
Subject: [PATCH] feat:对接机巢状态和直播功能以及ws

---
 src/store/modules/home.js |   79 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 1 deletions(-)

diff --git a/src/store/modules/home.js b/src/store/modules/home.js
index fd72d30..cc572bd 100644
--- a/src/store/modules/home.js
+++ b/src/store/modules/home.js
@@ -1,12 +1,89 @@
+import { set } from "lodash";
+import { EDeviceTypeName } from '@/utils/staticData/enums'
+
 const home = {
   state: {
-    singleUavHome: null,
+    singleUavHome: {},
+    // 项目id
+    selectedWorkSpaceId: window.localStorage.getItem('bs_workspace_id'),
+    wsMessage: {},
+    deviceState: {
+      gatewayInfo: {},
+      deviceInfo: {},
+      timestamp: '',
+      dockInfo: {},
+      currentSn: '',
+      currentType: -1,
+      drone_charge_state_new: {},
+      psdk_widget_values: {},
+      speakerAudioPlayStartProgress: {},
+    },
+    osdVisible: {
+      // osd 显示设备相关信息
+      sn: '',
+      callsign: '',
+      model: '',
+      visible: false,
+      gateway_sn: '',
+      is_dock: false,
+      payloads: null,
+      device_domain: '',
+      device_sub_type: '',
+      device_type: '',
+    },
   },
   actions: {},
   mutations: {
     setSingleUavHome: (state, data) => {
       state.singleUavHome = data;
     },
+    setSelectedWorkSpaceId: (state, id) => {
+      state.selectedWorkSpaceId = id
+      window.localStorage.setItem('bs_workspace_id', id)
+    },
+    setOsdVisibleInfo: (state, info) => {
+      console.log(info, '哒哒哒')
+      state.osdVisible = Object.assign({}, info)
+      window.localStorage.setItem('bs_osd', JSON.stringify(info))
+    },
+    setWsMessage: (state, data) => {
+      state.wsMessage = data.host;
+    },
+    setDeviceInfo: (state, data) => {
+      const info = data.data
+      state.deviceState.timestamp = data.timestamp
+      state.deviceState.deviceInfo[info.sn] = info.host
+      state.deviceState.currentSn = info.sn
+      state.deviceState.currentType = EDeviceTypeName.Aircraft
+    },
+    setGatewayInfo: (state, info) => {
+      state.deviceState.gatewayInfo[info.sn] = info.host
+      state.deviceState.currentSn = info.sn
+      state.deviceState.currentType = EDeviceTypeName.Gateway
+    },
+    setDockOnfo: (state, info) => {
+      if (Object.keys(info.host).length === 0) return
+  
+      if (!state.deviceState.dockInfo[info.sn]) {
+        state.deviceState.dockInfo[info.sn] = {}
+      }
+      state.deviceState.currentSn = info.sn
+      state.deviceState.currentType = EDeviceTypeName.Dock
+      const dock = state.deviceState.dockInfo[info.sn]
+      if (info.host.mode_code !== undefined) {
+        dock.basic_osd = info.host
+        state.deviceState.drone_charge_state_new =
+          dock.basic_osd.drone_charge_state
+        return
+      }
+      if (info.host.sdr) {
+        dock.link_osd = info.host
+        return
+      }
+      if (info.host.job_number !== undefined) {
+        dock.work_osd = info.host
+      }
+    },
   },
   getters:{
     test(state) {

--
Gitblit v1.9.3