From 0fd2c8cdc1f95d6f03c804f0062340134cace01d Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 16 Apr 2025 18:39:57 +0800
Subject: [PATCH] feat:新增事件列表---点位上图及调用
---
src/hooks/useSingleDroneMap/useSingleDroneMap.js | 4
src/api/home/machineNest.js | 83 +++++++++-------
src/views/SignMachineNest/SignMachineNest.vue | 169 +++++++++++++++++++--------------
3 files changed, 142 insertions(+), 114 deletions(-)
diff --git a/src/api/home/machineNest.js b/src/api/home/machineNest.js
index cc2c476..7c7cf8a 100644
--- a/src/api/home/machineNest.js
+++ b/src/api/home/machineNest.js
@@ -2,60 +2,69 @@
// 机巢统计
export const getDeviceInfoNum = params => {
- return request({
- url: '/drone-device-core/manage/api/v1/devices/getDeviceInfoNum',
- method: 'get',
- params,
- })
+ return request({
+ url: '/drone-device-core/manage/api/v1/devices/getDeviceInfoNum',
+ method: 'get',
+ params,
+ })
}
// 机巢列表
export const selectDevicePage = ({ nickname, ...params }) => {
- return request({
- url: `/drone-device-core/manage/api/v1/devices/selectDevicePage?type=${params.type}¤t=${params.current}&size=${params.size}`,
- method: 'post',
- data: {
- nickname,
- },
- })
+ return request({
+ url: `/drone-device-core/manage/api/v1/devices/selectDevicePage?type=${params.type}¤t=${params.current}&size=${params.size}`,
+ method: 'post',
+ data: {
+ nickname,
+ },
+ })
}
// 机巢数据
export const getFlightStatistics = dockSn => {
- return request({
- url: `/drone-device-core/manage/api/v1/devices/getFlightStatistics?dockSn=${dockSn}`,
- method: 'get',
- params: {},
- })
+ return request({
+ url: `/drone-device-core/manage/api/v1/devices/getFlightStatistics?dockSn=${dockSn}`,
+ method: 'get',
+ params: {},
+ })
}
// 机巢直播/无人机直播 均可使用
export const liveStart = (deviceSn, quality) => {
- return request({
- url: `/drone-device-core/manage/api/v1/live/streams/liveStart?deviceSn=${deviceSn}&quality=${quality}`,
- method: 'post',
- data: {},
- headers: {
- areaCode: '',
- },
- })
+ return request({
+ url: `/drone-device-core/manage/api/v1/live/streams/liveStart?deviceSn=${deviceSn}&quality=${quality}`,
+ method: 'post',
+ data: {},
+ headers: {
+ areaCode: '',
+ },
+ })
}
// 单个机巢获取机巢详情
export const getDeviceDetail = deviceSn => {
- return request({
- url: `/drone-device-core/manage/api/v1/devices/getDeviceDetail?deviceSn=${deviceSn}`,
- method: 'get',
- params: {},
- })
+ return request({
+ url: `/drone-device-core/manage/api/v1/devices/getDeviceDetail?deviceSn=${deviceSn}`,
+ method: 'get',
+ params: {},
+ })
}
// 设备-事件列表
-export const getDeviceEventList = (data,params) => {
- return request({
- url: `/drone-device-core/jobEvent/eventPage`,
- method: 'post',
- data,
- params
- })
+export const getDeviceEventList = (data, params) => {
+ return request({
+ url: `/drone-device-core/jobEvent/eventPage`,
+ method: 'post',
+ data,
+ params
+ })
}
+// 事件列表---点位上图
+export const getEventList = (data, params) => {
+ return request({
+ url: '/drone-device-core/jobEvent/eventList',
+ method: 'post',
+ data,
+ params
+ })
+}
diff --git a/src/hooks/useSingleDroneMap/useSingleDroneMap.js b/src/hooks/useSingleDroneMap/useSingleDroneMap.js
index 3fba7f9..86c46b0 100644
--- a/src/hooks/useSingleDroneMap/useSingleDroneMap.js
+++ b/src/hooks/useSingleDroneMap/useSingleDroneMap.js
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2025-04-15 22:41:40
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2025-04-16 18:31:11
+ * @LastEditTime: 2025-04-16 18:38:00
* @FilePath: \command-center-dashboard\src\hooks\useSingleDroneMap\useSingleDroneMap.js
* @Description:
*
@@ -212,8 +212,6 @@
const init = () => {
viewer = window.$viewer
-
- console.log(viewer, window, 111111)
handlerInit()
}
diff --git a/src/views/SignMachineNest/SignMachineNest.vue b/src/views/SignMachineNest/SignMachineNest.vue
index bfec7ce..453e73c 100644
--- a/src/views/SignMachineNest/SignMachineNest.vue
+++ b/src/views/SignMachineNest/SignMachineNest.vue
@@ -1,98 +1,119 @@
<template>
- <MachineLeft></MachineLeft>
- <MachineRight></MachineRight>
+ <MachineLeft></MachineLeft>
+ <MachineRight></MachineRight>
</template>
<script setup>
import MachineLeft from '@/views/SignMachineNest/MachineLeft/MachineLeft.vue'
-import MachineRight from '@/views/SignMachineNest/MachineRight/MachineRight.vue';
-import { useConnectWebSocket } from '@/utils/websocket/connect-websocket';
-import { getWebsocketUrl } from '@/websocket/util/config';
-import { EBizCode } from '@/utils/staticData/enums.js';
-import { EModeCode } from '@/utils/staticData/device.js';
-import { useStore } from 'vuex';
-import { getDeviceDetail, getFlightStatistics } from '@/api/home/machineNest';
+import MachineRight from '@/views/SignMachineNest/MachineRight/MachineRight.vue'
+import { useConnectWebSocket } from '@/utils/websocket/connect-websocket'
+import { getWebsocketUrl } from '@/websocket/util/config'
+import { EBizCode } from '@/utils/staticData/enums.js'
+import { EModeCode } from '@/utils/staticData/device.js'
+import { useStore } from 'vuex'
+import { getDeviceDetail, getFlightStatistics, getEventList } from '@/api/home/machineNest'
+import { useSingleDroneMap } from '@/hooks/useSingleDroneMap/useSingleDroneMap'
-const store = useStore();
-let connectWs = ref(null);
+const store = useStore()
+let connectWs = ref(null)
// 单个机巢信息
-const singleUavHome = computed(() => store.state.home.singleUavHome);
+const singleUavHome = computed(() => store.state.home.singleUavHome)
+const selectedAreaCode = computed(() => store.state.user.selectedAreaCode)
-let osdVisible = ref({});
+let osdVisible = ref({})
-let workspaceId = ref('');
+let workspaceId = ref('')
// 进入单个机巢开始连接ws
const createWsConntect = () => {
- let webSorketUrl = getWebsocketUrl() + '&workspace-id=' + workspaceId.value;
- // 监听ws 消息
- connectWs.value = useConnectWebSocket(messageHandler, webSorketUrl);
-};
+ let webSorketUrl = getWebsocketUrl() + '&workspace-id=' + workspaceId.value
+ // 监听ws 消息
+ connectWs.value = useConnectWebSocket(messageHandler, webSorketUrl)
+}
-const messageHandler = (result) => {
- let payload = JSON.parse(result) // 为了兼容聊天消息
- if (!payload) return
- switch (payload.biz_code) {
- case EBizCode.GatewayOsd: {
- store.commit('setGatewayInfo', payload.data)
- break
- }
- case EBizCode.DeviceOsd: {
- // console.log(payload, 'DeviceOsd')
- store.commit('setDeviceInfo', payload)
- store.commit('setWsMessage', payload)
- break
- }
- case EBizCode.DockOsd: {
- store.commit('setDockOnfo', payload.data)
- break
- }
- default:
- break
- }
-};
+const messageHandler = result => {
+ let payload = JSON.parse(result) // 为了兼容聊天消息
+ if (!payload) return
+ switch (payload.biz_code) {
+ case EBizCode.GatewayOsd: {
+ store.commit('setGatewayInfo', payload.data)
+ break
+ }
+ case EBizCode.DeviceOsd: {
+ // console.log(payload, 'DeviceOsd')
+ store.commit('setDeviceInfo', payload)
+ store.commit('setWsMessage', payload)
+ break
+ }
+ case EBizCode.DockOsd: {
+ store.commit('setDockOnfo', payload.data)
+ break
+ }
+ default:
+ break
+ }
+}
+
+// 单机巢初始化及事件撒点
+const { init, initEventLayer, initDroneEntity } = useSingleDroneMap({
+ eventApi: getEventList,
+ eventApiParams: {
+ device_sn: singleUavHome.value.device_sn,
+ },
+})
// 获取单个机巢信息
const getSingleDetails = () => {
- getDeviceDetail(singleUavHome.value.device_sn).then((res) => {
- if (res.data.code !== 0) return;
- const result = res.data.data;
- const child = result.children;
- // 对应store 里面数据结构
- osdVisible.value.sn = child?.device_sn || ''
- osdVisible.value.callsign = child?.nickname || '--'
- osdVisible.value.model = EModeCode.Disconnected || ''
- osdVisible.value.visible = true
- osdVisible.value.gateway_sn = result?.device_sn || ''
- osdVisible.value.is_dock = true
- osdVisible.value.gateway_callsign = result?.callsign || '--'
- osdVisible.value.payloads = child?.payloads_list || []
- osdVisible.value.device_domain = child.domain || 0
- osdVisible.value.device_sub_type = child.sub_type || 1
- osdVisible.value.device_type = child.type || 0
- // osdVisible.value.latest_wayline_job = result?.latest_wayline_job || {}
- store.commit('setOsdVisibleInfo', osdVisible.value);
- store.commit('setSelectedWorkSpaceId', result.workspace_id);
- workspaceId.value = result.workspace_id;
- createWsConntect();
- });
-};
+ getDeviceDetail(singleUavHome.value.device_sn).then(res => {
+ if (res.data.code !== 0) return
+ const result = res.data.data
+
+ initDroneEntity({
+ lng: result.longitude,
+ lat: result.latitude,
+ status: result.status,
+ })
+
+ const child = result.children
+ // 对应store 里面数据结构
+ osdVisible.value.sn = child?.device_sn || ''
+ osdVisible.value.callsign = child?.nickname || '--'
+ osdVisible.value.model = EModeCode.Disconnected || ''
+ osdVisible.value.visible = true
+ osdVisible.value.gateway_sn = result?.device_sn || ''
+ osdVisible.value.is_dock = true
+ osdVisible.value.gateway_callsign = result?.callsign || '--'
+ osdVisible.value.payloads = child?.payloads_list || []
+ osdVisible.value.device_domain = child.domain || 0
+ osdVisible.value.device_sub_type = child.sub_type || 1
+ osdVisible.value.device_type = child.type || 0
+ // osdVisible.value.latest_wayline_job = result?.latest_wayline_job || {}
+ store.commit('setOsdVisibleInfo', osdVisible.value)
+ store.commit('setSelectedWorkSpaceId', result.workspace_id)
+ workspaceId.value = result.workspace_id
+ createWsConntect()
+ })
+}
// 获取机巢统计数据 提供给左右侧组件使用
const getMachineData = () => {
- getFlightStatistics(singleUavHome.value.device_sn).then(res => {
- if (res.data.code !== 0) return;
- const result = res.data.data;
- store.commit('setSingleTotal', result);
- })
-};
+ getFlightStatistics(singleUavHome.value.device_sn).then(res => {
+ if (res.data.code !== 0) return
+ const result = res.data.data
+ store.commit('setSingleTotal', result)
+ })
+}
onMounted(() => {
- getSingleDetails();
- getMachineData();
-});
+ nextTick(() => {
+ init()
+ })
+ initEventLayer()
+ getSingleDetails()
+ getMachineData()
+})
onUnmounted(() => {
- connectWs?.value?.close();
-});
+ connectWs?.value?.close()
+})
</script>
--
Gitblit v1.9.3