From 0dce54d925077001ae9cb1ed99c5b9db645e7df6 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 20 Sep 2022 14:35:14 +0800
Subject: [PATCH] 任务管理画图时添加提示,修改按钮样式

---
 src/components/OpenLayersMap/index.vue |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 51 insertions(+), 9 deletions(-)

diff --git a/src/components/OpenLayersMap/index.vue b/src/components/OpenLayersMap/index.vue
index 858dfa2..6657d14 100644
--- a/src/components/OpenLayersMap/index.vue
+++ b/src/components/OpenLayersMap/index.vue
@@ -1,14 +1,16 @@
 <template>
   <div>
     <div id='map' style='width: 100%; height: 400px'>
-      <div style="position: absolute;right:12px;top:12px;z-index: 999999">
+      <div style="position: absolute;right:40%;top:-1%;z-index: 999999">
         <p style="margin-top: 10px">
-          <Button type="primary" size="small" @click="point()">绘制点</Button>
-          <Button type="primary" size="small" @click="polygon()">绘制面</Button>
-          <Button type="warning" size="small" @click="clearDraw()">重置</Button>
+          <el-button type="primary" size="small" @click="point()">绘制路线</el-button>
+          <el-button type="danger" size="small" @click="clearDraw()">重置</el-button>
         </p>
       </div>
-
+      <!--画线后的提示-->
+      <div class="mapTip" v-if="showTip" :style="{ top: tipPosition.h + 'px', left: tipPosition.w + 'px' }">
+        {{ tipTitle }}
+      </div>
     </div>
   </div>
 </template>
@@ -42,6 +44,12 @@
       lineVector: null,
       coordinates: [],// 保存绘画坐标地址   [[115.90490549080435, 28.746101718722358],[115.93151300423209, 28.741123538790717]]
       toData: null,// 保存数据库格式坐标地址
+      showTip:false,
+      tipPosition: {//提示的位置
+        w: 200,
+        h: 10,
+      },
+      tipTitle:null
     }
   },
   methods: {
@@ -145,6 +153,16 @@
       _this.coordinates = []
       _this.map.removeInteraction(_this.draw)
       _this.lineVector.getSource().clear()
+      //提示
+      if(!_this.showTip){
+        _this.showTip = true
+      }
+      _this.tipTitle = "单击左键开始绘画";
+      //提示器
+      $("#map").off("mousemove").mousemove(function (e) {
+        _this.setTipPosition(e.offsetX, e.offsetY, 5, 5);
+      });
+
       _this.draw = new Draw({
         source: _this.lineVector.getSource(),
         type: 'LineString',
@@ -156,20 +174,24 @@
         }),
       })
       _this.map.addInteraction(_this.draw)
-
       // 点击事件
       _this.map.on('click', function (e) {
         // 将点坐标保存集合
         _this.coordinates.push(e.coordinate)
+        _this.tipTitle = "可继续,或单击鼠标结束";
       })
       // 结束事件
       _this.draw.on('drawend', function () {
+
         _this.map.removeInteraction(_this.draw);
         _this.lineVector.setStyle(_this.styleFunction())// 路线画好之后的样式
         // 将点坐标集合转换为数据库数据
         let toData = _this.doData(_this.coordinates)
         // 传值给父组件
         _this.$emit('toData',toData)
+        //隐藏提示
+        _this.tipTitle = null;
+        _this.showTip = false
       })
     },
     // 设置统一控制点击事件,需要画图方式在此处切换
@@ -295,7 +317,14 @@
 
       this.map.addLayer(clusters)
     },
-
+    clearDraw(){
+      let _this = this
+      _this.coordinates = []
+      _this.map.removeInteraction(_this.draw)
+      _this.lineVector.getSource().clear()
+      _this.showTip = false
+      _this.tipTitle = null
+    },
     // 获取新的 layer 图层对象
     getLayer() {
       return new VectorLayer({
@@ -316,7 +345,13 @@
         //   return style
         // }
       })
-    }
+    },
+    //设置提示位置
+    setTipPosition(x, y, n, m) {
+      let _this = this
+      _this.tipPosition.w = x + n;
+      _this.tipPosition.h = y + m;
+    },
   },
   mounted() {
     this.createMap()
@@ -326,5 +361,12 @@
 </script>
 
 <style>
-
+.mapTip {
+  background-color: rgb(168, 168, 168);
+  padding: 5px;
+  border: 1px solid #000;
+  position: absolute;
+  z-index: 10 !important;
+  border-radius: 5px;
+}
 </style>

--
Gitblit v1.9.3