From 382631e067c6c402d86e163cbd8e7d50a4c17933 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期三, 19 二月 2025 13:49:42 +0800
Subject: [PATCH] 显示label

---
 src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/panelTool/LayerControl.vue |   99 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 72 insertions(+), 27 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 740dbac..332162d 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
@@ -4,45 +4,90 @@
 			<div class="header flex-items-center pb-1.5" style="border-bottom: 1px solid black">
 				<div class="flex-items-center">
 					<span class="ywifont ywicon-guanbi cursor-pointer mr-1.5" @click="closeClick"></span>
-					<span class="text-lg font-bold">鍥惧眰</span>
+					<span class="text-lg font-bold">鍥惧眰鍙婅儗鏅湴鍥�</span>
 				</div>
 			</div>
 		</div>
 		<div class="content rounded-lg flex-auto overflow-y-auto">
-			<el-tree
-				class="w-full"
-				:data="layerInfo"
-				:props="defaultProps"
-				show-checkbox
-				node-key="id"
-				default-expand-all
-				ref="checkTreeRef"
-				@check="handleCheck"
-				@node-click="handleNodeClick"
-			>
-				<template #default="{ node, data }">
-					<span>{{ node.label }}</span>
-				</template>
-			</el-tree>
+			<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>
+				</div>
+				<div>
+					<el-tree
+						class="w-full"
+						:data="layerInfo"
+						:props="defaultProps"
+						show-checkbox
+						node-key="id"
+						default-expand-all
+						ref="checkTreeRef"
+						@check="handleCheck"
+						@node-click="handleNodeClick"
+					>
+						<template #default="{ node, data }">
+							<div class="flex-items-center gap-2">
+								<span :style="[{'font-family':`ywifont`}]">{{ getIconText(node,data) }}</span>
+								<!-- e6b4 -->
+								<span>{{ node.label }}</span>
+							</div>
+					
+						</template>
+					</el-tree>
+				</div>
+			</div>
+
+			<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>
+				</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>
+						<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>
 </template>
 
 <script setup lang="ts" name="LayerControl">
-import { computed, ref, watch, watchEffect } from 'vue';
-import type { OLMap } from '/@/model/map/OLMap';
 import { ElTree } from 'element-plus';
+import { computed, ref, watch } from 'vue';
+import type { OLMap } from '/@/model/map/OLMap';
+import { GaoDeSourceType, gaoDeSourceTypeMap } from '/@/model/map/OLMap';
 import { travelTree } from '/@/utils/util';
-
 const props = defineProps(['olMap']);
 const emit = defineEmits(['close']);
-
+const activeSourceType = ref(props.olMap.activeSourceType);
 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 changeSourceType = (val: GaoDeSourceType) => {
+	props.olMap.applySourceType(val);
 };
 const checkTreeRef = ref<InstanceType<typeof ElTree>>();
 
@@ -51,7 +96,7 @@
 	const checkedKeys = node.checkedKeys;
 	isHumanCheckTrigger = true;
 	travelTree(layerInfo.value, (layer) => {
-		if (layer.type === 'layer') {
+		if (layer.type === 'layer' || layer.type === 'equip') {
 			const id = layer.id;
 			if (!checkedKeys.includes(id)) {
 				layer.isVisible = false;
@@ -60,13 +105,14 @@
 			}
 		}
 	});
+
+	props.olMap.displayFeatureInfo(null);
 };
 
 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([
 		{
@@ -76,9 +122,8 @@
 
 			type: 'equip',
 		},
-	])
+	]);
 	return result;
-
 });
 
 watch(
@@ -90,7 +135,7 @@
 		}
 		const keys = [];
 		travelTree(val, (item) => {
-			if (item.type === 'layer') {
+			if (item.type === 'layer' || item.type === 'equip') {
 				if (item.isVisible) {
 					keys.push(item.id);
 				}

--
Gitblit v1.9.3