From fca23e806bb6d4d7c6bdc4b318d8ea559ae1d391 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期五, 17 一月 2025 11:16:47 +0800
Subject: [PATCH] 美化界面

---
 src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/BasicMap.vue |   42 +++++++++++++++++++++++++++++++-----------
 1 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/BasicMap.vue b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/BasicMap.vue
index 2c0a02b..912640b 100644
--- a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/BasicMap.vue
+++ b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/BasicMap.vue
@@ -1,5 +1,5 @@
 <template>
-	<div class="relative">
+	<div class="relative bg-white">
 		<div ref="containerRef" class="h-full"></div>
 		<div ref="infoWindowRef" v-show="infoWindowIsShow">
 			<div
@@ -34,7 +34,7 @@
 				</div>
 			</div>
 		</div>
-		<LayerControl v-if="olMap" :olMap="olMap" class="absolute top-3 left-10 z-10" />
+		<LayerControl v-if="olMap" :olMap="olMap" class="absolute top-3 left-3 z-10" />
 	</div>
 </template>
 
@@ -46,11 +46,23 @@
 import equipSelectPic from './img/equip-select.svg';
 import equipPic from './img/equip.svg';
 import LayerControl from './LayerControl.vue';
-import { OLMap } from '/@/model/map/OLMap';
+import { GaoDeSourceType, OLMap } from '/@/model/map/OLMap';
 
-const props = defineProps<{
-	data: any;
-}>();
+const props = withDefaults(
+	defineProps<{
+		data: any;
+		config?: {
+			sourceType: GaoDeSourceType;
+			markerIsVisible: boolean;
+		};
+	}>(),
+	{
+		config: () => ({
+			sourceType: GaoDeSourceType.Vector,
+			markerIsVisible: true,
+		}),
+	}
+);
 const colsArray = computed(() => {
 	return props.data.cols ?? [];
 });
@@ -71,7 +83,8 @@
 };
 const showInfoWindow = (overlay: Overlay) => {
 	const position = overlay.getPosition();
-	const row = overlay.get('extData');
+	const row = overlay.get('extData')?.value;
+	if (!row) return;
 	lastOverlay && setMarkerIcon(lastOverlay, equipPic);
 	infoWindowIsShow.value = true;
 	infoWindowOverlay.setPosition(position);
@@ -90,7 +103,6 @@
 const addMarkerLayer = () => {
 	const map = props.data.map;
 	if (map.pos_x == null && map.pos_y == null) return;
-
 	const dataList = (props.data?.values ?? []).map((item) => {
 		const x = item[map.pos_x];
 		const y = item[map.pos_y];
@@ -98,8 +110,10 @@
 		return {
 			position: [x, y],
 			// textColor: item.color,
-			extData: item,
-			title: item.title,
+			extData: {
+				value: item,
+				recordSetTable: props.data,
+			},
 		};
 	});
 	olMap.value.addMarkerLayer(dataList, {
@@ -109,7 +123,7 @@
 				size: 30,
 				selectUrl: equipSelectPic,
 			},
-			click(e, label, item, position) {
+			click(e, label, extData, position) {
 				showInfoWindow(label);
 			},
 		},
@@ -121,12 +135,18 @@
 const initMap = () => {
 	olMap.value = new OLMap({
 		container: containerRef.value,
+		sourceType: props.config?.sourceType,
+		markerIsVisible: props.config?.markerIsVisible,
 	});
 	addMarkerLayer();
 	infoWindowOverlay = olMap.value.createEleOverlay(infoWindowRef.value);
 	olMap.value.map.addOverlay(infoWindowOverlay);
 };
 
+defineExpose({
+	olMap: olMap,
+});
+
 onMounted(() => {
 	initMap();
 });

--
Gitblit v1.9.3