| | |
| | | </a-col> |
| | | <a-col span="2"></a-col> |
| | | <a-col span="8"> |
| | | <a-button :class="[showOption ? 'active-color' : 'unactive-color']" class="width-100" type="primary" |
| | | :disabled="dockControlPanelVisible" size="small" @click="openFlySetting"> |
| | | <a-button :class="[airPortOption ? 'active-color' : 'unactive-color']" class="width-100" type="primary" |
| | | size="small" @click="openFlySetting"> |
| | | 操作 |
| | | </a-button> |
| | | </a-col> |
| | |
| | | {{ !deviceInfo.device ? EModeText[EModeCode.Disconnected] : EModeText[deviceInfo.device?.mode_code] |
| | | }}</a-col> |
| | | <a-col span="15"> |
| | | <span></span> |
| | | <a-select :showArrow="false" v-model:value="aircraSelected" :bordered="false" :options="aircraftList" |
| | | <div style="width:100%;padding:0 5px;background-color: #5d5f61;color: #fff;font-size: 10px;">{{deviceInfo.device?.mode_code == 14 || !deviceInfo.device ? 'N/A' : '当前正常'}}</div> |
| | | <!-- <a-select :showArrow="false" v-model:value="aircraSelected" :bordered="false" :options="aircraftList" |
| | | :placeholder="aircraftList.length == 0 ? 'N/A' : '请选择'" :disabled="aircraftList.length == 0 ? true : false" |
| | | size="small" style="width:100%;background-color: #5d5f61;color: #fff;" @change="selectChange"></a-select> |
| | | size="small" style="width:100%;background-color: #5d5f61;color: #fff;" @change="selectChange"></a-select> --> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row align="middle" justify="center"> |
| | |
| | | class="flex-display flex-justify-center mt5 mb5">当前设备已关机,无法进行直播</div> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row class="p5" align="middle" justify="space-between"> |
| | | <a-row class="p5" v-if="deviceInfo.device?.mode_code != 14 && deviceInfo.device" align="middle" justify="space-between"> |
| | | <a-col span="11"> |
| | | <a-button :disabled="deviceInfo.device?.mode_code == 14 || !deviceInfo.device ? true : false" |
| | | :class="[showAircraft ? 'active-color' : 'unactive-color']" class="width-100" type="primary" size="small" |
| | | @click="openAircra"> |
| | | 监控 |
| | | <a-button :class="[aircrafIndex === 0 ? 'active-color' : 'unactive-color']" class="width-100" type="primary" size="small" |
| | | @click="openAircra(0)"> |
| | | 飞行相机 |
| | | </a-button> |
| | | </a-col> |
| | | <a-col span="11"> |
| | | <a-button :class="[openDroneControl ? 'active-color' : 'unactive-color']" class="width-100" type="primary" |
| | | size="small" @click="openDeviceSetting"> |
| | | 操作 |
| | | <a-button :class="[aircrafIndex === 1 ? 'active-color' : 'unactive-color']" class="width-100" type="primary" |
| | | size="small" @click="openAircra(1)"> |
| | | M30T相机 |
| | | </a-button> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row class="p5" align="middle" justify="space-between"> |
| | | <a-col span="11"> |
| | | <a-button :disabled="deviceInfo.device?.mode_code == 14 || !deviceInfo.device ? true : false" |
| | | :class="[showAircraft ? 'active-color' : 'unactive-color']" class="width-100" type="primary" size="small" |
| | | @click="openAircra"> |
| | | 监控 |
| | | </a-button> |
| | | </a-col> |
| | | <a-col span="11"> |
| | | <a-row v-if="deviceInfo.device?.mode_code != 14 && deviceInfo.device" class="p5" align="middle" justify="space-between"> |
| | | <a-col span="24"> |
| | | <a-button :class="[openDroneControl ? 'active-color' : 'unactive-color']" class="width-100" type="primary" |
| | | size="small" @click="openDeviceSetting"> |
| | | 操作 |
| | |
| | | const root = getRoot() |
| | | // 监控显示 |
| | | const showMonitor = ref(false) |
| | | // 操作显示 |
| | | const showOption = ref(false) |
| | | const mouseMode = ref(false) |
| | | const store = useMyStore() |
| | | // 机场直播地址 |
| | | const airPortUrl = ref('') |
| | | const airPortOption = ref(false) |
| | | // 设备列表 |
| | | const droneList = ref() |
| | | // 设备相机 |
| | |
| | | // 飞机视频列表 |
| | | const aircraftList = ref([]) |
| | | const aircraSelected = ref(undefined) |
| | | const aircrafIndex = ref(-1) |
| | | const state = reactive({ |
| | | currentType: '', |
| | | coverIndex: 0 |
| | |
| | | } |
| | | } |
| | | // 打开飞机监控 |
| | | const openAircra = () => { |
| | | const openAircra = (type: number) => { |
| | | showAircraft.value = !showAircraft.value |
| | | if (type === aircrafIndex.value) { |
| | | showAircraft.value = false |
| | | aircrafIndex.value = -1 |
| | | } else { |
| | | showAircraft.value = true |
| | | aircrafIndex.value = type |
| | | } |
| | | if (showAircraft.value) { |
| | | loadDroneVideo() |
| | | loadDroneVideo(type) |
| | | } else { |
| | | closeFly() |
| | | } |
| | |
| | | }) |
| | | } |
| | | // 加载无人机的视频信息 |
| | | const loadDroneVideo = async () => { |
| | | const loadDroneVideo = async (index: number) => { |
| | | aircraftList.value = [] |
| | | await getLiveCapacity({ id: store.state.common.projectId }) |
| | | .then(res => { |
| | |
| | | console.warn('warning: get live capacity is null!!!') |
| | | return |
| | | } |
| | | const resData: Array<[]> = res.data |
| | | const drone = res.data.find(v => v.sn === deviceInfo.dock.basic_osd.sub_device?.device_sn) |
| | | const temp: Array<SelectOption> = [] |
| | | if (drone) { |
| | |
| | | vadeosList: v.videos_list |
| | | } |
| | | }) |
| | | aircraSelected.value = aircraftList.value[0].value |
| | | aircraSelected.value = aircraftList.value[index].value |
| | | flyOnStart() |
| | | } else { |
| | | showAircraft.value = false |
| | |
| | | const videoId = deviceInfo.dock.basic_osd?.sub_device?.device_sn + '/' + aircraSelected.value + '/' + 'normal-0' |
| | | const streamId = deviceInfo.dock.basic_osd?.sub_device?.device_sn + '-' + aircraSelected.value + '-' + 'normal-0' |
| | | const liveURL = config.rtmpURL + streamId |
| | | console.log('飞机设备播放事件触发') |
| | | await startLivestream({ |
| | | url: liveURL, |
| | | video_id: videoId, |
| | |
| | | }) |
| | | // const videoId = deviceInfo.dock.basic_osd?.sub_device?.device_sn + '/' + aircraSelected.value + '/' + 'normal-0' |
| | | aircraftList.value = [] |
| | | aircraSelected.value = undefined |
| | | aircraSelected.value = '' |
| | | } |
| | | // 打开机场操作 |
| | | const openFlySetting = () => { |
| | | openDroneControl.value = false |
| | | setDockControlPanelVisible(true) |
| | | airPortOption.value = !airPortOption.value |
| | | if (airPortOption.value) { |
| | | setDockControlPanelVisible(true) |
| | | } else { |
| | | setDockControlPanelVisible(false) |
| | | } |
| | | } |
| | | // 打开无人机操作 |
| | | const openDeviceSetting = () => { |
| | | setDockControlPanelVisible(false) |
| | | airPortOption.value = false |
| | | openDroneControl.value = !openDroneControl.value |
| | | } |
| | | watch(() => store.state.deviceStatusEvent, |
| | |
| | | hmsInfo, |
| | | sn, |
| | | showMonitor, |
| | | showOption, |
| | | airPortUrl, |
| | | openMonitor, |
| | | droneIndex, |
| | |
| | | openFlySetting, |
| | | openDeviceSetting, |
| | | airTimeout, |
| | | flyTimeout |
| | | flyTimeout, |
| | | aircrafIndex, |
| | | airPortOption |
| | | } |
| | | } |
| | | }) |