From 829f5116884f98643ffc5b2a548a600d40c0cedb Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 14 四月 2025 23:09:32 +0800
Subject: [PATCH] 处理图片显示问题

---
 src/views/systemSetting/device/grid/components/components/map.vue |  122 +++++++++++++++++++++++++++++-----------
 1 files changed, 87 insertions(+), 35 deletions(-)

diff --git a/src/views/systemSetting/device/grid/components/components/map.vue b/src/views/systemSetting/device/grid/components/components/map.vue
index 0a4fd03..b954da3 100644
--- a/src/views/systemSetting/device/grid/components/components/map.vue
+++ b/src/views/systemSetting/device/grid/components/components/map.vue
@@ -1,5 +1,27 @@
 <template>
-  <div id="container"></div>
+  <div>
+    <div id="container"></div>
+    <div class="optionBtn">
+      <el-button
+        type="primary"
+        class="btn submit"
+        @click.native.prevent="handleRanging"
+        >娴嬭窛
+      </el-button>
+      <el-button
+        type="primary"
+        class="btn submit"
+        @click.native.prevent="handleDraw"
+        >鐢荤嚎
+      </el-button>
+      <el-button
+        type="primary"
+        class="btn submit"
+        @click.native.prevent="handleDelete"
+        >鍒犻櫎
+      </el-button>
+    </div>
+  </div>
 </template>
 <script>
 import AMapLoader from "@amap/amap-jsapi-loader";
@@ -7,33 +29,56 @@
   data() {
     return {
       map: null,
+      mouseTool: null,
+      ruler: null,
       _point: { x: "119.27179890", y: "28.59027084" },
       _zoom: 15,
     };
   },
-  created() {
-  },
+  created() {},
   methods: {
     locationMap() {
       const that = this;
-        that.map.setZoomAndCenter(that.zoom, [that.point.x, that.point.y]);
-        if (that.mark) {
-          // 鍒涘缓涓�涓� Marker 瀹炰緥锛�
-          var marker = new AMap.Marker({
-            position: new AMap.LngLat(that._point.x, that._point.y), // 缁忕含搴﹀璞★紝涔熷彲浠ユ槸缁忕含搴︽瀯鎴愮殑涓�缁存暟缁刐116.39, 39.9]
-            title: that.mark.title,
-          });
+      that.zoom = that.zoom || that._zoom;
+      that.point = that.point || that._point;
+      that.map.setZoomAndCenter(that.zoom, [that.point.x, that.point.y]);
 
-          // 灏嗗垱寤虹殑鐐规爣璁版坊鍔犲埌宸叉湁鐨勫湴鍥惧疄渚嬶細
-          that.map.add(marker);
-          marker.on('click',function(e){
-            console.log('666')
-            that.$emit('fatherMethod')
-            // that.$parent.fatherMethod();
+      if (this.region) {
+        let polygon = new AMap.Polygon({
+          path: eval(this.region),
+          fillColor: "#ccebc5",
+          strokeOpacity: 1,
+          fillOpacity: 0.5,
+          strokeColor: "#2b8cbe",
+          strokeWeight: 1,
+          strokeStyle: "dashed",
+          strokeDasharray: [5, 5],
+        });
 
-          })
-        }
-
+        that.map.add(polygon);
+      } else {
+        that.mouseTool.polygon({
+          fillColor: "#00b0ff",
+          strokeColor: "#80d8ff",
+          //鍚孭olygon鐨凮ption璁剧疆
+        });
+      }
+    },
+    handleRanging() {
+      this.ruler.turnOn();
+      this.mouseTool.close(false);
+    },
+    handleDraw() {
+      this.ruler.turnOff();
+      this.mouseTool.close(false);
+      this.mouseTool.polygon({
+        fillColor: "#00b0ff",
+        strokeColor: "#80d8ff",
+        //鍚孭olygon鐨凮ption璁剧疆
+      });
+    },
+    handleDelete() {
+      this.map.clearMap();
     },
   },
   mounted() {
@@ -41,28 +86,22 @@
     AMapLoader.load({
       key: "091ade377d4db40f68cc78cb9658ce8d", // 鐢宠濂界殑Web绔紑鍙戣�匥ey锛岄娆¤皟鐢� load 鏃跺繀濉�
       version: "2.0", // 鎸囧畾瑕佸姞杞界殑 JSAPI 鐨勭増鏈紝缂虹渷鏃堕粯璁や负 1.4.15
-      plugins: [], // 闇�瑕佷娇鐢ㄧ殑鐨勬彃浠跺垪琛紝濡傛瘮渚嬪昂'AMap.Scale'绛�
+      plugins: ["AMap.MouseTool", "AMap.RangingTool"], // 闇�瑕佷娇鐢ㄧ殑鐨勬彃浠跺垪琛紝濡傛瘮渚嬪昂'AMap.Scale'绛�
     })
       .then((AMap) => {
-        that.map = new AMap.Map("container");
+        that.map = new AMap.Map("container",{resizeEnable: true});
+        that.mouseTool = new AMap.MouseTool(that.map);
+        that.mouseTool.on("draw", function (e) {
+          //缁樺埗瀹屾垚鍚庡皢鏁扮粍浼犲叆琛ㄥ崟
+          that.$emit("getRegion", e.obj.getOptions());
+        });
+        //榛樿鏍峰紡
+        that.ruler = new AMap.RangingTool(that.map);
         that.locationMap();
       })
       .catch((e) => {
         console.log(e);
       });
-    // const that = this;
-    // debugger
-    // that.map.setZoomAndCenter(that._zoom, [that._point.x, that._point.y]);
-    // if (that.mark) {
-    //   // 鍒涘缓涓�涓� Marker 瀹炰緥锛�
-    //   var marker = new AMap.Marker({
-    //     position: new AMap.LngLat(that._point.x, that._point.y), // 缁忕含搴﹀璞★紝涔熷彲浠ユ槸缁忕含搴︽瀯鎴愮殑涓�缁存暟缁刐116.39, 39.9]
-    //     title: that.mark.title,
-    //   });
-
-    //   // 灏嗗垱寤虹殑鐐规爣璁版坊鍔犲埌宸叉湁鐨勫湴鍥惧疄渚嬶細
-    //   that.map.add(marker);
-    // }
   },
   watch: {
     point(newval, oldval) {
@@ -73,7 +112,7 @@
       this._zoom = newval;
     },
   },
-  props: ["point", "zoom", "mark"],
+  props: ["point", "zoom", "region"],
 };
 </script>
 <style lang="scss" scoped>
@@ -81,4 +120,17 @@
   width: 100%;
   height: 100%;
 }
+.optionBtn {
+  display: flex;
+  flex-direction: column;
+  position: absolute;
+  top: 10px;
+  right: 10px;
+  z-index: 9;
+}
+.el-button {
+  width: 70px;
+  margin-bottom: 5px;
+  margin-left: 10px;
+}
 </style>

--
Gitblit v1.8.0