From 3667807a7b7418efc090ee3fa6a6b734bc3080bf Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Wed, 13 Sep 2023 20:36:29 +0800
Subject: [PATCH] Merge branch 'develop' of http://s16s652780.51mypc.cn:49896/r/yskj/iot_drone_web into develop

---
 src/store/index.ts |   96 +++++++++++++++++++++++++++++++----------------
 1 files changed, 63 insertions(+), 33 deletions(-)

diff --git a/src/store/index.ts b/src/store/index.ts
index bdcd972..56d32af 100644
--- a/src/store/index.ts
+++ b/src/store/index.ts
@@ -4,12 +4,16 @@
 import { Device, DeviceHms, DeviceOsd, DeviceStatus, DockOsd, GatewayOsd, OSDVisible } from '../types/device'
 import { getLayers } from '/@/api/layer'
 import { LayerType } from '/@/types/mapLayer'
-import { ETaskStatus, TaskInfo, WaylineFile } from '/@/types/wayline'
+import { WaylineFile } from '/@/types/wayline'
+import getter from './getters'
+import { DevicesCmdExecuteInfo } from '/@/types/device-cmd'
+import map from './map'
+import common from '/@/store/common'
 
 const initStateFunc = () => ({
   Layers: [
     {
-      name: 'default',
+      name: '默认',
       id: '',
       is_distributed: true,
       elements: [],
@@ -18,7 +22,7 @@
       type: 1
     },
     {
-      name: 'share',
+      name: '共享',
       id: '',
       is_distributed: true,
       elements: [],
@@ -64,15 +68,16 @@
       [sn: string]: DockOsd
     },
     currentSn: '',
-    currentType: ''
+    currentType: -1
   },
-  osdVisible: {
+  osdVisible: { // osd 显示设备相关信息
     sn: '',
     callsign: '',
     model: '',
     visible: false,
     gateway_sn: '',
     is_dock: false,
+    payloads: null
   } as OSDVisible,
   waylineInfo: {
 
@@ -80,14 +85,14 @@
   dockInfo: {
 
   } as Device,
-  taskProgressInfo: {
-
-  } as {
-    [bid: string]: TaskInfo
-  },
   hmsInfo: {} as {
     [sn: string]: DeviceHms[]
-  }
+  },
+  // 机场指令执行状态信息
+  devicesCmdExecuteInfo: {
+  } as DevicesCmdExecuteInfo,
+  mqttState: null as any, // mqtt 实例
+  clientId: '', // mqtt 连接 唯一客户端id
 })
 
 export type RootStateType = ReturnType<typeof initStateFunc>
@@ -109,19 +114,26 @@
     state.deviceState.currentType = EDeviceTypeName.Gateway
   },
   SET_DOCK_INFO (state, info) {
+    if (Object.keys(info.host).length === 0) {
+      return
+    }
+    if (!state.deviceState.dockInfo[info.sn]) {
+      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.sdr && state.deviceState.dockInfo[info.sn]) {
-      dock.sdr = info.host.sdr
-      dock.media_file_detail = info.host.media_file_detail
+    if (info.host.mode_code !== undefined) {
+      dock.basic_osd = info.host
       return
     }
-    const sdr = dock?.sdr
-    const mediaFileDetail = dock?.media_file_detail
-    state.deviceState.dockInfo[info.sn] = info.host
-    state.deviceState.dockInfo[info.sn].sdr = sdr
-    state.deviceState.dockInfo[info.sn].media_file_detail = mediaFileDetail
+    if (info.host.sdr) {
+      dock.link_osd = info.host
+      return
+    }
+    if (info.host.job_number !== undefined) {
+      dock.work_osd = info.host
+    }
   },
   SET_DRAW_VISIBLE_INFO (state, bool) {
     state.drawVisible = bool
@@ -144,7 +156,6 @@
     delete state.deviceState.deviceInfo[info.sn]
     delete state.deviceState.dockInfo[info.sn]
     delete state.hmsInfo[info.sn]
-    
     // delete state.markerInfo.coverMap[info.sn]
     // delete state.markerInfo.pathMap[info.sn]
   },
@@ -157,21 +168,35 @@
   SET_SELECT_DOCK_INFO (state, info) {
     state.dockInfo = info
   },
-  SET_FLIGHT_TASK_PROGRESS (state, info) {
-    const taskInfo: TaskInfo = info.output
-
-    if (taskInfo.status === ETaskStatus.OK || taskInfo.status === ETaskStatus.FAILED) {
-      taskInfo.status = taskInfo.status.concat('(Code:').concat(info.result).concat(')')
-      setTimeout(() => {
-        delete state.taskProgressInfo[info.bid]
-      }, 60000)
-    }
-    state.taskProgressInfo[info.bid] = info.output
-  },
   SET_DEVICE_HMS_INFO (state, info) {
     const hmsList: Array<DeviceHms> = state.hmsInfo[info.sn]
     state.hmsInfo[info.sn] = info.host.concat(hmsList ?? [])
-  }
+  },
+  SET_DEVICES_CMD_EXECUTE_INFO (state, info) { // 保存设备指令ws消息推送
+    if (!info.sn) {
+      return
+    }
+    if (state.devicesCmdExecuteInfo[info.sn]) {
+      const index = state.devicesCmdExecuteInfo[info.sn].findIndex(cmdExecuteInfo => cmdExecuteInfo.biz_code === info.biz_code)
+      if (index >= 0) {
+        // 丢弃前面的消息
+        if (state.devicesCmdExecuteInfo[info.sn][index].timestamp > info.timestamp) {
+          return
+        }
+        state.devicesCmdExecuteInfo[info.sn][index] = info
+      } else {
+        state.devicesCmdExecuteInfo[info.sn].push(info)
+      }
+    } 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> = {
@@ -218,7 +243,12 @@
   state: initStateFunc,
   getters,
   mutations,
-  actions
+  actions,
+  modules: {
+    getter,
+    map,
+    common
+  },
 }
 
 const rootStore = createStore(storeOptions)

--
Gitblit v1.9.3