forked from drone/command-center-dashboard

chenyao
2025-04-21 2a45e8331f65e4fc6dee2fba898bfbeaa01b0f5c
src/views/SignMachineNest/MachineRight/MachineMonitor.vue
@@ -15,13 +15,17 @@
import CommonTitle from '@/components/CommonTitle.vue'
import LiveVideo from '@/components/LiveVideo.vue'
import { liveStart } from '@/api/home/machineNest'
// import { CURRENT_CONFIG as config } from '@/utils/http/config'
import { useStore } from 'vuex'
const store = useStore()
// 单个机巢信息
const singleUavHome = computed(() => store.state.home.singleUavHome);
const osdVisible = computed(() => store.state.home.osdVisible);
const wsInfo = inject('wsInfo')
let device_osd_info = computed(() => wsInfo.value?.device_osd || {});
let device_osd_host = computed(() => device_osd_info?.value?.data?.host || {});
const dockSn = inject('dockSn')
const droneSn = inject('droneSn')
// 直播地址
let airPortUrl = ref('')
// 获取机巢直播地址
@@ -43,14 +47,13 @@
const isTakeOff = ref(false)
// 监听ws消息
watch(() => store.state.home.deviceState, async (newValue) => {
      const deviceInfo = newValue?.deviceInfo[osdVisible.value.sn]
      if (!deviceInfo) return
      const currentIsTakeOff = ![14, 0].includes(deviceInfo?.mode_code)
watch(device_osd_host, async () => {
      if (device_osd_host?.value?.mode_code === undefined) return
     const currentIsTakeOff = ![14, 0].includes(device_osd_host.value?.mode_code)
      // 如果还是之前的状态,不切换
      if (isTakeOff.value === currentIsTakeOff) return
      isTakeOff.value = currentIsTakeOff
      isTakeOff.value ? await getDroneLiveUrl(osdVisible.value.sn, 2) : await getVideoUrl(singleUavHome.value.device_sn, 1)
      isTakeOff.value ? await getDroneLiveUrl(droneSn.value, 2) : await getVideoUrl(dockSn.value, 1)
   },
   {
      immediate: true,
@@ -59,7 +62,7 @@
)
onMounted(() => {
   getVideoUrl(singleUavHome.value.device_sn, 1)
   getVideoUrl(dockSn.value, 2)
})
onUnmounted(() => {
   airPortUrl.value = ''