From 6cdcf30b52502fa2b7db21064c40b7193bf7e25f Mon Sep 17 00:00:00 2001 From: YANGDL <114714267@qq.com> Date: 星期四, 25 二月 2021 10:55:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/MapTemplate.vue | 177 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 131 insertions(+), 46 deletions(-) diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue index 9dfea6c..b7bac3b 100644 --- a/src/views/MapTemplate.vue +++ b/src/views/MapTemplate.vue @@ -1,67 +1,152 @@ <template> - <div class="full-screen"> - <div id="map" ref="rootmap"></div> - <sgis-layer-controller :preset="'warningPreset'"></sgis-layer-controller> + <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> - </div> + <top-enterprise-panel></top-enterprise-panel> + <tool-box-panel></tool-box-panel> + <menu-special></menu-special> + </div> </template> <script> import 'leaflet/dist/leaflet.css' import Sgis from '@src/Sgis' -import mapConfig from '@/conf/MapConfig' +// import mapConfig from '@/conf/MapConfig' import SgisLayerController from '@components/LayerController/LayerController' -import MonitorPanel from '@components/panel/MonitorPanel' -import { mapMutations, mapState } from 'vuex' +import LcBasemap from '@components/LayerController/modules/LcBaseMap' +import LcServiceLayer from '@components/LayerController/modules/LcServiceLayer' +import MonitorPanel from '@components/panel/RightSearchPanel' +import TopEnterprisePanel from '@components/panel/TopEnterprisePanel' +import ToolBoxPanel from '@components/panel/ToolBoxPanel' +import Popup from '@views/popup/Popup' +import MenuSpecial from '@components/panel/MenuSpecial' export default { name: 'MapTemplate', - components: {SgisLayerController, MonitorPanel}, - datas:{ - ...mapState("/",{}) + components: { + MenuSpecial, + ToolBoxPanel, + TopEnterprisePanel, + SgisLayerController, + MonitorPanel, + LcBasemap, + LcServiceLayer, + Popup }, - mounted(){ - this.$nextTick(() => { - this.init() + data () { + return { + map: null, + lcServiceLayerVisible: false, + basemapHelper: {}, + serviceLayerHelper: {}, + vectorLayerHelper: {} + } + }, + computed: { + config () { + return this.$store.state.map.config + } + }, + beforeMount () { + this.$nextTick(() => { + this.init() + }) + }, + methods: { + saveMapStatus () { + window.serviceLayerHelper = this.serviceLayerHelper + this.$store.commit('setMapObj', this.map) + this.$store.commit('setBasemapHelper', this.basemapHelper) + // this.$store.commit('setServiceLayerHelper', this.serviceLayerHelper) + this.$store.commit('setVectorLayerHelper', this.vectorLayerHelper) + + this.lcServiceLayerVisible = true + }, + init () { + const mapcontainer = this.$refs.rootmap + this.map = Sgis.initMap(mapcontainer) + + this.basemapHelper = Sgis.initBasemapsHelper(this.map) // 鍒濆鍖栧熀纭�搴曞浘鍔╂墜 + this.basemapHelper.initBasemap(this.config, false) // 绗簩涓弬鏁帮紝琛ㄧず鏄惁鍐呯綉搴曞浘 + + this.serviceLayerHelper = Sgis.initTileLayersHelper(this.map) // 鍒濆鍖栦笟鍔″簳鍥惧姪鎵� + this.serviceLayerHelper.initServiceLayers(this.config) + + this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵� + this.vectorLayerHelper.initVectorLayers(this.config) + + this.saveMapStatus() + // this.setMapObj(this.mapObj) + // this.setBasemapHelper(this.basemapHelper) + // this.setServiceLayerHelper(this.serviceLayerHelper) + // this.setVectorLayerHelper(this.vectorLayerHelper) + this.addMarker() + }, + addMarker () { + const L = this.L + var icon = new L.Icon({ + iconUrl: 'assets/images/map/marker-icon.png', + shadowUrl: 'assets/images/map/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] }) - }, - methods:{ - ...mapMutations({ - setMapObj: 'setMapObj', - setLayerHelper: 'setLayerHelper' - }), - init() { - const mapcontainer = this.$refs.rootmap - this.mapObj = Sgis.initMap(mapcontainer) + var marker = L.marker([32.2221, 118.7843], { + icon: icon + }).addTo(this.map) + .bindPopup(() => this.$refs.popup.$el, { + className: 's-map-popup', + minWidth: 300, + closeButton: false, + autoClose: false + }) + .bindTooltip('瀛椾綋鍏夋檿鏁堟灉t.', { + // permanent : true, + offset: [0, 0], // 鍋忕Щ + direction: 'right', // 鏀剧疆浣嶇疆 + // sticky:true,//鏄惁鏍囪鍦ㄧ偣涓婇潰 + className: 'anim-tooltip'// CSS鎺у埗 + }) - this.basemapHelper = Sgis.initBasemapsHelper(this.mapObj.map, this.mapObj.L) // 鍒濆鍖栧熀纭�搴曞浘鍔╂墜 - this.basemapHelper.initBasemap(mapConfig, false) // 绗簩涓弬鏁帮紝琛ㄧず鏄惁鍐呯綉搴曞浘 - - - this.serviceLayerHelper = Sgis.initTileLayersHelper(this.mapObj.map, this.mapObj.L) // 鍒濆鍖栦笟鍔″簳鍥惧姪鎵� - this.serviceLayerHelper.initServiceLayers(mapConfig) - - this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.mapObj.map, this.mapObj.L) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵� - this.vectorLayerHelper.initVectorLayers(mapConfig) - - this.setLayerHelper(this.vectorLayerHelper) - return this.map - } + marker.on('popupopen', this.onLayerClick) + }, + onLayerClick () { + this.$refs.popup.setShow() + }, + callPopup (val) { + console.log(val) + } } } </script> <style lang="less"> -.full-screen{ - width: 100%; - height: 100%; - margin: 0; - padding: 0; - position: absolute; - #map{ - height: 100%; - width: 100%; - } -} + .full-screen { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + position: absolute; + + #map { + height: 100%; + width: 100%; + } + + .barline { + //width: 100%; + //height: 1px; + //background-color: #0661AE; + border-top: 1px solid #0661AE; + } + } </style>> -- Gitblit v1.8.0