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