From e911c5fa1f968f5bb88d1ea3f893e285249c5933 Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Tue, 22 Mar 2022 09:51:45 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/school-web
---
public/img/icon/close-video.png | 0
src/components/map/components/dimension.vue | 141 +++
src/components/campusNav/index.vue | 6
src/pcLayout/index.vue | 4
src/pcviews/specialmap/welcome.vue | 17
src/main.js | 2
src/router/axios.js | 2
src/components/map/index.vue | 28
public/img/icon/start-video.png | 0
src/styles/pcpage/element-ui.scss | 62 +
src/components/map/components/mapPopup.vue | 2243 ++++++++++++++++++++++++++--------------------------
src/styles/pcpage/dc-ui.scss | 17
12 files changed, 1,366 insertions(+), 1,156 deletions(-)
diff --git a/public/img/icon/close-video.png b/public/img/icon/close-video.png
new file mode 100644
index 0000000..0eb8268
--- /dev/null
+++ b/public/img/icon/close-video.png
Binary files differ
diff --git a/public/img/icon/start-video.png b/public/img/icon/start-video.png
new file mode 100644
index 0000000..9f53be5
--- /dev/null
+++ b/public/img/icon/start-video.png
Binary files differ
diff --git a/src/components/campusNav/index.vue b/src/components/campusNav/index.vue
index 3d17339..c6e43a2 100644
--- a/src/components/campusNav/index.vue
+++ b/src/components/campusNav/index.vue
@@ -283,6 +283,7 @@
tooltip.showAt(e.windowPosition, title)
})
},
+
closeModel () {
if (this.$route.path.indexOf('/campusnavi') != -1) {
this.$store.dispatch('delVisitedViews', this.$route)
@@ -295,6 +296,9 @@
this.comeNameText = ''
this.comeNameList = []
this.comeNameShow = false
+ this.pathBoxList = []
+ this.pathBoxShow = false
+
if (CamPusNavLayer.campusRouteLayer != null) {
CamPusNavLayer.campusRouteLayer.clear()
this.isOverRouter = false
@@ -572,6 +576,8 @@
clearLayer () {
if (CamPusNavLayer.campusRouteLayer != null) {
CamPusNavLayer.campusRouteLayer.clear()
+ this.pathBoxList = []
+ this.pathBoxShow = false
}
},
diff --git a/src/components/map/components/dimension.vue b/src/components/map/components/dimension.vue
index 3ef79c3..069e60b 100644
--- a/src/components/map/components/dimension.vue
+++ b/src/components/map/components/dimension.vue
@@ -56,7 +56,7 @@
let layerSATtwo = null
let tcLayer = null
-const wallLayer = null
+// const wallLayer = null
export default {
name: 'dimension',
@@ -280,19 +280,26 @@
// 最小
global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100
+ global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1100
// 最大
global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400
+ global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1400
// 设置相机缩小时的速率
global.viewer.scene.screenSpaceCameraController._minimumZoomRate = 2000
+ // global.eagleViewer.scene.screenSpaceCameraController._minimumZoomRate = 2000
// 设置相机放大时的速率
global.viewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000
+ // global.eagleViewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000
// 视角平移
global.viewer.scene.screenSpaceCameraController.enableRotate = true
+ global.eagleViewer.scene.screenSpaceCameraController.enableRotate = true
// 视角缩放
global.viewer.scene.screenSpaceCameraController.enableZoom = true
+ global.eagleViewer.scene.screenSpaceCameraController.enableZoom = true
// 视角旋转
global.viewer.scene.screenSpaceCameraController.enableTilt = false
+ global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false
that.createdLayers()
@@ -563,6 +570,7 @@
}
global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
+ global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
}
}
}
@@ -699,6 +707,90 @@
global.viewer.camera.positionCartographic.longitude,
global.viewer.camera.positionCartographic.latitude,
400
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ }
+ },
+
+ smallMapCameraEvent () {
+ const height = Math.ceil(
+ global.eagleViewer.camera.positionCartographic.height
+ )
+
+ global.eagleViewer.camera.setView({
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+
+ if (height < 1150) {
+ global.eagleViewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.eagleViewer.camera.positionCartographic.longitude,
+ global.eagleViewer.camera.positionCartographic.latitude,
+ 1100
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ }
+
+ if (height > 1150 && height <= 1250) {
+ global.eagleViewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.eagleViewer.camera.positionCartographic.longitude,
+ global.eagleViewer.camera.positionCartographic.latitude,
+ 1200
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ }
+
+ if (height > 1250 && height <= 1350) {
+ global.eagleViewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.eagleViewer.camera.positionCartographic.longitude,
+ global.eagleViewer.camera.positionCartographic.latitude,
+ 1300
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ }
+
+ if (height > 1350) {
+ global.eagleViewer.camera.setView({
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ global.eagleViewer.camera.positionCartographic.longitude,
+ global.eagleViewer.camera.positionCartographic.latitude,
+ 1400
),
orientation: {
// 指向
@@ -871,8 +963,8 @@
// 科技感删除
removeSAT () {
- global.viewer.remove(layerSat)
- global.viewer.remove(layerSATtwo)
+ global.viewer.removeLayer(layerSat)
+ global.viewer.removeLayer(layerSATtwo)
layerSat = null
layerSATtwo = null
},
@@ -946,6 +1038,7 @@
that.createTC()
global.viewer.off(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent)
global.viewer.off(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
+ global.eagleViewer.off(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
that.removeLayers()
global.viewer.imageryLayers.remove(baseMapLayer)
baseMapLayer = null
@@ -969,11 +1062,15 @@
global.viewer.addLayer(streenMlayer)
// 最小
global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 1.0
+ global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1.0
// 最大
global.viewer.scene.screenSpaceCameraController.maximumZoomDistance =
Number.POSITIVE_INFINITY
+ global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance =
+ Number.POSITIVE_INFINITY
// 视角旋转
global.viewer.scene.screenSpaceCameraController.enableTilt = true
+ global.eagleViewer.scene.screenSpaceCameraController.enableTilt = true
// 115.877863,28.741661
global.viewer.camera.setView({
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
@@ -991,12 +1088,30 @@
roll: 0.0
}
})
+
+ global.eagleViewer.camera.setView({
+ // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ that.mapCenter[0],
+ that.mapCenter[1],
+ 1220.0
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(-9),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54),
+ roll: 0.0
+ }
+ })
} else {
that.btnGroupShow = false
that.removeSAT()
that.removeTC()
global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent)
global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
+ global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
tileset.off(global.DC.MouseEventType.CLICK, that.tilesetClick)
tilesetLayer.removeOverlay(tileset)
tilesetLayer.show = false
@@ -1028,12 +1143,32 @@
roll: 0.0
}
})
+
+ global.eagleViewer.camera.setView({
+ // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ that.mapCenter[0],
+ that.mapCenter[1],
+ 1400.0
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
// 最小
global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100
+ global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1100
// 最大
global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400
+ global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1400
// 视角旋转
global.viewer.scene.screenSpaceCameraController.enableTilt = false
+ global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false
}
}
}
diff --git a/src/components/map/components/mapPopup.vue b/src/components/map/components/mapPopup.vue
index 3fb0831..e89003f 100644
--- a/src/components/map/components/mapPopup.vue
+++ b/src/components/map/components/mapPopup.vue
@@ -1,445 +1,431 @@
<template>
- <div>
- <div id="map_popup_content">
- <div v-if="detailsPopup" class="divForms-dom" id="divFormsDomBox">
- <div style="width: 100%; height: 100%">
- <div class="divForms divForms-theme">
- <div class="divForms-wrap">
- <div class="area">
- <div class="arrow-lt"></div>
- <div class="b-t"></div>
- <div class="b-r"></div>
- <div class="b-b"></div>
- <div class="b-l"></div>
- <div class="arrow-rb"></div>
- <div class="label-wrap">
- <div class="title">
- {{ stateName }}
- <img
- v-show="introduceText != null && introduceText != ''"
- @click="audioPlay"
- class="audio-control"
- src="/img/navicon/audio.png"
- alt
- />
- <img
- @click="closeMapPopupBox"
- class="close-box"
- src="/img/navicon/close.png"
- alt
- />
- </div>
- <div class="label-content">
- <div class="arc-bcg">
- <img :src="popupBgUrl" alt />
- </div>
- <div
- v-show="siteName != null && siteName != ''"
- class="site"
- >
- <strong>地址:</strong>
- {{ siteName }}
- </div>
- <div
- v-show="telephone != null && telephone != ''"
- class="phone"
- >
- <strong>电话:</strong>
- {{ telephone }}
- </div>
- <div
- v-show="introduceText != null && introduceText != ''"
- class="introduce"
- >
- <p ref="DomIntroduceText">
- <strong>介绍:</strong>
- <span v-html="introduceText"></span>
- </p>
- </div>
- <div class="popup-nav">
- <ul>
- <li @click="comeHereClick">
- <i class="popup-icon come-nav deblurring"></i>
- 到这
- </li>
- <li @click="getToHereClick">
- <i class="popup-icon start-nav deblurring"></i>
- 出发
- </li>
- <li v-show="pupupQRUrl != ''" @click="qrCodeClick">
- <i class="popup-icon qr-code-nav deblurring"></i>
- 二维码
- </li>
- <li @click="imgsClick">
- <i class="popup-icon atlas-nav deblurring"></i>
- 图集
- </li>
- <li
- v-show="panoramaUrl != null && panoramaUrl != ''"
- @click="panoramaClick"
- >
- <i class="popup-icon live-action-nav deblurring"></i>
- 实景
- </li>
- <!-- v-show="panoramaUrl != null && panoramaUrl != ''" -->
- <li v-show="false" @click="monitorClick">
- <i class="popup-icon monitor-nav deblurring"></i>
- 监控
- </li>
- </ul>
- </div>
- <div
- v-show="teachList.length > 0 || liveList.length > 0"
- class="arc-box"
- >
- <ul class="tab-btn">
- <li
- v-show="teachList.length > 0"
- :class="{ on: tabBtnFlag == '教学科研行政' }"
- @click="tabBtnClick('教学科研行政')"
- >
- 教学科研行政
- </li>
- <li
- v-show="liveList.length > 0"
- :class="{ on: tabBtnFlag == '生活服务' }"
- @click="tabBtnClick('生活服务')"
- >
- 生活服务
- </li>
- </ul>
- <div class="btm-content">
- <div :class="{ on: tabBtnFlag == '教学科研行政' }">
- <ul>
- <li
- v-for="(item, index) in teachList"
- :key="index"
- @click="mechanismDetailPopup(0, item)"
- >
- <i
- class="popup-icon location-icon deblurring"
- ></i>
- {{ item }}
- </li>
- </ul>
+ <div>
+ <div id="map_popup_content">
+ <div v-if="detailsPopup" class="divForms-dom" id="divFormsDomBox">
+ <div style="width: 100%; height: 100%">
+ <div class="divForms divForms-theme">
+ <div class="divForms-wrap">
+ <div class="area">
+ <div class="arrow-lt"></div>
+ <div class="b-t"></div>
+ <div class="b-r"></div>
+ <div class="b-b"></div>
+ <div class="b-l"></div>
+ <div class="arrow-rb"></div>
+ <div class="label-wrap">
+ <div class="title">
+ {{ stateName }}
+ <img
+ v-show="introduceText != null && introduceText != ''"
+ @click="audioPlay"
+ class="audio-control"
+ :src="audioImgUrl"
+ alt
+ />
+ <img
+ @click="closeMapPopupBox"
+ class="close-box"
+ src="/img/navicon/close.png"
+ alt
+ />
+ </div>
+ <div class="label-content">
+ <div class="arc-bcg">
+ <img :src="popupBgUrl" alt />
+ </div>
+ <div
+ v-show="siteName != null && siteName != ''"
+ class="site"
+ >
+ <strong>地址:</strong>
+ {{ siteName }}
+ </div>
+ <div
+ v-show="telephone != null && telephone != ''"
+ class="phone"
+ >
+ <strong>电话:</strong>
+ {{ telephone }}
+ </div>
+ <div
+ v-show="introduceText != null && introduceText != ''"
+ class="introduce"
+ >
+ <p ref="DomIntroduceText">
+ <strong>介绍:</strong>
+ <span v-html="introduceText"></span>
+ </p>
+ </div>
+ <div class="popup-nav">
+ <ul>
+ <li @click="comeHereClick">
+ <i class="popup-icon come-nav deblurring"></i>
+ 到这
+ </li>
+ <li @click="getToHereClick">
+ <i class="popup-icon start-nav deblurring"></i>
+ 出发
+ </li>
+ <li v-show="pupupQRUrl != ''" @click="qrCodeClick">
+ <i class="popup-icon qr-code-nav deblurring"></i>
+ 二维码
+ </li>
+ <li @click="imgsClick">
+ <i class="popup-icon atlas-nav deblurring"></i>
+ 图集
+ </li>
+ <li
+ v-show="panoramaUrl != null && panoramaUrl != ''"
+ @click="panoramaClick"
+ >
+ <i
+ class="popup-icon live-action-nav deblurring"
+ ></i>
+ 实景
+ </li>
+ <!-- v-show="panoramaUrl != null && panoramaUrl != ''" -->
+ <li v-show="false" @click="monitorClick">
+ <i class="popup-icon monitor-nav deblurring"></i>
+ 监控
+ </li>
+ </ul>
+ </div>
+ <div
+ v-show="teachList.length > 0 || liveList.length > 0"
+ class="arc-box"
+ >
+ <ul class="tab-btn">
+ <li
+ v-show="teachList.length > 0"
+ :class="{ on: tabBtnFlag == '教学科研行政' }"
+ @click="tabBtnClick('教学科研行政')"
+ >教学科研行政</li>
+ <li
+ v-show="liveList.length > 0"
+ :class="{ on: tabBtnFlag == '生活服务' }"
+ @click="tabBtnClick('生活服务')"
+ >生活服务</li>
+ </ul>
+ <div class="btm-content">
+ <div :class="{ on: tabBtnFlag == '教学科研行政' }">
+ <ul>
+ <li
+ v-for="(item, index) in teachList"
+ :key="index"
+ @click="mechanismDetailPopup(0, item)"
+ >
+ <i
+ class="popup-icon location-icon deblurring"
+ ></i>
+ {{ item }}
+ </li>
+ </ul>
+ </div>
+ <div :class="{ on: tabBtnFlag == '生活服务' }">
+ <ul>
+ <li
+ v-for="(item, index) in liveList"
+ :key="index"
+ @click="mechanismDetailPopup(1, item)"
+ >
+ <i
+ class="popup-icon location-icon deblurring"
+ ></i>
+ {{ item }}
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="btm-box"></div>
+ </div>
+ </div>
+ </div>
+ <div class="b-t-l"></div>
+ <div class="b-b-r"></div>
</div>
- <div :class="{ on: tabBtnFlag == '生活服务' }">
- <ul>
- <li
- v-for="(item, index) in liveList"
- :key="index"
- @click="mechanismDetailPopup(1, item)"
- >
- <i
- class="popup-icon location-icon deblurring"
- ></i>
- {{ item }}
- </li>
- </ul>
- </div>
- </div>
+ <div class="arrow"></div>
</div>
- <div class="btm-box"></div>
- </div>
</div>
- </div>
- <div class="b-t-l"></div>
- <div class="b-b-r"></div>
</div>
- <div class="arrow"></div>
- </div>
- </div>
- </div>
- <div
- v-if="panoramaPopup"
- class="panorama-dom"
- :class="{ 'change-full': fullscreen }"
- id="PanoramaBox"
- >
- <div style="width: 100%; height: 100%">
- <div class="panorama-container">
- <div class="panorama-wrap">
- <div
- class="content-wrap"
+ <div
+ v-if="panoramaPopup"
+ class="panorama-dom"
:class="{ 'change-full': fullscreen }"
- id="FullScreenBox"
- >
- <div class="title">
- <img
- @click="returnDetailsPopup"
- class="return-btn"
- src="/img/icon/return.png"
- alt
- />
- {{ stateName }}
- <img
- @click="screen"
- class="full-srceen-btn"
- :src="fullScreenUrl"
- alt
- />
- <img
- @click="closePanoramaPopupBox"
- class="close-box"
- src="/img/navicon/close.png"
- alt
- />
- </div>
- <div class="content">
- <iframe
- allowfullscreen="true"
- :src="panoramaUrl"
- frameborder="0"
- ></iframe>
- </div>
- </div>
- </div>
- <div class="arrow"></div>
- </div>
- </div>
- </div>
-
- <div v-if="monitorPopup" class="monitor-dom" id="MonitorBox">
- <div style="width: 100%; height: 100%">
- <div class="monitor-container">
- <div class="monitor-wrap">
- <div class="content-wrap">
- <div class="title">
- <img
- @click="returnDetailsPopup"
- class="return-btn"
- src="/img/icon/return.png"
- alt
- />
- {{ stateName }}
- <img
- @click="closeMonitorPopupBox"
- class="close-box"
- src="/img/navicon/close.png"
- alt
- />
- </div>
- <div class="content">
- <video :src="monitorUrl" controls autoplay></video>
- </div>
- </div>
- </div>
- <div class="arrow"></div>
- </div>
- </div>
- </div>
-
- <div v-if="addTagPopup" class="divForms-dom" id="AddTagBox">
- <div style="width: 100%; height: 100%">
- <div class="divForms divForms-theme">
- <div class="divForms-wrap">
- <div class="area">
- <div class="arrow-lt"></div>
- <div class="b-t"></div>
- <div class="b-r"></div>
- <div class="b-b"></div>
- <div class="b-l"></div>
- <div class="arrow-rb"></div>
- <div class="label-wrap">
- <div class="title">
- 地图标记
- <img
- @click="closeAddTagBox"
- class="close-box"
- src="/img/navicon/close.png"
- alt
- />
- </div>
- <div class="add-tag-content">
- <div>
- <el-input
- v-model="addTagName"
- placeholder="请输入标签名称"
- ></el-input>
+ id="PanoramaBox"
+ >
+ <div style="width: 100%; height: 100%">
+ <div class="panorama-container">
+ <div class="panorama-wrap">
+ <div
+ class="content-wrap"
+ :class="{ 'change-full': fullscreen }"
+ id="FullScreenBox"
+ >
+ <div class="title">
+ <img
+ @click="returnDetailsPopup"
+ class="return-btn"
+ src="/img/icon/return.png"
+ alt
+ />
+ {{ stateName }}
+ <img
+ @click="screen"
+ class="full-srceen-btn"
+ :src="fullScreenUrl"
+ alt
+ />
+ <img
+ @click="closePanoramaPopupBox"
+ class="close-box"
+ src="/img/navicon/close.png"
+ alt
+ />
+ </div>
+ <div class="content">
+ <iframe
+ allowfullscreen="true"
+ :src="panoramaUrl"
+ frameborder="0"
+ ></iframe>
+ </div>
+ </div>
+ </div>
+ <div class="arrow"></div>
</div>
- <div>
- <el-button type="primary" @click="createTag"
- >生成标记</el-button
- >
+ </div>
+ </div>
+
+ <div v-if="monitorPopup" class="monitor-dom" id="MonitorBox">
+ <div style="width: 100%; height: 100%">
+ <div class="monitor-container">
+ <div class="monitor-wrap">
+ <div class="content-wrap">
+ <div class="title">
+ <img
+ @click="returnDetailsPopup"
+ class="return-btn"
+ src="/img/icon/return.png"
+ alt
+ />
+ {{ stateName }}
+ <img
+ @click="closeMonitorPopupBox"
+ class="close-box"
+ src="/img/navicon/close.png"
+ alt
+ />
+ </div>
+ <div class="content">
+ <video :src="monitorUrl" controls autoplay></video>
+ </div>
+ </div>
+ </div>
+ <div class="arrow"></div>
</div>
- </div>
</div>
- </div>
- <div class="b-t-l"></div>
- <div class="b-b-r"></div>
</div>
- <div class="arrow"></div>
- </div>
- </div>
- </div>
- <div v-if="labelLayerDataShow" class="divForms-dom" id="labelLayerid">
- <div style="width: 100%; height: 100%">
- <div class="divForms divForms-theme">
- <div class="divForms-wrap">
- <div class="area">
- <div class="arrow-lt"></div>
- <div class="b-t"></div>
- <div class="b-r"></div>
- <div class="b-b"></div>
- <div class="b-l"></div>
- <div class="arrow-rb"></div>
- <div class="label-wrap">
- <div class="title">
- {{ nowlabelLayerData.name }}
- <img
- @click="closelabelLayerid"
- class="close-box"
- src="/img/navicon/close.png"
- alt
- />
- </div>
- <div class="add-tag-content" style="height: 250px">
- <!-- data:image/png;base64, -->
- <img
- :src="nowlabelLayerData.qrcode"
- alt
- class="labelLayeridewm"
- style="width: 250px; height: 250px"
- />
- </div>
+ <div v-if="addTagPopup" class="divForms-dom" id="AddTagBox">
+ <div style="width: 100%; height: 100%">
+ <div class="divForms divForms-theme">
+ <div class="divForms-wrap">
+ <div class="area">
+ <div class="arrow-lt"></div>
+ <div class="b-t"></div>
+ <div class="b-r"></div>
+ <div class="b-b"></div>
+ <div class="b-l"></div>
+ <div class="arrow-rb"></div>
+ <div class="label-wrap">
+ <div class="title">
+ 地图标记
+ <img
+ @click="closeAddTagBox"
+ class="close-box"
+ src="/img/navicon/close.png"
+ alt
+ />
+ </div>
+ <div class="add-tag-content">
+ <div>
+ <el-input v-model="addTagName" placeholder="请输入标签名称"></el-input>
+ </div>
+ <div>
+ <el-button type="primary" @click="createTag">生成标记</el-button>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="b-t-l"></div>
+ <div class="b-b-r"></div>
+ </div>
+ <div class="arrow"></div>
+ </div>
</div>
- </div>
- <div class="b-t-l"></div>
- <div class="b-b-r"></div>
</div>
- <div class="arrow"></div>
- </div>
- </div>
- </div>
- </div>
- <!-- 新增编辑标签 -->
- <div
- v-if="addIconsLayerIconPopup"
- class="monitor-dom add-sign-box-style"
- id="leftNavsAdd"
- >
- <div style="width: 100%; height: 100%">
- <div class="divForms divForms-theme">
- <div class="divForms-wrap">
- <div class="area">
- <div class="arrow-lt"></div>
- <div class="b-t"></div>
- <div class="b-r"></div>
- <div class="b-b"></div>
- <div class="b-l"></div>
- <div class="arrow-rb"></div>
- <div class="label-wrap">
- <div class="title">
- <el-input
- v-model="addIconFromcolumn[0].value"
- placeholder="请输入标签名称"
- class="addIconFromInput"
- >
- <template slot="prepend">标题:</template>
- </el-input>
- <img
- @click="closeaddIconsLayerIconPopup"
- class="close-box"
- src="/img/navicon/close.png"
- alt
- />
+ <div v-if="labelLayerDataShow" class="divForms-dom" id="labelLayerid">
+ <div style="width: 100%; height: 100%">
+ <div class="divForms divForms-theme">
+ <div class="divForms-wrap">
+ <div class="area">
+ <div class="arrow-lt"></div>
+ <div class="b-t"></div>
+ <div class="b-r"></div>
+ <div class="b-b"></div>
+ <div class="b-l"></div>
+ <div class="arrow-rb"></div>
+ <div class="label-wrap">
+ <div class="title">
+ {{ nowlabelLayerData.name }}
+ <img
+ @click="closelabelLayerid"
+ class="close-box"
+ src="/img/navicon/close.png"
+ alt
+ />
+ </div>
+ <div class="add-tag-content" style="height: 250px">
+ <!-- data:image/png;base64, -->
+ <img
+ :src="nowlabelLayerData.qrcode"
+ alt
+ class="labelLayeridewm"
+ style="width: 250px; height: 250px"
+ />
+ </div>
+ </div>
+ </div>
+ <div class="b-t-l"></div>
+ <div class="b-b-r"></div>
+ </div>
+ <div class="arrow"></div>
+ </div>
</div>
- <div class="add-tag-content">
- <div class="addIconsLayer">
- <div
- :class="[
+ </div>
+ </div>
+
+ <!-- 新增编辑标签 -->
+ <div v-if="addIconsLayerIconPopup" class="monitor-dom add-sign-box-style" id="leftNavsAdd">
+ <div style="width: 100%; height: 100%">
+ <div class="divForms divForms-theme">
+ <div class="divForms-wrap">
+ <div class="area">
+ <div class="arrow-lt"></div>
+ <div class="b-t"></div>
+ <div class="b-r"></div>
+ <div class="b-b"></div>
+ <div class="b-l"></div>
+ <div class="arrow-rb"></div>
+ <div class="label-wrap">
+ <div class="title">
+ <el-input
+ v-model="addIconFromcolumn[0].value"
+ placeholder="请输入标签名称"
+ class="addIconFromInput"
+ >
+ <template slot="prepend">标题:</template>
+ </el-input>
+ <img
+ @click="closeaddIconsLayerIconPopup"
+ class="close-box"
+ src="/img/navicon/close.png"
+ alt
+ />
+ </div>
+ <div class="add-tag-content">
+ <div class="addIconsLayer">
+ <div
+ :class="[
'addIconsLayerinimgs',
ourImages.length > 3 ? 'isOverImgs' : '',
]"
- >
- <!-- action="https://jsonplaceholder.typicode.com/posts/" -->
- <el-upload
- :action="
+ >
+ <!-- action="https://jsonplaceholder.typicode.com/posts/" -->
+ <el-upload
+ :action="
apiUrls +
'/blade-resource/oss/endpoint/put-files-talk'
"
- list-type="picture-card"
- :on-preview="handlePictureCardPreview"
- :on-remove="handleRemove"
- :on-success="onsuccess"
- >
- <i class="el-icon-plus"></i>
- </el-upload>
- <el-dialog
- :visible.sync="dialogVisible"
- :modal-append-to-body="false"
- :append-to-body="true"
- >
- <img width="100%" :src="dialogImageUrl" alt />
- </el-dialog>
- </div>
- <div
- class="addIconsLayerin"
- v-for="(item, index) in addIconFromcolumn"
- :key="index"
- v-show="index != 0"
- >
- <el-input
- v-model="item.value"
- :placeholder="'请输入' + item.label"
- class="addIconFromInput"
- :disabled="index == 2 || index == 3"
- >
- <template slot="prepend">{{ item.label }}:</template>
- </el-input>
+ list-type="picture-card"
+ :on-preview="handlePictureCardPreview"
+ :on-remove="handleRemove"
+ :on-success="onsuccess"
+ >
+ <i class="el-icon-plus"></i>
+ </el-upload>
+ <el-dialog
+ :visible.sync="dialogVisible"
+ :modal-append-to-body="false"
+ :append-to-body="true"
+ >
+ <img width="100%" :src="dialogImageUrl" alt />
+ </el-dialog>
+ </div>
+ <div
+ class="addIconsLayerin"
+ v-for="(item, index) in addIconFromcolumn"
+ :key="index"
+ v-show="index != 0"
+ >
+ <el-input
+ v-model="item.value"
+ :placeholder="'请输入' + item.label"
+ class="addIconFromInput"
+ :disabled="index == 2 || index == 3"
+ >
+ <template slot="prepend">{{ item.label }}:</template>
+ </el-input>
- <el-dropdown
- v-show="index == 2 || index == 3"
- @command="chouseAddicon"
- >
- <span class="el-dropdown-link">
- <i class="el-icon-arrow-down el-icon--right"></i>
- </span>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item
- v-for="(itemc, indexc) in item.chouse"
- :key="indexc"
- :command="{ index: index, indexc: indexc }"
- >{{ itemc.value }}</el-dropdown-item
- >
- <!-- @click="chouseAddicon(index, indexc)" -->
- </el-dropdown-menu>
- </el-dropdown>
+ <el-dropdown
+ v-show="index == 2 || index == 3"
+ @command="chouseAddicon"
+ >
+ <span class="el-dropdown-link">
+ <i class="el-icon-arrow-down el-icon--right"></i>
+ </span>
+ <el-dropdown-menu slot="dropdown">
+ <el-dropdown-item
+ v-for="(itemc, indexc) in item.chouse"
+ :key="indexc"
+ :command="{ index: index, indexc: indexc }"
+ >{{ itemc.value }}</el-dropdown-item>
+ <!-- @click="chouseAddicon(index, indexc)" -->
+ </el-dropdown-menu>
+ </el-dropdown>
+ </div>
+ </div>
+ <div class="addIconsLayerBut">
+ <el-button type="primary" @click="saveIconsLayer">保存标签</el-button>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="b-t-l"></div>
+ <div class="b-b-r"></div>
</div>
- </div>
- <div class="addIconsLayerBut">
- <el-button type="primary" @click="saveIconsLayer"
- >保存标签</el-button
- >
- </div>
+ <div class="arrow"></div>
</div>
- </div>
</div>
- <div class="b-t-l"></div>
- <div class="b-b-r"></div>
- </div>
- <div class="arrow"></div>
</div>
- </div>
- </div>
- <!-- 二维码弹框相关 -->
- <el-dialog
- title="场景二维码"
- :visible.sync="QRCodeFlag"
- :modal="false"
- :modal-append-to-body="false"
- width="44%"
- >
- <div style="margin: 0; position: relative; width: 100%; height: 352px">
- <img
- width="260"
- :src="pupupQRUrl"
- alt
- style="
+ <!-- 二维码弹框相关 -->
+ <el-dialog
+ title="场景二维码"
+ :visible.sync="QRCodeFlag"
+ :modal="false"
+ :modal-append-to-body="false"
+ width="44%"
+ >
+ <div style="margin: 0; position: relative; width: 100%; height: 352px">
+ <img
+ width="260"
+ :src="pupupQRUrl"
+ alt
+ style="
position: absolute;
top: 0;
left: 0;
@@ -447,769 +433,778 @@
bottom: 0;
margin: auto;
"
- />
- <div
- style="
+ />
+ <div
+ style="
position: absolute;
bottom: 0;
width: 100%;
line-height: 36px;
text-align: center;
"
- >
- (右键另存为图片)
- </div>
- </div>
- </el-dialog>
+ >(右键另存为图片)</div>
+ </div>
+ </el-dialog>
- <el-image
- v-show="false"
- style="width: 100px; height: 100px"
- :src="popupImgAtlas[0]"
- :preview-src-list="popupImgAtlas"
- ref="popupImgs"
- ></el-image>
- </div>
+ <el-image
+ v-show="false"
+ style="width: 100px; height: 100px"
+ :src="popupImgAtlas[0]"
+ :preview-src-list="popupImgAtlas"
+ ref="popupImgs"
+ ></el-image>
+ </div>
</template>
<script>
-import { mapGetters } from "vuex";
-import { getMechanismDetail } from "@/api/pc/public/arc";
-import { setlabel } from "@/api/pc/label";
-import { add } from "@/api/pc/leftNav/index";
+import { mapGetters } from 'vuex'
+import { getMechanismDetail } from '@/api/pc/public/arc'
+import { setlabel } from '@/api/pc/label'
+import { add } from '@/api/pc/leftNav/index'
export default {
- name: "mapPopup",
+ name: 'mapPopup',
- data() {
- return {
- ourImages: [],
- dialogImageUrl: "",
- dialogVisible: false,
- apiUrls: null,
- tabBtnFlag: "教学科研行政",
- QRCodeFlag: false,
- audioSource: "",
- audioFlag: false,
- audioCourse: false,
- audioSynth: null,
- audioMsg: null,
- fullscreen: false,
- fullScreenUrl: "/img/icon/bigScreen.png",
- addTagName: "",
- addIconFromcolumn: [
- // 顺序不要随便换
- {
- label: "名称",
- prop: "mechanismname",
- value: "",
- },
- {
- label: "电话",
- prop: "telephone",
- value: "",
- },
- {
- label: "所属建筑",
- prop: "type",
- dicUrl: "/api/blade-system/dict-biz/dictionary?code=building",
- props: {
- label: "dictValue",
- value: "dictKey",
- },
- value: "红旗校区",
- valueid: "1",
- chouse: [
- {
- id: "1",
- value: "红旗校区",
- },
- {
- id: "2",
- value: "黄河路",
- },
- {
- id: "3",
- value: "科学园",
- },
- {
- id: "4",
- value: "土木楼",
- },
- {
- id: "5",
- value: "三江校区",
- },
- ],
- },
- {
- label: "所属社区",
- searchLabelWidth: "110",
- value: "行政办公",
- valueid: "1",
- prop: "campus",
- dicUrl: "/api/blade-system/dict-biz/dictionary?code=campus",
- chouse: [
- {
- id: "1",
- value: "行政办公",
- },
- {
- id: "2",
- value: "教学科研",
- },
- {
- id: "3",
- value: "社区场馆",
- },
- {
- id: "4",
- value: "学生宿舍",
- },
- {
- id: "5",
- value: "文化风景",
- },
- {
- id: "6",
- value: "家属住宅",
- },
- {
- id: "7",
- value: "主要楼宇",
- },
- ],
- },
+ data () {
+ return {
+ ourImages: [],
+ dialogImageUrl: '',
+ dialogVisible: false,
+ apiUrls: null,
+ tabBtnFlag: '教学科研行政',
+ QRCodeFlag: false,
+ audioImgUrl: '/img/icon/close-video.png',
+ audioSource: '',
+ audioFlag: false,
+ audioCourse: false,
+ audioSynth: null,
+ audioMsg: null,
+ fullscreen: false,
+ fullScreenUrl: '/img/icon/bigScreen.png',
+ addTagName: '',
+ addIconFromcolumn: [
+ // 顺序不要随便换
+ {
+ label: '名称',
+ prop: 'mechanismname',
+ value: ''
+ },
+ {
+ label: '电话',
+ prop: 'telephone',
+ value: ''
+ },
+ {
+ label: '所属建筑',
+ prop: 'type',
+ dicUrl: '/api/blade-system/dict-biz/dictionary?code=building',
+ props: {
+ label: 'dictValue',
+ value: 'dictKey'
+ },
+ value: '红旗校区',
+ valueid: '1',
+ chouse: [
+ {
+ id: '1',
+ value: '红旗校区'
+ },
+ {
+ id: '2',
+ value: '黄河路'
+ },
+ {
+ id: '3',
+ value: '科学园'
+ },
+ {
+ id: '4',
+ value: '土木楼'
+ },
+ {
+ id: '5',
+ value: '三江校区'
+ }
+ ]
+ },
+ {
+ label: '所属社区',
+ searchLabelWidth: '110',
+ value: '行政办公',
+ valueid: '1',
+ prop: 'campus',
+ dicUrl: '/api/blade-system/dict-biz/dictionary?code=campus',
+ chouse: [
+ {
+ id: '1',
+ value: '行政办公'
+ },
+ {
+ id: '2',
+ value: '教学科研'
+ },
+ {
+ id: '3',
+ value: '社区场馆'
+ },
+ {
+ id: '4',
+ value: '学生宿舍'
+ },
+ {
+ id: '5',
+ value: '文化风景'
+ },
+ {
+ id: '6',
+ value: '家属住宅'
+ },
+ {
+ id: '7',
+ value: '主要楼宇'
+ }
+ ]
+ },
- {
- label: "介绍",
- prop: "introduce",
- value: "",
- component: "AvueUeditor",
- options: {
- action: "/api/blade-resource/oss/endpoint/put-file",
- props: {
- res: "data",
- url: "link",
- },
- },
- hide: true,
- minRows: 5,
- span: 24,
- },
- {
- label: "地址",
- hide: true,
- prop: "address",
- value: "",
- },
- {
- label: "全景地址",
- prop: "panoramaurl",
- value: "",
- },
- {
- label: "监控地址",
- hide: true,
- prop: "videourl",
- value: "",
- },
- {
- label: "网站地址",
- prop: "websiteurl",
- value: "",
- },
- {
- label: "经度",
- prop: "jd",
- value: "",
- rules: [
- {
- required: true,
- message: "请输入经度",
- trigger: "blur",
- },
- ],
- },
- {
- label: "纬度",
- prop: "wd",
- value: "",
- rules: [
- {
- required: true,
- message: "请输入纬度",
- trigger: "blur",
- },
- ],
- },
- {
- label: "偏航角",
- addDisplay: false,
- hide: true,
- prop: "heading",
- value: 0,
- },
- {
- label: "俯仰角",
- addDisplay: false,
- hide: true,
- prop: "pitch",
- value: -90,
- },
- {
- label: "翻转角",
- addDisplay: false,
- hide: true,
- prop: "roll",
- value: 0,
- },
+ {
+ label: '介绍',
+ prop: 'introduce',
+ value: '',
+ component: 'AvueUeditor',
+ options: {
+ action: '/api/blade-resource/oss/endpoint/put-file',
+ props: {
+ res: 'data',
+ url: 'link'
+ }
+ },
+ hide: true,
+ minRows: 5,
+ span: 24
+ },
+ {
+ label: '地址',
+ hide: true,
+ prop: 'address',
+ value: ''
+ },
+ {
+ label: '全景地址',
+ prop: 'panoramaurl',
+ value: ''
+ },
+ {
+ label: '监控地址',
+ hide: true,
+ prop: 'videourl',
+ value: ''
+ },
+ {
+ label: '网站地址',
+ prop: 'websiteurl',
+ value: ''
+ },
+ {
+ label: '经度',
+ prop: 'jd',
+ value: '',
+ rules: [
+ {
+ required: true,
+ message: '请输入经度',
+ trigger: 'blur'
+ }
+ ]
+ },
+ {
+ label: '纬度',
+ prop: 'wd',
+ value: '',
+ rules: [
+ {
+ required: true,
+ message: '请输入纬度',
+ trigger: 'blur'
+ }
+ ]
+ },
+ {
+ label: '偏航角',
+ addDisplay: false,
+ hide: true,
+ prop: 'heading',
+ value: 0
+ },
+ {
+ label: '俯仰角',
+ addDisplay: false,
+ hide: true,
+ prop: 'pitch',
+ value: -90
+ },
+ {
+ label: '翻转角',
+ addDisplay: false,
+ hide: true,
+ prop: 'roll',
+ value: 0
+ },
- {
- label: "高度",
- hide: true,
- addDisplay: false,
- prop: "gd",
- value: 0,
- },
+ {
+ label: '高度',
+ hide: true,
+ addDisplay: false,
+ prop: 'gd',
+ value: 0
+ }
- // {
- // label: "图片",
- // prop: "tpurl",
- // value: "",
- // // dataType: 'string',
- // type: "upload",
- // propsHttp: {
- // res: "data",
- // url: "link",
- // },
- // span: 10,
- // listType: "picture-card",
- // tip: "只能上传jpg/png文件,且不超过500kb",
- // action: "/api/blade-resource/oss/endpoint/put-file",
- // },
- // {
- // label: "二维码",
- // prop: "codeurl",
- // value: "",
- // type: "upload",
- // listType: "picture-card",
- // //dataType: 'string',
- // action: "/api/blade-resource/oss/endpoint/put-file",
- // propsHttp: {
- // res: "data",
- // url: "link",
- // },
- // span: 10,
- // },
- ],
- };
- },
- computed: {
- ...mapGetters([
- "popupBgUrl",
- "pupupQRUrl",
- // 终点
- "terminus",
- // 起点
- "startingPoint",
- // 点信息
- "pointPosition",
- // 点名称
- "stateName",
- // 地址
- "siteName",
- // 电话
- "telephone",
- // 介绍
- "introduceText",
- // 详情弹框显示关闭
- "detailsPopup",
- // 全景地址
- "panoramaUrl",
- // 全景弹框显示关闭
- "panoramaPopup",
- // 监控地址
- "monitorUrl",
- // 监控弹框显示关闭
- "monitorPopup",
-
- "popupImgAtlas",
- // 教学
- "teachList",
- // 科研
- "liveList",
- // 校区内导航的显示关闭
- "campusNavFlag",
- "addTagPopup",
- "addTagPosition",
- // 自定义标签弹窗
- "labelLayerDataShow",
- "nowlabelLayerData",
- "addIconsLayerIconPopup", // 自定义标签编辑窗口
- "addIconsLayerIconPosition", // 自定义标签坐标
- ]),
- },
- created() {
- this.apiUrls = window.$apiUrls;
-
- this.audioSynth = window.speechSynthesis;
- this.audioMsg = new window.SpeechSynthesisUtterance();
-
- this.audioMsg.onend = function () {
- this.audioSynth.cancel();
- this.audioFlag = false;
- this.audioCourse = false;
- };
- },
- mounted() {
- global.viewer.scene.globe.depthTestAgainstTerrain = false;
- },
- watch: {
- addIconsLayerIconPopup() {
- if (this.addIconsLayerIconPopup) {
- this.addIconFromcolumn[9].value = this.addIconsLayerIconPosition[0];
- this.addIconFromcolumn[10].value = this.addIconsLayerIconPosition[1];
- } else {
- for (const k in this.addIconFromcolumn) {
- if (k == 2) {
- this.addIconFromcolumn[k].value = "红旗校区";
- this.addIconFromcolumn[k].valueid = "1";
- continue;
- }
- if (k == 3) {
- this.addIconFromcolumn[k].value = "行政办公";
- this.addIconFromcolumn[k].valueid = "1";
- continue;
- }
- this.addIconFromcolumn[k].value = "";
+ // {
+ // label: "图片",
+ // prop: "tpurl",
+ // value: "",
+ // // dataType: 'string',
+ // type: "upload",
+ // propsHttp: {
+ // res: "data",
+ // url: "link",
+ // },
+ // span: 10,
+ // listType: "picture-card",
+ // tip: "只能上传jpg/png文件,且不超过500kb",
+ // action: "/api/blade-resource/oss/endpoint/put-file",
+ // },
+ // {
+ // label: "二维码",
+ // prop: "codeurl",
+ // value: "",
+ // type: "upload",
+ // listType: "picture-card",
+ // //dataType: 'string',
+ // action: "/api/blade-resource/oss/endpoint/put-file",
+ // propsHttp: {
+ // res: "data",
+ // url: "link",
+ // },
+ // span: 10,
+ // },
+ ]
}
- this.ourImages = [];
- this.$store.commit("set_closeMapClick", false); // 开启其他操作
- }
},
- addTagPopup() {
- if (!this.addTagPopup) {
- // console.log("取消", "see");
- this.$store.commit("set_closeMapClick", false);
- }
- },
- introduceText: {
- immediate: true,
- handler(newQuestion, oldQuestion) {
- this.audioSource = newQuestion;
- if (this.audioFlag == true) {
- this.audioSynth.cancel();
- this.audioFlag = false;
- this.audioCourse = false;
- }
- },
- },
- teachList: {
- immediate: true,
- handler(newCode, oldCode) {
- if (newCode.length > 0) {
- this.tabBtnFlag = "教学科研行政";
- }
- },
- },
- liveList: {
- immediate: true,
- handler(newCode, oldCode) {
- if (newCode.length > 0 && this.teachList.length == 0) {
- this.tabBtnFlag = "生活服务";
- }
- },
- },
- detailsPopup: {
- immediate: true,
- handler(newCode, oldCode) {
- if (newCode == false) {
- this.audioSynth.cancel();
- this.audioFlag = false;
- this.audioCourse = false;
- } else {
- if (this.audioFlag == true) {
- this.audioSynth.cancel();
- this.audioFlag = false;
- this.audioCourse = false;
- }
- }
- },
- },
- },
- methods: {
- onsuccess(response, file, fileList) {
- this.ourImages = fileList;
- },
- handleRemove(file, fileList) {
- this.ourImages = fileList;
- },
- handlePictureCardPreview(file) {
- this.dialogImageUrl = file.url;
- this.dialogVisible = true;
- },
- chouseAddicon(item) {
- this.addIconFromcolumn[item.index].value =
- this.addIconFromcolumn[item.index].chouse[item.indexc].value;
- this.addIconFromcolumn[item.index].valueid =
- this.addIconFromcolumn[item.index].chouse[item.indexc].id;
- },
- closeaddIconsLayerIconPopup() {
- this.$store.commit("SET_addIconsLayerIconPopup", false);
- },
- saveIconsLayer() {
- var imgs = [];
- // console.log("see", this.ourImages);
- // return;
- for (var k in this.ourImages) {
- imgs.push(this.ourImages[k].response);
- }
- const d = {
- tpurl: imgs.join(","),
- mechanismname: this.addIconFromcolumn[0].value,
- telephone: this.addIconFromcolumn[1].value,
- type: this.addIconFromcolumn[2].valueid,
- campus: this.addIconFromcolumn[3].valueid,
- introduce: this.addIconFromcolumn[4].value,
- address: this.addIconFromcolumn[5].value,
- panoramaurl: this.addIconFromcolumn[6].value,
- videourl: this.addIconFromcolumn[7].value,
- websiteurl: this.addIconFromcolumn[8].value,
- jd: this.addIconFromcolumn[9].value,
- wd: this.addIconFromcolumn[10].value,
- heading: this.addIconFromcolumn[11].value,
- pitch: this.addIconFromcolumn[12].value,
- roll: this.addIconFromcolumn[13].value,
- gd: this.addIconFromcolumn[14].value,
- };
- // console.log(d, "see3");
- // return;
- // this.$store.commit("set_closeMapClick", false); //开启其他操作
- add(d).then(
- (res) => {
- // console.log(res);
- if (res.data.code == 200) {
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- } else {
- this.$message({
- type: "error",
- message: "新增失败!",
- });
- }
+ computed: {
+ ...mapGetters([
+ 'popupBgUrl',
+ 'pupupQRUrl',
+ // 终点
+ 'terminus',
+ // 起点
+ 'startingPoint',
+ // 点信息
+ 'pointPosition',
+ // 点名称
+ 'stateName',
+ // 地址
+ 'siteName',
+ // 电话
+ 'telephone',
+ // 介绍
+ 'introduceText',
+ // 详情弹框显示关闭
+ 'detailsPopup',
+ // 全景地址
+ 'panoramaUrl',
+ // 全景弹框显示关闭
+ 'panoramaPopup',
+ // 监控地址
+ 'monitorUrl',
+ // 监控弹框显示关闭
+ 'monitorPopup',
- this.closeaddIconsLayerIconPopup();
+ 'popupImgAtlas',
+ // 教学
+ 'teachList',
+ // 科研
+ 'liveList',
+ // 校区内导航的显示关闭
+ 'campusNavFlag',
+ 'addTagPopup',
+ 'addTagPosition',
+ // 自定义标签弹窗
+ 'labelLayerDataShow',
+ 'nowlabelLayerData',
+ 'addIconsLayerIconPopup', // 自定义标签编辑窗口
+ 'addIconsLayerIconPosition' // 自定义标签坐标
+ ])
+ },
+ created () {
+ var that = this
+ this.apiUrls = window.$apiUrls
+
+ this.audioSynth = window.speechSynthesis
+ this.audioMsg = new window.SpeechSynthesisUtterance()
+
+ this.audioMsg.onend = function () {
+ that.audioSynth.cancel()
+ that.audioFlag = false
+ that.audioCourse = false
+ that.audioImgUrl = '/img/icon/close-video.png'
+ }
+ },
+ mounted () {
+ global.viewer.scene.globe.depthTestAgainstTerrain = false
+ },
+ watch: {
+ addIconsLayerIconPopup () {
+ if (this.addIconsLayerIconPopup) {
+ this.addIconFromcolumn[9].value = this.addIconsLayerIconPosition[0]
+ this.addIconFromcolumn[10].value = this.addIconsLayerIconPosition[1]
+ } else {
+ for (const k in this.addIconFromcolumn) {
+ if (k == 2) {
+ this.addIconFromcolumn[k].value = '红旗校区'
+ this.addIconFromcolumn[k].valueid = '1'
+ continue
+ }
+ if (k == 3) {
+ this.addIconFromcolumn[k].value = '行政办公'
+ this.addIconFromcolumn[k].valueid = '1'
+ continue
+ }
+ this.addIconFromcolumn[k].value = ''
+ }
+ this.ourImages = []
+ this.$store.commit('set_closeMapClick', false) // 开启其他操作
+ }
},
- (error) => {
- window.console.log(error);
+ addTagPopup () {
+ if (!this.addTagPopup) {
+ // console.log("取消", "see");
+ this.$store.commit('set_closeMapClick', false)
+ }
+ },
+ introduceText: {
+ immediate: true,
+ handler (newQuestion, oldQuestion) {
+ this.audioSource = newQuestion
+ if (this.audioFlag == true) {
+ this.audioSynth.cancel()
+ this.audioFlag = false
+ this.audioCourse = false
+ this.audioImgUrl = '/img/icon/close-video.png'
+ }
+ }
+ },
+ teachList: {
+ immediate: true,
+ handler (newCode, oldCode) {
+ if (newCode.length > 0) {
+ this.tabBtnFlag = '教学科研行政'
+ }
+ }
+ },
+ liveList: {
+ immediate: true,
+ handler (newCode, oldCode) {
+ if (newCode.length > 0 && this.teachList.length == 0) {
+ this.tabBtnFlag = '生活服务'
+ }
+ }
+ },
+ detailsPopup: {
+ immediate: true,
+ handler (newCode, oldCode) {
+ if (newCode == false) {
+ this.audioSynth.cancel()
+ this.audioFlag = false
+ this.audioCourse = false
+ } else {
+ if (this.audioFlag == true) {
+ this.audioSynth.cancel()
+ this.audioFlag = false
+ this.audioCourse = false
+ this.audioImgUrl = '/img/icon/close-video.png'
+ }
+ }
+ }
}
- );
},
- screen() {
- if (this.fullscreen) {
- this.fullScreenUrl = "/img/icon/bigScreen.png";
- this.fullscreen = !this.fullscreen;
+ methods: {
+ onsuccess (response, file, fileList) {
+ this.ourImages = fileList
+ },
+ handleRemove (file, fileList) {
+ this.ourImages = fileList
+ },
+ handlePictureCardPreview (file) {
+ this.dialogImageUrl = file.url
+ this.dialogVisible = true
+ },
+ chouseAddicon (item) {
+ this.addIconFromcolumn[item.index].value =
+ this.addIconFromcolumn[item.index].chouse[item.indexc].value
+ this.addIconFromcolumn[item.index].valueid =
+ this.addIconFromcolumn[item.index].chouse[item.indexc].id
+ },
+ closeaddIconsLayerIconPopup () {
+ this.$store.commit('SET_addIconsLayerIconPopup', false)
+ },
+ saveIconsLayer () {
+ var imgs = []
+ // console.log("see", this.ourImages);
+ // return;
+ for (var k in this.ourImages) {
+ imgs.push(this.ourImages[k].response)
+ }
+ const d = {
+ tpurl: imgs.join(','),
+ mechanismname: this.addIconFromcolumn[0].value,
+ telephone: this.addIconFromcolumn[1].value,
+ type: this.addIconFromcolumn[2].valueid,
+ campus: this.addIconFromcolumn[3].valueid,
+ introduce: this.addIconFromcolumn[4].value,
+ address: this.addIconFromcolumn[5].value,
+ panoramaurl: this.addIconFromcolumn[6].value,
+ videourl: this.addIconFromcolumn[7].value,
+ websiteurl: this.addIconFromcolumn[8].value,
+ jd: this.addIconFromcolumn[9].value,
+ wd: this.addIconFromcolumn[10].value,
+ heading: this.addIconFromcolumn[11].value,
+ pitch: this.addIconFromcolumn[12].value,
+ roll: this.addIconFromcolumn[13].value,
+ gd: this.addIconFromcolumn[14].value
+ }
+ // console.log(d, "see3");
+ // return;
+ // this.$store.commit("set_closeMapClick", false); //开启其他操作
+ add(d).then(
+ (res) => {
+ // console.log(res);
+ if (res.data.code == 200) {
+ this.$message({
+ type: 'success',
+ message: '操作成功!'
+ })
+ } else {
+ this.$message({
+ type: 'error',
+ message: '新增失败!'
+ })
+ }
- document.getElementById("pcElHeader").style.zIndex = 9999;
- } else {
- this.fullScreenUrl = "/img/icon/smallScreen.png";
- this.fullscreen = !this.fullscreen;
+ this.closeaddIconsLayerIconPopup()
+ },
+ (error) => {
+ window.console.log(error)
+ }
+ )
+ },
+ screen () {
+ if (this.fullscreen) {
+ this.fullScreenUrl = '/img/icon/bigScreen.png'
+ this.fullscreen = !this.fullscreen
- document.getElementById("pcElHeader").style.zIndex = 9;
- }
- },
+ document.getElementById('pcElHeader').style.zIndex = 9999
+ } else {
+ this.fullScreenUrl = '/img/icon/smallScreen.png'
+ this.fullscreen = !this.fullscreen
- tabBtnClick(param) {
- this.tabBtnFlag = param;
- },
+ document.getElementById('pcElHeader').style.zIndex = 9
+ }
+ },
- comeHereClick() {
- this.$store.commit("SET_COMENAME", this.stateName);
- this.$store.commit("SET_TERMINUS", this.pointPosition);
- if (this.campusNavFlag == false) {
- this.$store.commit("SET_CAMPUSNAVFLAG", true);
- }
- },
+ tabBtnClick (param) {
+ this.tabBtnFlag = param
+ },
- getToHereClick() {
- this.$store.commit("SET_GETTONAME", this.stateName);
- this.$store.commit("SET_STARTINGPOINT", this.pointPosition);
- if (this.campusNavFlag == false) {
- this.$store.commit("SET_CAMPUSNAVFLAG", true);
- }
- },
+ comeHereClick () {
+ this.$store.commit('SET_COMENAME', this.stateName)
+ this.$store.commit('SET_TERMINUS', this.pointPosition)
+ if (this.campusNavFlag == false) {
+ this.$store.commit('SET_CAMPUSNAVFLAG', true)
+ }
+ },
- qrCodeClick() {
- this.QRCodeFlag = true;
- },
+ getToHereClick () {
+ this.$store.commit('SET_GETTONAME', this.stateName)
+ this.$store.commit('SET_STARTINGPOINT', this.pointPosition)
+ if (this.campusNavFlag == false) {
+ this.$store.commit('SET_CAMPUSNAVFLAG', true)
+ }
+ },
- imgsClick() {
- this.$refs.popupImgs.clickHandler();
- },
+ qrCodeClick () {
+ this.QRCodeFlag = true
+ },
- panoramaClick() {
- if (this.audioFlag == true) {
- this.audioSynth.cancel();
- this.audioFlag = false;
- this.audioCourse = false;
- }
+ imgsClick () {
+ this.$refs.popupImgs.clickHandler()
+ },
- // eslint-disable-next-line new-cap
- var positions = global.DC.Transform.transformWGS84ToCartesian(
- // eslint-disable-next-line new-cap
- new global.DC.Position.fromArray(this.pointPosition)
- );
+ panoramaClick () {
+ if (this.audioFlag == true) {
+ this.audioSynth.cancel()
+ this.audioFlag = false
+ this.audioCourse = false
+ this.audioImgUrl = '/img/icon/close-video.png'
+ }
- // eslint-disable-next-line no-unused-vars
- var panorama = new global.DC.PanoramaBox(global.viewer, {
- domId: "PanoramaBox",
- position: [positions],
- });
+ // eslint-disable-next-line new-cap
+ var positions = global.DC.Transform.transformWGS84ToCartesian(
+ // eslint-disable-next-line new-cap
+ new global.DC.Position.fromArray(this.pointPosition)
+ )
- this.$store.commit("SET_DETAILSPOPUP", false);
- this.$store.commit("SET_MONITORPOPUP", false);
- this.$store.commit("SET_PANORAMAPOPUP", true);
- },
+ // eslint-disable-next-line no-unused-vars
+ var panorama = new global.DC.PanoramaBox(global.viewer, {
+ domId: 'PanoramaBox',
+ position: [positions]
+ })
- monitorClick() {
- if (this.audioFlag == true) {
- this.audioSynth.cancel();
- this.audioFlag = false;
- this.audioCourse = false;
- }
- // eslint-disable-next-line new-cap
- var positions = global.DC.Transform.transformWGS84ToCartesian(
- // eslint-disable-next-line new-cap
- new global.DC.Position.fromArray(this.pointPosition)
- );
- // eslint-disable-next-line no-unused-vars
- var monitor = new global.DC.PanoramaBox(global.viewer, {
- domId: "MonitorBox",
- position: [positions],
- });
- this.$store.commit("SET_PANORAMAPOPUP", false);
- this.$store.commit("SET_DETAILSPOPUP", false);
- this.$store.commit("SET_MONITORPOPUP", true);
- },
+ this.$store.commit('SET_DETAILSPOPUP', false)
+ this.$store.commit('SET_MONITORPOPUP', false)
+ this.$store.commit('SET_PANORAMAPOPUP', true)
+ },
- returnDetailsPopup() {
- var positions = global.DC.Transform.transformWGS84ToCartesian(
- // eslint-disable-next-line new-cap
- new global.DC.Position.fromArray(this.pointPosition)
- );
+ monitorClick () {
+ if (this.audioFlag == true) {
+ this.audioSynth.cancel()
+ this.audioFlag = false
+ this.audioCourse = false
+ this.audioImgUrl = '/img/icon/close-video.png'
+ }
+ // eslint-disable-next-line new-cap
+ var positions = global.DC.Transform.transformWGS84ToCartesian(
+ // eslint-disable-next-line new-cap
+ new global.DC.Position.fromArray(this.pointPosition)
+ )
+ // eslint-disable-next-line no-unused-vars
+ var monitor = new global.DC.PanoramaBox(global.viewer, {
+ domId: 'MonitorBox',
+ position: [positions]
+ })
+ this.$store.commit('SET_PANORAMAPOPUP', false)
+ this.$store.commit('SET_DETAILSPOPUP', false)
+ this.$store.commit('SET_MONITORPOPUP', true)
+ },
- // eslint-disable-next-line no-unused-vars
- var divBox = new global.DC.PanoramaBox(global.viewer, {
- domId: "divFormsDomBox",
- position: [positions],
- });
+ returnDetailsPopup () {
+ var positions = global.DC.Transform.transformWGS84ToCartesian(
+ // eslint-disable-next-line new-cap
+ new global.DC.Position.fromArray(this.pointPosition)
+ )
- global.viewer.zoomToPosition(
- // eslint-disable-next-line new-cap
- new global.DC.Position.fromArray(this.pointPosition)
- );
+ // eslint-disable-next-line no-unused-vars
+ var divBox = new global.DC.PanoramaBox(global.viewer, {
+ domId: 'divFormsDomBox',
+ position: [positions]
+ })
- this.$store.commit("SET_DETAILSPOPUP", true);
- this.$store.commit("SET_MONITORPOPUP", false);
- this.$store.commit("SET_PANORAMAPOPUP", false);
- },
+ global.viewer.zoomToPosition(
+ // eslint-disable-next-line new-cap
+ new global.DC.Position.fromArray(this.pointPosition)
+ )
- closeMapPopupBox() {
- if (this.audioFlag == true) {
- this.audioSynth.cancel();
- this.audioFlag = false;
- this.audioCourse = false;
- }
- this.$store.commit("SET_DETAILSPOPUP", false);
- },
+ this.$store.commit('SET_DETAILSPOPUP', true)
+ this.$store.commit('SET_MONITORPOPUP', false)
+ this.$store.commit('SET_PANORAMAPOPUP', false)
+ },
- // 新增标记相关事件
- closeAddTagBox() {
- this.$store.commit("SET_ADDTAGPOPUP", false);
- },
- closelabelLayerid() {
- this.$store.commit("openLabelLayer", {
- show: false,
- });
- },
- createTag() {
- var that = this;
+ closeMapPopupBox () {
+ if (this.audioFlag == true) {
+ this.audioSynth.cancel()
+ this.audioFlag = false
+ this.audioCourse = false
+ this.audioImgUrl = '/img/icon/close-video.png'
+ }
+ this.$store.commit('SET_DETAILSPOPUP', false)
+ },
- // console.log(this.RemoveTheBlank(this.addTagName));
+ // 新增标记相关事件
+ closeAddTagBox () {
+ this.$store.commit('SET_ADDTAGPOPUP', false)
+ },
+ closelabelLayerid () {
+ this.$store.commit('openLabelLayer', {
+ show: false
+ })
+ },
+ createTag () {
+ var that = this
- if (this.RemoveTheBlank(this.addTagName) == "") {
- this.$message("请输入标签名称");
- return;
- }
+ // console.log(this.RemoveTheBlank(this.addTagName));
- this.$store.commit("SET_ADDTAGPOPUP", false);
+ if (this.RemoveTheBlank(this.addTagName) == '') {
+ this.$message('请输入标签名称')
+ return
+ }
- // 2022.3.2对接接口
- // 新增标签
- const data = {
- name: this.RemoveTheBlank(this.addTagName),
- jd: this.addTagPosition.lng,
- wd: this.addTagPosition.lat,
- };
- // console.log(data);
- let oks = setTimeout(() => {
- that.$message({
- message: "新增标签失败",
- type: "warning",
- });
- }, 5000);
- setlabel(data).then((res) => {
- clearTimeout(oks);
- if (res.data.code == 200) {
- doit();
- that.$message({
- message: "新增标签成功",
- type: "success",
- });
- } else {
- that.$message({
- message: "新增标签失败",
- type: "warning",
- });
+ this.$store.commit('SET_ADDTAGPOPUP', false)
+
+ // 2022.3.2对接接口
+ // 新增标签
+ const data = {
+ name: this.RemoveTheBlank(this.addTagName),
+ jd: this.addTagPosition.lng,
+ wd: this.addTagPosition.lat
+ }
+ // console.log(data);
+ const oks = setTimeout(() => {
+ that.$message({
+ message: '新增标签失败',
+ type: 'warning'
+ })
+ }, 5000)
+ setlabel(data).then((res) => {
+ clearTimeout(oks)
+ if (res.data.code == 200) {
+ doit()
+ that.$message({
+ message: '新增标签成功',
+ type: 'success'
+ })
+ } else {
+ that.$message({
+ message: '新增标签失败',
+ type: 'warning'
+ })
+ }
+ that.addTagName = ''
+ })
+ const doit = () => {
+ that.$store.dispatch('addLabelLayerIcon', {
+ // list: [data],
+ add: true
+ })
+ }
+ },
+
+ closePanoramaPopupBox () {
+ this.$store.commit('SET_PANORAMAURL', '')
+ this.$store.commit('SET_PANORAMAPOPUP', false)
+ },
+
+ closeMonitorPopupBox () {
+ this.$store.commit('SET_MONITORURL', '')
+ this.$store.commit('SET_MONITORPOPUP', false)
+ },
+
+ audioPlay () {
+ if (this.audioFlag == false) {
+ this.audioMsg.text = this.audioSource
+ this.audioSynth.speak(this.audioMsg)
+ this.audioFlag = true
+ this.audioCourse = true
+ this.audioImgUrl = '/img/icon/start-video.png'
+ } else {
+ if (this.audioCourse == true) {
+ this.audioSynth.pause()
+ this.audioCourse = false
+ this.audioImgUrl = '/img/icon/close-video.png'
+ } else {
+ this.audioSynth.resume()
+ this.audioCourse = true
+ this.audioImgUrl = '/img/icon/start-video.png'
+ }
+ }
+ },
+
+ mechanismDetailPopup (num, param) {
+ getMechanismDetail({ num: num, mechanismName: param }).then((res) => {
+ var result = res.data.data
+ this.$store.commit('CLEAR_ALL', null)
+
+ var imgArr = result.tpurl.split(',')
+
+ this.$store.commit('SET_POPUPBGURL', imgArr[0])
+ this.$store.commit('SET_POPUPQRURL', result.codeurl)
+ this.$store.commit('SET_POINTPOSITION', [
+ Number(result.jd),
+ Number(result.wd),
+ Number(result.gd),
+ Number(result.heading),
+ Number(result.pitch),
+ Number(result.roll)
+ ])
+ this.$store.commit('SET_STATENAME', result.mechanismname)
+ this.$store.commit('SET_SITENAME', result.address)
+ this.$store.commit('SET_TELEPHONE', result.telephone)
+ this.$store.commit('SET_INTRODUCETEXT', result.introduce)
+ this.$store.commit('SET_POPUPIMGATLAS', imgArr)
+
+ if (result.videourl && result.videourl != '') {
+ this.$store.commit('SET_MONITORURL', result.videourl)
+ }
+
+ this.newPopup(result)
+ global.viewer.flyToPosition(
+ new global.DC.Position(
+ Number(result.jd),
+ Number(result.wd),
+ 300,
+ Number(result.heading),
+ Number(result.pitch),
+ Number(result.roll)
+ ),
+ function () { },
+ 3
+ )
+ })
+ },
+
+ newPopup (item) {
+ const position = global.DC.Transform.transformWGS84ToCartesian(
+ new global.DC.Position(
+ Number(item.jd),
+ Number(item.wd),
+ Number(item.gd)
+ )
+ )
+ // eslint-disable-next-line no-unused-vars
+ var popup = new global.DC.DivForms(global.viewer, {
+ domId: 'divFormsDomBox',
+ position: [position]
+ })
+
+ this.$store.commit('SET_PANORAMAPOPUP', false)
+ this.$store.commit('SET_MONITORPOPUP', false)
+ this.$store.commit('SET_DETAILSPOPUP', true)
+ },
+
+ /**
+ * 删除左右两端的空格
+ */
+ RemoveTheBlank (str) {
+ return str.replace(/(^\s*)|(\s*$)/g, '')
}
- that.addTagName = "";
- });
- const doit = () => {
- that.$store.dispatch("addLabelLayerIcon", {
- // list: [data],
- add: true,
- });
- };
- },
-
- closePanoramaPopupBox() {
- this.$store.commit("SET_PANORAMAURL", "");
- this.$store.commit("SET_PANORAMAPOPUP", false);
- },
-
- closeMonitorPopupBox() {
- this.$store.commit("SET_MONITORURL", "");
- this.$store.commit("SET_MONITORPOPUP", false);
- },
-
- audioPlay() {
- if (this.audioFlag == false) {
- this.audioMsg.text = this.audioSource;
- this.audioSynth.speak(this.audioMsg);
- this.audioFlag = true;
- this.audioCourse = true;
- } else {
- if (this.audioCourse == true) {
- this.audioSynth.pause();
- this.audioCourse = false;
- } else {
- this.audioSynth.resume();
- this.audioCourse = true;
- }
- }
- },
-
- mechanismDetailPopup(num, param) {
- getMechanismDetail({ num: num, mechanismName: param }).then((res) => {
- var result = res.data.data;
- this.$store.commit("CLEAR_ALL", null);
-
- var imgArr = result.tpurl.split(",");
-
- this.$store.commit("SET_POPUPBGURL", imgArr[0]);
- this.$store.commit("SET_POPUPQRURL", result.codeurl);
- this.$store.commit("SET_POINTPOSITION", [
- Number(result.jd),
- Number(result.wd),
- Number(result.gd),
- Number(result.heading),
- Number(result.pitch),
- Number(result.roll),
- ]);
- this.$store.commit("SET_STATENAME", result.mechanismname);
- this.$store.commit("SET_SITENAME", result.address);
- this.$store.commit("SET_TELEPHONE", result.telephone);
- this.$store.commit("SET_INTRODUCETEXT", result.introduce);
- this.$store.commit("SET_POPUPIMGATLAS", imgArr);
-
- if (result.videourl && result.videourl != "") {
- this.$store.commit("SET_MONITORURL", result.videourl);
- }
-
- this.newPopup(result);
- global.viewer.flyToPosition(
- new global.DC.Position(
- Number(result.jd),
- Number(result.wd),
- 300,
- Number(result.heading),
- Number(result.pitch),
- Number(result.roll)
- ),
- function () {},
- 3
- );
- });
- },
-
- newPopup(item) {
- const position = global.DC.Transform.transformWGS84ToCartesian(
- new global.DC.Position(
- Number(item.jd),
- Number(item.wd),
- Number(item.gd)
- )
- );
- // eslint-disable-next-line no-unused-vars
- var popup = new global.DC.DivForms(global.viewer, {
- domId: "divFormsDomBox",
- position: [position],
- });
-
- this.$store.commit("SET_PANORAMAPOPUP", false);
- this.$store.commit("SET_MONITORPOPUP", false);
- this.$store.commit("SET_DETAILSPOPUP", true);
- },
-
- /**
- * 删除左右两端的空格
- */
- RemoveTheBlank(str) {
- return str.replace(/(^\s*)|(\s*$)/g, "");
- },
- },
-};
+ }
+}
</script>
<style lang="scss">
.labelLayeridewm {
- width: 250px !important;
- height: 250px !important;
+ width: 250px !important;
+ height: 250px !important;
}
.add-sign-box-style {
- input:-moz-placeholder,
- textarea:-moz-placeholder {
- color: #fff;
- }
- input:-ms-input-placeholder,
- textarea:-ms-input-placeholder {
- color: #fff;
- }
- input::-webkit-input-placeholder,
- textarea::-webkit-input-placeholder {
- color: #fff;
- }
+ input:-moz-placeholder,
+ textarea:-moz-placeholder {
+ color: #fff;
+ }
+ input:-ms-input-placeholder,
+ textarea:-ms-input-placeholder {
+ color: #fff;
+ }
+ input::-webkit-input-placeholder,
+ textarea::-webkit-input-placeholder {
+ color: #fff;
+ }
- .addIconsLayerinimgs {
- margin-top: 4px;
- }
+ .addIconsLayerinimgs {
+ margin-top: 4px;
+ }
- .addIconsLayerin {
- padding: 0 10px;
- }
+ .addIconsLayerin {
+ padding: 0 10px;
+ }
}
</style>
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 5534257..f59faf6 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -164,8 +164,6 @@
mounted () {
var that = this
- let eagleViewer
-
function distanceSurface () {
global.viewer.measure.distanceSurface()
}
@@ -249,7 +247,7 @@
that.$store.commit('SET_VIEWEREXIST', true)
- eagleViewer = new global.DC.Viewer('eagleEyeMap', {
+ global.eagleViewer = new global.DC.Viewer('eagleEyeMap', {
animation: false,
baseLayerPicker: false,
imageryProvider: false,
@@ -266,7 +264,7 @@
// sceneMode: global.DC.Namespace.Cesium.SceneMode.SCENE2D
})
- eagleViewer.imageryLayers.addImageryProvider(
+ global.eagleViewer.imageryLayers.addImageryProvider(
new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
url: 'http://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=9ae78c51a0a28f06444d541148496e36',
subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
@@ -276,7 +274,7 @@
})
)
- eagleViewer.imageryLayers.addImageryProvider(
+ global.eagleViewer.imageryLayers.addImageryProvider(
new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
url: 'http://t{s}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=9ae78c51a0a28f06444d541148496e36',
subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
@@ -287,7 +285,7 @@
)
var sceneL = global.viewer.scene
- var sceneR = eagleViewer.scene
+ var sceneR = global.eagleViewer.scene
var handlerL = new global.DC.Namespace.Cesium.ScreenSpaceEventHandler(sceneL.canvas)
var handlerR = new global.DC.Namespace.Cesium.ScreenSpaceEventHandler(sceneR.canvas)
@@ -312,7 +310,7 @@
if (isLeftTrigger) {
const position = global.DC.Transform.transformCartesianToWGS84(global.viewer.camera.position)
- eagleViewer.camera.flyTo({
+ global.eagleViewer.camera.flyTo({
destination: global.DC.Transform.transformWGS84ToCartesian(new global.DC.Position(position.lng, position.lat, position.alt + 1000)),
@@ -338,17 +336,19 @@
var synceagleViewer = function () {
if (isRightTrigger && that.samllMapFlag) {
+ const position = global.DC.Transform.transformCartesianToWGS84(global.eagleViewer.camera.position)
+
global.viewer.camera.flyTo({
- destination: eagleViewer.camera.position,
+ destination: global.DC.Transform.transformWGS84ToCartesian(new global.DC.Position(position.lng, position.lat, position.alt > 1100 ? position.alt - 1000 : 100)),
orientation: {
- heading: eagleViewer.camera.heading,
+ heading: global.eagleViewer.camera.heading,
- pitch: eagleViewer.camera.pitch,
+ pitch: global.eagleViewer.camera.pitch,
- roll: eagleViewer.camera.roll
+ roll: global.eagleViewer.camera.roll
},
@@ -358,7 +358,7 @@
}
}
- eagleViewer.camera.setView({
+ global.eagleViewer.camera.setView({
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
@@ -373,9 +373,9 @@
}
})
- eagleViewer.camera.changed.addEventListener(synceagleViewer)
+ global.eagleViewer.camera.changed.addEventListener(synceagleViewer)
- eagleViewer.scene.preRender.addEventListener(synceagleViewer)
+ global.eagleViewer.scene.preRender.addEventListener(synceagleViewer)
// global.viewer.camera.percentageChanged = 0.01
// eagleViewer.camera.percentageChanged = 0.01
diff --git a/src/main.js b/src/main.js
index 2886d1c..ef87dd2 100644
--- a/src/main.js
+++ b/src/main.js
@@ -52,6 +52,8 @@
tilesetLayer: null
}
global.viewer = null // 将viewer提升到全局变量,方便在工程中直接使用
+global.eagleViewer = null // 将viewer提升到全局变量,方便在工程中直接使用
+
DC.accessToken = 'U2FsdGVkX19E68JwtuCiNYLQg2UETLoPcwbGWsp4SejjwWVGadfsVjxZ4AGTQDzle7IlVcGFE8ZNPxxFr5gOThfeJdsOCWDWe7gJPishuAw='
global.echarts = echarts // 将DC提升到全局变量,方便在工程中直接使用
diff --git a/src/pcLayout/index.vue b/src/pcLayout/index.vue
index 5f46218..d8580eb 100644
--- a/src/pcLayout/index.vue
+++ b/src/pcLayout/index.vue
@@ -5,6 +5,8 @@
<img src="/img/logo.png" alt />
<div class="header-title">智慧校区大数据三维可视化平台</div>
<el-menu
+ menu-trigger="click"
+ :unique-opened="true"
:default-active="$router.currentRoute.path"
class="el-menu-demo"
mode="horizontal"
@@ -40,7 +42,7 @@
<el-menu-item index="/pcLayout/default/arc/rest">主要楼宇</el-menu-item>
</el-submenu>
- <el-submenu index="service">
+ <el-submenu popper-class="only-life-box" index="service">
<template slot="title">
<i class="custom-icon menu-shfw"></i> 生活服务设施
</template>
diff --git a/src/pcviews/specialmap/welcome.vue b/src/pcviews/specialmap/welcome.vue
index cb79c76..72995a9 100644
--- a/src/pcviews/specialmap/welcome.vue
+++ b/src/pcviews/specialmap/welcome.vue
@@ -18,7 +18,7 @@
<img
@click="audioPlay"
class="audio-control deblurring"
- src="/img/navicon/audio.png"
+ :src="audioImgUrl"
alt
/>
</a>
@@ -102,19 +102,23 @@
audioCourse: false,
audioSynth: null,
audioMsg: null,
- panoramaShow: false
+ panoramaShow: false,
+ audioImgUrl: '/img/icon/start-video.png'
}
},
created () { },
mounted () {
+ var that = this
+
this.audioSynth = window.speechSynthesis
this.audioMsg = new window.SpeechSynthesisUtterance()
this.audioMsg.onend = function () {
// this.audioSynth.cancel();
- this.audioFlag = false
- this.audioCourse = false
+ that.audioFlag = false
+ that.audioCourse = false
+ that.audioImgUrl = '/img/icon/close-video.png'
}
this.getData()
@@ -232,16 +236,20 @@
this.audioSynth.speak(this.audioMsg)
this.audioFlag = true
this.audioCourse = true
+ this.audioImgUrl = '/img/icon/start-video.png'
} else {
if (this.audioCourse == true) {
this.audioSynth.pause()
this.audioCourse = false
+ this.audioImgUrl = '/img/icon/close-video.png'
} else {
this.audioSynth.resume()
this.audioCourse = true
+ this.audioImgUrl = '/img/icon/start-video.png'
}
}
},
+
closeModel () {
global.viewer.removeLayer(pathLayer)
global.viewer.removeLayer(pointLayer)
@@ -253,6 +261,7 @@
this.$store.dispatch('delVisitedViews', this.$route)
this.$router.push('/pcLayout/default')
},
+
panoramaPlay () {
this.panoramaShow = true
this.panoramaUrl = this.panoramaUrlOne
diff --git a/src/router/axios.js b/src/router/axios.js
index 55b8dfd..a29adf7 100644
--- a/src/router/axios.js
+++ b/src/router/axios.js
@@ -13,7 +13,7 @@
// console.log(url);
// }, 3000);
window.$apiUrls = 'http://171.34.197.243:782'
-// window.$apiUrls = 'http://192.168.0.110:82'
+// window.$apiUrls = 'http://192.168.0.222:82'
const service = axios.create({
// baseURL: 'http://192.168.0.107:83',
diff --git a/src/styles/pcpage/dc-ui.scss b/src/styles/pcpage/dc-ui.scss
index c215072..2edbdb0 100644
--- a/src/styles/pcpage/dc-ui.scss
+++ b/src/styles/pcpage/dc-ui.scss
@@ -30,16 +30,15 @@
fill: #2196f3;
}
- .div-icon {
- .tag-entitys-box {
- animation: moveLayerIcon 0.5s linear 0;
- }
+ // .div-icon {
+ // .tag-entitys-box {
+ // animation: moveLayerIcon 0.5s linear 0;
+ // }
- .tag-entitys-box:hover {
- animation: moveLayerIcon 0.5s linear infinite;
- }
- }
-
+ // .tag-entitys-box:hover {
+ // animation: moveLayerIcon 0.5s linear infinite;
+ // }
+ // }
}
diff --git a/src/styles/pcpage/element-ui.scss b/src/styles/pcpage/element-ui.scss
index 75fc429..2c8cbc8 100644
--- a/src/styles/pcpage/element-ui.scss
+++ b/src/styles/pcpage/element-ui.scss
@@ -18,6 +18,8 @@
border-bottom: none !important;
}
+
+
.el-menu-item:hover {
background: #1A78C2 !important;
}
@@ -42,6 +44,8 @@
font-size: 16px !important;
}
}
+
+
}
.el-main {
@@ -92,4 +96,62 @@
.el-image-viewer__wrapper {
z-index: 111111 !important;
+}
+
+.el-menu--horizontal.only-life-box {
+ position: fixed !important;
+ top: 0 !important;
+ left: 0 !important;
+ right: 0 !important;
+ bottom: 0 !important;
+ margin: auto !important;
+ padding: 10px !important;
+ background: #2195f394;
+ width: 720px;
+ height: 258px;
+ border-radius: 10px;
+ overflow: hidden;
+
+
+ ul {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ flex-wrap: wrap;
+ border-top: 1px solid #e5e5e5 !important;
+ border-right: 1px solid #e5e5e5 !important;
+ border-radius: 10px !important;
+ overflow: hidden;
+
+ li {
+ width: 180px !important;
+ height: 86px !important;
+ line-height: 86px !important;
+ // border-top: 1px solid #e5e5e5 !important;
+ border-left: 1px solid #e5e5e5 !important;
+ box-sizing: border-box;
+ }
+
+ li:nth-child(1) {
+ border-top-left-radius: 10px
+ }
+
+ li:nth-child(4) {
+ border-top-right-radius: 10px
+ }
+
+ li:nth-child(9) {
+ border-bottom-left-radius: 10px
+ }
+
+ li:nth-child(12) {
+ border-bottom-right-radius: 10px;
+ }
+
+ li:nth-child(12).el-menu-item {
+ border-bottom: 1px solid #e5e5e5 !important;
+ }
+
+
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3