From e570732e993bdc8fdd1a8aa37adf77f4fbe36139 Mon Sep 17 00:00:00 2001
From: husq <931347610@qq.com>
Date: Tue, 26 Sep 2023 11:24:00 +0800
Subject: [PATCH] 飞行控制操作按钮取消禁用

---
 src/components/GMap.vue |   43 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/src/components/GMap.vue b/src/components/GMap.vue
index 575a8c8..7d7e941 100644
--- a/src/components/GMap.vue
+++ b/src/components/GMap.vue
@@ -373,7 +373,7 @@
       </div>
       <a-row class="p5" v-if="showMonitor" justify="center" align="middle">
         <!-- <a-spin :spinning="spinning"> -->
-          <Jessibuca v-if="airPortUrl" :videoUrl="airPortUrl" width="100%" height="300px" />
+          <Jessibuca v-if="airPortUrl" @timeout="airTimeout" :videoUrl="airPortUrl" width="100%" height="300px" />
         <!-- </a-spin> -->
       </a-row>
       <!--  飞机-->
@@ -399,10 +399,16 @@
           <a-row align="middle" justify="center">
             <a-col span="24"> <div v-if="deviceInfo.device?.mode_code == 14 || !deviceInfo.device" style="color:#494949;" class="flex-display flex-justify-center mt5 mb5">当前设备已关机,无法进行直播</div> </a-col>
           </a-row>
-          <a-row align="middle" justify="center">
-            <a-col span="24">
+          <a-row class="p5" align="middle" justify="space-between">
+            <a-col span="11">
               <a-button :disabled="deviceInfo.device?.mode_code == 14 || !deviceInfo.device?true:false" :class="[showAircraft?'active-color':'unactive-color']" class="width-100" type="primary"  size="small" @click="openAircra">
                 飞行控制
+              </a-button>
+            </a-col>
+            <a-col span="11">
+              <a-button :class="[openDroneControl?'active-color':'unactive-color']" class="width-100" type="primary"  size="small"
+                @click="openDeviceSetting">
+                操作
               </a-button>
             </a-col>
           </a-row>
@@ -411,7 +417,7 @@
       <!-- 飞机直播 -->
       <a-row class="p5" v-if="showAircraft">
         <!-- <a-spin :spinning="spinning"> -->
-          <Jessibuca v-if="aircraftUrl" :videoUrl="aircraftUrl" width="100%" height="300px" />
+          <Jessibuca v-if="aircraftUrl" @timeout="flyTimeout" :videoUrl="aircraftUrl" width="100%" height="300px" />
         <!-- </a-spin> -->
       </a-row>
       <!-- 飞机图标信息 -->
@@ -807,12 +813,9 @@
     // 打开飞机监控
     const openAircra = () => {
       showAircraft.value = !showAircraft.value
-      setDockControlPanelVisible(false)
       if (showAircraft.value) {
-        openDroneControl.value = true
         loadDroneVideo()
       } else {
-        openDroneControl.value = false
         closeFly()
       }
     }
@@ -902,8 +905,24 @@
           message.error(error)
         })
     }
+    // 机场视频超时说明可能直播被关闭需要重新开启直播
+    const airTimeout = () => {
+      try {
+        onStart()
+      } catch (e) {
+        onClose()
+      }
+    }
+    const flyTimeout = () => {
+      try {
+        flyOnStart()
+      } catch (e) {
+        closeFly()
+      }
+    }
     // 设备开始播放
     const onStart = async () => {
+      airPortUrl.value = ''
       const videoId = droneList.value[droneIndex.value].value + '/' + cameraList.value[cameraIndex.value].value + '/' + videoList.value[videoIndex.value].value
       const streamId = droneList.value[droneIndex.value].value + '-' + cameraList.value[cameraIndex.value].value + '-' + videoList.value[videoIndex.value].value
       const liveURL = config.rtmpURL + streamId
@@ -976,6 +995,11 @@
     const openFlySetting = () => {
       openDroneControl.value = false
       setDockControlPanelVisible(true)
+    }
+    // 打开无人机操作
+    const openDeviceSetting = () => {
+      setDockControlPanelVisible(false)
+      openDroneControl.value = !openDroneControl.value
     }
     watch(() => store.state.deviceStatusEvent,
       data => {
@@ -1306,7 +1330,10 @@
       closeOperate,
       closeOsdWindow,
       openDroneControl,
-      openFlySetting
+      openFlySetting,
+      openDeviceSetting,
+      airTimeout,
+      flyTimeout
     }
   }
 })

--
Gitblit v1.9.3