From 88a0986cdcb84b16ed63a88f8dbefb9aa44e7365 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 16 Apr 2025 20:23:03 +0800
Subject: [PATCH] feat: 当前任务详情,相机模式,拍照录像,ui调整

---
 src/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/CurrentTaskDetails.vue |   30 ++++++++++++++++++++++++------
 1 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/src/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/CurrentTaskDetails.vue b/src/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/CurrentTaskDetails.vue
index fc29ad6..45ad001 100644
--- a/src/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/CurrentTaskDetails.vue
+++ b/src/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/CurrentTaskDetails.vue
@@ -18,8 +18,10 @@
 			<TaskDetailsRight v-if="isAutoControl" />
 			<template v-else>
 				<TaskDetailsHead />
-				<TaskDetailsLeft />
 			</template>
+			<TaskDetailsLeft />
+
+
 			<!--	控制面板,里面有方法需要立即执行,不可用v-if		-->
 			<ControlPanel v-show="!isAutoControl" />
 		</div>
@@ -41,9 +43,12 @@
 import TaskDetailsLeft from '@/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/TaskDetailsLeft.vue'
 import TaskDetailsRight from '@/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/TaskDetailsRight.vue'
 import { ElMessage } from 'element-plus'
+import EventBus from '@/event-bus'
 
 const isAutoControl = ref(true)
+const lineQuality = ref(1) //1流畅,2标清
 provide('isAutoControl', isAutoControl)
+provide('lineQuality', lineQuality)
 
 const isShow = defineModel('show')
 const props = defineProps({
@@ -60,19 +65,29 @@
 const deviceOsdInfo = ref({})
 provide('taskDetails', taskDetails)
 provide('deviceOsdInfo', deviceOsdInfo)
+provide('dockSn', taskDetails?.value?.device_sns?.[0])
+provide('droneSn', deviceOsdInfo?.value?.data?.sn)
+
 
 // 机巢直播
 const getDeviceLiveUrl = async () => {
 	if (machineNestUrl.value) return machineNestUrl.value
-	const res = await liveStart(taskDetails.value.device_sns[0], '')
+	const res = await liveStart(taskDetails.value.device_sns[0], 2)
 	machineNestUrl.value = res.data.data.rtcs_url
 	return machineNestUrl.value
 }
 
 // 无人机直播
-const getDockLiveUrl = async dockSn => {
+const getDroneLiveUrl = async droneSn => {
 	if (droneLiveUrl.value) return droneLiveUrl.value
-	const res = await liveStart(dockSn, '')
+	const res = await liveStart(droneSn, lineQuality.value)
+	droneLiveUrl.value = res.data.data.rtcs_url
+	return droneLiveUrl.value
+}
+
+// 无人机直播画质切换
+const changeLineQuality = async () => {
+	const res = await liveStart(droneSn, lineQuality.value)
 	droneLiveUrl.value = res.data.data.rtcs_url
 	return droneLiveUrl.value
 }
@@ -81,11 +96,11 @@
 const setCurrentLiveUrl = async () => {
 	const data = deviceOsdInfo.value?.data
 	const deviceInfo = data?.host
-	const dockSn = data?.sn
+	const drone = data?.sn
 	if ([14, 0].includes(deviceInfo.mode_code)) {
 		currentLiveUrl.value = await getDeviceLiveUrl()
 	} else {
-		currentLiveUrl.value = await getDockLiveUrl(dockSn)
+		currentLiveUrl.value = await getDroneLiveUrl(drone)
 	}
 }
 
@@ -99,6 +114,7 @@
 	})
 }
 
+// websocket 的消息
 const messageHandler = result => {
 	let payload = JSON.parse(result) // 为了兼容聊天消息
 	switch (payload.biz_code) {
@@ -137,9 +153,11 @@
 
 onMounted(() => {
 	getTaskDetails()
+	EventBus.on('CurrentTaskDetails-timeStop', changeLineQuality)
 })
 
 onBeforeUnmount(() => {
+	EventBus.off('CurrentTaskDetails-timeStop', changeLineQuality)
 	removeEvent()
 })
 </script>

--
Gitblit v1.9.3