From e50196bff10f0196307b2567ed6c0829eadd8ff6 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期一, 10 二月 2025 12:12:25 +0800 Subject: [PATCH] 设备显示隐藏 --- src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/LayerControl.vue | 38 ++++++++++++++++++++++---------------- 1 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/LayerControl.vue b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/LayerControl.vue index 0167ede..fd70f7b 100644 --- a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/LayerControl.vue +++ b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/map/LayerControl.vue @@ -26,13 +26,13 @@ <el-tab-pane label="搴曞浘" name="components" ><div class="flex flex-col gap-2"> <el-radio-group v-model="activeSourceType" class="flex flex-col gap-2" @change="changeSourceType"> - <el-radio class="w-full mr-0" v-for="item in Object.keys(gaoDeSourceTypeMap)" :key="item" :label="parseInt(item)"> + <el-radio class="w-full mr-0" v-for="item in layerList" :key="item" :label="item"> <span>{{ gaoDeSourceTypeMap[item] }}</span> </el-radio> </el-radio-group> </div></el-tab-pane > - <el-tab-pane label="瑕嗙洊灞�" name="overlays"> + <el-tab-pane label="瑕嗙洊鐗�" name="overlays"> <el-tree class="w-full" :data="treeData" @@ -76,16 +76,15 @@ <script setup lang="ts"> import { Close } from '@element-plus/icons-vue'; import { ElTree } from 'element-plus'; -import type Overlay from 'ol/Overlay'; -import { onMounted, ref, watch } from 'vue'; +import { computed, onMounted, ref, watch } from 'vue'; import { useDrag } from '/@/hooks/useDrag'; -import type { GaoDeSourceType, OLMap } from '/@/model/map/OLMap'; -import { gaoDeSourceTypeMap, MARKER_OVERLAY_CLASS_NAME, OverlayType } from '/@/model/map/OLMap'; +import type { OLMap } from '/@/model/map/OLMap'; +import { GaoDeSourceType, gaoDeSourceTypeMap, OverlayType } from '/@/model/map/OLMap'; import { sleep } from '/@/utils/util'; const searchText = ref(''); const activeTab = ref('components'); const treeRef = ref(); - +const layerList = [GaoDeSourceType.Vector, GaoDeSourceType.Satellite, GaoDeSourceType.SatelliteRoad]; const props = defineProps<{ olMap: OLMap; }>(); @@ -101,7 +100,7 @@ const activeSourceType = ref(props.olMap.activeSourceType); const changeSourceType = (val: GaoDeSourceType) => { - props.olMap.setSourceUrl(val); + props.olMap.applySourceType(val); }; const overlayTreeRef = ref<InstanceType<typeof ElTree>>(); @@ -110,7 +109,6 @@ { id: ROOT_OVERLAY_TYPE.Marker, label: '璁惧', - checked: props.olMap.overlayIsVisible.value, }, ]); const initTreeChecked = () => { @@ -121,15 +119,22 @@ }); }; +const setTreeChecked = (checked: boolean) => { + treeData.value.forEach((item) => { + if (checked) { + overlayTreeRef.value?.setCheckedKeys([ROOT_OVERLAY_TYPE.Marker]); + } else { + overlayTreeRef.value?.setCheckedKeys([]); + } + }); +}; + +let isHumanCheckTrigger = false; + + const handleNodeClick = (data: any, node: any) => { if (data.id === ROOT_OVERLAY_TYPE.Marker) { - const overlays = props.olMap.map.getOverlays().getArray(); - - const filteredOverlays = overlays.filter((overlay) => { - const type = overlay.get('type'); - return type === OverlayType.Marker; - }); - props.olMap.adjustViewToOverlays(filteredOverlays); + props.olMap.adjustViewToMarkers(); } }; @@ -153,6 +158,7 @@ }; const handleCheck = (data: any, node: any) => { const checkedKeys = node.checkedKeys; + isHumanCheckTrigger = true; const isVisible = checkedKeys.includes(ROOT_OVERLAY_TYPE.Marker); props.olMap.toggleMarkerOverlayVisible(isVisible); }; -- Gitblit v1.9.3