| | |
| | | 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' |
| | |
| | | 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标清 |
| | |
| | | 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) |
| | |
| | | provide('isAiLive', isAiLive) |
| | | provide('video_id', video_id) |
| | | |
| | | let wsInfo = useDroneWS(workspace_id) |
| | | watch(wsInfo, () => { |
| | | setCurrentLiveUrl() |
| | | }, { deep: true }) |
| | | provide('wsInfo', wsInfo) |
| | | |
| | | |
| | | // 获取机巢直播 |
| | | const getDeviceLiveUrl = async () => { |
| | |
| | | // 设置当前直播地址 |
| | | 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 |