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}&current=${params.current}&size=${params.size}`,
-		method: 'post',
-		data: {
-			nickname,
-		},
-	})
+  return request({
+    url: `/drone-device-core/manage/api/v1/devices/selectDevicePage?type=${params.type}&current=${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