From 675f53b52844d1d368d71d966620ba698f24bcde Mon Sep 17 00:00:00 2001
From: wangqi <magical1908@outlook.com>
Date: 星期二, 09 三月 2021 09:34:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/components/panel/RightSearchPanel.vue | 24 -
src/components/panel/MenuTopic.vue | 8
src/conf/Topic.js | 36 ++
src/components/LayerController/modules/LcBaseMap.vue | 10
src/components/panel/ToolBoxPanel.vue | 195 ++++++++++++++---
src/views/MapTemplate.vue | 64 ++--
src/components/panel/LegendPanel.vue | 6
src/components/panel/topicSearch/DischargeSearch.vue | 2
src/Sgis.js | 4
src/conf/TDT.js | 4
src/main.js | 1
src/conf/MapConfig.js | 1
package.json | 4
src/components/plugin/Leaflet.GridLayer.FadeOut.js | 76 ++++++
src/components/panel/topicSearch/SewersSearch.vue | 4
src/components/plugin/FullScreen.js | 174 +++++++++++++++
src/components/helpers/BasemapHelper.js | 3
17 files changed, 503 insertions(+), 113 deletions(-)
diff --git a/package.json b/package.json
index e098be7..2bd03a4 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"dayjs": "^1.9.6",
"echarts": "^4.2.1",
"element-ui": "^2.14.1",
+ "fullscreen": "^1.1.1",
"jquery": "^3.5.1",
"js-cookie": "^2.2.0",
"leaflet": "^1.6.0",
@@ -26,10 +27,11 @@
"lodash": "^4.17.10",
"nprogress": "^0.2.0",
"rbush": "^3.0.1",
- "screenfull": "^3.3.2",
+ "screenfull": "^3.3.3",
"vue": "^2.6.11",
"vue-count-to": "^1.0.13",
"vue-focus": "^2.1.0",
+ "vue-fullscreen": "^2.2.0",
"vue-router": "^3.0.1",
"vuex": "^3.0.1"
},
diff --git a/src/Sgis.js b/src/Sgis.js
index 22380e4..af7ecb2 100644
--- a/src/Sgis.js
+++ b/src/Sgis.js
@@ -10,6 +10,8 @@
import MapConfig from '@/conf/MapConfig'
import DashFlow from '@components/plugin/PathDashFlow'
import CanvasMarkers from '@components/plugin/CanvasMarkers'
+import FullScreen from '@components/plugin/FullScreen'
+
let map = null
const L = window.L
const initMap = (div) => {
@@ -26,6 +28,8 @@
DashFlow.DashFlow(L) // 娴佸姩绾垮浘
CanvasMarkers.init(L)// 鐢诲竷鍥惧眰
// Leaflet鎵╁睍浠g爜
+ // 鍏ㄥ睆
+ FullScreen.init(L)
map = L.map(div, MapConfig.mapOptions)
diff --git a/src/components/LayerController/modules/LcBaseMap.vue b/src/components/LayerController/modules/LcBaseMap.vue
index e5af6f2..3afc8d8 100644
--- a/src/components/LayerController/modules/LcBaseMap.vue
+++ b/src/components/LayerController/modules/LcBaseMap.vue
@@ -16,6 +16,7 @@
data () {
return {
isShow: true,
+ currentBaseMapCode: 'tianditu_img',
basemapList: []
}
},
@@ -34,7 +35,14 @@
const code = itm.code
this.basemapList.forEach((item) => {
if (item.code === code) {
- this.basemapHelper.showBasemap(item.code, item.conf.annotationCheck, true)
+ console.log(this.currentBaseMapCode)
+ if (this.currentBaseMapCode == null || this.currentBaseMapCode !== code) {
+ this.currentBaseMapCode = code
+ this.basemapHelper.showBasemap(item.code, item.conf.annotationCheck, true)
+ } else {
+ this.basemapHelper.showBasemap(item.code, item.conf.annotationCheck, false)
+ }
+
this.basemapHelper.getBasemapList().forEach((item) => {
item.layer.bringToBack()
})
diff --git a/src/components/helpers/BasemapHelper.js b/src/components/helpers/BasemapHelper.js
index 9b29e4e..cfb5703 100644
--- a/src/components/helpers/BasemapHelper.js
+++ b/src/components/helpers/BasemapHelper.js
@@ -11,6 +11,7 @@
this.basemapList = []
this.basemapMap = new Map()
this.basemapLayerGroup = this.L.layerGroup().addTo(options.map)
+ this.currentBaseMapCode = null
}
/**
@@ -58,6 +59,8 @@
this.basemapLayerGroup.addLayer(basemap.layer)
if (showAnnotation) {
this.basemapLayerGroup.addLayer(basemap.annotation)
+ } else {
+ this.basemapLayerGroup.removeLayer(basemap.annotation)
}
}
diff --git a/src/components/panel/LegendPanel.vue b/src/components/panel/LegendPanel.vue
index 59cce89..70529c2 100644
--- a/src/components/panel/LegendPanel.vue
+++ b/src/components/panel/LegendPanel.vue
@@ -4,7 +4,7 @@
<i class="el-icon-more-outline"></i>
<span>鍥句緥</span>
</div>
- <transition name="fade">
+ <`transition` name="fade">
<div class="legend-content" v-show="legendControl">
<div class="legend-content-box" v-for="(item,index) in legendContents" :key="index">
<p>{{ item.title }}</p>
@@ -258,8 +258,8 @@
}
.fade-leave-active {
- transform-origin: right;
- animation: bounce-in 1s reverse;
+ //transform-origin: right;
+ //animation: bounce-in 1s reverse;
transform-origin: right bottom;
animation: bounce-in .5s reverse;
}
diff --git a/src/components/panel/MenuTopic.vue b/src/components/panel/MenuTopic.vue
index 6f949fe..2b5383a 100644
--- a/src/components/panel/MenuTopic.vue
+++ b/src/components/panel/MenuTopic.vue
@@ -7,12 +7,12 @@
@click="toggle()">
<div id="menu-special-context" class="menu-special-context">
<el-checkbox-button v-show="isShow" class="menu-special-item" v-model="topicSelectAll.check" :checked="topicSelectAll.checked" @change="checkedSpecialChangeAll(topicSelectAll)">
- <div style="height: 1rem;width: 1rem;display: inline-flex;"> <img :src="topicSelectAll.icon" ></div>
+ <div style="height: 1rem;width: 1rem;display: inline-flex;"><img :src="topicSelectAll.icon" ></div>
{{ topicSelectAll.name }}</el-checkbox-button>
<el-checkbox-group :indeterminate="isIndeterminate" v-show="isShow" v-model="topicCheckedList" size="medium" @change="checkedGroupSpecialChange">
- <el-checkbox-button class="menu-special-item" v-for="item in topicList" :label="item.name" :key="item.id" :checked="item.checked" @change="checkedSpecialChange(item)">
- <div style="height: 1rem;width: 1rem;display: inline-flex;"> <img :src="item.icon" ></div>
+ <el-checkbox-button class="menu-special-item" v-for="item in topicList" :label="item" :key="item.id" :checked="item.checked" @change="checkedSpecialChange(item)">
+ <div style="height: 1rem;width: 1rem;display: inline-flex;"><img :src="item.icon" ></div>
{{item.name}}</el-checkbox-button>
</el-checkbox-group>
<!-- <ul class="menu-special-item" v-for="item in SpecialList" :key="item.id">-->
@@ -53,7 +53,7 @@
this.$store.commit('setTopic', this.topicCheckedList)
},
checkedSpecialChangeAll (val) {
- this.topicCheckedList = val.check ? this.topicList.map(item => item.name) : []
+ this.topicCheckedList = val.check ? this.topicList.map(item => item) : []
this.isIndeterminate = false
this.$store.commit('setTopic', this.topicCheckedList)
},
diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue
index f8c5efd..587073a 100644
--- a/src/components/panel/RightSearchPanel.vue
+++ b/src/components/panel/RightSearchPanel.vue
@@ -1,5 +1,5 @@
<template>
- <div id="right-panel" >
+ <div id="right-panel">
<div class="panel-tab">
<div v-for="item in topicMenu" :key="item.id" :title="item.name" class="tab-item" @click="handleGd" :class="{'B-TMT-tab-waybill-isActive': isWaybillHover}">
<img :src="item.icon" style="width: 24px;height: 24px;"></div>
@@ -44,7 +44,7 @@
topicList: TopicList,
topicCheckedList: [],
isPanelVisible: false,
- gcComp: SewersSearch,
+ gcComp: 'sewersSearch',
gdVisible: true,
hbVisible: false,
@@ -56,21 +56,10 @@
isCollapse: false
}
},
- computed: {},
- watch: {
- '$store.state.map.topic.topicCheckedList': function (newVal, oldVal) {
- console.log(oldVal)
- console.log(newVal)
- this.topicCheckedList = newVal
- this.topicMenu = []
- this.topicList.forEach((item) => {
- this.topicCheckedList.forEach((itm) => {
- if (item.name === itm) {
- // item.checked = tr
- this.topicMenu.push(item)
- }
- })
- })
+ computed: {
+ topicMenu () {
+ console.log(this.$store.state.map.topic.topicCheckedList)
+ return this.$store.state.map.topic.topicCheckedList
}
},
methods: {
@@ -85,7 +74,6 @@
},
toggleMonitorPanel () {
this.isCollapse = !this.isCollapse
- console.log(11)
// const el = $('.btn-stretch')
// const el2 = $('.panel-fold-btn')
// const el = document.getElementsByClassName('.btn-stretch')
diff --git a/src/components/panel/ToolBoxPanel.vue b/src/components/panel/ToolBoxPanel.vue
index 8f90ff8..5747cc7 100644
--- a/src/components/panel/ToolBoxPanel.vue
+++ b/src/components/panel/ToolBoxPanel.vue
@@ -1,11 +1,25 @@
<template>
<div class="lefttop-toolbox-panel">
- <ul>
- <li v-for="(item,i) in imgList" :key="i" @click="toggleActive(i)" :value="total"
- :class="{'active':activeTools[i]}">
- <img :src="item"/>
- </li>
- </ul>
+ <div class="init-choose" @click="changeSelect()">
+ <img src="@/assets/images/map-pages/icon/toolbox/circle.png" alt="">
+ </div>
+ <!-- <transition name="fade">-->
+ <!-- <ul v-show='selectGroup'>-->
+ <!-- <li v-for="(item,i) in imgList" :key="i" @click="toggleActive(i)" :value="total"><img :src="item"/></li>-->
+ <!-- </ul>-->
+ <!-- </transition>-->
+ <div class="el-select-dropdown" v-show='selectGroup'>
+ <el-dropdown @command="handleCommand" trigger="click" v-for="(item,i) in imgLists" :key="i" :value="total">
+ <transition name="fade">
+ <img :src="item.title" :title="item.alt"/>
+ </transition>
+ <el-dropdown-menu>
+ <el-dropdown-item v-for="(ite,index) in item.items" :key="index" :command='ite.headings'>
+ <span @click='toggleActive(ite)'>{{ ite.headings }}</span>
+ </el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
+ </div>
</div>
</template>
@@ -20,35 +34,98 @@
export default {
name: 'ToolBoxPanel',
components: {},
+ props: ['map'],
data () {
return {
isPanelVisible: false,
total: 0,
activeTools: {},
- imgList: {
- circle: circle,
- square: square,
- polygon: polygon,
- legend: legend,
- location: location,
- fullscreen: fullscreen
- },
+ imgLists: [
+ {
+ title: circle,
+ alt: '鏍囩粯',
+ items: [
+ { headings: '绾挎爣缁�' },
+ { headings: '闈㈡爣缁�' },
+ { headings: '绠ご鏍囩粯' }
+ ]
+ },
+ {
+ title: square,
+ alt: '鏍囨敞',
+ items: [
+ { headings: '鐐规爣娉�' },
+ { headings: '绾挎爣娉�' },
+ { headings: '闈㈡爣娉�' },
+ { headings: '鏂囧瓧鏍囨敞' },
+ { headings: '鍥炬爣鏍囨敞' }
+ ]
+ },
+ {
+ title: legend,
+ alt: '娴嬮噺',
+ items: [
+ { headings: '璺濈娴嬮噺' },
+ { headings: '闈㈢Н娴嬮噺' }
+ ]
+ },
+ {
+ title: location,
+ alt: '鍒囨崲搴曞浘',
+ items: [
+ { headings: '褰卞儚鍥�' },
+ { headings: '鐭㈤噺鍥�' },
+ { headings: '鍦板舰鍥�' }
+ ]
+ },
+ {
+ title: polygon,
+ alt: '绠$綉',
+ items: [
+ { headings: '杩為�氭�у垎鏋�' },
+ { headings: '鐖嗙鍒嗘瀽' },
+ { headings: '娴佸悜鍒嗘瀽' },
+ { headings: '妯柇闈㈠垎鏋�' }
+ ]
+ },
+ {
+ title: fullscreen,
+ alt: '涓嬭浇',
+ items: [
+ { headings: '鍏ㄥ睆' },
+ { headings: 'A4妯悜' },
+ { headings: 'A4绾靛悜' }
+ ]
+ }
+ ],
form: {
regionType: '',
enterprise: ''
- }
+ },
+ selectGroup: false,
+ selectGroupOne: false
}
},
methods: {
+ changeSelect () {
+ this.selectGroup = !this.selectGroup
+ },
handleClose (done) {
console.log(done)
},
handleClick (tab, event) {
console.log(tab, event)
},
+ handleCommand (command) {
+ console.log(command)
+ if (command === '鍏ㄥ睆') {
+ this.map.toggleFullscreen()
+ }
+ },
toggleActive (k) {
- this.total++
- this.activeTools[k] = !this.activeTools[k]
+ if (k === 'fullscreen') {
+ this.map.toggleFullscreen()
+ }
},
loadData () {
@@ -58,6 +135,7 @@
this.loadData()
},
created () {
+
}
}
</script>
@@ -67,31 +145,74 @@
position: absolute;
left: 5px;
top: 5px;
- z-index: 1000;
- width: 175px;
- height: 35px;
- line-height: 30px;
- background: #07325b;
- border: 1px solid #5EF2FF;
- border-radius: 3px;
- text-align: center;
+ z-index: 999;
+ display: flex;
- ul {
- list-style: none;
- margin: 0;
- padding: 5px;
+ .init-choose {
+ //margin: 15px 5px;
+ background: #305B62;
+ //margin-top: 15px;
+ width: 35px;
+ height: 35px;
+ border-radius: 50%;
+ border: 2px skyblue solid;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ z-index: 999;
+ }
- li {
- float: left;
- width: 23px;
- height: 23px;
- margin: 0 1px;
- border: 1px solid #073C4F;
+ .el-select-dropdown {
+ position: absolute;
+ z-index: 1;
+ width: 250px;
+ height: 35px;
+ display: flex;
+ align-items: center;
+ justify-content: space-evenly;
+ background: #305B62;
+ border-radius: 15px;
+ padding-inline: 10px;
+ padding-inline-start: 30px;
+
+ .el-dropdow {
+ width: 20%;
+ }
+
+ @keyframes bounce-in {
+ 0% {
+ transform: scale(0);
+ opacity: 0.3;
+ }
+ 100% {
+ transform: scale(1);
+ opacity: 1;
+ }
+ }
+
+ .fade-enter-active {
+ transform-origin: left center;
+ animation: bounce-in .2s;
+ }
+
+ .fade-leave-active {
+ transform-origin: left;
+ animation: bounce-in .2s reverse;
}
}
- .active {
- border: 1px solid #5EF2FF;
+ .el-select-dropdown:last-child {
+ margin-left: 10px;
}
+
+ .el-dropdown-link {
+ cursor: pointer;
+ color: #409EFF;
+ }
+
+ .el-icon-arrow-down {
+ font-size: 12px;
+ }
+
}
</style>
diff --git a/src/components/panel/topicSearch/DischargeSearch.vue b/src/components/panel/topicSearch/DischargeSearch.vue
index 0b14697..ed987f9 100644
--- a/src/components/panel/topicSearch/DischargeSearch.vue
+++ b/src/components/panel/topicSearch/DischargeSearch.vue
@@ -91,7 +91,7 @@
components: {},
data () {
return {
- isPanelVisible: false,
+ isPanelVisible: true,
total: 0,
list: [],
form: {
diff --git a/src/components/panel/topicSearch/SewersSearch.vue b/src/components/panel/topicSearch/SewersSearch.vue
index a3987bf..6fe9340 100644
--- a/src/components/panel/topicSearch/SewersSearch.vue
+++ b/src/components/panel/topicSearch/SewersSearch.vue
@@ -1,9 +1,5 @@
<template>
<div class="sewers-search">
- <div class="el-message-box__header panel_header">
- <div class="el-message-box__title panel_title"><!----><span>{{ title }}</span>
- </div>
- </div>
<div class="el-message-box__content" style="padding:6px;font-size: 13px;">
<div class="box__content" v-if="gdVisible">
<div>
diff --git a/src/components/plugin/FullScreen.js b/src/components/plugin/FullScreen.js
new file mode 100644
index 0000000..888371d
--- /dev/null
+++ b/src/components/plugin/FullScreen.js
@@ -0,0 +1,174 @@
+/* eslint-disable */
+const init = (L) => {
+ (function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD
+ define(['leaflet'], factory)
+ } else if (typeof module !== 'undefined') {
+ // Node/CommonJS
+ // module.exports = factory(require('leaflet'))
+ factory(L)
+ } else {
+ // Browser globals
+ if (typeof window.L === 'undefined') {
+ throw new Error('Leaflet must be loaded first')
+ }
+ factory(window.L)
+ }
+ }(function (L) {
+ L.Control.Fullscreen = L.Control.extend({
+ options: {
+ position: 'topleft',
+ title: {
+ false: 'View Fullscreen',
+ true: 'Exit Fullscreen'
+ }
+ },
+
+ onAdd: function (map) {
+ var container = L.DomUtil.create('div', 'leaflet-control-fullscreen leaflet-bar leaflet-control')
+
+ this.link = L.DomUtil.create('a', 'leaflet-control-fullscreen-button leaflet-bar-part', container)
+ this.link.href = '#'
+
+ this._map = map
+ this._map.on('fullscreenchange', this._toggleTitle, this)
+ this._toggleTitle()
+
+ L.DomEvent.on(this.link, 'click', this._click, this)
+
+ return container
+ },
+
+ _click: function (e) {
+ L.DomEvent.stopPropagation(e)
+ L.DomEvent.preventDefault(e)
+ this._map.toggleFullscreen(this.options)
+ },
+
+ _toggleTitle: function () {
+ this.link.title = this.options.title[this._map.isFullscreen()]
+ }
+ })
+
+ L.Map.include({
+ isFullscreen: function () {
+ return this._isFullscreen || false
+ },
+
+ toggleFullscreen: function (options) {
+ var container = this.getContainer()
+ if (this.isFullscreen()) {
+ if (options && options.pseudoFullscreen) {
+ this._disablePseudoFullscreen(container)
+ } else if (document.exitFullscreen) {
+ document.exitFullscreen()
+ } else if (document.mozCancelFullScreen) {
+ document.mozCancelFullScreen()
+ } else if (document.webkitCancelFullScreen) {
+ document.webkitCancelFullScreen()
+ } else if (document.msExitFullscreen) {
+ document.msExitFullscreen()
+ } else {
+ this._disablePseudoFullscreen(container)
+ }
+ } else {
+ if (options && options.pseudoFullscreen) {
+ this._enablePseudoFullscreen(container)
+ } else if (container.requestFullscreen) {
+ container.requestFullscreen()
+ } else if (container.mozRequestFullScreen) {
+ container.mozRequestFullScreen()
+ } else if (container.webkitRequestFullscreen) {
+ container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)
+ } else if (container.msRequestFullscreen) {
+ container.msRequestFullscreen()
+ } else {
+ this._enablePseudoFullscreen(container)
+ }
+ }
+ },
+
+ _enablePseudoFullscreen: function (container) {
+ L.DomUtil.addClass(container, 'leaflet-pseudo-fullscreen')
+ this._setFullscreen(true)
+ this.fire('fullscreenchange')
+ },
+
+ _disablePseudoFullscreen: function (container) {
+ L.DomUtil.removeClass(container, 'leaflet-pseudo-fullscreen')
+ this._setFullscreen(false)
+ this.fire('fullscreenchange')
+ },
+
+ _setFullscreen: function (fullscreen) {
+ this._isFullscreen = fullscreen
+ var container = this.getContainer()
+ if (fullscreen) {
+ L.DomUtil.addClass(container, 'leaflet-fullscreen-on')
+ } else {
+ L.DomUtil.removeClass(container, 'leaflet-fullscreen-on')
+ }
+ this.invalidateSize()
+ },
+
+ _onFullscreenChange: function (e) {
+ var fullscreenElement =
+ document.fullscreenElement ||
+ document.mozFullScreenElement ||
+ document.webkitFullscreenElement ||
+ document.msFullscreenElement
+
+ if (fullscreenElement === this.getContainer() && !this._isFullscreen) {
+ this._setFullscreen(true)
+ this.fire('fullscreenchange')
+ } else if (fullscreenElement !== this.getContainer() && this._isFullscreen) {
+ this._setFullscreen(false)
+ this.fire('fullscreenchange')
+ }
+ }
+ })
+
+ L.Map.mergeOptions({
+ fullscreenControl: false
+ })
+
+ L.Map.addInitHook(function () {
+ if (this.options.fullscreenControl) {
+ this.fullscreenControl = new L.Control.Fullscreen(this.options.fullscreenControl)
+ this.addControl(this.fullscreenControl)
+ }
+
+ var fullscreenchange
+
+ if ('onfullscreenchange' in document) {
+ fullscreenchange = 'fullscreenchange'
+ } else if ('onmozfullscreenchange' in document) {
+ fullscreenchange = 'mozfullscreenchange'
+ } else if ('onwebkitfullscreenchange' in document) {
+ fullscreenchange = 'webkitfullscreenchange'
+ } else if ('onmsfullscreenchange' in document) {
+ fullscreenchange = 'MSFullscreenChange'
+ }
+
+ if (fullscreenchange) {
+ var onFullscreenChange = L.bind(this._onFullscreenChange, this)
+
+ this.whenReady(function () {
+ L.DomEvent.on(document, fullscreenchange, onFullscreenChange)
+ })
+
+ this.on('unload', function () {
+ L.DomEvent.off(document, fullscreenchange, onFullscreenChange)
+ })
+ }
+ })
+
+ L.control.fullscreen = function (options) {
+ return new L.Control.Fullscreen(options)
+ }
+ }))
+}
+export default {
+ init
+}
diff --git a/src/components/plugin/Leaflet.GridLayer.FadeOut.js b/src/components/plugin/Leaflet.GridLayer.FadeOut.js
new file mode 100644
index 0000000..be038a2
--- /dev/null
+++ b/src/components/plugin/Leaflet.GridLayer.FadeOut.js
@@ -0,0 +1,76 @@
+/* eslint-disable */
+// Adds a fade-out animation to grid layers when they're removed from the map
+
+(function () {
+ var gridProto = L.GridLayer.prototype
+ var onRemoveProto = gridProto.onRemove
+ var onAddProto = gridProto.onAdd
+ var fadeDuration = 200
+
+ L.GridLayer.include({
+
+ onAdd: function (map) {
+ if (this._fadeOutTime) {
+ var now = performance.now() || (+new Date())
+ L.Util.cancelAnimFrame(this._fadeOutFrame)
+ this._fadeOutTime = now + fadeDuration - this._fadeOutTime + now
+ L.Util.requestAnimFrame(this._fadeIn, this)
+ } else {
+ onAddProto.call(this, map)
+ }
+ },
+
+ onRemove: function (map) {
+ if (this._fadeOutTime) {
+ // We're removing this *again* quickly after removing and re-adding
+ var now = performance.now() || (+new Date())
+
+ this._fadeOutTime = now + fadeDuration - this._fadeOutTime + now
+ }
+ this._fadeOutTime = (performance.now() || (+new Date())) + fadeDuration * 2
+ this._fadeOutMap = this._map
+
+ L.Util.requestAnimFrame(this._fadeOut, this)
+ },
+
+ _fadeOut: function () {
+ if (!this._fadeOutTime || !this._container) { return }
+
+ var now = performance.now() || (+new Date())
+
+ var opacity = Math.min((this._fadeOutTime - now) / fadeDuration, 1)
+ // console.log('fadeout:', opacity);
+ if (opacity < 0) {
+ this._fadeOutTime = false
+
+ onRemoveProto.call(this, this._fadeOutMap)
+
+ return
+ }
+
+ L.DomUtil.setOpacity(this._container, opacity * this.options.opacity)
+
+ this._fadeOutFrame = L.Util.requestAnimFrame(this._fadeOut, this)
+ },
+
+ // Only runs when the gridlayer is quickly re-added while it's being faded out
+ _fadeIn: function _fadeIn () {
+ if (!this._fadeOutTime || !this._container) { return }
+
+ var now = performance.now() || (+new Date())
+
+ var opacity = (now - this._fadeOutTime) / fadeDuration
+ // console.log('fadein:', opacity);
+
+ if (opacity > 1) {
+ this._fadeOutTime = false
+ return
+ }
+
+ L.DomUtil.setOpacity(this._container, opacity * this.options.opacity)
+
+ L.Util.requestAnimFrame(this._fadeIn, this)
+ }
+
+ })
+})()
diff --git a/src/conf/MapConfig.js b/src/conf/MapConfig.js
index 4512d66..8e502d3 100644
--- a/src/conf/MapConfig.js
+++ b/src/conf/MapConfig.js
@@ -34,6 +34,7 @@
const mapConfig = {
IsLoadMapByToken: true, // 鏄惁閫氳繃token鍔犺浇鍦板浘
showBaseMapType: 1, // 1鏄剧ず澶╁湴鍥撅紝2鏄剧ずarcgis鍦板浘
+ // defaultBasemapCode: 'tianditu_img', // 榛樿鏄剧ず 鍦板浘绫诲瀷
IntranetBaseMaps: TDT.intranet,
InternetBaseMaps: TDT.internet,
Layers: { LayerSewersLine: [LayerSewersLine], layerSewersPoint: LayerSewersPoint } // 姹¢洦姘村浘灞傞厤缃�
diff --git a/src/conf/TDT.js b/src/conf/TDT.js
index 1c5ad9e..0c5b418 100644
--- a/src/conf/TDT.js
+++ b/src/conf/TDT.js
@@ -4,7 +4,7 @@
const TIANDITU_GIS_TOKEN = '5d76218063082952d18b76da5005f490' // 澶囩敤tk: f1b72b5e7cb1175acddfa485f1bc9770
const intranet = [
{
- code: 'sinopec_img',
+ code: 'tianditu_img',
name: '涓煶鍖栧ぉ鍦板浘褰卞儚',
icon_actived: '/assets/images/map-pages/icon/img.png',
icon_deactived: '/assets/images/map-pages/icon/img.png',
@@ -40,7 +40,7 @@
}
},
{
- code: 'sinopec_vec',
+ code: 'tianditu_vec',
name: '涓煶鍖栧ぉ鍦板浘鐭㈤噺',
icon_actived: '/assets/images/map-pages/icon/road.png',
icon_deactived: '/assets/images/map-pages/icon/road.png',
diff --git a/src/conf/Topic.js b/src/conf/Topic.js
index fb1faa3..a8e25e4 100644
--- a/src/conf/Topic.js
+++ b/src/conf/Topic.js
@@ -4,54 +4,70 @@
icon: '/assets/images/menu/special.png'
}
+export const TopicComp = {
+ dischargeSearch: () => import('@components/panel/topicSearch/DischargeSearch'),
+ envProtectSearch: () => import('@components/panel/topicSearch/EnvProtectSearch'),
+ sewersSearch: () => import('@components/panel/topicSearch/SewersSearch.vue')
+}
+
export const TopicList = [{
name: '姹℃煋婧�',
id: 1,
check: false,
- icon: '/assets/images/menu/special.png'
+ icon: '/assets/images/menu/special.png',
+ comp: 'dischargeSearch'
}, {
name: '搴熸按鐩戞祴',
id: 2,
checked: false,
- icon: '/assets/images/menu/special.png'
+ icon: '/assets/images/menu/special.png',
+ comp: 'envProtectSearch'
}, {
name: '搴熸皵鐩戞祴',
id: 3,
checked: false,
- icon: '/assets/images/menu/special.png'
+ icon: '/assets/images/menu/special.png',
+ comp: 'dischargeSearch'
}, {
name: '鍥哄簾绠$悊',
id: 4,
checked: false,
- icon: '/assets/images/menu/special.png'
+ icon: '/assets/images/menu/special.png',
+ comp: 'envProtectSearch'
}, {
name: '鐜椋庨櫓',
id: 5,
checked: false,
- icon: '/assets/images/menu/special.png'
+ icon: '/assets/images/menu/special.png',
+ comp: 'dischargeSearch'
}, {
name: '鍦熷¥鍙婂湴涓嬫按',
id: 6,
checked: false,
- icon: '/assets/images/menu/special.png'
+ icon: '/assets/images/menu/special.png',
+ comp: 'dischargeSearch'
}, {
name: '姹¢洦姘寸缃�',
id: 7,
checked: false,
- icon: '/assets/images/menu/special.png'
+ icon: '/assets/images/menu/special.png',
+ comp: 'envProtectSearch'
}, {
name: '棰勮鎶ヨ',
id: 8,
checked: false,
- icon: '/assets/images/menu/special.png'
+ icon: '/assets/images/menu/special.png',
+ comp: 'sewersSearch'
}, {
name: '鎸囨爣缁熻',
id: 9,
checked: false,
- icon: '/assets/images/menu/special.png'
+ icon: '/assets/images/menu/special.png',
+ comp: 'envProtectSearch'
}, {
name: '搴旀�ュ湴鍥�',
id: 10,
checked: false,
- icon: '/assets/images/menu/special.png'
+ icon: '/assets/images/menu/special.png',
+ comp: 'sewersSearch'
}]
diff --git a/src/main.js b/src/main.js
index 95591a3..28cfbd5 100644
--- a/src/main.js
+++ b/src/main.js
@@ -12,6 +12,7 @@
import L from 'leaflet'
import 'leaflet.markercluster'
import 'leaflet-canvas-markers'
+import './components/plugin/Leaflet.GridLayer.FadeOut'
Vue.config.productionTip = false
Vue.use(ElementUI)
diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue
index a1c32db..a98e84c 100644
--- a/src/views/MapTemplate.vue
+++ b/src/views/MapTemplate.vue
@@ -1,19 +1,19 @@
<template>
- <div class="full-screen">
- <popup ref="popup" @callPopup="callPopup"></popup>
- <div id="map" ref="rootmap">
- </div>
- <sgis-layer-controller :preset="'warningPreset'">
- <lc-basemap></lc-basemap>
- <!-- <div class="barline"></div>-->
- <lc-service-layer class="barline" v-if="lcServiceLayerVisible"></lc-service-layer>
- </sgis-layer-controller>
- <monitor-panel></monitor-panel>
-<!-- <top-enterprise-panel></top-enterprise-panel>-->
- <tool-box-panel></tool-box-panel>
- <menu-special></menu-special>
- <legend-panel></legend-panel>
+ <div class="full-screen">
+ <popup ref="popup" @callPopup="callPopup"></popup>
+ <div id="map" ref="rootmap">
</div>
+ <sgis-layer-controller :preset="'warningPreset'">
+ <lc-basemap></lc-basemap>
+ <!-- <div class="barline"></div>-->
+ <lc-service-layer class="barline" v-if="lcServiceLayerVisible"></lc-service-layer>
+ </sgis-layer-controller>
+ <monitor-panel></monitor-panel>
+ <!-- <top-enterprise-panel></top-enterprise-panel>-->
+ <tool-box-panel :map="this.map"></tool-box-panel>
+ <menu-special></menu-special>
+ <legend-panel></legend-panel>
+ </div>
</template>
<script>
@@ -134,23 +134,23 @@
<style lang="less">
- .full-screen {
- width: 100%;
- height: 100%;
- margin: 0;
- padding: 0;
- position: absolute;
+.full-screen {
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ position: absolute;
- #map {
- height: 100%;
- width: 100%;
- }
+ #map {
+ height: 100%;
+ width: 100%;
+ }
- .barline {
- //width: 100%;
- //height: 1px;
- //background-color: #0661AE;
- border-top: 1px solid #0661AE;
- }
- }
-</style>>
+ .barline {
+ //width: 100%;
+ //height: 1px;
+ //background-color: #0661AE;
+ border-top: 1px solid #0661AE;
+ }
+}
+</style>
--
Gitblit v1.8.0