<template>
|
<MachineLeft></MachineLeft>
|
<MachineRight></MachineRight>
|
</template>
|
|
<script setup>
|
import MachineLeft from '@/views/SignMachineNest/MachineLeft/MachineLeft.vue'
|
import MachineRight from '@/views/SignMachineNest/MachineRight/MachineRight.vue'
|
import { useStore } from 'vuex'
|
import { getDeviceDetail, getEventList, getFlightStatistics } from '@/api/home/machineNest'
|
import { useSingleDroneMap } from '@/hooks/useSingleDroneMap/useSingleDroneMap'
|
import { useDroneWS } from '@/hooks/useDroneWS'
|
import _ from 'lodash'
|
import { getAreaCodeApi } from '@/api/home'
|
const store = useStore()
|
let connectWs = ref(null)
|
// 单个机巢信息
|
const singleUavHome = computed(() => store.state.home.singleUavHome)
|
let workspaceId = ref('')
|
let { wsInfo } = useDroneWS(workspaceId) //ws信息,是一个ref对象
|
const dockSn = computed(() => singleUavHome.value.device_sn) //机巢sn
|
const droneSn = computed(() => wsInfo.value?.device_osd?.data?.sn) //无人机sn
|
const singleTotal = ref({})
|
const dockDetails = ref('')
|
provide('dockSn', dockSn)
|
provide('droneSn', droneSn)
|
provide('wsInfo', wsInfo)
|
provide('dockDetails', dockDetails)
|
provide('singleTotal', singleTotal)
|
|
// 单机巢初始化及事件撒点
|
const { init, initEventLayer, initDroneEntity } = useSingleDroneMap({
|
eventApi: getEventList,
|
eventApiParams: {
|
device_sn: singleUavHome.value.device_sn,
|
},
|
})
|
|
const getSingleDetails = () => {
|
getDeviceDetail(singleUavHome.value.device_sn).then(res => {
|
const result = res.data.data
|
dockDetails.value = result
|
const storageObj = _.pick(result, ['latitude', 'longitude']) || {}
|
store.commit('setSingleUavHome',{...singleUavHome.value, ...storageObj})
|
initDroneEntity({
|
lng: result.longitude,
|
lat: result.latitude,
|
status: result.status,
|
})
|
workspaceId.value = result.workspace_id
|
})
|
}
|
|
// 获取机巢统计数据 提供给左右侧组件使用
|
const getMachineData = () => {
|
getFlightStatistics(singleUavHome.value.device_sn).then(res => {
|
if (res.data.code !== 0) return
|
singleTotal.value = res.data.data
|
})
|
}
|
|
onMounted(() => {
|
initEventLayer()
|
getSingleDetails()
|
getMachineData()
|
})
|
|
onUnmounted(() => {
|
connectWs?.value?.close()
|
})
|
</script>
|