|
|
@@ -515,6 +515,34 @@ function createMarkers() {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+// 获取传感器实时数据
|
|
|
+async function fetchSensorData(nodeId) {
|
|
|
+ try {
|
|
|
+ loadingMetrics.value = true
|
|
|
+ const response = await fetch(config.getApiUrl('/service/page/sensor.json?paged=1&pageSize=50'), {
|
|
|
+ method: 'POST',
|
|
|
+ headers: config.getHeaders(),
|
|
|
+ body: JSON.stringify({ node_id: nodeId })
|
|
|
+ })
|
|
|
+
|
|
|
+ const result = await response.json()
|
|
|
+
|
|
|
+ if (result.status === 2 && result.data?.data) {
|
|
|
+ realtimeMetrics.value = result.data.data.map(sensor => ({
|
|
|
+ label: sensor.name,
|
|
|
+ value: sensor.sdata,
|
|
|
+ unit: sensor.measure_unit || ''
|
|
|
+ }))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('获取传感器数据失败:', error)
|
|
|
+ } finally {
|
|
|
+ loadingMetrics.value = false
|
|
|
+ }
|
|
|
+ realtimeMetrics.value = []
|
|
|
+}
|
|
|
+
|
|
|
function openMarkerPopup(marker) {
|
|
|
activeMarker.value = marker
|
|
|
realtimeMetrics.value = [] // 清空之前的实时数据
|
|
|
@@ -530,6 +558,11 @@ function openMarkerPopup(marker) {
|
|
|
markerType: marker.type
|
|
|
})
|
|
|
emit('markerClick', marker)
|
|
|
+
|
|
|
+ // 设备类型标记点自动拉取传感器数据
|
|
|
+ if (marker.type === 'device' && marker.nodeId) {
|
|
|
+ fetchSensorData(marker.nodeId)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
function updatePopupPosition() {
|