From 4c7c5b721be0c61b7de5d19f0b0007b5aeb825c5 Mon Sep 17 00:00:00 2001
From: husq <931347610@qq.com>
Date: Mon, 16 Oct 2023 10:21:25 +0800
Subject: [PATCH] 无人机控制展示功能样式修改

---
 src/components/GMap.vue                            |   30 +++++++++++++++---------------
 src/components/g-map/use-drone-control-ws-event.ts |   15 +++++++++------
 src/store/common.ts                                |    6 ++++++
 3 files changed, 30 insertions(+), 21 deletions(-)

diff --git a/src/components/GMap.vue b/src/components/GMap.vue
index c9f2248..0ccd53d 100644
--- a/src/components/GMap.vue
+++ b/src/components/GMap.vue
@@ -449,9 +449,6 @@
               }}</a-col>
             <a-col span="15">
               <div style="width:100%;padding:0 5px;background-color: #5d5f61;color: #fff;font-size: 10px;">{{deviceInfo.device?.mode_code == 14 || !deviceInfo.device ? 'N/A' : '当前正常'}}</div>
-              <!-- <a-select :showArrow="false" v-model:value="aircraSelected" :bordered="false" :options="aircraftList"
-                :placeholder="aircraftList.length == 0 ? 'N/A' : '请选择'" :disabled="aircraftList.length == 0 ? true : false"
-                size="small" style="width:100%;background-color: #5d5f61;color: #fff;" @change="selectChange"></a-select> -->
             </a-col>
           </a-row>
           <a-row align="middle" justify="center">
@@ -478,7 +475,10 @@
             <a-col span="24">
               <a-button :class="[openDroneControl ? 'active-color' : 'unactive-color']" class="width-100" type="primary"
                 size="small" @click="openDeviceSetting">
-                飞行控制
+                飞行控制(<DesktopOutlined v-if="controlStatus === 'A'" /> <RobotFilled v-else />{{  controlStatus === 'A' ? 'A控' : 'B控'}}
+                <!-- <template #icon> -->
+                  )
+                <!-- </template> -->
               </a-button>
             </a-col>
           </a-row>
@@ -737,7 +737,8 @@
 import {
   BorderOutlined, LineOutlined, CloseOutlined, ControlOutlined, TrademarkOutlined, ArrowDownOutlined,
   ThunderboltOutlined, SignalFilled, GlobalOutlined, HistoryOutlined, CloudUploadOutlined, RocketOutlined,
-  FieldTimeOutlined, CloudOutlined, CloudFilled, FolderOpenOutlined, RobotFilled, ArrowUpOutlined, CarryOutOutlined
+  FieldTimeOutlined, CloudOutlined, CloudFilled, FolderOpenOutlined, RobotFilled, ArrowUpOutlined, CarryOutOutlined,
+  DesktopOutlined
 } from '@ant-design/icons-vue'
 import { EDeviceTypeName } from '../types'
 import DockControlPanel from './g-map/DockControlPanel.vue'
@@ -767,7 +768,8 @@
     DockControlPanel,
     DroneControlPanel,
     CarryOutOutlined,
-    RocketOutlined
+    RocketOutlined,
+    DesktopOutlined
   },
   name: 'GMap',
   props: {},
@@ -1029,13 +1031,6 @@
           airPortUrl.value = res.data.url
         })
     }
-    // 下拉框选择变化
-    const selectChange = async (e) => {
-      // await closeFly()
-      // setTimeout(async () => {
-      await flyOnStart()
-      // }, 500)
-    }
     // 关闭设备直播
     const onClose = async () => {
       const videoId = droneList.value[droneIndex.value].value + '/' + cameraList.value[cameraIndex.value].value + '/' + videoList.value[videoIndex.value].value
@@ -1099,6 +1094,8 @@
       airPortOption.value = false
       openDroneControl.value = !openDroneControl.value
     }
+    // 飞行控制状态
+    const controlStatus = computed(() => store.state.common.droneControlSource)
     watch(() => store.state.deviceStatusEvent,
       data => {
         if (Object.keys(data.deviceOnline).length !== 0) {
@@ -1420,7 +1417,6 @@
       aircraftUrl,
       aircraftList,
       aircraSelected,
-      selectChange,
       closeOperate,
       closeOsdWindow,
       openDroneControl,
@@ -1429,7 +1425,8 @@
       airTimeout,
       flyTimeout,
       aircrafIndex,
-      airPortOption
+      airPortOption,
+      controlStatus
     }
   }
 })
@@ -1473,6 +1470,9 @@
       display: none;
     }
   }
+  &:deep(.ant-btn > .anticon + span, .ant-btn > span + .anticon, .ant-btn > .anticon + span, .ant-btn > span + .anticon) {
+    margin-left: 5px !important;
+  }
 }
 
 .osd-panel {
diff --git a/src/components/g-map/use-drone-control-ws-event.ts b/src/components/g-map/use-drone-control-ws-event.ts
index 4b7ffdd..355f981 100644
--- a/src/components/g-map/use-drone-control-ws-event.ts
+++ b/src/components/g-map/use-drone-control-ws-event.ts
@@ -1,8 +1,8 @@
-import {message, notification} from 'ant-design-vue'
-import {onBeforeUnmount, onMounted, ref} from 'vue'
+import { message, notification } from 'ant-design-vue'
+import { onBeforeUnmount, onMounted, ref } from 'vue'
 import EventBus from '/@/event-bus/'
-import {EBizCode, EBizCodeMessage} from '/@/types'
-import {ControlSource} from '/@/types/device'
+import { EBizCode, EBizCodeMessage } from '/@/types'
+import { ControlSource } from '/@/types/device'
 import {
   ControlSourceChangeInfo,
   ControlSourceChangeType,
@@ -11,9 +11,10 @@
   FlyToPointMessage,
   TakeoffToPointMessage
 } from '/@/types/drone-control'
-
+import { useMyStore } from '/@/store'
 export interface UseDroneControlWsEventParams {
 }
+const store = useMyStore()
 
 export function useDroneControlWsEvent (sn: string, payloadSn: string, funcs?: UseDroneControlWsEventParams) {
   const droneControlSource = ref(ControlSource.A)
@@ -21,7 +22,8 @@
   function onControlSourceChange (data: ControlSourceChangeInfo) {
     if (data.type === ControlSourceChangeType.Flight && data.sn === sn) {
       droneControlSource.value = data.control_source
-      message.info(`飞行控制改为 ${droneControlSource.value}`)
+      store.commit('SET_DRONE_CONTROL_SOURCE', droneControlSource.value)
+      // message.info(`飞行控制改为 ${droneControlSource.value}`)
       return
     }
     if (data.type === ControlSourceChangeType.Payload && data.sn === payloadSn) {
@@ -88,6 +90,7 @@
   }
 
   onMounted(() => {
+    console.log('弹窗初始化触发?')
     EventBus.on('droneControlWs', handleDroneControlWsEvent)
   })
 
diff --git a/src/store/common.ts b/src/store/common.ts
index 5dc1429..566b858 100644
--- a/src/store/common.ts
+++ b/src/store/common.ts
@@ -1,4 +1,5 @@
 import { MutationTree } from 'vuex'
+import { ControlSource } from '/@/types/device'
 
 const state = () => ({
   projectId: null as string | null,
@@ -10,6 +11,7 @@
     mode: 0, // 0为标准地图, 1为卫星地图
     roadLine: true,
   },
+  droneControlSource: ControlSource.A
 })
 export type RootStateType = ReturnType<typeof state>
 const mutations: MutationTree<RootStateType> = {
@@ -34,6 +36,10 @@
   // 设置地图路网
   SET_MAP_SETTING_ROAD_LINE (state, roadLine: boolean) {
     state.mapSetting.roadLine = roadLine
+  },
+  // 设置飞行控制
+  SET_DRONE_CONTROL_SOURCE (state, droneControlSource: ControlSource) {
+    state.droneControlSource = droneControlSource
   }
 }
 export default {

--
Gitblit v1.9.3