From da21171cc9b248ad9c7f062e41f039eceb910c23 Mon Sep 17 00:00:00 2001 From: YANGDL <114714267@qq.com> Date: 星期六, 09 一月 2021 14:08:19 +0800 Subject: [PATCH] 优化天地图矢量瓦片切换 --- src/components/LayerController/modules/LcBaseMap.vue | 112 +++++++++++++++++++++++++++++-------------------------- 1 files changed, 59 insertions(+), 53 deletions(-) diff --git a/src/components/LayerController/modules/LcBaseMap.vue b/src/components/LayerController/modules/LcBaseMap.vue index 315c641..e5af6f2 100644 --- a/src/components/LayerController/modules/LcBaseMap.vue +++ b/src/components/LayerController/modules/LcBaseMap.vue @@ -1,85 +1,91 @@ <template> - <div class="inner-panel" v-show="isShow"> - <div v-for="item in basemapList" :key="item.code" class="basemap-layer-item"> - <div style="display: flex;"> - <el-checkbox :src="item.conf.icon_actived" style="display: flex;" name="basemap" v-model="selectedBasemap" - :value="item.code" label="item.code" @change="changeBasemap">鏍囨敞 + <div class="base-map-inner-panel" v-show="isShow"> + <div style="display: flex;" v-for="item in basemapList" :key="item.code" class="basemap-layer-item"> + <img class="base-map-img" :src="item.conf.icon_actived" width="50" height="50" :title="item.name" + @click="changeBasemap(item)"/> + <el-checkbox class="base-map-anno" name="basemap" v-model="item.conf.annotationCheck" + label="鏍囨敞" @change="changeBasemap(item)"> </el-checkbox> - <img style="position: absolute;" :src="item.conf.icon_actived" width="50" height="50" :title="item.name" - @click="changeBasemap"/> - </div> - - - <!-- <input style="position: absolute;" type="radio" name="basemap" v-model="selectedBasemap" :value="item.code" title="鏄剧ず鏍囨敞" @change="changeBasemap"/>鏍囨敞--> - </div> </div> </template> - <script> export default { - name: "LcBaseMap", + name: 'LcBaseMap', components: {}, - data() { + data () { return { isShow: true, - basemapList: [], - selectedBasemap: "tianditu_img", - }; + basemapList: [] + } }, computed: { - basemapHelper() { + basemapHelper () { return this.$store.state.map.basemapHelper } }, - mounted() { + mounted () { }, methods: { - toggleShow() { - this.isShow = !this.isShow + updateBasemapList () { + this.basemapList = this.basemapHelper.getBasemapList() }, - updateBasemapList() { - let list = this.basemapHelper.getBasemapList(); - this.basemapList = list; - }, - changeBasemap() { - this.basemapHelper.showBasemap(this.selectedBasemap, true) - }, + changeBasemap (itm) { + const code = itm.code + this.basemapList.forEach((item) => { + if (item.code === code) { + this.basemapHelper.showBasemap(item.code, item.conf.annotationCheck, true) + this.basemapHelper.getBasemapList().forEach((item) => { + item.layer.bringToBack() + }) + } + }) + } }, watch: { - basemapHelper(newVal) { + basemapHelper (newVal) { if (newVal != null) { - this.updateBasemapList(); + this.updateBasemapList() } - }, - }, -}; + } + } +} </script> -<style scoped lang="less"> -.inner-panel { +<style lang="less"> +.base-map-inner-panel { display: flex; justify-content: center; align-items: center; -} -.basemap-layer-item { - display: flex; - width: 50px; - height: 50px; - margin: 10px; - border: 2px solid white; - - input { - position: relative; - left: 0px; - top: -53px; + .base-map-img{ + position: absolute; } - - .basemap-layer-item-name { - position: relative; - left: 0px; - top: -53px; + .base-map-img:hover{ + cursor:pointer; + } + .base-map-anno{ + position: absolute;margin-left: 2px;background-color: rgba(0,0,0,.5);color: white; + .el-checkbox__label{ + padding-left: 5px !important; + } + } + .basemap-layer-item { + display: flex; + width: 50px; + height: 50px; + margin: 10px; + border: 2px solid white; + input { + position: relative; + left: 0; + top: -53px; + } + .basemap-layer-item-name { + position: relative; + left: 0; + top: -53px; + } } } </style> -- Gitblit v1.8.0