From 54849757852f6ab40eb17afbd03d1d839b60a38d Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 13 Nov 2023 17:09:15 +0800
Subject: [PATCH] 重复定时和连续执行

---
 src/store/index.ts |   64 ++++++++++++++++++++-----------
 1 files changed, 41 insertions(+), 23 deletions(-)

diff --git a/src/store/index.ts b/src/store/index.ts
index 95d170b..0c1c5d0 100644
--- a/src/store/index.ts
+++ b/src/store/index.ts
@@ -6,6 +6,9 @@
 import { LayerType } from '/@/types/mapLayer'
 import { WaylineFile } from '/@/types/wayline'
 import { DevicesCmdExecuteInfo } from '/@/types/device-cmd'
+import createPersistedState from 'vuex-persistedstate' // 导入库
+import map from './map'
+import common from './common'
 
 const initStateFunc = () => ({
   Layers: [
@@ -65,15 +68,19 @@
       [sn: string]: DockOsd
     },
     currentSn: '',
-    currentType: ''
+    currentType: -1
   },
-  osdVisible: {
+  osdVisible: { // osd 显示设备相关信息
     sn: '',
     callsign: '',
     model: '',
     visible: false,
     gateway_sn: '',
     is_dock: false,
+    payloads: null,
+    device_domain: '',
+    device_sub_type: '',
+    device_type: ''
   } as OSDVisible,
   waylineInfo: {
 
@@ -84,9 +91,12 @@
   hmsInfo: {} as {
     [sn: string]: DeviceHms[]
   },
+  hmsInfoDetailSn: '' as string,
   // 机场指令执行状态信息
   devicesCmdExecuteInfo: {
-  } as DevicesCmdExecuteInfo
+  } as DevicesCmdExecuteInfo,
+  mqttState: null as any, // mqtt 实例
+  clientId: '', // mqtt 连接 唯一客户端id
 })
 
 export type RootStateType = ReturnType<typeof initStateFunc>
@@ -112,31 +122,25 @@
       return
     }
     if (!state.deviceState.dockInfo[info.sn]) {
-      state.deviceState.dockInfo[info.sn] = info.host
-      return
+      state.deviceState.dockInfo[info.sn] = { } as DockOsd
     }
     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
+      return
+    }
     if (info.host.sdr) {
-      dock.sdr = info.host.sdr
-      dock.media_file_detail = info.host.media_file_detail
-      dock.wireless_link = info.host.wireless_link
+      dock.link_osd = info.host
       return
     }
-    if (info.host.job_number) {
-      if (info.host.drone_battery_maintenance_info) {
-        dock.drone_battery_maintenance_info = info.host.drone_battery_maintenance_info
-      }
-      return
+    if (info.host.job_number !== undefined) {
+      dock.work_osd = info.host
     }
-    const sdr = dock.sdr
-    const mediaFileDetail = dock.media_file_detail
-    const wireless = dock.wireless_link
-    state.deviceState.dockInfo[info.sn] = info.host
-    state.deviceState.dockInfo[info.sn].sdr = sdr
-    state.deviceState.dockInfo[info.sn].media_file_detail = mediaFileDetail
-    state.deviceState.dockInfo[info.sn].wireless_link = wireless
+  },
+  SET_HMSInfo_DetailSn (state, data) {
+    state.hmsInfoDetailSn = data
   },
   SET_DRAW_VISIBLE_INFO (state, bool) {
     state.drawVisible = bool
@@ -193,7 +197,13 @@
     } else {
       state.devicesCmdExecuteInfo[info.sn] = [info]
     }
-  }
+  },
+  SET_MQTT_STATE (state, mqttState) {
+    state.mqttState = mqttState
+  },
+  SET_CLIENT_ID (state, clientId) {
+    state.clientId = clientId
+  },
 }
 
 const actions: ActionTree<RootStateType, RootStateType> = {
@@ -229,7 +239,6 @@
       }
     })
     state.layerBaseInfo = obj
-    console.log('state.layerBaseInfo', state.layerBaseInfo)
   },
   getLayerInfo ({ state }, id:string) {
     return state.layerBaseInfo[id]
@@ -240,7 +249,16 @@
   state: initStateFunc,
   getters,
   mutations,
-  actions
+  actions,
+  modules: {
+    map,
+    common
+  },
+  plugins: [createPersistedState({
+    storage: window.sessionStorage,
+    key: 'drone-client',
+    paths: ['map', 'common'],
+  })]
 }
 
 const rootStore = createStore(storeOptions)

--
Gitblit v1.9.3