From bd152b06ef36dce4e31d621cbd28fd1c17a34dba Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Sat, 19 Apr 2025 08:54:37 +0800
Subject: [PATCH] feat: 抽出ws消息

---
 src/components/CurrentTaskDetails/CurrentTaskDetails.vue |   25 ++++++++++++++-----------
 1 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/src/components/CurrentTaskDetails/CurrentTaskDetails.vue b/src/components/CurrentTaskDetails/CurrentTaskDetails.vue
index 1ec6661..be5398b 100644
--- a/src/components/CurrentTaskDetails/CurrentTaskDetails.vue
+++ b/src/components/CurrentTaskDetails/CurrentTaskDetails.vue
@@ -36,9 +36,6 @@
 import { getJobDetails } from '@/api/home/task'
 
 import RealTimeMap from '@/components/CurrentTaskDetails/RealTimeMap.vue'
-import { getWebsocketUrl } from '@/websocket/util/config'
-import { useConnectWebSocket } from '@/utils/websocket/connect-websocket'
-import { EBizCode } from '@/utils/staticData/enums'
 import ControlPanel from '@/components/CurrentTaskDetails/ControlPanel/ControlPanel.vue'
 import TaskDetailsHead from '@/components/CurrentTaskDetails/TaskDetailsHead.vue'
 import TaskDetailsLeft from '@/components/CurrentTaskDetails/TaskDetailsLeft.vue'
@@ -49,7 +46,7 @@
 import { updateDroneQualityApi } from '@/api/drc'
 import { getLiveAiLinkApi } from '@/api/payload'
 import { CURRENT_CONFIG } from '@/utils/http/config'
-import { useDroneWS } from '@/components/CurrentTaskDetails/useDroneWS'
+import { useDroneWS } from '@/hooks/useDroneWS'
 
 const isAutoControl = ref(true) //是否自动控制
 const lineQuality = ref(1) //1流畅,2标清
@@ -61,12 +58,21 @@
 const trueAltitude = ref('') // 真实高度
 const isAiLive = ref(false) // 是ai直播
 const video_id = ref('') // 直播视频id
-const workspace_id = ref('')
+
 const isShow = defineModel('show') // 是否显示当前任务详情
 const props = defineProps(['id'])
 const currentLiveUrl = ref('') // 当前直播地址
 const isTakeOff = ref(false) // 是在飞行中
 const isMaxMap = ref(false) //是大地图
+
+const workspace_id = ref('')
+let wsInfo = useDroneWS(workspace_id) //ws信息,是一个ref对象
+watch(wsInfo, () => {
+	// wsInfo 变化触发
+	setCurrentLiveUrl()
+}, { deep: true })
+provide('wsInfo', wsInfo)
+
 
 provide('isAutoControl', isAutoControl)
 provide('lineQuality', lineQuality)
@@ -80,11 +86,7 @@
 provide('isAiLive', isAiLive)
 provide('video_id', video_id)
 
-let wsInfo = useDroneWS(workspace_id)
-watch(wsInfo, () => {
-	setCurrentLiveUrl()
-}, { deep: true })
-provide('wsInfo', wsInfo)
+
 
 // 获取机巢直播
 const getDeviceLiveUrl = async () => {
@@ -119,7 +121,8 @@
 // 设置当前直播地址
 const setCurrentLiveUrl = async () => {
 	const deviceInfo = deviceOsdInfo.value?.data?.host
-	const currentIsTakeOff = ![14, 0].includes(deviceInfo.mode_code)
+  if (!deviceInfo) return
+	const currentIsTakeOff = ![14, 0].includes(deviceInfo?.mode_code)
 	// 如果还是之前的状态,不切换
 	if (isTakeOff.value === currentIsTakeOff) return
 	isTakeOff.value = currentIsTakeOff

--
Gitblit v1.9.3