From 5da0c684f867d6868b011656a6a728e5c2869df2 Mon Sep 17 00:00:00 2001
From: wangqi <magical1908@outlook.com>
Date: 星期二, 16 三月 2021 14:52:19 +0800
Subject: [PATCH] 工具地图影像图 矢量图完成
---
src/components/panel/ToolBoxPanel.vue | 129 ++++++++++++++++++++++++++++++++++++-------
1 files changed, 108 insertions(+), 21 deletions(-)
diff --git a/src/components/panel/ToolBoxPanel.vue b/src/components/panel/ToolBoxPanel.vue
index 8433648..3b1ab92 100644
--- a/src/components/panel/ToolBoxPanel.vue
+++ b/src/components/panel/ToolBoxPanel.vue
@@ -8,7 +8,7 @@
<el-row v-show="selectGroup" class="specific-tools-group">
<el-popover
placement="bottom"
- width=""
+ width="100%"
trigger="click"
:popper-class="'tools-panel-content'"
v-for="(item,index) in menuList" :key="index"
@@ -18,14 +18,23 @@
<img :src="item.icon" alt=""/>
<span>{{ item.label }}</span>
</el-button>
- <el-button v-for="(itemT,indexT) in item.items" :key="indexT" @click="choiceItem(itemT)">
- <img :src="itemT.icon" alt=""/>
+ <el-button v-for="(itemT,indexT) in item.items" :key="indexT" @click="choiceItem(itemT)" v-show="item.index!=='2'">
+ <img :src="itemT.icon" :title="itemT.title" v-show="item.index!=='2'"/>
</el-button>
+ <div class="base-map-inner-panel" v-show="isShow&&item.index==='2'">
+ <div v-for="item in basemapList" :key="item.code" class="basemap-layer-item">
+ <img class="base-map-img" width="50" height="50" :src="item.conf.icon_actived" :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>
+ </div>
+ </div>
</el-popover>
+ <el-button @click="changeSelect" class="special-button">
+ <i :class="selectGroup === false ? 'el-icon-d-arrow-right':'el-icon-d-arrow-left'"></i>
+ </el-button>
</el-row>
- <el-button @click="changeSelect" class="special-button">
- <i :class="selectGroup === false ? 'el-icon-d-arrow-right':'el-icon-d-arrow-left'"></i>
- </el-button>
</div>
</div>
</template>
@@ -49,17 +58,15 @@
// 娴嬮噺鐨勬柟娉�
import Measure from '@/components/plugin/MeaSure'
-// import '@/components/plugin/leaflet-measure-path/leaflet-measure-path.css'
-// 灏佽鐨勯�夋嫨寮规
-// import BaseNavMenuItem from '@components/panel/BaseNavMenuItem'
-// 鏍囨敞鐨勬柟娉�
-// import MakeTation from '@components/plugin/MakeTation'
export default {
name: 'ToolBoxPanel',
// components: { BaseNavMenuItem },
data () {
return {
+ isShow: true,
+ currentBaseMapCode: 'tianditu_img',
+ basemapList: [],
menuList: [
{
icon: plot,
@@ -69,27 +76,32 @@
{
index: '1-1',
label: '鐐规爣缁�',
- icon: marker
+ icon: marker,
+ title: '鐐规爣缁�'
},
{
index: '1-2',
label: '绾挎爣缁�',
- icon: line
+ icon: line,
+ title: '绾挎爣缁�'
},
{
index: '1-4',
label: '澶氳竟褰�',
- icon: polygonJ
+ icon: polygonJ,
+ title: '澶氳竟褰�'
},
{
index: '1-5',
label: '鐭╁舰',
- icon: polygonS
+ icon: polygonS,
+ title: '鐭╁舰'
},
{
index: '1-3',
label: '鍦嗗舰',
- icon: polygonY
+ icon: polygonY,
+ title: '鍦嗗舰'
}
]
},
@@ -101,12 +113,14 @@
{
index: '3-1',
label: '璺濈',
- icon: distance
+ icon: distance,
+ title: '璺濈娴嬮噺'
},
{
index: '3-2',
label: '闈㈢Н',
- icon: mm
+ icon: mm,
+ title: '闈㈢Н娴嬮噺'
}
]
},
@@ -154,15 +168,21 @@
items: [
{
index: '4-1',
- label: '鍏ㄥ睆'
+ label: '鍏ㄥ睆',
+ icon: '',
+ title: '鍏ㄥ睆'
},
{
index: '4-2',
- label: 'A4妯悜'
+ label: 'A4妯悜',
+ icon: '',
+ title: 'A4妯悜'
},
{
index: '4-3',
- label: 'A4绾靛悜'
+ label: 'A4绾靛悜',
+ icon: '',
+ title: 'A4绾靛悜'
}
]
}
@@ -174,7 +194,40 @@
active: 0
}
},
+ computed: {
+ basemapHelper () {
+ return this.$store.state.map.basemapHelper
+ }
+ },
+ watch: {
+ basemapHelper (newVal) {
+ if (newVal != null) {
+ this.updateBasemapList()
+ }
+ }
+ },
methods: {
+ updateBasemapList () {
+ this.basemapList = this.basemapHelper.getBasemapList()
+ },
+ changeBasemap (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()
+ })
+ }
+ })
+ },
changeChoose (index) {
this.active = index
},
@@ -207,6 +260,34 @@
break
case '闈㈢Н':
Measure.startMeasureArea(this.map, this.L)
+ break
+ case '鍏ㄥ睆':
+ // this.map.toggleFullscreen()
+ var printer = this.L.easyPrint({
+ sizeModes: ['Current', 'A4Landscape', 'A4Portrait'],
+ filename: 'map_image',
+ exportOnly: true,
+ hideControlContainer: true
+ }).addTo(this.map)
+ printer.printMap('CurrentSize', 'MyManualPrint')
+ break
+ case 'A4妯悜':
+ var printerX = this.L.easyPrint({
+ sizeModes: ['Current', 'A4Landscape', 'A4Portrait'],
+ filename: 'map_image',
+ exportOnly: true,
+ hideControlContainer: true
+ }).addTo(this.map)
+ printerX.printMap('A4Landscape page', 'MyManualPrint')
+ break
+ case 'A4绾靛悜':
+ var printerY = this.L.easyPrint({
+ sizeModes: ['Current', 'A4Landscape', 'A4Portrait'],
+ filename: 'map_image',
+ exportOnly: true,
+ hideControlContainer: true
+ }).addTo(this.map)
+ printerY.printMap('A4Portrait page', 'MyManualPrint')
break
}
},
@@ -302,6 +383,12 @@
height: 45px;
background: @background-color-tools;
border: none;
+ .base-map-img{
+ position: absolute;
+ }
+ .base-map-img:hover{
+ cursor:pointer;
+ }
img {
width: 22px;
--
Gitblit v1.8.0