From f3e4a728bca47d424fb3f9f0e2ef438cec58a2e3 Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Thu, 31 Mar 2022 13:36:20 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/school-web
---
src/router/page/index.js | 6
src/components/map/components/dimension.vue | 528 +++++++++++++------------
.gitignore | 1
vue.config.js | 108 ++--
src/pcviews/specialmap/welcome.vue | 47 +
src/components/map/index.vue | 5
src/components/error-page/404.vue | 32
src/components/map/components/mapPopup.vue | 22
src/App.vue | 15
src/components/mobilePopupOurOnce/index.vue | 384 +++++++++---------
10 files changed, 620 insertions(+), 528 deletions(-)
diff --git a/.gitignore b/.gitignore
index bc7899b..02342c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
/dist
/public/mx
/public/wp
+/public/fz
/public/base
diff --git a/src/App.vue b/src/App.vue
index 4dfe049..76a0761 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,6 +1,6 @@
<template>
<div id="app" :class="{ cantdoit: cantdoits }">
- <router-view></router-view>
+ <router-view v-if="isRouterActive"></router-view>
</div>
</template>
@@ -8,9 +8,13 @@
import AMapLoader from '@amap/amap-jsapi-loader'
export default {
name: 'App',
+ provide () {
+ return { reload: this.reload }
+ },
data () {
return {
- cantdoits: false
+ cantdoits: false,
+ isRouterActive: true
}
},
mounted () {
@@ -82,6 +86,13 @@
}
},
methods: {
+ reload () {
+ this.isRouterActive = false
+ this.$nextTick(() => {
+ this.isRouterActive = true
+ this.$store.commit('SET_VIEWEREXIST', false)
+ })
+ },
getQueryString (name) {
const inlength =
window.location.href.indexOf('?' + name + '=') + name.length + 2
diff --git a/src/components/error-page/404.vue b/src/components/error-page/404.vue
index b69e54e..1081499 100644
--- a/src/components/error-page/404.vue
+++ b/src/components/error-page/404.vue
@@ -1,24 +1,28 @@
<template>
- <div class="error-page">
- <div class="img"
- style=" background-image: url('/img/bg/404.svg');"></div>
- <div class="content">
- <h1>404</h1>
- <div class="desc">抱歉,你访问的页面不存在</div>
- <div class="actions">
- <router-link :to="{path:'/'}">
- <el-button type="primary">返回首页</el-button>
- </router-link>
- </div>
+ <div class="error-page">
+ <div class="img" style=" background-image: url('/img/bg/404.svg');"></div>
+ <div class="content">
+ <h1>404</h1>
+ <div class="desc">抱歉,你访问的页面不存在</div>
+ <div class="actions">
+ <el-button @click="goHome" type="primary">返回首页</el-button>
+ </div>
+ </div>
</div>
- </div>
</template>
<script>
export default {
- name: 'error-404'
+ name: 'error-404',
+ inject: ['reload'],
+ methods: {
+ goHome () {
+ this.$router.push({ path: '/pcLayout/default' })
+ this.reload()
+ }
+ }
}
</script>
<style lang="scss" scoped>
-@import "./style.scss";
+@import './style.scss';
</style>
diff --git a/src/components/map/components/dimension.vue b/src/components/map/components/dimension.vue
index 6d7d2e4..80820b9 100644
--- a/src/components/map/components/dimension.vue
+++ b/src/components/map/components/dimension.vue
@@ -1,5 +1,6 @@
<template>
<div class="dimension-cut">
+ <el-button type="primary">{{zoomValue}}</el-button>
<el-button
v-show="btnGroupShow"
size="mini"
@@ -59,13 +60,20 @@
let viewerHeight = 950
let smallViewerHeight = 1950
+const mixVH = 500
+const maxVH = 950
+const oneVH = 500
+const twoVH = 650
+const fourVH = 800
+const fiveVH = 950
+
// const wallLayer = null
export default {
name: 'dimension',
data () {
return {
-
+ zoomValue: null,
btnGroupShow: false,
dimensionValue: '三 维',
// 建筑2.5D地图
@@ -101,8 +109,8 @@
[114.03954722, 27.62819644, 100],
[114.04006133, 27.628038, 100]
],
- mapCenter: [116.35381525,
- 27.95839468, 950.0]
+ mapCenter: [116.35561302,
+ 27.96547549, 1860]
// mapCenter: [115.871863, 28.743861, 950.0]
}
},
@@ -213,40 +221,46 @@
fileExtension: 'png'
// minimumLevel: 19
}))
+ global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+ url: '/fz/{z}/{x}/{y}.png',
+ fileExtension: 'png'
+ // minimumLevel: 19
+ }))
- global.viewer.imageryLayers.addImageryProvider(
- new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
- url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer/WMTS',
- layer: 'fzsw2019',
- style: 'default',
- tileMatrixSetID: 'default028mm',
- format: 'image/jpgpng',
- tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
- maximumLevel: 19,
- tileMatrixLabels: [
- '0',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- '10',
- '11',
- '12',
- '13',
- '14',
- '15',
- '16',
- '17',
- '18',
- '19'
- ]
- })
- )
+ // global.viewer.imageryLayers.addImageryProvider(
+ // new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
+ // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer/WMTS',
+ // // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/PX25DMap/Pingxiang25DMap18000/MapServer/WMTS',
+ // layer: 'fzsw2019',
+ // style: 'default',
+ // tileMatrixSetID: 'default028mm',
+ // format: 'image/jpgpng',
+ // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+ // maximumLevel: 19,
+ // tileMatrixLabels: [
+ // '0',
+ // '1',
+ // '2',
+ // '3',
+ // '4',
+ // '5',
+ // '6',
+ // '7',
+ // '8',
+ // '9',
+ // '10',
+ // '11',
+ // '12',
+ // '13',
+ // '14',
+ // '15',
+ // '16',
+ // '17',
+ // '18',
+ // '19'
+ // ]
+ // })
+ // )
// global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({
// url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer',
@@ -325,11 +339,11 @@
})
// 最小
- global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 500
- global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1500
- // 最大
- global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 950
- global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1950
+ // global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH
+ // global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH + 1000
+ // // 最大
+ // global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH
+ // global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH + 1000
// 设置相机缩小时的速率
global.viewer.scene.screenSpaceCameraController._minimumZoomRate = 2000
@@ -436,181 +450,183 @@
}
})
- document.querySelector('.dc-zoom-controller').children[1].onclick =
- function () {
- if (that.dimensionValue == '真三维') {
- global.viewer.camera.setView({
- // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
- // fromDegrees()方法,将经纬度和高程转换为世界坐标
- destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- that.mapCenter[0],
- that.mapCenter[1],
- 220.0
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(-9),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54),
- roll: 0.0
- }
- })
- } else {
- global.viewer.camera.setView({
- // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
- // fromDegrees()方法,将经纬度和高程转换为世界坐标
- destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- that.mapCenter[0],
- that.mapCenter[1],
- that.mapCenter[2]
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- }
- }
+ // this.$nextTick(() => {
+ // document.querySelector('.dc-zoom-controller').children[1].onclick =
+ // function () {
+ // if (that.dimensionValue == '真三维') {
+ // global.viewer.camera.setView({
+ // // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ // destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ // that.mapCenter[0],
+ // that.mapCenter[1],
+ // 220.0
+ // ),
+ // orientation: {
+ // // 指向
+ // heading: global.DC.Namespace.Cesium.Math.toRadians(-9),
+ // // 视角
+ // pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54),
+ // roll: 0.0
+ // }
+ // })
+ // } else {
+ // global.viewer.camera.setView({
+ // // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ // destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ // that.mapCenter[0],
+ // that.mapCenter[1],
+ // that.mapCenter[2]
+ // ),
+ // orientation: {
+ // // 指向
+ // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // // 视角
+ // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ // roll: 0.0
+ // }
+ // })
+ // }
+ // }
- document.querySelector('.dc-zoom-controller').children[2].onclick =
- function () {
- if (
- that.dimensionValue != undefined &&
- that.dimensionValue != '真三维'
- ) {
- if (viewerHeight == 500) {
- global.viewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.viewer.camera.positionCartographic.longitude,
- global.viewer.camera.positionCartographic.latitude,
- 650
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- viewerHeight = 650
- this.$emit('change-wheel', false, 'startWheel')
- return
- }
+ // document.querySelector('.dc-zoom-controller').children[2].onclick =
+ // function () {
+ // if (
+ // that.dimensionValue != undefined &&
+ // that.dimensionValue != '真三维'
+ // ) {
+ // if (viewerHeight == oneVH) {
+ // global.viewer.camera.setView({
+ // destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ // global.viewer.camera.positionCartographic.longitude,
+ // global.viewer.camera.positionCartographic.latitude,
+ // twoVH
+ // ),
+ // orientation: {
+ // // 指向
+ // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // // 视角
+ // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ // roll: 0.0
+ // }
+ // })
+ // viewerHeight = twoVH
+ // this.$emit('change-wheel', false, 'startWheel')
+ // return
+ // }
- if (viewerHeight == 650) {
- global.viewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.viewer.camera.positionCartographic.longitude,
- global.viewer.camera.positionCartographic.latitude,
- 800
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- viewerHeight = 800
- this.$emit('change-wheel', false, 'startWheel')
- return
- }
+ // if (viewerHeight == twoVH) {
+ // global.viewer.camera.setView({
+ // destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ // global.viewer.camera.positionCartographic.longitude,
+ // global.viewer.camera.positionCartographic.latitude,
+ // fourVH
+ // ),
+ // orientation: {
+ // // 指向
+ // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // // 视角
+ // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ // roll: 0.0
+ // }
+ // })
+ // viewerHeight = fourVH
+ // this.$emit('change-wheel', false, 'startWheel')
+ // return
+ // }
- if (viewerHeight == 800) {
- global.viewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.viewer.camera.positionCartographic.longitude,
- global.viewer.camera.positionCartographic.latitude,
- 950
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- viewerHeight = 950
- this.$emit('change-wheel', false, 'startWheel')
- }
- }
- }
+ // if (viewerHeight == fourVH) {
+ // global.viewer.camera.setView({
+ // destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ // global.viewer.camera.positionCartographic.longitude,
+ // global.viewer.camera.positionCartographic.latitude,
+ // fiveVH
+ // ),
+ // orientation: {
+ // // 指向
+ // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // // 视角
+ // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ // roll: 0.0
+ // }
+ // })
+ // viewerHeight = fiveVH
+ // this.$emit('change-wheel', false, 'startWheel')
+ // }
+ // }
+ // }
- document.querySelector('.dc-zoom-controller').children[0].onclick =
- function () {
- if (
- that.dimensionValue != undefined &&
- that.dimensionValue != '真三维'
- ) {
- if (viewerHeight == 950) {
- global.viewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.viewer.camera.positionCartographic.longitude,
- global.viewer.camera.positionCartographic.latitude,
- 800
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- viewerHeight = 800
- this.$emit('change-wheel', false, 'startWheel')
- return
- }
+ // document.querySelector('.dc-zoom-controller').children[0].onclick =
+ // function () {
+ // if (
+ // that.dimensionValue != undefined &&
+ // that.dimensionValue != '真三维'
+ // ) {
+ // if (viewerHeight == fiveVH) {
+ // global.viewer.camera.setView({
+ // destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ // global.viewer.camera.positionCartographic.longitude,
+ // global.viewer.camera.positionCartographic.latitude,
+ // fourVH
+ // ),
+ // orientation: {
+ // // 指向
+ // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // // 视角
+ // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ // roll: 0.0
+ // }
+ // })
+ // viewerHeight = fourVH
+ // this.$emit('change-wheel', false, 'startWheel')
+ // return
+ // }
- if (viewerHeight == 800) {
- global.viewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.viewer.camera.positionCartographic.longitude,
- global.viewer.camera.positionCartographic.latitude,
- 650
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- viewerHeight = 650
- this.$emit('change-wheel', false, 'startWheel')
- return
- }
+ // if (viewerHeight == fourVH) {
+ // global.viewer.camera.setView({
+ // destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ // global.viewer.camera.positionCartographic.longitude,
+ // global.viewer.camera.positionCartographic.latitude,
+ // twoVH
+ // ),
+ // orientation: {
+ // // 指向
+ // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // // 视角
+ // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ // roll: 0.0
+ // }
+ // })
+ // viewerHeight = twoVH
+ // this.$emit('change-wheel', false, 'startWheel')
+ // return
+ // }
- if (viewerHeight == 650) {
- global.viewer.camera.setView({
- destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
- global.viewer.camera.positionCartographic.longitude,
- global.viewer.camera.positionCartographic.latitude,
- 500
- ),
- orientation: {
- // 指向
- heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
- // 视角
- pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
- roll: 0.0
- }
- })
- viewerHeight = 500
- this.$emit('change-wheel', false, 'startWheel')
- }
- }
- }
+ // if (viewerHeight == twoVH) {
+ // global.viewer.camera.setView({
+ // destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+ // global.viewer.camera.positionCartographic.longitude,
+ // global.viewer.camera.positionCartographic.latitude,
+ // oneVH
+ // ),
+ // orientation: {
+ // // 指向
+ // heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // // 视角
+ // pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ // roll: 0.0
+ // }
+ // })
+ // viewerHeight = oneVH
+ // this.$emit('change-wheel', false, 'startWheel')
+ // }
+ // }
+ // }
+ // })
- global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
- global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
+ // global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
+ // global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
}
}
}
@@ -626,6 +642,18 @@
mouseMoveEvent (e) {
var that = this
+
+ function heightToZoom (height) {
+ var A = 40487.57
+ var B = 0.00007096758
+ var C = 91610.74
+ var D = -40467.74
+ return Math.round(D + (A - D) / (1 + Math.pow(height / C, B)))
+ }
+ var height = Math.ceil(global.viewer.camera.positionCartographic.height)
+ var zoom = heightToZoom(height)
+
+ that.zoomValue = zoom
if (that.closeMapClick) {
return
@@ -693,12 +721,12 @@
if (this.startWheel == false) return
if (this.wheelFlag) { // 下
- if (viewerHeight == 950) {
+ if (viewerHeight == fiveVH) {
global.viewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.viewer.camera.positionCartographic.longitude,
global.viewer.camera.positionCartographic.latitude,
- 800
+ fourVH
),
orientation: {
// 指向
@@ -708,17 +736,17 @@
roll: 0.0
}
})
- viewerHeight = 800
+ viewerHeight = fourVH
this.$emit('change-wheel', false, 'startWheel')
return
}
- if (viewerHeight == 800) {
+ if (viewerHeight == fourVH) {
global.viewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.viewer.camera.positionCartographic.longitude,
global.viewer.camera.positionCartographic.latitude,
- 650
+ twoVH
),
orientation: {
// 指向
@@ -728,17 +756,17 @@
roll: 0.0
}
})
- viewerHeight = 650
+ viewerHeight = twoVH
this.$emit('change-wheel', false, 'startWheel')
return
}
- if (viewerHeight == 650) {
+ if (viewerHeight == twoVH) {
global.viewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.viewer.camera.positionCartographic.longitude,
global.viewer.camera.positionCartographic.latitude,
- 500
+ oneVH
),
orientation: {
// 指向
@@ -748,16 +776,16 @@
roll: 0.0
}
})
- viewerHeight = 500
+ viewerHeight = oneVH
this.$emit('change-wheel', false, 'startWheel')
}
} else { // 上
- if (viewerHeight == 500) {
+ if (viewerHeight == oneVH) {
global.viewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.viewer.camera.positionCartographic.longitude,
global.viewer.camera.positionCartographic.latitude,
- 650
+ twoVH
),
orientation: {
// 指向
@@ -767,17 +795,17 @@
roll: 0.0
}
})
- viewerHeight = 650
+ viewerHeight = twoVH
this.$emit('change-wheel', false, 'startWheel')
return
}
- if (viewerHeight == 650) {
+ if (viewerHeight == twoVH) {
global.viewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.viewer.camera.positionCartographic.longitude,
global.viewer.camera.positionCartographic.latitude,
- 800
+ fourVH
),
orientation: {
// 指向
@@ -787,17 +815,17 @@
roll: 0.0
}
})
- viewerHeight = 800
+ viewerHeight = fourVH
this.$emit('change-wheel', false, 'startWheel')
return
}
- if (viewerHeight == 800) {
+ if (viewerHeight == fourVH) {
global.viewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.viewer.camera.positionCartographic.longitude,
global.viewer.camera.positionCartographic.latitude,
- 950
+ fiveVH
),
orientation: {
// 指向
@@ -807,7 +835,7 @@
roll: 0.0
}
})
- viewerHeight = 950
+ viewerHeight = fiveVH
this.$emit('change-wheel', false, 'startWheel')
}
}
@@ -827,12 +855,12 @@
if (this.startSmallWheel == false) return
if (this.wheelFlag) { // 下
- if (smallViewerHeight == 1950) {
+ if (smallViewerHeight == fiveVH + 1000) {
global.eagleViewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.eagleViewer.camera.positionCartographic.longitude,
global.eagleViewer.camera.positionCartographic.latitude,
- 1800
+ fourVH + 1000
),
orientation: {
// 指向
@@ -842,17 +870,17 @@
roll: 0.0
}
})
- smallViewerHeight = 1800
+ smallViewerHeight = fourVH + 1000
this.$emit('change-wheel', false, 'startSmallWheel')
return
}
- if (smallViewerHeight == 1800) {
+ if (smallViewerHeight == fourVH + 1000) {
global.eagleViewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.eagleViewer.camera.positionCartographic.longitude,
global.eagleViewer.camera.positionCartographic.latitude,
- 1650
+ twoVH + 1000
),
orientation: {
// 指向
@@ -862,17 +890,17 @@
roll: 0.0
}
})
- smallViewerHeight = 1650
+ smallViewerHeight = twoVH + 1000
this.$emit('change-wheel', false, 'startSmallWheel')
return
}
- if (smallViewerHeight == 1650) {
+ if (smallViewerHeight == twoVH + 1000) {
global.eagleViewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.eagleViewer.camera.positionCartographic.longitude,
global.eagleViewer.camera.positionCartographic.latitude,
- 1500
+ oneVH + 1000
),
orientation: {
// 指向
@@ -882,16 +910,16 @@
roll: 0.0
}
})
- smallViewerHeight = 1500
+ smallViewerHeight = oneVH + 1000
this.$emit('change-wheel', false, 'startSmallWheel')
}
} else { // 上
- if (smallViewerHeight == 1500) {
+ if (smallViewerHeight == oneVH + 1000) {
global.eagleViewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.eagleViewer.camera.positionCartographic.longitude,
global.eagleViewer.camera.positionCartographic.latitude,
- 1650
+ twoVH + 1000
),
orientation: {
// 指向
@@ -901,17 +929,17 @@
roll: 0.0
}
})
- smallViewerHeight = 1650
+ smallViewerHeight = twoVH + 1000
this.$emit('change-wheel', false, 'startSmallWheel')
return
}
- if (smallViewerHeight == 1650) {
+ if (smallViewerHeight == twoVH + 1000) {
global.eagleViewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.eagleViewer.camera.positionCartographic.longitude,
global.eagleViewer.camera.positionCartographic.latitude,
- 1800
+ fourVH + 1000
),
orientation: {
// 指向
@@ -921,17 +949,17 @@
roll: 0.0
}
})
- smallViewerHeight = 1800
+ smallViewerHeight = fourVH + 1000
this.$emit('change-wheel', false, 'startSmallWheel')
return
}
- if (smallViewerHeight == 1800) {
+ if (smallViewerHeight == fourVH + 1000) {
global.eagleViewer.camera.setView({
destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
global.eagleViewer.camera.positionCartographic.longitude,
global.eagleViewer.camera.positionCartographic.latitude,
- 1950
+ fiveVH + 1000
),
orientation: {
// 指向
@@ -941,7 +969,7 @@
roll: 0.0
}
})
- smallViewerHeight = 1950
+ smallViewerHeight = fiveVH + 1000
this.$emit('change-wheel', false, 'startSmallWheel')
}
}
@@ -1294,7 +1322,7 @@
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
that.mapCenter[0],
that.mapCenter[1],
- 1950.0
+ maxVH + 1000
),
orientation: {
// 指向
@@ -1305,11 +1333,11 @@
}
})
// 最小
- global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 500
- global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1500
+ global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH
+ global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = mixVH + 1000
// 最大
- global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 950
- global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1950
+ global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH
+ global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = maxVH + 1000
// 视角旋转
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 f9ae8a9..cd760a3 100644
--- a/src/components/map/components/mapPopup.vue
+++ b/src/components/map/components/mapPopup.vue
@@ -745,12 +745,14 @@
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'
- }
+ this.$nextTick(() => {
+ 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
@@ -816,12 +818,16 @@
immediate: true,
handler (newCode, oldCode) {
if (newCode == false) {
- this.audioSynth.cancel()
+ if (this.audioSynth != null) {
+ this.audioSynth.cancel()
+ }
this.audioFlag = false
this.audioCourse = false
} else {
if (this.audioFlag == true) {
- this.audioSynth.cancel()
+ if (this.audioSynth != null) {
+ this.audioSynth.cancel()
+ }
this.audioFlag = false
this.audioCourse = false
this.audioImgUrl = '/img/icon/close-video.png'
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index da5d9ff..5421c65 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -227,6 +227,11 @@
global.viewer.measure.deactivate()
}
+ if (global.viewer != null) {
+ global.viewer = null
+ global.eagleViewer = null
+ }
+
function initViewer () {
global.viewer = new global.DC.Viewer('viewer-container', {
contextOptions: {
diff --git a/src/components/mobilePopupOurOnce/index.vue b/src/components/mobilePopupOurOnce/index.vue
index f12dcc0..d3e76a3 100644
--- a/src/components/mobilePopupOurOnce/index.vue
+++ b/src/components/mobilePopupOurOnce/index.vue
@@ -1,34 +1,32 @@
<template>
- <div class="mobilePopupOurOnce">
- <div
- class="mobilePopupOurOnce_center"
- :style="{
+ <div class="mobilePopupOurOnce">
+ <div
+ class="mobilePopupOurOnce_center"
+ :style="{
borderBottom: !ends ? '#d4d4d4 dashed 1px' : '',
marginBottom: !ends ? '6px' : '',
}"
- >
- <div class="mobilePopupOurOnce_left">
- <!-- <img :src="icon" alt="" :key="icon" /> -->
- <el-image
- style="width: 80px; height: 80px"
- :src="icon"
- :id="'mobileBigImgs' + icon + ''"
- :preview-src-list="srcList"
>
- <!-- v-show="false" -->
- </el-image>
- </div>
- <div class="mobilePopupOurOnce_right" @click.self.stop="openOnce('定位')">
- <div
- class="mobilePopupOurOnce_r_up"
- @click.self.stop="openOnce('定位')"
- >
- {{ onceData.name }}
- </div>
- <div class="mobilePopupOurOnce_r_down">
- <div v-for="(item, index) in seebut" :key="index">
- <el-link
- :icon="
+ <div class="mobilePopupOurOnce_left">
+ <!-- <img :src="icon" alt="" :key="icon" /> -->
+ <el-image
+ style="width: 80px; height: 80px"
+ :src="icon"
+ :id="'mobileBigImgs' + icon + ''"
+ :preview-src-list="srcList"
+ >
+ <!-- v-show="false" -->
+ </el-image>
+ </div>
+ <div class="mobilePopupOurOnce_right" @click.self.stop="openOnce('定位')">
+ <div
+ class="mobilePopupOurOnce_r_up"
+ @click.self.stop="openOnce('定位')"
+ >{{ onceData.name }}</div>
+ <div class="mobilePopupOurOnce_r_down">
+ <div v-for="(item, index) in seebut" :key="index">
+ <el-link
+ :icon="
item.name == '实景'
? 'el-icon-place'
: item.name == '图集'
@@ -37,191 +35,193 @@
? 'el-icon-map-location'
: ''
"
- class="mobilePopupOurOnce_r_d_in"
- @click="openOnce(item.name)"
- >{{ item.name }}</el-link
- >
- <el-divider
- direction="vertical"
- class="mobilePopupOurOnce_r_d_in"
- v-if="index != seebut.length - 1"
- ></el-divider>
- </div>
+ class="mobilePopupOurOnce_r_d_in"
+ @click="openOnce(item.name)"
+ >{{ item.name }}</el-link>
+ <el-divider
+ direction="vertical"
+ class="mobilePopupOurOnce_r_d_in"
+ v-if="index != seebut.length - 1"
+ ></el-divider>
+ </div>
+ </div>
+ </div>
</div>
- </div>
</div>
- </div>
</template>
<script>
-import { mapGetters } from "vuex";
-import { getChildNavDetail } from "@/api/mobile/public/arc";
+import { mapGetters } from 'vuex'
+import { getChildNavDetail } from '@/api/mobile/public/arc'
export default {
- props: ["onceData", "ends"],
- name: "mobilePopupOurOnce",
- created() {
- if (this.onceData.icon) {
- this.srcList = this.onceData.icon;
- this.icon = this.srcList[0];
- }
- if (this.onceData.from == "校区建筑" || this.onceData.from == "文化风景") {
- this.getOnceCampus(this.onceData.id);
- } else {
- this.ourData = this.onceData;
- }
- },
- data() {
- return {
- icon: "",
- srcList: [],
- ourData: {},
- };
- },
- computed: {
- ...mapGetters(["mviewer"]),
- seebut() {
- const buts = this.onceData.buts;
- let b = [];
- for (const k in buts) {
- if (buts[k] == "实景") {
- continue;
+ props: ['onceData', 'ends'],
+ name: 'mobilePopupOurOnce',
+ created () {
+ if (this.onceData.icon) {
+ this.srcList = this.onceData.icon
+ this.icon = this.srcList[0]
}
- b.push({
- name: buts[k],
- });
- }
- if (this.ourData.panoramaurl) {
- b.push({
- name: "实景",
- });
- } else {
- b = b.filter((res) => {
- return res.name != "实景";
- });
- }
- return b;
- },
- },
- methods: {
- openOnce(val) {
- if (!this.ourData.name) {
- console.log("数据传输失败");
- return;
- }
- const that = this;
- if (val == "定位") {
- // 活动定位
- if (this.ourData.name == "活动") {
- console.log(this.ourData);
- return;
+ if (this.onceData.from == '校区建筑' || this.onceData.from == '文化风景') {
+ this.getOnceCampus(this.onceData.id)
+ } else {
+ this.ourData = this.onceData
}
- // 随地图移动窗口
- this.$store.commit("MSET_BIGPOPUP", false); // 关闭全屏弹窗
- setTimeout(() => {
- // // 定制化窗体
- const d = {
- position: {},
- lntLat: that.ourData.lntLat,
- query: { ...this.ourData, seebut: this.seebut },
- useJWD: true, // 仅使用经纬度
- from: "PopupOurOnce",
- };
- that.$store.dispatch("setMobileWindows", d);
- }, 500);
- // 固定窗口
- // that.$store.dispatch("SET_OPENWIDOWFIXED", d);
- } else if (val == "实景") {
- this.$store.commit("MSET_OPENMOBILEPANORAMA", this.ourData.panoramaurl);
- // if(this.ourData.panoramaurl){
- // }
- // console.log(this.ourData.panoramaurl);
- } else if (val == "图集") {
- const imgsDom = document.getElementById(
- "mobileBigImgs" + this.icon + ""
- );
- imgsDom.click();
- }
},
- // "校区建筑"↓
- getOnceCampus(id) {
- getChildNavDetail({ id: id }).then((res) => {
- var result = res.data.data[0].list;
- const d = {
- name: result.mechanismname,
- lntLat: [result.jd, result.wd],
- alt: result.gd,
- heading: result.heading,
- pitch: result.pitch,
- roll: result.roll,
- bgImg: result.tpurl,
- QRImg: result.codeurl,
- websiteUrl: result.websiteurl,
- telePhone: result.telephone,
- address: result.address,
- introduce: result.introduce,
- video: result.videourl,
- panoramaurl: result.panoramaurl, // 全景
- };
- this.ourData = d;
- });
+ data () {
+ return {
+ icon: '',
+ srcList: [],
+ ourData: {}
+ }
},
- // "校区建筑"↑
- },
-};
+ computed: {
+ ...mapGetters(['mviewer']),
+ seebut () {
+ const buts = this.onceData.buts
+ let b = []
+ for (const k in buts) {
+ if (buts[k] == '实景') {
+ continue
+ }
+ b.push({
+ name: buts[k]
+ })
+ }
+ if (this.ourData.panoramaurl) {
+ b.push({
+ name: '实景'
+ })
+ } else {
+ b = b.filter((res) => {
+ return res.name != '实景'
+ })
+ }
+ return b
+ }
+ },
+ methods: {
+ openOnce (val) {
+ console.log(this.ourData)
+ if (!this.ourData.name) {
+ console.log('数据传输失败')
+ return
+ }
+ const that = this
+ if (val == '定位') {
+ // 活动定位
+ if (this.ourData.name == '活动') {
+ console.log(this.ourData)
+ return
+ }
+ // 随地图移动窗口
+ this.$store.commit('MSET_BIGPOPUP', false) // 关闭全屏弹窗
+ setTimeout(() => {
+ // // 定制化窗体
+ const d = {
+ position: {},
+ lntLat: that.ourData.lntLat,
+ query: { ...this.ourData, seebut: this.seebut },
+ useJWD: true, // 仅使用经纬度
+ from: 'PopupOurOnce'
+ }
+ that.$store.dispatch('setMobileWindows', d)
+ }, 500)
+ // 固定窗口
+ // that.$store.dispatch("SET_OPENWIDOWFIXED", d);
+ } else if (val == '实景') {
+ this.$store.commit('MSET_OPENMOBILEPANORAMA', this.ourData.panoramaurl)
+ // if(this.ourData.panoramaurl){
+ // }
+ // console.log(this.ourData.panoramaurl);
+ } else if (val == '图集') {
+ const imgsDom = document.getElementById(
+ 'mobileBigImgs' + this.icon + ''
+ )
+ imgsDom.click()
+ }
+ },
+ // "校区建筑"↓
+ getOnceCampus (id) {
+ console.log(id)
+ getChildNavDetail({ id: id }).then((res) => {
+ console.log(res, 5656)
+ var result = res.data.data[0].list
+ const d = {
+ name: result.mechanismname,
+ lntLat: [result.jd, result.wd],
+ alt: result.gd,
+ heading: result.heading,
+ pitch: result.pitch,
+ roll: result.roll,
+ bgImg: result.tpurl,
+ QRImg: result.codeurl,
+ websiteUrl: result.websiteurl,
+ telePhone: result.telephone,
+ address: result.address,
+ introduce: result.introduce,
+ video: result.videourl,
+ panoramaurl: result.panoramaurl // 全景
+ }
+ this.ourData = d
+ })
+ }
+ // "校区建筑"↑
+ }
+}
</script>
<style lang="scss" scoped>
// 继承类
.flexCenter {
- display: flex !important;
- align-items: center !important;
- justify-content: center !important;
+ display: flex !important;
+ align-items: center !important;
+ justify-content: center !important;
}
.mobilePopupOurOnce {
- padding: 8px 0 0 0;
- margin: 0 8px;
- // background-image: linear-gradient(#29baf1, #28bbf0);
- .mobilePopupOurOnce_center {
- // margin-bottom: 8px;
- height: 80px;
- // border-bottom: #d4d4d4 dashed 1px;
- padding-bottom: 8px;
- @extend .flexCenter;
- .mobilePopupOurOnce_left {
- width: 32%;
- height: 100%;
- @extend .flexCenter;
- img {
- width: 80px;
+ padding: 8px 0 0 0;
+ margin: 0 8px;
+ // background-image: linear-gradient(#29baf1, #28bbf0);
+ .mobilePopupOurOnce_center {
+ // margin-bottom: 8px;
height: 80px;
- }
- }
- .mobilePopupOurOnce_right {
- width: 68%;
- height: 100%;
- @extend .flexCenter;
- flex-direction: column;
- .mobilePopupOurOnce_r_up {
- height: 50%;
- width: 100%;
- font-size: 16px;
- text-indent: 1em;
- display: flex !important;
- align-items: center !important;
- // color: #fff;
- }
- .mobilePopupOurOnce_r_down {
- height: 50%;
- width: 100%;
- padding-left: 1em;
- display: flex !important;
- align-items: center !important;
- .mobilePopupOurOnce_r_d_in {
- // color: #fff;
- font-size: 17px;
+ // border-bottom: #d4d4d4 dashed 1px;
+ padding-bottom: 8px;
+ @extend .flexCenter;
+ .mobilePopupOurOnce_left {
+ width: 32%;
+ height: 100%;
+ @extend .flexCenter;
+ img {
+ width: 80px;
+ height: 80px;
+ }
}
- }
+ .mobilePopupOurOnce_right {
+ width: 68%;
+ height: 100%;
+ @extend .flexCenter;
+ flex-direction: column;
+ .mobilePopupOurOnce_r_up {
+ height: 50%;
+ width: 100%;
+ font-size: 16px;
+ text-indent: 1em;
+ display: flex !important;
+ align-items: center !important;
+ // color: #fff;
+ }
+ .mobilePopupOurOnce_r_down {
+ height: 50%;
+ width: 100%;
+ padding-left: 1em;
+ display: flex !important;
+ align-items: center !important;
+ .mobilePopupOurOnce_r_d_in {
+ // color: #fff;
+ font-size: 17px;
+ }
+ }
+ }
}
- }
}
</style>
diff --git a/src/pcviews/specialmap/welcome.vue b/src/pcviews/specialmap/welcome.vue
index 72a60c2..1968d5c 100644
--- a/src/pcviews/specialmap/welcome.vue
+++ b/src/pcviews/specialmap/welcome.vue
@@ -74,7 +74,7 @@
</div>
</div>
- <!-- <div v-show="layerList.length > 0" class="layer-manage-container">
+ <div v-show="layerList.length > 0" class="layer-manage-container">
<div class="header">图层管理</div>
<ul class="content">
<li v-for="(item, index) in layerList" :key="index">
@@ -82,7 +82,7 @@
<el-switch v-model="item.flag" @change="switchChange(item)"></el-switch>
</li>
</ul>
- </div>-->
+ </div>
</div>
</template>
@@ -92,6 +92,7 @@
let pathLayer = null
let pointLayer = null
+let special = []
export default {
data () {
@@ -146,6 +147,14 @@
this.urlDataName = this.$route.query.name
this.getData()
} else if (newData.query.name != this.urlDataName) {
+ if (special.length > 0) {
+ special.forEach(item => {
+ global.viewer.imageryLayers.remove(
+ item.layer
+ )
+ })
+ }
+ special = []
this.audioSynth.cancel()
global.viewer.removeLayer(pathLayer)
global.viewer.removeLayer(pointLayer)
@@ -169,22 +178,33 @@
methods: {
switchChange (item) {
if (item.flag == true) {
-
+ this.addArcgisLayer(item.url, item.name)
} else {
-
+ this.removeArcgisLayer(item.name)
}
},
- addArcgisLayer (url) {
- global.viewer.imageryLayers.addImageryProvider(
+ addArcgisLayer (url, name) {
+ var layer = global.viewer.imageryLayers.addImageryProvider(
new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({
url: url
})
)
+ special.push({
+ layer,
+ name
+ })
},
- removeArcgisLayer () {
-
+ removeArcgisLayer (name) {
+ special.forEach((item, index) => {
+ if (item.name == name) {
+ global.viewer.imageryLayers.remove(
+ item.layer
+ )
+ special.splice(index, 1)
+ }
+ })
},
getData () {
@@ -213,7 +233,7 @@
this.layerList.push({ flag: false, name: item, url: url[index] })
})
this.layerList[0].flag = true
- this.addArcgisLayer(this.layerList[0].url)
+ this.addArcgisLayer(this.layerList[0].url, this.layerList[0].name)
}
var a = result.lx.split(';')
@@ -314,6 +334,15 @@
}
},
closeModel () {
+ if (special.length > 0) {
+ special.forEach(item => {
+ global.viewer.imageryLayers.remove(
+ item.layer
+ )
+ })
+ }
+ special = []
+
global.viewer.removeLayer(pathLayer)
global.viewer.removeLayer(pointLayer)
diff --git a/src/router/page/index.js b/src/router/page/index.js
index f6ef179..f854bae 100644
--- a/src/router/page/index.js
+++ b/src/router/page/index.js
@@ -2,7 +2,7 @@
* @Author: Morpheus
* @Date: 2021-04-30 14:12:09
* @Last Modified by: Morpheus
- * @Last Modified time: 2022-03-24 15:25:40
+ * @Last Modified time: 2022-03-28 14:34:15
*/
import Vue from 'vue'
@@ -63,6 +63,10 @@
},
component: large
},
+ {
+ path: '/',
+ redirect: '/pcLayout'
+ },
// pc端
{
path: '/pcLayout',
diff --git a/vue.config.js b/vue.config.js
index b1d1794..d44a655 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -6,56 +6,60 @@
const CompressionPlugin = require('compression-webpack-plugin')
module.exports = {
- publicPath: '/',
- lintOnSave: false,
- // 其他配置
- chainWebpack: (config) => {
- config.plugin('copy').use(CopywebpackPlugin, [
- [
- {
- from: path.join(dvgisDist, 'dc-sdk/dist/resources'),
- to: 'libs/dc-sdk/resources'
- },
- {
- from: './public/img',
- to: 'img'
- },
- {
- from: './public/examples',
- to: 'examples'
- },
- {
- from: './public/mx',
- to: 'mx'
- },
- {
- from: './public/wp',
- to: 'wp'
- },
- {
- from: './public/favicon.ico',
- to: 'favicon.ico'
- }
- ]
- ])
- },
- // 减少chunk-vendors.js文件大小
- // 报错 TypeError: Cannot read property 'tapPromise' of undefined
- // 解决 ,把compression-webpack-plugin包退回成 compression-webpack-plugin@5.0.1 即可
- // 文件由8M 减成2.5M
- productionSourceMap: false, // 代码压缩加密
- configureWebpack: {
- // webpack plugins
- plugins: [
- // 提供带 Content-Encoding 编码的压缩版的资源
- new CompressionPlugin({
- algorithm: 'gzip',
- test: /\.js$|\.html$|\.css/, // 匹配文件名
- // test: /\.(js|css)$/,
- threshold: 10240, // 对超过10k的数据压缩
- deleteOriginalAssets: false, // 不删除源文件
- minRatio: 0.8 // 压缩比
- })
- ]
- }
+ publicPath: '/',
+ lintOnSave: false,
+ // 其他配置
+ chainWebpack: (config) => {
+ config.plugin('copy').use(CopywebpackPlugin, [
+ [
+ {
+ from: path.join(dvgisDist, 'dc-sdk/dist/resources'),
+ to: 'libs/dc-sdk/resources'
+ },
+ {
+ from: './public/img',
+ to: 'img'
+ },
+ {
+ from: './public/examples',
+ to: 'examples'
+ },
+ {
+ from: './public/mx',
+ to: 'mx'
+ },
+ {
+ from: './public/fz',
+ to: 'fz'
+ },
+ {
+ from: './public/wp',
+ to: 'wp'
+ },
+ {
+ from: './public/favicon.ico',
+ to: 'favicon.ico'
+ }
+ ]
+ ])
+ },
+ // 减少chunk-vendors.js文件大小
+ // 报错 TypeError: Cannot read property 'tapPromise' of undefined
+ // 解决 ,把compression-webpack-plugin包退回成 compression-webpack-plugin@5.0.1 即可
+ // 文件由8M 减成2.5M
+ productionSourceMap: false, // 代码压缩加密
+ configureWebpack: {
+ // webpack plugins
+ plugins: [
+ // 提供带 Content-Encoding 编码的压缩版的资源
+ new CompressionPlugin({
+ algorithm: 'gzip',
+ test: /\.js$|\.html$|\.css/, // 匹配文件名
+ // test: /\.(js|css)$/,
+ threshold: 10240, // 对超过10k的数据压缩
+ deleteOriginalAssets: false, // 不删除源文件
+ minRatio: 0.8 // 压缩比
+ })
+ ]
+ }
}
--
Gitblit v1.9.3