From 9eb0c9993a0be2fbb00813b7c7b0c0f2a096999c Mon Sep 17 00:00:00 2001
From: zhangshuaibao <15731629597@163.com>
Date: 星期三, 17 三月 2021 18:04:46 +0800
Subject: [PATCH] 完善左上角工具栏的点击问题
---
src/components/panel/ToolBoxPanel.vue | 84 ++++++++++++++++++++++++++----------------
1 files changed, 52 insertions(+), 32 deletions(-)
diff --git a/src/components/panel/ToolBoxPanel.vue b/src/components/panel/ToolBoxPanel.vue
index 9f89a0c..8db22bb 100644
--- a/src/components/panel/ToolBoxPanel.vue
+++ b/src/components/panel/ToolBoxPanel.vue
@@ -1,11 +1,11 @@
<template>
<div class="left-top-toolbox-panel">
<div class="specific-tools">
- <el-button @click="changeSelect" v-show="selectGroup">
+ <el-button class="el-button-choice" @click="changeSelect" v-show="selectGroup">
<img src="@assets/images/map-pages/icon/toolbox/tool.png" alt="">
<span>宸ュ叿</span>
</el-button>
- <el-button @click="changeSelect" v-show="!selectGroup">
+ <el-button class="el-button-choice" @click="changeSelect" v-show="!selectGroup">
<img src="@assets/images/map-pages/icon/toolbox/Selecd/tool.png" alt="">
<a>宸ュ叿</a>
</el-button>
@@ -20,13 +20,13 @@
>
<el-button slot="reference" class="el-button" :class="active === index ? 'tools-panel-choose':''"
@click="changeChoose(index)">
- <img :src="item.iconSelecd" alt="" v-if="active === index"/>
+ <img :src="item.iconSelecd" alt="" v-if="active === index && checked === true"/>
<img :src="item.icon" alt="" v-else/>
<span>{{ item.label }}</span>
</el-button>
<el-button v-for="(itemT,indexT) in item.items" :key="indexT" @click="choiceItem(itemT,indexT)"
v-show="item.index!=='2'">
- <img :src="itemT.iconChoose" :title="itemT.title" v-if="Selecd === indexT"/>
+ <img :src="itemT.iconChoose" :title="itemT.title" v-if="Selecd === indexT && checked === true"/>
<img :src="itemT.icon" :title="itemT.title" v-else/>
</el-button>
<div class="base-map-inner-panel" v-show="!isShow&&item.index==='2'">
@@ -40,7 +40,7 @@
</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>
+ <i class="el-icon-d-arrow-left"></i>
</el-button>
</el-row>
</transition>
@@ -92,6 +92,8 @@
name: 'ToolBoxPanel',
data () {
return {
+ checked: false,
+ checkbuuton: -1,
isShow: true,
currentBaseMapCode: 'tianditu_img',
basemapList: [],
@@ -242,8 +244,9 @@
],
selectGroup: false,
drawLayer: null,
+ drawLayerArray: [],
map: null,
- L: window.L,
+ // L: window.L,
active: -1,
Selecd: -1
}
@@ -287,9 +290,18 @@
if (this.drawLayer == null) {
this.drawLayer = this.L.layerGroup().addTo(this.map)
}
+ if (this.checkbuuton === index) {
+ this.checked = !this.checked
+ } else {
+ if (this.checkbuuton === -1) {
+ this.checked = !this.checked
+ } else {
+ this.checked = true
+ }
+ }
+ this.checkbuuton = index
},
choiceItem (itemT, indexT) {
- // console.log(itemT.label)
this.Selecd = indexT
switch (itemT.label) {
case '鐐规爣缁�':
@@ -299,33 +311,34 @@
iconAnchor: [13, 16],
popupAnchor: [26, -32]
})
- var drawLayer = this.map.editTools.startMarker()
- drawLayer.setIcon(myIcon)
- this.drawLayer.addLayer(drawLayer)
- this.setLogic(drawLayer)
+ this.drawLayer = this.map.editTools.startMarker()
+ this.drawLayer.setIcon(myIcon)
+ this.drawLayerArray.push(this.drawLayer)
break
case '绾挎爣缁�':
- var drawLayerLine = this.map.editTools.startPolyline()
- this.drawLayer.addLayer(drawLayerLine)
- this.setLogic(drawLayerLine)
+ this.drawLayer = this.map.editTools.startPolyline()
+ this.drawLayerArray.push(this.drawLayer)
+ this.setLogic()
break
case '澶氳竟褰�':
- var drawLayerPolygonD = this.map.editTools.startPolygon()
- this.drawLayer.addLayer(drawLayerPolygonD)
- this.setLogic(drawLayerPolygonD)
+ this.drawLayer = this.map.editTools.startPolygon()
+ this.drawLayerArray.push(this.drawLayer)
+ this.setLogic()
break
case '鐭╁舰':
- var drawLayerPolygonJ = this.map.editTools.startRectangle()
- this.drawLayer.addLayer(drawLayerPolygonJ)
- this.setLogic(drawLayerPolygonJ)
+ this.drawLayer = this.map.editTools.startRectangle()
+ this.drawLayerArray.push(this.drawLayer)
+ this.setLogic()
break
case '鍦嗗舰':
- var drawLayerPolygonY = this.map.editTools.startCircle()
- this.drawLayer.addLayer(drawLayerPolygonY)
- this.setLogic(drawLayerPolygonY)
+ this.drawLayer = this.map.editTools.startCircle()
+ this.drawLayerArray.push(this.drawLayer)
+ this.setLogic()
break
case '鍒犻櫎':
- this.drawLayer.clearLayers()
+ for (let i = 0; i < this.drawLayerArray.length; i++) {
+ this.map.removeLayer(this.drawLayerArray[i])
+ }
break
case '娓呴櫎':
Measure.clearMeasure(this.map, this.L)
@@ -366,18 +379,16 @@
break
}
},
- setLogic (layer) {
- layer.on('dblclick', this.L.DomEvent.stop).on('dblclick', layer.toggleEdit)
- layer.setStyle({
- color: 'red',
- fillColor: '#ffffff',
- fillOpacity: 0.1,
- fill: true
+ setLogic () {
+ this.drawLayer.on('dblclick', this.L.DomEvent.stop).on('dblclick', this.drawLayer.toggleEdit)
+ this.drawLayer.setStyle({
+ color: 'red'
})
},
changeSelect () {
this.selectGroup = !this.selectGroup
this.isShow = !this.isShow
+ this.checked = false
}
}
}
@@ -426,7 +437,6 @@
span {
display: block;
- font-size: 0.012rem;
color: @color-tool;
}
@@ -436,6 +446,16 @@
}
}
+ .el-button-choice {
+ z-index: 999;
+ padding: 0;
+ margin: 0 0.015rem;
+ width: 45px;
+ height: 45px;
+ background: @background-color-tools;
+ border: 1px solid @color-shadow;
+ }
+
.specific-tools-group {
z-index: 1;
//.tools-panel-content {
--
Gitblit v1.8.0