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