From 4f33e1e616e2a59112a6265073124abd7f0e81ed Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期二, 25 二月 2025 16:00:27 +0800
Subject: [PATCH] 修改地图

---
 src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/panelTool/LayerControl.vue |   88 +++++++++++++++++++++++++++++++------------
 1 files changed, 63 insertions(+), 25 deletions(-)

diff --git a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/panelTool/LayerControl.vue b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/panelTool/LayerControl.vue
index 332162d..9a9c437 100644
--- a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/panelTool/LayerControl.vue
+++ b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/panelTool/LayerControl.vue
@@ -12,7 +12,7 @@
 			<div class="theme-item">
 				<div class="theme-item-title h-fit flex-items-center gap-2 mb-1">
 					<div class="w-1 h-4 bg-[#1677ff]"></div>
-					<span class="font-bold">鍥惧眰</span>
+					<span class="font-bold">鍥惧眰鎺у埗</span>
 				</div>
 				<div>
 					<el-tree
@@ -28,11 +28,10 @@
 					>
 						<template #default="{ node, data }">
 							<div class="flex-items-center gap-2">
-								<span :style="[{'font-family':`ywifont`}]">{{ getIconText(node,data) }}</span>
+								<span :style="[{ 'font-family': `ywifont` }]">{{ getIconText(node, data) }}</span>
 								<!-- e6b4 -->
 								<span>{{ node.label }}</span>
 							</div>
-					
 						</template>
 					</el-tree>
 				</div>
@@ -44,19 +43,22 @@
 					<span class="font-bold">鑳屾櫙鍦板浘</span>
 				</div>
 				<div>
-					<el-radio-group v-model="activeSourceType" class="w-full" @change="changeSourceType">
-						<div class="flex w-full">
-							<el-radio :label="GaoDeSourceType.Vector" class="flex-1">{{ gaoDeSourceTypeMap[GaoDeSourceType.Vector] }}</el-radio>
-							<el-radio :label="GaoDeSourceType.Satellite" class="flex-1">{{
-								gaoDeSourceTypeMap[GaoDeSourceType.Satellite]
-							}}</el-radio>
+					<div class="grid grid-cols-2 gap-1 p-1">
+						<div
+							v-for="item in mapTypes"
+							:key="item.type"
+							class="relative cursor-pointer flex flex-col items-center gap-0.5"
+							:class="{ 'map-type-active': activeSourceType === item.type }"
+							@click="changeSourceType(item.type)"
+						>
+							<img :src="item.img" class="w-full h-[60px] object-cover rounded" />
+							<span>{{ item.label }}</span>
+							<span
+								v-show="activeSourceType === item.type"
+								class="ywifont absolute bottom-[25px] right-1 text-blue-500 text-lg"
+							></span>
 						</div>
-						<div class="flex w-full">
-							<el-radio :label="GaoDeSourceType.SatelliteRoad" class="flex-1">{{
-								gaoDeSourceTypeMap[GaoDeSourceType.SatelliteRoad]
-							}}</el-radio>
-						</div>
-					</el-radio-group>
+					</div>
 				</div>
 			</div>
 		</div>
@@ -69,25 +71,49 @@
 import type { OLMap } from '/@/model/map/OLMap';
 import { GaoDeSourceType, gaoDeSourceTypeMap } from '/@/model/map/OLMap';
 import { travelTree } from '/@/utils/util';
+import terrainMap from '/@/assets/images/business/map/road_map.png';
+import satelliteMap from '/@/assets/images/business/map/satellite_map.png';
+import vectorMap from '/@/assets/images/business/map/vector_map.png';
 const props = defineProps(['olMap']);
 const emit = defineEmits(['close']);
-const activeSourceType = ref(props.olMap.activeSourceType);
+const activeSourceType = computed(() => props.olMap.activeSourceType.value);
 const defaultProps = {
 	children: 'children',
 	label: 'title',
 };
+
 const closeClick = () => {
 	emit('close');
 };
-const getIconText = (node,data)=>{
-	if(data.type==='equip'){
-		return '\ue63f'
-	}else{
-		return data.icon ?? (node.expanded?'\ue6b4':' \ue671')
+const getIconText = (node, data) => {
+	if (data.type === 'equip') {
+		return '\ue63f';
+	} else {
+		return data.icon ?? (node.expanded ? '\ue6b4' : ' \ue671');
 	}
-}
+};
+
+// 鍦板浘绫诲瀷
+const mapTypes = [
+	{
+		type: GaoDeSourceType.Vector,
+		label: gaoDeSourceTypeMap[GaoDeSourceType.Vector],
+		img: vectorMap,
+	},
+	{
+		type: GaoDeSourceType.Satellite,
+		label: gaoDeSourceTypeMap[GaoDeSourceType.Satellite],
+		img: satelliteMap,
+	},
+	{
+		type: GaoDeSourceType.SatelliteRoad,
+		label: gaoDeSourceTypeMap[GaoDeSourceType.SatelliteRoad],
+		img: terrainMap,
+	},
+];
 const changeSourceType = (val: GaoDeSourceType) => {
-	props.olMap.applySourceType(val);
+	props.olMap.setSourceType(val);
+	// props.olMap.applySourceType(val);
 };
 const checkTreeRef = ref<InstanceType<typeof ElTree>>();
 
@@ -111,7 +137,7 @@
 
 const handleNodeClick = () => {};
 const layerInfo = computed(() => {
-	const info = (props.olMap as OLMap).layerInfo.value
+	const info = (props.olMap as OLMap).layerInfo.value;
 	// const info = (props.olMap as OLMap).layerInfo.value.filter((item) => item.type !== 'equip');
 	return info;
 	const result = info.concat([
@@ -146,4 +172,16 @@
 	}
 );
 </script>
-<style scoped lang="scss"></style>
+<style scoped lang="scss">
+.map-type-active {
+	img {
+		border: 2px solid #1989fa;
+		border-radius: 4px;
+	}
+
+	span:last-child {
+		color: #1989fa;
+		font-weight: bold;
+	}
+}
+</style>

--
Gitblit v1.9.3