| | |
| | | <template> |
| | | <MachineLeft></MachineLeft> |
| | | <MachineRight></MachineRight> |
| | | <MachineLeft></MachineLeft> |
| | | <MachineRight></MachineRight> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import MachineLeft from './components/MachineLeft/MachineLeft.vue' |
| | | import MachineRight from './components/MachineRight/MachineRight.vue'; |
| | | </script> |
| | | 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> |