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