Browse Source

一键返航

李富豪 1 year ago
parent
commit
1ec4b43e99

+ 21 - 3
Web/src/components/airport/components/InfoModal.vue

@@ -42,7 +42,7 @@
               </span>
             </div>
             <div v-else>
-              N/A
+              当前正常
             </div>
           </div>
         </div>
@@ -168,7 +168,7 @@
                 </span>
               </div>
               <div v-else>
-                N/A
+                当前正常
               </div>
             </div>
           </div>
@@ -182,6 +182,11 @@
                 关闭直播
               </span>
             </div>
+            <div class="content-aircraft-head-right-bottom-icon" style="margin-right: 5px;">
+              <a-tooltip title="一键返航">
+                <img :src="returnHomeSrc" @click="onClickReturnHome">
+              </a-tooltip>
+            </div>
             <div class="content-aircraft-head-right-bottom-icon">
               <a-tooltip title="操作">
                 <img :src="aircraftSelectedSrc" @click="state.droneControlPanelVisible = false"
@@ -364,6 +369,7 @@ import { message } from 'ant-design-vue';
 import { CloseOutlined, PlaySquareOutlined, PoweroffOutlined } from '@ant-design/icons-vue'
 import LivePlayer from '/@/components/livePlayer/index.vue';
 import taskSrc from '../icons/info/task.svg';
+import returnHomeSrc from '../icons/info/returnHome.svg';
 import dock2Src from '../icons/info/dock2.png';
 import M30Src from '../icons/info/m30.png';
 import M3tdSrc from '../icons/info/m3td.png';
@@ -414,7 +420,7 @@ const props = withDefaults(defineProps<Props>(), {
 const store = useMyStore()
 
 // 机场控制面板
-const { dockControlPanelVisible, setDockControlPanelVisible, onCloseControlPanel } = useDockControl();
+const { dockControlPanelVisible, setDockControlPanelVisible, onCloseControlPanel, sendDockControlCmd } = useDockControl();
 
 const hmsInfo = computed(() => store.state.hmsInfo);
 
@@ -840,6 +846,18 @@ const onDeviceStopLive = async () => {
     message.success('已停止直播');
   }
 }
+
+// 点击一键返航
+const onClickReturnHome = async () => {
+  try {
+    await sendDockControlCmd({
+      sn: props.osdInfo.gateway_sn,
+      cmd: 'return_home' as any,
+    }, false)
+  } catch (error) {
+    console.error(error);
+  }
+}
 </script>
 
 <style lang="scss" scoped>

+ 10 - 0
Web/src/components/airport/icons/info/returnHome.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>一键返航</title>
+    <g id="一键返航" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="编组" transform="translate(2.000000, 23.000000)" fill="#F3E04E" fill-rule="nonzero" stroke="#FFFFFF" stroke-width="3">
+            <path d="M138.159317,117.89992 L139.238883,129.377406 L116.994151,129.377406 L118.073716,117.89992 L97.9881155,117.89992 L85.0617387,163.753045 L113.755454,163.753045 L115.914585,146.565226 L140.687773,146.565226 L142.477579,163.753045 L171.171295,163.753045 L158.244918,117.89992 L138.159317,117.89992 L138.159317,117.89992 Z M146.028782,56.7624192 L146.028782,43.2678501 C146.028782,25.5402477 155.602823,7.07399518 170.858789,0 L159.154026,0 C153.841427,0 148.159503,1.05115591 142.846904,3.18187735 C123.329496,9.9149571 110.204252,28.722125 110.204252,49.2906893 L110.204252,56.7340096 L85.3742445,56.7340096 L127.960264,99.3200288 L170.546283,56.7340096 L146.028782,56.7340096 L146.028782,56.7624192 Z" id="形状"></path>
+            <path d="M243.530595,132.587693 C229.780339,115.968066 199.950239,104.490579 166.142792,99.3484384 L162.193855,103.297375 C244.411293,109.916817 284.525675,192.361532 126,189.52057 C-32.5256752,186.679608 14.9183889,107.700866 89.8061451,103.268966 L85.8572081,99.3200288 C52.6179536,104.490579 22.219661,116.507848 8.46940533,132.559283 C-20.1959005,166.991742 25.1174422,209.975496 126,209.975496 C226.882558,209.975496 272.1959,166.991742 243.530595,132.587693 L243.530595,132.587693 Z" id="路径"></path>
+        </g>
+    </g>
+</svg>

+ 2 - 2
Web/src/components/airport/index.vue

@@ -41,7 +41,7 @@
               </span>
             </div>
             <div v-else>
-              N/A
+              当前正常
             </div>
           </div>
         </div>
@@ -65,7 +65,7 @@
               </span>
             </div>
             <div v-else>
-              N/A
+              当前正常
             </div>
           </div>
         </div>

+ 6 - 8
Web/src/components/g-map/DroneControlPanel.vue

@@ -168,7 +168,7 @@
         </template>
         <span v-for="(cmdItem) in cmdList" :key="cmdItem.cmdKey" class="control-cmd-item">
           <Button style="margin-right: 10px;" :loading="cmdItem.loading" size="small" ghost
-            @click="sendControlCmd(cmdItem, 0)">
+            @click="sendControlCmd(cmdItem)">
             {{ cmdItem.operateText }}
           </Button>
         </span>
@@ -318,11 +318,9 @@ const clientId = computed(() => {
 const initCmdList = baseCmdList.map(cmdItem => Object.assign({}, cmdItem))
 const cmdList = ref(initCmdList)
 
-const {
-  sendDockControlCmd
-} = useDockControl()
+const { sendDockControlCmd } = useDockControl()
 
-async function sendControlCmd(cmdItem: DeviceCmdItem, index: number) {
+async function sendControlCmd(cmdItem: DeviceCmdItem) {
   cmdItem.loading = true
   const result = await sendDockControlCmd({
     sn: props.sn,
@@ -330,12 +328,12 @@ async function sendControlCmd(cmdItem: DeviceCmdItem, index: number) {
     action: cmdItem.action
   }, false)
   if (result) {
-    message.success('Return home successful')
+    // message.success('操作成功')
     if (flightController.value) {
       exitFlightCOntrol()
     }
   } else {
-    message.error('Failed to return home')
+    // message.error('操作失败')
   }
   cmdItem.loading = false
 }
@@ -509,7 +507,7 @@ async function exitFlightCOntrol() {
       flightController.value = false
       deviceTopicInfo.subTopic = ''
       deviceTopicInfo.pubTopic = ''
-      message.success('Exit flight control')
+      message.success('退出飞行控制')
     }
   } catch (error: any) {
   }

+ 1 - 1
Web/src/components/onLineDevice/components/InfoModal.vue

@@ -30,7 +30,7 @@
                 {{ getTextByModeCode(deviceInfo.device.mode_code) }}
               </div>
               <div v-else>
-                N/A
+                当前正常
               </div>
             </div>
           </div>

+ 2 - 2
Web/src/components/onLineDevice/index.vue

@@ -22,7 +22,7 @@
               </span>
             </div>
             <div v-else>
-              N/A
+              当前正常
             </div>
           </div>
         </div>
@@ -47,7 +47,7 @@
               </div>
             </div>
             <div v-else>
-              N/A
+              当前正常
             </div>
           </div>
         </div>