forked from drone/command-center-dashboard

罗广辉
2025-04-16 88a0986cdcb84b16ed63a88f8dbefb9aa44e7365
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>