From f5f2445d7f5c102734ef8d86e9c8ec828374adc3 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Mon, 18 Aug 2025 20:05:01 +0800
Subject: [PATCH] 突发事件模拟相关调整处理
---
src/pages/map/components/scomponents/layersControl.vue | 2145 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 1,074 insertions(+), 1,071 deletions(-)
diff --git a/src/pages/map/components/scomponents/layersControl.vue b/src/pages/map/components/scomponents/layersControl.vue
index 75fb491..4837922 100644
--- a/src/pages/map/components/scomponents/layersControl.vue
+++ b/src/pages/map/components/scomponents/layersControl.vue
@@ -2,51 +2,52 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-31 10:47:29
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2025-02-19 11:42:40
+ * @LastEditTime: 2025-08-18 18:49:54
* @FilePath: \bigScreen\src\pages\map\components\scomponents\layersControl.vue
* @Description:
*
* Copyright (c) 2024 by shuishen, All Rights Reserved.
-->
<template>
- <public-box v-show="showLayerControl">
- <template #name>
- <div class="name"><i class="fa fa-tasks"></i> 图层</div>
- </template>
+ <public-box v-show="showLayerControl">
+ <template #name>
+ <div class="name"><i class="fa fa-tasks"></i> 图层</div>
+ </template>
- <template #close>
- <div class="close cursor-p" @click="emit('close', 'layers')"><i class="fa fa-close"></i></div>
- </template>
+ <template #close>
+ <div class="close cursor-p" @click="emit('close', 'layers')"><i class="fa fa-close"></i></div>
+ </template>
- <template #content>
- <div class="tree-content">
- <el-tree ref="treeRef" :data="data" draggable="" show-checkbox node-key="id" default-expand-all
- :default-checked-keys="indexPoint" :props="defaultProps" :indent="treeProps['indent']"
- @check="handleCheckChange">
- <template v-slot:default="{ node }">
- <element-tree-line :node="node" :showLabelLine="treeProps['showLabelLine']" :indent="treeProps['indent']">
- <!-- 自定义label的slot -->
- <template v-slot:node-label>
- <span style="font-size: 12px">
- {{ node.label }}
- <i class="el-icon-eleme"></i></span>
- </template>
- <!-- 在右边追加内容的slot -->
- <!-- <template v-slot:after-node-label>
+ <template #content>
+ <div class="tree-content">
+ <el-tree ref="treeRef" :data="data" draggable="" show-checkbox node-key="id" default-expand-all
+ :default-checked-keys="indexPoint" :props="defaultProps" :indent="treeProps['indent']"
+ @check="handleCheckChange">
+ <template v-slot:default="{ node }">
+ <element-tree-line :node="node" :showLabelLine="treeProps['showLabelLine']"
+ :indent="treeProps['indent']">
+ <!-- 自定义label的slot -->
+ <template v-slot:node-label>
+ <span style="font-size: 12px">
+ {{ node.label }}
+ <i class="el-icon-eleme"></i></span>
+ </template>
+ <!-- 在右边追加内容的slot -->
+ <!-- <template v-slot:after-node-label>
<span style="padding-right: 10px">
<el-button type="primary" size="mini" @click.stop="openDrawer(node)">新增子节点</el-button>
<el-button type="primary" size="mini" @click.stop="openDrawer(node)">修改</el-button>
<el-button type="danger" size="mini" @click.stop="openDialog">删除</el-button></span>
</template> -->
- </element-tree-line>
- </template>
- </el-tree>
- </div>
- </template>
- </public-box>
+ </element-tree-line>
+ </template>
+ </el-tree>
+ </div>
+ </template>
+ </public-box>
- <panorama v-show="panoramaShow" :title="panoramaTitle" :url="panoramaUrl" @closePanoramaPopup="closePanoramaPopup">
- </panorama>
+ <panorama v-show="panoramaShow" :title="panoramaTitle" :url="panoramaUrl" @closePanoramaPopup="closePanoramaPopup">
+ </panorama>
</template>
<script setup>
@@ -59,11 +60,11 @@
window.$viewer.addLayer(planToBuild)
const {
- show: showLayerControl
+ show: showLayerControl
} = defineProps({
- show: {
- default: false
- }
+ show: {
+ default: false
+ }
})
const emit = defineEmits(['close'])
@@ -91,7 +92,7 @@
import { useRouter } from 'vue-router'
const router = useRouter()
import {
- ElMessage
+ ElMessage
} from 'element-plus'
const { VITE_APP_BASE } = import.meta.env
@@ -101,8 +102,8 @@
const treeRef = ref(null)
const treeProps = {
- indent: 16,
- showLabelLine: true,
+ indent: 16,
+ showLabelLine: true,
}
// 全景相关
@@ -110,616 +111,618 @@
const panoramaTitle = ref('')
const panoramaUrl = ref('')
const closePanoramaPopup = () => {
- panoramaShow.value = false
+ panoramaShow.value = false
}
const baseRcImages = new window.$Cesium.WebMapTileServiceImageryProvider({
- url: '/arcgis117/rest/services/DTFW/rcgyyyx/MapServer/WMTS',
- layer: 'DTFW_rcgyyyx',
- style: 'default',
- format: 'image/png',
- tileMatrixSetID: 'default028mm',
- tilingScheme: new window.$Cesium.GeographicTilingScheme(),
- tileMatrixLabels: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19']
+ url: '/arcgis117/rest/services/DTFW/rcgyyyx/MapServer/WMTS',
+ layer: 'DTFW_rcgyyyx',
+ style: 'default',
+ format: 'image/png',
+ tileMatrixSetID: 'default028mm',
+ tilingScheme: new window.$Cesium.GeographicTilingScheme(),
+ tileMatrixLabels: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19']
})
const data = [
- {
- id: '1',
- label: '园区倾斜摄影',
- type: 'layer',
- subType: '3Dtile',
- urlData: [
- {
- url: '/3Dtile/rcmx_t/part1/tileset.json',
- label: 'part1'
- },
- {
- url: '/3Dtile/rcmx_t/part2/tileset.json',
- label: 'part2'
- },
+ {
+ id: '1',
+ label: '园区倾斜摄影',
+ type: 'layer',
+ subType: '3Dtile',
+ urlData: [
+ {
+ url: '/3Dtile/rcmx_t/part1/tileset.json',
+ label: 'part1'
+ },
+ {
+ url: '/3Dtile/rcmx_t/part2/tileset.json',
+ label: 'part2'
+ },
- ],
- layerName: 'hgyq'
- },
-
- {
- id: '2',
- label: '企业分布',
- type: 'layer',
- subType: 'labelPoint',
- method: getPage,
- params: {
- size: 1000
+ ],
+ layerName: 'hgyq'
},
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/qy.png',
- className: 'qyfb-box',
- showPanel: false,
- layerName: 'qyfb'
- },
- {
- id: '3',
- label: '应急空间',
- children: [
- {
- parentId: '3',
- id: '3-1',
- label: '雨水池',
+ {
+ id: '2',
+ label: '企业分布',
type: 'layer',
subType: 'labelPoint',
- method: getList,
+ method: getPage,
params: {
- type: 1,
- size: 1000,
+ size: 1000
},
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/yjc.png',
- className: 'yjc-box',
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/qy.png',
+ className: 'qyfb-box',
showPanel: false,
- layerName: 'cq-yssjc',
- incident: (e) => {
- const { attrParams } = e.overlay
- // 删除
- destroyPop()
- if (!attrParams.firmName) {
- return
- }
- addPopLayers[attrParams.id] = new DC.HtmlLayer(attrParams.id)
- window.$viewer.addLayer(addPopLayers[attrParams.id])
- let iconEl = `<div class="marsBlueGradientPnl">
+ layerName: 'qyfb'
+ },
+
+ {
+ id: '3',
+ label: '应急空间',
+ children: [
+ {
+ parentId: '3',
+ id: '3-1',
+ label: '雨水池',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getList,
+ params: {
+ type: 1,
+ size: 1000,
+ },
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/yjc.png',
+ className: 'yjc-box',
+ showPanel: false,
+ layerName: 'cq-yssjc',
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroyPop()
+ if (!attrParams.firmName) {
+ return
+ }
+ addPopLayers[attrParams.id] = new DC.HtmlLayer(attrParams.id)
+ window.$viewer.addLayer(addPopLayers[attrParams.id])
+ let iconEl = `<div class="marsBlueGradientPnl">
<div>企业名称:${attrParams.firmName}</div>
<div>作用:${attrParams.mainFuncName}</div>
<div>容量:${attrParams.capacity}(m³)</div>
</div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
- `<div class="public-map-popup-two">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+ `<div class="public-map-popup-two">
${iconEl}
</div>`
- )
- let incident = () => {
- destroyPop()
- }
- divIcon.on(DC.MouseEventType.CLICK, incident)
- addPopLayers[attrParams.id].addOverlay(divIcon)
- }
- },
+ )
+ let incident = () => {
+ destroyPop()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPopLayers[attrParams.id].addOverlay(divIcon)
+ }
+ },
- {
- parentId: '3',
- id: '3-2',
- label: '应急池',
- type: 'layer',
- subType: 'labelPoint',
- method: getList,
- params: {
- type: 2,
- size: 1000,
- },
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/yjc.png',
- className: 'yjc-box',
- showPanel: false,
- layerName: 'sg-yjc',
- incident: (e) => {
- const { attrParams } = e.overlay
- // 删除
- destroyPop()
- if (!attrParams.firmName) {
- return
- }
- addPopLayers[attrParams.id] = new DC.HtmlLayer(attrParams.id)
- window.$viewer.addLayer(addPopLayers[attrParams.id])
- let iconEl = `<div class="marsBlueGradientPnl">
+ {
+ parentId: '3',
+ id: '3-2',
+ label: '应急池',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getList,
+ params: {
+ type: 2,
+ size: 1000,
+ },
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/yjc.png',
+ className: 'yjc-box',
+ showPanel: false,
+ layerName: 'sg-yjc',
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroyPop()
+ if (!attrParams.firmName) {
+ return
+ }
+ addPopLayers[attrParams.id] = new DC.HtmlLayer(attrParams.id)
+ window.$viewer.addLayer(addPopLayers[attrParams.id])
+ let iconEl = `<div class="marsBlueGradientPnl">
<div>企业名称:${attrParams.firmName}</div>
<div>作用:${attrParams.mainFuncName}</div>
<div>容量:${attrParams.capacity}(m³)</div>
</div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
- `<div class="public-map-popup-two">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+ `<div class="public-map-popup-two">
${iconEl}
</div>`
- )
- let incident = () => {
- destroyPop()
- }
- divIcon.on(DC.MouseEventType.CLICK, incident)
- addPopLayers[attrParams.id].addOverlay(divIcon)
- }
- },
+ )
+ let incident = () => {
+ destroyPop()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPopLayers[attrParams.id].addOverlay(divIcon)
+ }
+ },
- {
- parentId: '3',
- id: '3-3',
- label: '切断阀',
- type: 'layer',
- subType: 'labelPoint',
- method: getList,
- params: {
- type: 3,
- size: 1000
- },
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/ysf.png',
- className: 'ysf-box',
- showPanel: false,
- layerName: 'qdf',
- incident: (e) => {
- const { attrParams } = e.overlay
- // 删除
- destroyPop()
- if (!attrParams.firmName) {
- return
- }
- addPopLayers[attrParams.id] = new DC.HtmlLayer(attrParams.id)
- window.$viewer.addLayer(addPopLayers[attrParams.id])
- let iconEl = `<div class="marsBlueGradientPnl">
+ {
+ parentId: '3',
+ id: '3-3',
+ label: '切断阀',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getList,
+ customWx: true,
+ params: {
+ type: 3,
+ size: 1000
+ },
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/ysf.png',
+ className: 'ysf-box',
+ showPanel: false,
+ layerName: 'qdf',
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroyPop()
+ if (!attrParams.firmName) {
+ return
+ }
+ addPopLayers[attrParams.id] = new DC.HtmlLayer(attrParams.id)
+ window.$viewer.addLayer(addPopLayers[attrParams.id])
+ let iconEl = `<div class="marsBlueGradientPnl">
<div>企业名称:${attrParams.firmName}</div>
<div>作用:${attrParams.mainFuncName}</div>
<div>容量:${attrParams.capacity}(m³)</div>
</div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
- `<div class="public-map-popup-two">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+ `<div class="public-map-popup-two">
${iconEl}
</div>`
- )
- let incident = () => {
- destroyPop()
- }
- divIcon.on(DC.MouseEventType.CLICK, incident)
- addPopLayers[attrParams.id].addOverlay(divIcon)
- }
- },
+ )
+ let incident = () => {
+ destroyPop()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPopLayers[attrParams.id].addOverlay(divIcon)
+ }
+ },
- {
- id: '3-4',
- label: '闸坝',
- type: 'layer',
- subType: 'labelPoint',
- method: getList,
- params: {
- type: 4,
- size: 1000
- },
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/zb.png',
- className: 'sk-box',
- showPanel: false,
- layerName: 'zb'
- },
+ {
+ id: '3-4',
+ label: '闸坝',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getList,
+ params: {
+ type: 4,
+ size: 1000
+ },
+ customWx: true,
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/zb.png',
+ className: 'sk-box',
+ showPanel: false,
+ layerName: 'zb'
+ },
- {
- parentId: '3',
- id: '3-5',
- label: '湿地',
- type: 'layer',
- subType: 'labelPoint',
- method: getList,
- params: {
- type: 5,
- size: 1000
- },
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/sd.png',
- className: 'xfs-box',
- showPanel: false,
- layerName: 'sd',
- incident: (e) => {
- const { attrParams } = e.overlay
- // 删除
- destroyPop()
- if (!attrParams.firmName) {
- return
- }
- addPopLayers[attrParams.id] = new DC.HtmlLayer(attrParams.id)
- window.$viewer.addLayer(addPopLayers[attrParams.id])
- let iconEl = `<div class="marsBlueGradientPnl">
+ {
+ parentId: '3',
+ id: '3-5',
+ label: '湿地',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getList,
+ params: {
+ type: 5,
+ size: 1000
+ },
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/sd.png',
+ className: 'xfs-box',
+ showPanel: false,
+ layerName: 'sd',
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroyPop()
+ if (!attrParams.firmName) {
+ return
+ }
+ addPopLayers[attrParams.id] = new DC.HtmlLayer(attrParams.id)
+ window.$viewer.addLayer(addPopLayers[attrParams.id])
+ let iconEl = `<div class="marsBlueGradientPnl">
<div>企业名称:${attrParams.firmName}</div>
<div>作用:${attrParams.mainFuncName}</div>
<div>容量:${attrParams.capacity}(m³)</div>
</div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
- `<div class="public-map-popup-two">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+ `<div class="public-map-popup-two">
${iconEl}
</div>`
- )
- let incident = () => {
- destroyPop()
- }
- divIcon.on(DC.MouseEventType.CLICK, incident)
- addPopLayers[attrParams.id].addOverlay(divIcon)
- }
- },
+ )
+ let incident = () => {
+ destroyPop()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPopLayers[attrParams.id].addOverlay(divIcon)
+ }
+ },
- {
- parentId: '3',
- id: '3-6',
- label: '坑塘',
- type: 'layer',
- subType: 'labelPoint',
- method: getList,
- params: {
- type: 6,
- size: 1000
- },
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/kt.png',
- className: 'sk-box',
- showPanel: false,
- layerName: 'kt',
- incident: (e) => {
- const { attrParams } = e.overlay
- // 删除
- destroyPop()
- if (!attrParams.firmName) {
- return
- }
- addPopLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
- window.$viewer.addLayer(addPopLayers[attrParams.name])
- let iconEl = `<div class="marsBlueGradientPnl">
+ {
+ parentId: '3',
+ id: '3-6',
+ label: '坑塘',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getList,
+ params: {
+ type: 6,
+ size: 1000
+ },
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/kt.png',
+ className: 'sk-box',
+ showPanel: false,
+ layerName: 'kt',
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroyPop()
+ if (!attrParams.firmName) {
+ return
+ }
+ addPopLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
+ window.$viewer.addLayer(addPopLayers[attrParams.name])
+ let iconEl = `<div class="marsBlueGradientPnl">
<div>企业名称:${attrParams.firmName}</div>
<div>作用:${attrParams.mainFuncName}</div>
<div>容量:${attrParams.capacity}(m³)</div>
</div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
- `<div class="public-map-popup-two">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+ `<div class="public-map-popup-two">
${iconEl}
</div>`
- )
- let incident = () => {
- destroyPop()
- }
- divIcon.on(DC.MouseEventType.CLICK, incident)
- addPopLayers[attrParams.name].addOverlay(divIcon)
- }
- },
+ )
+ let incident = () => {
+ destroyPop()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPopLayers[attrParams.name].addOverlay(divIcon)
+ }
+ },
- {
- parentId: '3',
- id: '3-8',
- label: '桥梁',
- type: 'layer',
- subType: 'labelPoint',
- method: getList,
- params: {
- type: 8,
- size: 1000
- },
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/ql.png',
- className: 'xfs-box',
- showPanel: false,
- layerName: 'ql'
- },
+ {
+ parentId: '3',
+ id: '3-8',
+ label: '桥梁',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getList,
+ params: {
+ type: 8,
+ size: 1000
+ },
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/ql.png',
+ className: 'xfs-box',
+ showPanel: false,
+ layerName: 'ql'
+ },
- {
- parentId: '3',
- id: '3-9',
- label: '雨水管网',
- type: 'layer',
- subType: 'geojsonPipe',
- layerName: 'ysgw',
- source: ysgw,
- color: DC.Color.CYAN.withAlpha(0.9),
- height: 30,
- },
- {
- parentId: '3',
- id: '3-10',
- label: '排洪渠',
- type: 'layer',
- subType: 'geojsonPolygon',
- layerName: 'track',
- source: track,
- color: DC.Color.BLUE.withAlpha(0.9),
- height: 30,
- },
- {
- parentId: '3',
- id: '3-11',
- label: '企业级连接管网',
- type: 'layer',
- subType: 'geojsonPipe',
- layerName: 'qyjgx',
- source: qyjgx,
- color: DC.Color.CYAN.withAlpha(0.9),
- height: 30,
- },
- ]
- },
+ {
+ parentId: '3',
+ id: '3-9',
+ label: '雨水管网',
+ type: 'layer',
+ subType: 'geojsonPipe',
+ layerName: 'ysgw',
+ source: ysgw,
+ color: DC.Color.CYAN.withAlpha(0.9),
+ height: 30,
+ },
+ {
+ parentId: '3',
+ id: '3-10',
+ label: '排洪渠',
+ type: 'layer',
+ subType: 'geojsonPolygon',
+ layerName: 'track',
+ source: track,
+ color: DC.Color.BLUE.withAlpha(0.9),
+ height: 30,
+ },
+ {
+ parentId: '3',
+ id: '3-11',
+ label: '企业级连接管网',
+ type: 'layer',
+ subType: 'geojsonPipe',
+ layerName: 'qyjgx',
+ source: qyjgx,
+ color: DC.Color.CYAN.withAlpha(0.9),
+ height: 30,
+ },
+ ]
+ },
- {
- id: '4',
- label: '风险源',
- children: [
- {
- parentId: '4',
- id: '4-1',
- label: '一般',
- type: 'layer',
- subType: 'labelPoint',
- method: getRiskList,
- params: {
- riskLevel: 1,
- size: 1000
- },
- showParams: 'firmName',
- className: 'fxy-ordinary',
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/fxy-yb.png',
- showPanel: false,
- layerName: 'fxyOrdinary',
- customWx: true,
- incident: (e) => {
- const { attrParams } = e.overlay
- // 删除
- destroyPop()
- addPopLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
- window.$viewer.addLayer(addPopLayers[attrParams.name])
- let iconEl = `<div class="marsBlueGradientPnl">
+ {
+ id: '4',
+ label: '风险源',
+ children: [
+ {
+ parentId: '4',
+ id: '4-1',
+ label: '一般',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getRiskList,
+ params: {
+ riskLevel: 1,
+ size: 1000
+ },
+ showParams: 'firmName',
+ className: 'fxy-ordinary',
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/fxy-yb.png',
+ showPanel: false,
+ layerName: 'fxyOrdinary',
+ customWx: false,
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroyPop()
+ addPopLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
+ window.$viewer.addLayer(addPopLayers[attrParams.name])
+ let iconEl = `<div class="marsBlueGradientPnl">
<li>企业名称:${attrParams.firmName || ''}</li>
<li>行业类别:${attrParams.category || ''}</li>
<li>风险等级:${attrParams.riskLevelName || ''}</li>
<li>风险物资:${attrParams.name || ''}</li>
</div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
- `<div class="public-map-popup-three">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+ `<div class="public-map-popup-three">
${iconEl}
</div>`
- )
- let incident = () => {
- destroyPop()
- }
- divIcon.on(DC.MouseEventType.CLICK, incident)
- addPopLayers[attrParams.name].addOverlay(divIcon)
- }
- },
- {
- parentId: '4',
- id: '4-2',
- label: '较大',
- type: 'layer',
- subType: 'labelPoint',
- method: getRiskList,
- params: {
- riskLevel: 2,
- size: 1000
- },
- showParams: 'firmName',
- className: 'fxy-larger-b',
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/fxy-zd-b.png',
- showPanel: false,
- layerName: 'fxyLarger',
- customWx: true,
- incident: (e) => {
- const { attrParams } = e.overlay
- // 删除
- destroyPop()
- addPopLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
- window.$viewer.addLayer(addPopLayers[attrParams.name])
- let iconEl = `<div class="marsBlueGradientPnl">
+ )
+ let incident = () => {
+ destroyPop()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPopLayers[attrParams.name].addOverlay(divIcon)
+ }
+ },
+ {
+ parentId: '4',
+ id: '4-2',
+ label: '较大',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getRiskList,
+ params: {
+ riskLevel: 2,
+ size: 1000
+ },
+ showParams: 'firmName',
+ className: 'fxy-larger-b',
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/fxy-zd-b.png',
+ showPanel: false,
+ layerName: 'fxyLarger',
+ customWx: false,
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroyPop()
+ addPopLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
+ window.$viewer.addLayer(addPopLayers[attrParams.name])
+ let iconEl = `<div class="marsBlueGradientPnl">
<li>企业名称:${attrParams.firmName || ''}</li>
<li>行业类别:${attrParams.category || ''}</li>
<li>风险等级:${attrParams.riskLevelName || ''}</li>
<li>风险物资:${attrParams.name || ''}</li>
</div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
- `<div class="public-map-popup-three">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+ `<div class="public-map-popup-three">
${iconEl}
</div>`
- )
- let incident = () => {
- destroyPop()
- }
- divIcon.on(DC.MouseEventType.CLICK, incident)
- addPopLayers[attrParams.name].addOverlay(divIcon)
- }
- },
- {
- parentId: '4',
- id: '4-3',
- label: '重大',
- type: 'layer',
- subType: 'labelPoint',
- method: getRiskList,
- params: {
- riskLevel: 3,
- size: 1000
- },
- showParams: 'firmName',
- className: 'fxy-larger',
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/fxy-jd.png',
- showPanel: false,
- layerName: 'fxyLargerB',
- customWx: true,
- incident: (e) => {
- const { attrParams } = e.overlay
- // 删除
- destroyPop()
- addPopLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
- window.$viewer.addLayer(addPopLayers[attrParams.name])
- let iconEl = `<div class="marsBlueGradientPnl">
+ )
+ let incident = () => {
+ destroyPop()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPopLayers[attrParams.name].addOverlay(divIcon)
+ }
+ },
+ {
+ parentId: '4',
+ id: '4-3',
+ label: '重大',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getRiskList,
+ params: {
+ riskLevel: 3,
+ size: 1000
+ },
+ showParams: 'firmName',
+ className: 'fxy-larger',
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/fxy-jd.png',
+ showPanel: false,
+ layerName: 'fxyLargerB',
+ customWx: false,
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroyPop()
+ addPopLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
+ window.$viewer.addLayer(addPopLayers[attrParams.name])
+ let iconEl = `<div class="marsBlueGradientPnl">
<li>企业名称:${attrParams.firmName || ''}</li>
<li>行业类别:${attrParams.category || ''}</li>
<li>风险等级:${attrParams.riskLevelName || ''}</li>
<li>风险物资:${attrParams.name || ''}</li>
</div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
- `<div class="public-map-popup-three">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+ `<div class="public-map-popup-three">
${iconEl}
</div>`
- )
- let incident = () => {
- destroyPop()
- }
- divIcon.on(DC.MouseEventType.CLICK, incident)
- addPopLayers[attrParams.name].addOverlay(divIcon)
- }
- },
- {
- parentId: '4',
- id: '4-9',
- label: '其他',
- type: 'layer',
- subType: 'labelPoint',
- method: getRiskList,
- params: {
- riskLevel: 9,
- size: 1000
- },
- showParams: 'firmName',
- className: 'fxy-zd',
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/fxy-zd.png',
- showPanel: false,
- layerName: 'fxyZdLarger',
- customWx: true,
- incident: (e) => {
- const { attrParams } = e.overlay
- // 删除
- destroyPop()
- addPopLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
- window.$viewer.addLayer(addPopLayers[attrParams.name])
- let iconEl = `<div class="marsBlueGradientPnl">
+ )
+ let incident = () => {
+ destroyPop()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPopLayers[attrParams.name].addOverlay(divIcon)
+ }
+ },
+ {
+ parentId: '4',
+ id: '4-9',
+ label: '其他',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getRiskList,
+ params: {
+ riskLevel: 9,
+ size: 1000
+ },
+ showParams: 'firmName',
+ className: 'fxy-zd',
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/fxy-zd.png',
+ showPanel: false,
+ layerName: 'fxyZdLarger',
+ customWx: false,
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroyPop()
+ addPopLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
+ window.$viewer.addLayer(addPopLayers[attrParams.name])
+ let iconEl = `<div class="marsBlueGradientPnl">
<li>${attrParams.firmName || ''}</li>
<li>${attrParams.name || ''}</li>
<li>${attrParams.riskLevelName || ''}</li>
</div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
- `<div class="public-map-popup-three">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, attrParams.ele || 64),
+ `<div class="public-map-popup-three">
${iconEl}
</div>`
- )
- let incident = () => {
- destroyPop()
- }
- divIcon.on(DC.MouseEventType.CLICK, incident)
- addPopLayers[attrParams.name].addOverlay(divIcon)
- }
- },
- {
- parentId: '4',
- id: '4-5',
- label: '路线',
+ )
+ let incident = () => {
+ destroyPop()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPopLayers[attrParams.name].addOverlay(divIcon)
+ }
+ },
+ {
+ parentId: '4',
+ id: '4-5',
+ label: '路线',
+ type: 'layer',
+ subType: 'geojsonLx',
+ layerName: 'lx',
+ source: lx,
+ color: DC.Color.CYAN.withAlpha(0.9),
+ height: 30,
+ },
+ {
+ parentId: '4',
+ id: '4-6',
+ label: '岗亭',
+ type: 'layer',
+ subType: 'geojsonGt',
+ layerName: 'gt',
+ showPanel: false,
+ className: 'gt-zd',
+ source: gt,
+ color: DC.Color.CYAN.withAlpha(0.9),
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/gt.png',
+ height: 30,
+ },
+ ]
+ },
+
+ {
+ id: '5',
+ label: '园区范围',
type: 'layer',
- subType: 'geojsonLx',
- layerName: 'lx',
- source: lx,
- color: DC.Color.CYAN.withAlpha(0.9),
- height: 30,
- },
- {
- parentId: '4',
- id: '4-6',
- label: '岗亭',
+ subType: 'geojsonWall',
+ layerName: 'yqfw',
+ source: yqfw
+ },
+
+ {
+ id: '7',
+ label: '空中全景分布',
type: 'layer',
- subType: 'geojsonGt',
- layerName: 'gt',
+ subType: 'labelPoint',
+ method: getPanoramaList,
+ params: {
+ size: 1000,
+ remark: '1'
+ },
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/qj.png',
showPanel: false,
- className: 'gt-zd',
- source: gt,
- color: DC.Color.CYAN.withAlpha(0.9),
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/gt.png',
- height: 30,
+ layerName: 'kzqjdwfb',
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ panoramaTitle.value = attrParams.name
+ if (
+ attrParams.url.indexOf("http://vr.jxpskj.com:180") != -1
+ ) {
+ attrParams.url = attrParams.url.replace(
+ "http://vr.jxpskj.com:180",
+ "/panorama"
+ )
+ }
+ panoramaUrl.value = attrParams.url
+ panoramaShow.value = true
+ }
+ },
+
+ {
+ id: '8',
+ label: '瑞昌影像',
+ type: 'layer',
+ subType: 'baseMap',
+ layerName: 'baseMap',
+ source: baseRcImages,
+ },
+
+ /* {
+ id: '8',
+ label: '地面全景分布',
+ type: 'layer',
+ subType: 'labelPoint',
+ method: getPanoramaList,
+ params: {
+ size: 1000,
+ remark: '2'
},
- ]
- },
-
- {
- id: '5',
- label: '园区范围',
- type: 'layer',
- subType: 'geojsonWall',
- layerName: 'yqfw',
- source: yqfw
- },
-
- {
- id: '7',
- label: '空中全景分布',
- type: 'layer',
- subType: 'labelPoint',
- method: getPanoramaList,
- params: {
- size: 1000,
- remark: '1'
- },
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/qj.png',
- showPanel: false,
- layerName: 'kzqjdwfb',
- incident: (e) => {
- const { attrParams } = e.overlay
- panoramaTitle.value = attrParams.name
- if (
- attrParams.url.indexOf("http://vr.jxpskj.com:180") != -1
- ) {
- attrParams.url = attrParams.url.replace(
- "http://vr.jxpskj.com:180",
- "/panorama"
- )
+ backgroundIcon: VITE_APP_BASE + 'img/mapicon/qj.png',
+ showPanel: false,
+ layerName: 'dtqjdwfb',
+ incident: (e) => {
+ const { attrParams } = e.overlay
+ panoramaTitle.value = attrParams.name
+ if (
+ attrParams.url.indexOf("http://vr.jxpskj.com:180") != -1
+ ) {
+ attrParams.url = attrParams.url.replace(
+ "http://vr.jxpskj.com:180",
+ "/panorama"
+ )
+ }
+ panoramaUrl.value = attrParams.url
+ panoramaShow.value = true
}
- panoramaUrl.value = attrParams.url
- panoramaShow.value = true
- }
- },
-
- {
- id: '8',
- label: '瑞昌影像',
- type: 'layer',
- subType: 'baseMap',
- layerName: 'baseMap',
- source: baseRcImages,
- },
-
- /* {
- id: '8',
- label: '地面全景分布',
- type: 'layer',
- subType: 'labelPoint',
- method: getPanoramaList,
- params: {
- size: 1000,
- remark: '2'
- },
- backgroundIcon: VITE_APP_BASE + 'img/mapicon/qj.png',
- showPanel: false,
- layerName: 'dtqjdwfb',
- incident: (e) => {
- const { attrParams } = e.overlay
- panoramaTitle.value = attrParams.name
- if (
- attrParams.url.indexOf("http://vr.jxpskj.com:180") != -1
- ) {
- attrParams.url = attrParams.url.replace(
- "http://vr.jxpskj.com:180",
- "/panorama"
- )
- }
- panoramaUrl.value = attrParams.url
- panoramaShow.value = true
- }
- }, */
+ }, */
]
// let modellayer = new DC.VectorLayer("modellayer").addTo(window.$viewer)
@@ -731,492 +734,492 @@
// window.$viewer.flyToPosition("121.46748793889597,31.22345700031846,300,0,-90")
const defaultProps = {
- children: 'children',
- label: 'label',
+ children: 'children',
+ label: 'label',
}
const checkType = (value) => {
- if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
- return 'obj'
- } else if (Array.isArray(value)) {
- return 'arr'
- }
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
+ return 'obj'
+ } else if (Array.isArray(value)) {
+ return 'arr'
+ }
}
// 用于存储收集到的节点的数组
const collectedNodes = reactive([])
// 递归函数,收集所有 flag 为 true 的子节点
const collectNodesWithFlag = (nodes) => {
- if (checkType(nodes) == 'obj') {
- if (nodes.type == 'layer') {
- collectedNodes.value.push(nodes)
- }
- if (nodes.children && nodes.children.length > 0) {
- collectNodesWithFlag(nodes.children)
- return
- }
- }
-
- if (checkType(nodes) == 'arr') {
- nodes.forEach(item => {
- if (item) {
- if (item.type == 'layer') {
- collectedNodes.value.push(item)
+ if (checkType(nodes) == 'obj') {
+ if (nodes.type == 'layer') {
+ collectedNodes.value.push(nodes)
}
-
- if (item.children && item.children.length > 0) {
- collectNodesWithFlag(item.children)
+ if (nodes.children && nodes.children.length > 0) {
+ collectNodesWithFlag(nodes.children)
+ return
}
- }
- })
- }
+ }
+
+ if (checkType(nodes) == 'arr') {
+ nodes.forEach(item => {
+ if (item) {
+ if (item.type == 'layer') {
+ collectedNodes.value.push(item)
+ }
+
+ if (item.children && item.children.length > 0) {
+ collectNodesWithFlag(item.children)
+ }
+ }
+ })
+ }
}
let moveEntity = null
const handleCheckChange = (data) => {
- let options = treeRef.value?.getCheckedNodes()
- collectedNodes.value = []
- collectNodesWithFlag(data)
+ let options = treeRef.value?.getCheckedNodes()
+ collectedNodes.value = []
+ collectNodesWithFlag(data)
- collectedNodes.value.forEach(item => {
- // console.log(item, 1111111111111111112)
- if (options?.some(i => i.id == item.id)) {
+ collectedNodes.value.forEach(item => {
+ // console.log(item, 1111111111111111112)
+ if (options?.some(i => i.id == item.id)) {
- // const window.$Cesium = DC
- if (item.subType == '3Dtile') {
- if (!addTileLayers[item.layerName]) {
- // addTileLayers[item.layerName] = []
- // let tile = window.$viewer.delegate.scene.primitives.add(new window.$Cesium.Cesium3DTileset({
- // url: '/zhyq-lc/mx/tile_01/tileset.json',
- // }))
+ // const window.$Cesium = DC
+ if (item.subType == '3Dtile') {
+ if (!addTileLayers[item.layerName]) {
+ // addTileLayers[item.layerName] = []
+ // let tile = window.$viewer.delegate.scene.primitives.add(new window.$Cesium.Cesium3DTileset({
+ // url: '/zhyq-lc/mx/tile_01/tileset.json',
+ // }))
- // url: '/zhyq-lc/mx/tile_01/tileset.json',
- // }), 121323)
- // item.urlData.forEach(i => {
+ // url: '/zhyq-lc/mx/tile_01/tileset.json',
+ // }), 121323)
+ // item.urlData.forEach(i => {
- // })
- addTileLayers[item.layerName] = []
- item.urlData.forEach((m, ind) => {
- addTileLayers[item.layerName][ind] = new DC.Tileset(m.url, {
- // maximumMemoryUsage: 1024,
- // maximumScreenSpaceError: 8,
- // skipLevels: 5,
- // skipLevelOfDetail: true,
- // skipScreenSpaceErrorFactor: 128,
- // progressiveResolutionHeightFraction: 0.5,
- // baseScreenSpaceError: 1024
+ // })
+ addTileLayers[item.layerName] = []
+ item.urlData.forEach((m, ind) => {
+ addTileLayers[item.layerName][ind] = new DC.Tileset(m.url, {
+ // maximumMemoryUsage: 1024,
+ // maximumScreenSpaceError: 8,
+ // skipLevels: 5,
+ // skipLevelOfDetail: true,
+ // skipScreenSpaceErrorFactor: 128,
+ // progressiveResolutionHeightFraction: 0.5,
+ // baseScreenSpaceError: 1024
- skipLevelOfDetail: true,
- baseScreenSpaceError: 1024,
- maximumScreenSpaceError: 16, // 数值加大,能让最终成像变模糊
- skipScreenSpaceErrorFactor: 128,
- skipLevels: 5,
- immediatelyLoadDesiredLevelOfDetail: false,
- loadSiblings: true, // 如果为true则不会在已加载完概况房屋后,自动从中心开始超清化房屋
- cullWithChildrenBounds: true,
- cullRequestsWhileMoving: true,
- cullRequestsWhileMovingMultiplier: 10, // 值越小能够更快的剔除
- preloadWhenHidden: true,
- preferLeaves: true,
- maximumMemoryUsage: 1024, // 内存分配变小有利于倾斜摄影数据回收,提升性能体验
- progressiveResolutionHeightFraction: 0.3, // 数值偏于0能够让初始加载变得模糊
- dynamicScreenSpaceErrorDensity: 0.5, // 数值加大,能让周边加载变快
- dynamicScreenSpaceErrorFactor: 1, // 不知道起了什么作用没,反正放着吧先
- dynamicScreenSpaceError: true, // 根据测试,有了这个后,会在真正的全屏加载完之后才清晰化房屋
- })
- // tile.setHeight(-420)
- tileLayers.addOverlay(addTileLayers[item.layerName][ind])
- })
- } else {
- addTileLayers[item.layerName].forEach(m => m.show = true)
- }
- } else if (item.subType == 'labelPoint') {
- if (!addTileLayers[item.layerName]) {
- addTileLayers[item.layerName] = new DC.HtmlLayer(item.layerName)
- window.$viewer.addLayer(addTileLayers[item.layerName])
+ skipLevelOfDetail: true,
+ baseScreenSpaceError: 1024,
+ maximumScreenSpaceError: 16, // 数值加大,能让最终成像变模糊
+ skipScreenSpaceErrorFactor: 128,
+ skipLevels: 5,
+ immediatelyLoadDesiredLevelOfDetail: false,
+ loadSiblings: true, // 如果为true则不会在已加载完概况房屋后,自动从中心开始超清化房屋
+ cullWithChildrenBounds: true,
+ cullRequestsWhileMoving: true,
+ cullRequestsWhileMovingMultiplier: 10, // 值越小能够更快的剔除
+ preloadWhenHidden: true,
+ preferLeaves: true,
+ maximumMemoryUsage: 1024, // 内存分配变小有利于倾斜摄影数据回收,提升性能体验
+ progressiveResolutionHeightFraction: 0.3, // 数值偏于0能够让初始加载变得模糊
+ dynamicScreenSpaceErrorDensity: 0.5, // 数值加大,能让周边加载变快
+ dynamicScreenSpaceErrorFactor: 1, // 不知道起了什么作用没,反正放着吧先
+ dynamicScreenSpaceError: true, // 根据测试,有了这个后,会在真正的全屏加载完之后才清晰化房屋
+ })
+ // tile.setHeight(-420)
+ tileLayers.addOverlay(addTileLayers[item.layerName][ind])
+ })
+ } else {
+ addTileLayers[item.layerName].forEach(m => m.show = true)
+ }
+ } else if (item.subType == 'labelPoint') {
+ if (!addTileLayers[item.layerName]) {
+ addTileLayers[item.layerName] = new DC.HtmlLayer(item.layerName)
+ window.$viewer.addLayer(addTileLayers[item.layerName])
- item.method(item.params).then(res => {
- let data = res.data.data.records
+ item.method(item.params).then(res => {
+ let data = res.data.data.records
- data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
- let iconEl = ''
+ data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
+ let iconEl = ''
- if ('showPanel' in item && item.showPanel == false) {
- if (item.backgroundIcon) {
- iconEl = `
+ if ('showPanel' in item && item.showPanel == false) {
+ if (item.backgroundIcon) {
+ iconEl = `
<div class="map-name">${i[item.showParams] || i.name}</div>
<div class="map-icon">
<img src="${item.backgroundIcon}">
</div>
`
- }
- } else {
- iconEl = `<div class="marsBlueGradientPnl">
+ }
+ } else {
+ iconEl = `<div class="marsBlueGradientPnl">
<div>${i[item.showParams] || i.name}</div>
</div>`
- }
+ }
- let divIcon = new DC.DivIcon(
- new DC.Position(i.lng, i.lat, i.ele || 64),
- `<div class="public-map-popup ${item.className || ''}">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(i.lng, i.lat, i.ele || 64),
+ `<div class="public-map-popup ${item.className || ''}">
${iconEl}
</div>`
- )
+ )
- divIcon.attrParams = i
+ divIcon.attrParams = i
- let incident = () => {
- }
+ let incident = () => {
+ }
- if (item.incident) incident = item.incident
+ if (item.incident) incident = item.incident
- divIcon.on(DC.MouseEventType.CLICK, (e) => {
- if (mapStore.editPoint) {
- moveEntity = e
- return
+ divIcon.on(DC.MouseEventType.CLICK, (e) => {
+ if (mapStore.editPoint) {
+ moveEntity = e
+ return
+ }
+
+ if (mapStore.startCustomWx && item.customWx) {
+ EventBus.emit('wxEntityClick', e)
+ return
+ }
+
+ incident(e)
+ })
+
+ addTileLayers[item.layerName].addOverlay(divIcon)
+ })
+ })
+ } else {
+ addTileLayers[item.layerName].show = true
}
+ } else if (item.subType == 'geojsonWall') {
+ if (!addTileLayers[item.layerName]) {
+ addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
+ window.$viewer.addLayer(addTileLayers[item.layerName])
- if (mapStore.startCustomWx && item.customWx) {
- EventBus.emit('wxEntityClick', e)
- return
+ item.source.features.forEach(i => {
+ let wall = new DC.Wall(
+ i.geometry.coordinates[0].map(d => [...d, 125].join(',')).join(';')
+ )
+
+ wall.setStyle({
+ material: new DC.WallTrailMaterialProperty({
+ color: window.$Cesium.Color.fromBytes(0, 123, 255, 180),
+ speed: 8
+ })
+ })
+ addTileLayers[item.layerName].addOverlay(wall)
+ })
+ } else {
+ addTileLayers[item.layerName].show = true
}
+ } else if (item.subType == 'geojsonPipe') {
+ if (!addTileLayers[item.layerName]) {
+ addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
+ window.$viewer.addLayer(addTileLayers[item.layerName])
- incident(e)
- })
+ function computeCircle (radius) {
+ var positions = []
+ for (var i = 0; i < 360; i++) {
+ var radians = DC.Math.toRadians(i)
+ positions.push({
+ x: radius * Math.cos(radians),
+ y: radius * Math.sin(radians),
+ })
+ }
+ return positions
+ }
- addTileLayers[item.layerName].addOverlay(divIcon)
- })
- })
- } else {
- addTileLayers[item.layerName].show = true
- }
- } else if (item.subType == 'geojsonWall') {
- if (!addTileLayers[item.layerName]) {
- addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
- window.$viewer.addLayer(addTileLayers[item.layerName])
+ item.source.features.forEach(i => {
+ let polylineVolume = new DC.PolylineVolume(
+ i.geometry.coordinates.map(d => [d[0], d[1], item.height].join(',')).join(';'),
+ computeCircle(1.6)
+ )
+ if ('RefName' in i.properties && i.properties.RefName.indexOf('拟建') != -1) {
+ polylineVolume.setStyle({
+ material: DC.Color.fromBytes(255, 0, 0, 230)
+ })
- item.source.features.forEach(i => {
- let wall = new DC.Wall(
- i.geometry.coordinates[0].map(d => [...d, 125].join(',')).join(';')
- )
+ let features = window.$turf.featureCollection(
+ i.geometry.coordinates.map(d => window.$turf.point([d[0], d[1]]))
+ )
- wall.setStyle({
- material: new DC.WallTrailMaterialProperty({
- color: window.$Cesium.Color.fromBytes(0, 123, 255, 180),
- speed: 8
- })
- })
- addTileLayers[item.layerName].addOverlay(wall)
- })
- } else {
- addTileLayers[item.layerName].show = true
- }
- } else if (item.subType == 'geojsonPipe') {
- if (!addTileLayers[item.layerName]) {
- addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
- window.$viewer.addLayer(addTileLayers[item.layerName])
+ let planCenter = window.$turf.center(features)
- function computeCircle (radius) {
- var positions = []
- for (var i = 0; i < 360; i++) {
- var radians = DC.Math.toRadians(i)
- positions.push({
- x: radius * Math.cos(radians),
- y: radius * Math.sin(radians),
- })
- }
- return positions
- }
-
- item.source.features.forEach(i => {
- let polylineVolume = new DC.PolylineVolume(
- i.geometry.coordinates.map(d => [d[0], d[1], item.height].join(',')).join(';'),
- computeCircle(1.6)
- )
- if ('RefName' in i.properties && i.properties.RefName.indexOf('拟建') != -1) {
- polylineVolume.setStyle({
- material: DC.Color.fromBytes(255, 0, 0, 230)
- })
-
- let features = window.$turf.featureCollection(
- i.geometry.coordinates.map(d => window.$turf.point([d[0], d[1]]))
- )
-
- let planCenter = window.$turf.center(features)
-
- let planDivIcon = new DC.DivIcon(
- new DC.Position(planCenter.geometry.coordinates[0], planCenter.geometry.coordinates[1], 60.5),
- `<div class="public-map-popup">
+ let planDivIcon = new DC.DivIcon(
+ new DC.Position(planCenter.geometry.coordinates[0], planCenter.geometry.coordinates[1], 60.5),
+ `<div class="public-map-popup">
<div class="map-name">拟建</div>
<div class="map-icon">
<img src="${VITE_APP_BASE + 'img/mapicon/nj-ys.png'}">
</div>
</div>`
- )
+ )
- planToBuild.addOverlay(planDivIcon)
- } else {
- polylineVolume.setStyle({
- material: item.color
- })
- }
- // 雨水管网流向
- if (item.layerName === 'ysgw') {
- let ss = i.properties.qd + ',' + item.height + ';' + i.properties.zd + ',' + item.height
- let polyline1 = new DC.Polyline(ss)
- polyline1.setStyle({
- width: 10,
- arcType: 1,
- material: new DC.PolylineImageTrailMaterialProperty({
- color: DC.Color.GREEN,
- speed: 20,
- image: VITE_APP_BASE + 'img/mapicon/right.png',
- repeat: { x: 30, y: 1 }
- }),
- clampToGround: false
- })
- addTileLayers[item.layerName].addOverlay(polyline1)
- }
- addTileLayers[item.layerName].addOverlay(polylineVolume)
- })
- } else {
- addTileLayers[item.layerName].show = true
- }
- } else if (item.subType == 'geojsonPolygon') {
- if (!addTileLayers[item.layerName]) {
- addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
- window.$viewer.addLayer(addTileLayers[item.layerName])
+ planToBuild.addOverlay(planDivIcon)
+ } else {
+ polylineVolume.setStyle({
+ material: item.color
+ })
+ }
+ // 雨水管网流向
+ if (item.layerName === 'ysgw') {
+ let ss = i.properties.qd + ',' + item.height + ';' + i.properties.zd + ',' + item.height
+ let polyline1 = new DC.Polyline(ss)
+ polyline1.setStyle({
+ width: 10,
+ arcType: 1,
+ material: new DC.PolylineImageTrailMaterialProperty({
+ color: DC.Color.GREEN,
+ speed: 20,
+ image: VITE_APP_BASE + 'img/mapicon/right.png',
+ repeat: { x: 30, y: 1 }
+ }),
+ clampToGround: false
+ })
+ addTileLayers[item.layerName].addOverlay(polyline1)
+ }
+ addTileLayers[item.layerName].addOverlay(polylineVolume)
+ })
+ } else {
+ addTileLayers[item.layerName].show = true
+ }
+ } else if (item.subType == 'geojsonPolygon') {
+ if (!addTileLayers[item.layerName]) {
+ addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
+ window.$viewer.addLayer(addTileLayers[item.layerName])
- item.source.features.forEach(i => {
- let Polyline = new DC.Polyline(i.geometry.coordinates.map(d => [...d, item.height].join(',')).join(';'))
+ item.source.features.forEach(i => {
+ let Polyline = new DC.Polyline(i.geometry.coordinates.map(d => [...d, item.height].join(',')).join(';'))
- Polyline.setStyle({
- width: 3,
- material: DC.Color.BLUE,
- clampToGround: true
- })
- addTileLayers[item.layerName].addOverlay(Polyline)
- })
- } else {
- addTileLayers[item.layerName].show = true
- }
- // 路线
- } else if (item.subType == 'geojsonLx') {
- if (!addTileLayers[item.layerName]) {
- addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
- window.$viewer.addLayer(addTileLayers[item.layerName])
+ Polyline.setStyle({
+ width: 3,
+ material: DC.Color.BLUE,
+ clampToGround: true
+ })
+ addTileLayers[item.layerName].addOverlay(Polyline)
+ })
+ } else {
+ addTileLayers[item.layerName].show = true
+ }
+ // 路线
+ } else if (item.subType == 'geojsonLx') {
+ if (!addTileLayers[item.layerName]) {
+ addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
+ window.$viewer.addLayer(addTileLayers[item.layerName])
- item.source.features.forEach(i => {
- let ss = i.geometry.coordinates.map(d => [...d, item.height].join(',')).join(';')
- let Polyline = new DC.Polyline(i.geometry.coordinates.map(d => [...d, item.height].join(',')).join(';'))
+ item.source.features.forEach(i => {
+ let ss = i.geometry.coordinates.map(d => [...d, item.height].join(',')).join(';')
+ let Polyline = new DC.Polyline(i.geometry.coordinates.map(d => [...d, item.height].join(',')).join(';'))
- Polyline.setStyle({
- width: 3,
- // material: DC.Color.BLUE,
- material: new DC.PolylineTrailMaterialProperty({
- color: DC.Color.RED,
- speed: 10
- }),
- clampToGround: true
- })
- addTileLayers[item.layerName].addOverlay(Polyline)
- })
- } else {
- addTileLayers[item.layerName].show = true
- }
- // 岗亭
- } else if (item.subType == 'geojsonGt') {
- // if (!addTileLayers[item.layerName]) {
- // addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
- // window.$viewer.addLayer(addTileLayers[item.layerName])
+ Polyline.setStyle({
+ width: 3,
+ // material: DC.Color.BLUE,
+ material: new DC.PolylineTrailMaterialProperty({
+ color: DC.Color.RED,
+ speed: 10
+ }),
+ clampToGround: true
+ })
+ addTileLayers[item.layerName].addOverlay(Polyline)
+ })
+ } else {
+ addTileLayers[item.layerName].show = true
+ }
+ // 岗亭
+ } else if (item.subType == 'geojsonGt') {
+ // if (!addTileLayers[item.layerName]) {
+ // addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName)
+ // window.$viewer.addLayer(addTileLayers[item.layerName])
- // item.source.features.forEach(i => {
- // let iconEl = ''
- // if ('showPanel' in item && item.showPanel == false) {
- // if (item.backgroundIcon) {
- // iconEl = `
- // <div class="map-name">${i.properties.O_Name}</div>
- // <div class="map-icon">
- // <img src="${item.backgroundIcon}">
- // </div>
- // `
- // }
- // } else {
- // iconEl = `<div class="marsBlueGradientPnl">
- // <div>${i.properties.O_Name}</div>
- // </div>`
- // }
- // console.log(i.geometry.coordinates[0], "2222222222222222222")
- // console.log(i.properties.O_Name, "3333333333333333")
+ // item.source.features.forEach(i => {
+ // let iconEl = ''
+ // if ('showPanel' in item && item.showPanel == false) {
+ // if (item.backgroundIcon) {
+ // iconEl = `
+ // <div class="map-name">${i.properties.O_Name}</div>
+ // <div class="map-icon">
+ // <img src="${item.backgroundIcon}">
+ // </div>
+ // `
+ // }
+ // } else {
+ // iconEl = `<div class="marsBlueGradientPnl">
+ // <div>${i.properties.O_Name}</div>
+ // </div>`
+ // }
+ // console.log(i.geometry.coordinates[0], "2222222222222222222")
+ // console.log(i.properties.O_Name, "3333333333333333")
- // let divIcon = new DC.DivIcon(
- // new DC.Position('115.60241996718104', '29.818985725785911'),
- // `<div class="public-map-popup ${item.className || ''}">
- // ${iconEl}
- // </div>`
- // )
+ // let divIcon = new DC.DivIcon(
+ // new DC.Position('115.60241996718104', '29.818985725785911'),
+ // `<div class="public-map-popup ${item.className || ''}">
+ // ${iconEl}
+ // </div>`
+ // )
- // addTileLayers[item.layerName].addOverlay(divIcon)
- // })
- // } else {
- // addTileLayers[item.layerName].show = true
- // }
- if (!addTileLayers[item.layerName]) {
- addTileLayers[item.layerName] = new DC.HtmlLayer(item.layerName)
- window.$viewer.addLayer(addTileLayers[item.layerName])
+ // addTileLayers[item.layerName].addOverlay(divIcon)
+ // })
+ // } else {
+ // addTileLayers[item.layerName].show = true
+ // }
+ if (!addTileLayers[item.layerName]) {
+ addTileLayers[item.layerName] = new DC.HtmlLayer(item.layerName)
+ window.$viewer.addLayer(addTileLayers[item.layerName])
- // item.method(item.params).then(res => {
- // let data = res.data.data.records
+ // item.method(item.params).then(res => {
+ // let data = res.data.data.records
- item.source.features.forEach(i => {
- let iconEl = ''
+ item.source.features.forEach(i => {
+ let iconEl = ''
- if ('showPanel' in item && item.showPanel == false) {
- if (item.backgroundIcon) {
- iconEl = `
+ if ('showPanel' in item && item.showPanel == false) {
+ if (item.backgroundIcon) {
+ iconEl = `
<div class="map-name">${i.properties.O_Name}</div>
<div class="map-icon">
<img src="${item.backgroundIcon}">
</div>
`
- }
- } else {
- iconEl = `<div class="marsBlueGradientPnl">
+ }
+ } else {
+ iconEl = `<div class="marsBlueGradientPnl">
<div>${i.properties.O_Name}</div>
</div>`
- }
+ }
- let divIcon = new DC.DivIcon(
- new DC.Position(i.geometry.coordinates[0], i.geometry.coordinates[1], i.ele || 64),
- `<div class="public-map-popup ${item.className || ''}">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(i.geometry.coordinates[0], i.geometry.coordinates[1], i.ele || 64),
+ `<div class="public-map-popup ${item.className || ''}">
${iconEl}
</div>`
- )
+ )
- divIcon.attrParams = i
+ divIcon.attrParams = i
- // let incident = () => {
- // }
+ // let incident = () => {
+ // }
- // if (item.incident) incident = item.incident
+ // if (item.incident) incident = item.incident
- // divIcon.on(DC.MouseEventType.CLICK, (e) => {
- // if (mapStore.editPoint) {
- // moveEntity = e
- // return
- // }
+ // divIcon.on(DC.MouseEventType.CLICK, (e) => {
+ // if (mapStore.editPoint) {
+ // moveEntity = e
+ // return
+ // }
- // if (mapStore.startCustomWx && item.customWx) {
- // EventBus.emit('wxEntityClick', e)
- // return
- // }
+ // if (mapStore.startCustomWx && item.customWx) {
+ // EventBus.emit('wxEntityClick', e)
+ // return
+ // }
- // incident(e)
- // })
+ // incident(e)
+ // })
- addTileLayers[item.layerName].addOverlay(divIcon)
- // })
- })
+ addTileLayers[item.layerName].addOverlay(divIcon)
+ // })
+ })
+ } else {
+ addTileLayers[item.layerName].show = true
+ }
+ } else if (item.subType == 'baseMap') {
+ if (addTileLayers[item.layerName]) {
+ addTileLayers[item.layerName].show = true
+ return
+ }
+
+ addTileLayers[item.layerName] = window.$viewer?.imageryLayers.addImageryProvider(item.source)
+ }
} else {
- addTileLayers[item.layerName].show = true
- }
- } else if (item.subType == 'baseMap') {
- if (addTileLayers[item.layerName]) {
- addTileLayers[item.layerName].show = true
- return
- }
+ if (addTileLayers[item.layerName]) {
+ if (item.subType == '3Dtile') {
+ addTileLayers[item.layerName].forEach(m => m.show = false)
+ } else if (item.subType == 'baseMap') {
+ addTileLayers[item.layerName].show = false
+ } else {
+ addTileLayers[item.layerName].clear()
+ window.$viewer && window.$viewer.removeLayer(addTileLayers[item.layerName])
+ addTileLayers[item.layerName] = null
+ delete addTileLayers[item.layerName]
- addTileLayers[item.layerName] = window.$viewer?.imageryLayers.addImageryProvider(item.source)
- }
- } else {
- if (addTileLayers[item.layerName]) {
- if (item.subType == '3Dtile') {
- addTileLayers[item.layerName].forEach(m => m.show = false)
- } else if (item.subType == 'baseMap') {
- addTileLayers[item.layerName].show = false
- } else {
- addTileLayers[item.layerName].clear()
- window.$viewer && window.$viewer.removeLayer(addTileLayers[item.layerName])
- addTileLayers[item.layerName] = null
- delete addTileLayers[item.layerName]
-
- if (item.layerName == 'ysgw' && planToBuild) {
- planToBuild.clear()
- }
- if (item.layerName == 'qyjgx' && planToBuild) {
- planToBuild.clear()
- }
+ if (item.layerName == 'ysgw' && planToBuild) {
+ planToBuild.clear()
+ }
+ if (item.layerName == 'qyjgx' && planToBuild) {
+ planToBuild.clear()
+ }
+ }
+ }
}
- }
- }
- })
+ })
}
function findObjectById (data, id) {
- // 遍历数据数组
- for (let i = 0; i < data.length; i++) {
- const item = data[i]
+ // 遍历数据数组
+ for (let i = 0; i < data.length; i++) {
+ const item = data[i]
- // 检查当前项的 id 是否匹配
- if (item.id === id) {
- return item // 找到匹配项,返回它
+ // 检查当前项的 id 是否匹配
+ if (item.id === id) {
+ return item // 找到匹配项,返回它
+ }
+
+ // 如果当前项有 children 数组,则递归查找
+ if (item.children && item.children.length > 0) {
+ const found = findObjectById(item.children, id)
+ if (found) {
+ return found // 在 children 中找到匹配项,返回它
+ }
+ }
}
- // 如果当前项有 children 数组,则递归查找
- if (item.children && item.children.length > 0) {
- const found = findObjectById(item.children, id)
- if (found) {
- return found // 在 children 中找到匹配项,返回它
- }
- }
- }
-
- // 如果没有找到匹配项,返回 null
- return null
+ // 如果没有找到匹配项,返回 null
+ return null
}
const restHandleCheckChange = (key) => {
- let checkIds = treeRef.value?.getCheckedKeys()
+ let checkIds = treeRef.value?.getCheckedKeys()
- if (checkIds && checkIds.some(i => i == key)) {
- return
- }
+ if (checkIds && checkIds.some(i => i == key)) {
+ return
+ }
- treeRef.value?.setCheckedKeys([...checkIds, key])
- handleCheckChange([findObjectById(data, key)])
+ treeRef.value?.setCheckedKeys([...checkIds, key])
+ handleCheckChange([findObjectById(data, key)])
}
const restHandleDelChange = (key) => {
- let checkIds = treeRef.value?.getCheckedKeys()
+ let checkIds = treeRef.value?.getCheckedKeys()
- if (checkIds && !checkIds.some(i => i == key)) {
- return
- }
+ if (checkIds && !checkIds.some(i => i == key)) {
+ return
+ }
- let selectData = findObjectById(data, key)
+ let selectData = findObjectById(data, key)
- let parentId = null
- if (selectData && 'parentId' in selectData) parentId = selectData.parentId
+ let parentId = null
+ if (selectData && 'parentId' in selectData) parentId = selectData.parentId
- treeRef.value?.setCheckedKeys(checkIds.filter(i => i.indexOf(key) && i != parentId))
- handleCheckChange([selectData])
+ treeRef.value?.setCheckedKeys(checkIds.filter(i => i.indexOf(key) && i != parentId))
+ handleCheckChange([selectData])
}
// 飞到园区范围
const flyToyqfw = () => {
- window.$viewer.zoomToPosition(new DC.Position(
- 115.6080,
- 29.7880,
- 3000,
- 0,
- -45,
- 0
- ), () => {
- })
+ window.$viewer.zoomToPosition(new DC.Position(
+ 115.6080,
+ 29.7880,
+ 3000,
+ 0,
+ -45,
+ 0
+ ), () => {
+ })
}
EventBus.on('restHandleCheckChange', restHandleCheckChange)
@@ -1227,63 +1230,63 @@
let tooltip = window.$viewer.tooltip
const viewerMouseMove = (e) => {
- if (mapStore.editPoint) {
- if (moveEntity != null) {
+ if (mapStore.editPoint) {
+ if (moveEntity != null) {
- if (e.wgs84Position && e.wgs84Position.alt > 0) {
- moveEntity.overlay.position = new DC.Position(e.wgs84Position.lng, e.wgs84Position.lat, e.wgs84Position.alt)
- } else {
- moveEntity.overlay.position = new DC.Position(e.wgs84SurfacePosition.lng, e.wgs84SurfacePosition.lat, e.wgs84SurfacePosition.alt)
- }
+ if (e.wgs84Position && e.wgs84Position.alt > 0) {
+ moveEntity.overlay.position = new DC.Position(e.wgs84Position.lng, e.wgs84Position.lat, e.wgs84Position.alt)
+ } else {
+ moveEntity.overlay.position = new DC.Position(e.wgs84SurfacePosition.lng, e.wgs84SurfacePosition.lat, e.wgs84SurfacePosition.alt)
+ }
- tooltip.showAt({ x: e.windowPosition.x + 10, y: e.windowPosition.y }, '右键结束编辑')
- } else {
- tooltip.showAt({ x: e.windowPosition.x + 10, y: e.windowPosition.y }, '左键选中点位,开始编辑')
+ tooltip.showAt({ x: e.windowPosition.x + 10, y: e.windowPosition.y }, '右键结束编辑')
+ } else {
+ tooltip.showAt({ x: e.windowPosition.x + 10, y: e.windowPosition.y }, '左键选中点位,开始编辑')
+ }
}
- }
}
window.$viewer.on(DC.MouseEventType.MOUSE_MOVE, viewerMouseMove)
const viewerRightClick = (e) => {
- if (mapStore.editPoint && moveEntity != null) {
- tooltip.enable = false
- let lng, lat, ele
+ if (mapStore.editPoint && moveEntity != null) {
+ tooltip.enable = false
+ let lng, lat, ele
- const { attrParams } = moveEntity.overlay
- console.log(e, 2222)
+ const { attrParams } = moveEntity.overlay
+ console.log(e, 2222)
- if (e.wgs84Position && e.wgs84Position.alt > 0) {
- lng = e.wgs84Position.lng
- lat = e.wgs84Position.lat
- ele = e.wgs84Position.alt
- } else {
- lng = e.wgs84SurfacePosition.lng
- lat = e.wgs84SurfacePosition.lat
- ele = e.wgs84SurfacePosition.alt
+ if (e.wgs84Position && e.wgs84Position.alt > 0) {
+ lng = e.wgs84Position.lng
+ lat = e.wgs84Position.lat
+ ele = e.wgs84Position.alt
+ } else {
+ lng = e.wgs84SurfacePosition.lng
+ lat = e.wgs84SurfacePosition.lat
+ ele = e.wgs84SurfacePosition.alt
+ }
+
+ updateSpace({
+ id: attrParams.id,
+ lng,
+ lat,
+ ele: Math.ceil(ele)
+ }).then(res => {
+ moveEntity = null
+ mapStore.setEditPoint(false)
+
+ ElMessage({
+ message: '修改成功',
+ type: 'success',
+ })
+ })
}
-
- updateSpace({
- id: attrParams.id,
- lng,
- lat,
- ele: Math.ceil(ele)
- }).then(res => {
- moveEntity = null
- mapStore.setEditPoint(false)
-
- ElMessage({
- message: '修改成功',
- type: 'success',
- })
- })
- }
}
window.$viewer.on(DC.MouseEventType.RIGHT_CLICK, viewerRightClick)
onMounted(() => {
- handleCheckChange(data.filter(i => indexPoint.value.includes(i.id)))
+ handleCheckChange(data.filter(i => indexPoint.value.includes(i.id)))
})
// const sharedData = computed(() => pointStore.sharedData);
@@ -1292,26 +1295,26 @@
// 关闭所有选中的,除了倾斜,园区分布,空中全景
const closeAll = () => {
- EventBus.emit('restHandleDelChange', `2`)
- EventBus.emit('restHandleDelChange', `3-1`)
- EventBus.emit('restHandleDelChange', `3-2`)
- EventBus.emit('restHandleDelChange', `3-3`)
- EventBus.emit('restHandleDelChange', `3-4`)
- EventBus.emit('restHandleDelChange', `3-5`)
- EventBus.emit('restHandleDelChange', `3-6`)
- EventBus.emit('restHandleDelChange', `3-7`)
- EventBus.emit('restHandleDelChange', `3-8`)
- EventBus.emit('restHandleDelChange', `3-9`)
- EventBus.emit('restHandleDelChange', `3-11`)
+ EventBus.emit('restHandleDelChange', `2`)
+ EventBus.emit('restHandleDelChange', `3-1`)
+ EventBus.emit('restHandleDelChange', `3-2`)
+ EventBus.emit('restHandleDelChange', `3-3`)
+ EventBus.emit('restHandleDelChange', `3-4`)
+ EventBus.emit('restHandleDelChange', `3-5`)
+ EventBus.emit('restHandleDelChange', `3-6`)
+ EventBus.emit('restHandleDelChange', `3-7`)
+ EventBus.emit('restHandleDelChange', `3-8`)
+ EventBus.emit('restHandleDelChange', `3-9`)
+ EventBus.emit('restHandleDelChange', `3-11`)
- EventBus.emit('restHandleDelChange', `4-1`)
- EventBus.emit('restHandleDelChange', `4-2`)
- EventBus.emit('restHandleDelChange', `4-3`)
- EventBus.emit('restHandleDelChange', `4-9`)
- EventBus.emit('restHandleDelChange', `4-5`)
- EventBus.emit('restHandleDelChange', `4-6`)
+ EventBus.emit('restHandleDelChange', `4-1`)
+ EventBus.emit('restHandleDelChange', `4-2`)
+ EventBus.emit('restHandleDelChange', `4-3`)
+ EventBus.emit('restHandleDelChange', `4-9`)
+ EventBus.emit('restHandleDelChange', `4-5`)
+ EventBus.emit('restHandleDelChange', `4-6`)
- destroyPop()
+ destroyPop()
}
// const sharedData = computed(() => pointStore.sharedData);
@@ -1319,95 +1322,95 @@
// });
// 监听当前路由路径的变化
watch(() => router.currentRoute.value.path,
- (newPath, oldPath) => {
- console.log(`Current path changed from ${oldPath} to ${newPath}`)
- closeAll()
- },
- { immediate: true }
+ (newPath, oldPath) => {
+ console.log(`Current path changed from ${oldPath} to ${newPath}`)
+ closeAll()
+ },
+ { immediate: true }
)
// 销毁
function destroyPop () {
- if (addPopLayers && addPopLayers != null) {
- let arr = Object.keys(addPopLayers)
- if (arr.length > 0) {
- arr.forEach(i => {
- addPopLayers[i] && window.$viewer && window.$viewer.removeLayer(addPopLayers[i])
- addPopLayers[i] = null
- delete addPopLayers[i]
- })
- addPopLayers = {}
+ if (addPopLayers && addPopLayers != null) {
+ let arr = Object.keys(addPopLayers)
+ if (arr.length > 0) {
+ arr.forEach(i => {
+ addPopLayers[i] && window.$viewer && window.$viewer.removeLayer(addPopLayers[i])
+ addPopLayers[i] = null
+ delete addPopLayers[i]
+ })
+ addPopLayers = {}
+ }
}
- }
}
onUnmounted(() => {
- let arr = Object.keys(addTileLayers)
- arr.forEach(i => {
- if (i == 'hgyq' || i == 'hgyqT') {
- addTileLayers[i].forEach(t => {
- tileLayers.removeOverlay(t)
- t = null
- })
- } else if (i == 'baseMap') {
- window.$viewer?.imageryLayers.remove(addTileLayers[i])
- } else {
- addTileLayers[i] && window.$viewer && window.$viewer.removeLayer(addTileLayers[i])
+ let arr = Object.keys(addTileLayers)
+ arr.forEach(i => {
+ if (i == 'hgyq' || i == 'hgyqT') {
+ addTileLayers[i].forEach(t => {
+ tileLayers.removeOverlay(t)
+ t = null
+ })
+ } else if (i == 'baseMap') {
+ window.$viewer?.imageryLayers.remove(addTileLayers[i])
+ } else {
+ addTileLayers[i] && window.$viewer && window.$viewer.removeLayer(addTileLayers[i])
+ }
+ addTileLayers[i] = null
+ delete addTileLayers[i]
+ })
+ addTileLayers = null
+
+ if (tileLayers) {
+ tileLayers.remove()
+ window.$viewer && window.$viewer.removeLayer(tileLayers)
+ tileLayers = null
}
- addTileLayers[i] = null
- delete addTileLayers[i]
- })
- addTileLayers = null
- if (tileLayers) {
- tileLayers.remove()
- window.$viewer && window.$viewer.removeLayer(tileLayers)
- tileLayers = null
- }
+ if (planToBuild) {
+ planToBuild.remove()
+ window.$viewer && window.$viewer.removeLayer(planToBuild)
+ planToBuild = null
+ }
- if (planToBuild) {
- planToBuild.remove()
- window.$viewer && window.$viewer.removeLayer(planToBuild)
- planToBuild = null
- }
+ // 弹窗销毁
+ destroyPop()
+ addPopLayers = null
- // 弹窗销毁
- destroyPop()
- addPopLayers = null
+ window.$viewer && window.$viewer.off(DC.MouseEventType.MOUSE_MOVE, viewerMouseMove)
+ window.$viewer && window.$viewer.off(DC.MouseEventType.RIGHT_CLICK, viewerRightClick)
- window.$viewer && window.$viewer.off(DC.MouseEventType.MOUSE_MOVE, viewerMouseMove)
- window.$viewer && window.$viewer.off(DC.MouseEventType.RIGHT_CLICK, viewerRightClick)
-
- EventBus.off('restHandleCheckChange', restHandleCheckChange)
- EventBus.off('restHandleDelChange', restHandleDelChange)
- EventBus.off('flyToyqfw', flyToyqfw)
+ EventBus.off('restHandleCheckChange', restHandleCheckChange)
+ EventBus.off('restHandleDelChange', restHandleDelChange)
+ EventBus.off('flyToyqfw', flyToyqfw)
})
</script>
<style lang="scss" scoped>
.tree-content {
- min-width: 200px;
- padding: 10px;
+ min-width: 200px;
+ padding: 10px;
- ::v-deep(.el-tree) {
- color: #fff;
- background: transparent;
+ ::v-deep(.el-tree) {
+ color: #fff;
+ background: transparent;
- /* 鼠标浮动过的背景颜色 */
- .el-tree-node__content:hover {
- background: #0074b7;
+ /* 鼠标浮动过的背景颜色 */
+ .el-tree-node__content:hover {
+ background: #0074b7;
+ }
+
+ /* 鼠标点击时节点的背景颜色 */
+ .el-tree-node:focus>.el-tree-node__content {
+ background-color: #0074b7 !important;
+ color: rgb(255, 255, 255);
+ }
+
+ /* 鼠标失去焦点时节点背景的颜色 */
+ .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
+ background: rgb(0, 129, 204);
+ }
}
-
- /* 鼠标点击时节点的背景颜色 */
- .el-tree-node:focus>.el-tree-node__content {
- background-color: #0074b7 !important;
- color: rgb(255, 255, 255);
- }
-
- /* 鼠标失去焦点时节点背景的颜色 */
- .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
- background: rgb(0, 129, 204);
- }
- }
}
</style>
--
Gitblit v1.9.3