From 68d9f6b85690aa6402a69a1bc748be7129f39ed1 Mon Sep 17 00:00:00 2001 From: chenzeping <ChenZeping02609@163.com> Date: 星期一, 12 四月 2021 17:42:12 +0800 Subject: [PATCH] 功能底图切换标注 --- src/components/LayerController/modules/LcBaseMap.vue | 107 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 81 insertions(+), 26 deletions(-) diff --git a/src/components/LayerController/modules/LcBaseMap.vue b/src/components/LayerController/modules/LcBaseMap.vue index e86d7c1..87c3621 100644 --- a/src/components/LayerController/modules/LcBaseMap.vue +++ b/src/components/LayerController/modules/LcBaseMap.vue @@ -1,46 +1,101 @@ <template> -<div class="inner-panel"> - <div v-for="item in basemapList" :key="item.code" class="basemap-layer-item"> - <img src="" width="40" height="40" :title="item.name"/> - <input type="checkbox" title="鏄剧ず鏍囨敞" /> + <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)" alt=""/> + <el-checkbox class="base-map-anno" name="basemap" v-model="item.conf.annotationCheck" + label="鏍囨敞" @change="changeBasemap(item)"> + </el-checkbox> </div> -</div> + </div> </template> - <script> export default { name: 'LcBaseMap', components: {}, - porps:['helper'], - data() { + data () { return { - basemapHelper:null, - basemapList:[] + isShow: true, + currentBaseMapCode: 'tianditu_img', + basemapList: [] } }, - mounted(){ - // console.log('03姝ラ锛�', this.helper) + computed: { + basemapHelper () { + return this.$store.state.map.basemapHelper + } }, - methods:{ -init(basemapHelper){ - console.log('03姝ラ锛�', this.helper) - console.log(basemapHelper) - this.basemapHelper =basemapHelper -} + mounted () { + }, + methods: { + updateBasemapList () { + this.basemapList = this.basemapHelper.getBasemapList() + // console.log(this.basemapList) + }, + changeBasemap (itm) { + // console.log(itm) + const code = itm.code + this.basemapList.forEach((item) => { + if (item.code === code) { + // 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() + }) + } + }) + } + }, + watch: { + basemapHelper (newVal) { + if (newVal != null) { + this.updateBasemapList() + } + } } } </script> -<style scoped lang="less"> -.inner-panel{ +<style lang="less"> +.base-map-inner-panel { + display: flex; + justify-content: center; + align-items: center; + + .base-map-img{ + position: absolute; + } + .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; - justify-content: center; - align-items: center; -} -.basemap-layer-item{ - width: 40px; - height: 40px; + 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