| | |
| | | </div> --> |
| | | |
| | | <el-tabs v-model="activeTab"> |
| | | <el-tab-pane label="底图" name="components" |
| | | <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" |
| | |
| | | <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 { useDrag } from '/@/hooks/useDrag'; |
| | | import type { GaoDeSourceType, OLMap } from '/@/model/map/OLMap'; |
| | | import { gaoDeSourceTypeMap } 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; |
| | | }>(); |
| | |
| | | { |
| | | id: ROOT_OVERLAY_TYPE.Marker, |
| | | label: '设备', |
| | | checked: props.olMap.overlayIsVisible.value, |
| | | checked: props.olMap.markerIsVisible.value, |
| | | }, |
| | | ]); |
| | | const initTreeChecked = () => { |
| | |
| | | const handleNodeClick = (data: any, node: any) => { |
| | | if (data.id === ROOT_OVERLAY_TYPE.Marker) { |
| | | const overlays = props.olMap.map.getOverlays().getArray(); |
| | | props.olMap.adjustViewToOverlays(overlays); |
| | | |
| | | const filteredOverlays = overlays.filter((overlay) => { |
| | | const type = overlay.get('type'); |
| | | return type === OverlayType.Marker; |
| | | }); |
| | | props.olMap.adjustViewToOverlays(filteredOverlays); |
| | | } |
| | | }; |
| | | |