From a3f357e8a60443b74b64c7479113c68eb35ce1f5 Mon Sep 17 00:00:00 2001
From: ZZJ <10913410+zzj2100@user.noreply.gitee.com>
Date: 星期五, 15 七月 2022 19:44:57 +0800
Subject: [PATCH] 控制轮询

---
 src/components/canvas/index.vue |  513 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 306 insertions(+), 207 deletions(-)

diff --git a/src/components/canvas/index.vue b/src/components/canvas/index.vue
index aec91a9..a34a12d 100644
--- a/src/components/canvas/index.vue
+++ b/src/components/canvas/index.vue
@@ -1,21 +1,33 @@
 <template>
-  <div class="s-cavas" :style="{ width: canvasWidth + 'px', height: canvasHeight + 'px' }">
+  <div
+    class="s-cavas"
+    :style="{ width: canvasWidth + 'px', height: canvasHeight + 'px' }"
+  >
     <canvas
       ref="myCanvas"
       :width="canvasWidth"
       :height="canvasHeight"
-      :style="
-        `background:url(${canvasBg}) center / ${canvasWidth}px ${canvasHeight}px no-repeat; background-size: contain;`
-      "
+      :style="`background:url(${canvasBg}) center / ${canvasWidth}px ${canvasHeight}px no-repeat; background-size: contain;`"
     ></canvas>
 
-    <el-tooltip content="鍒锋柊搴曞浘" placement="bottom" popper-class="atooltip" v-if="isShowRefresh">
+    <el-tooltip
+      content="鍒锋柊搴曞浘"
+      placement="bottom"
+      popper-class="atooltip"
+      v-if="isShowRefresh"
+    >
       <span class="iconfont icongengxin" @click="refresh"></span>
     </el-tooltip>
     <p class="tip" :style="disabled ? `display:block;` : `display:none;`">
       鎵归噺閰嶇疆鏂瑰紡涓嶅厑璁哥粯鍒跺尯鍩燂紝璇烽�夋嫨鎽勫儚鏈鸿繘琛屽尯鍩熺粯鍒�
     </p>
-    <el-dialog title :visible.sync="visible" width="1150px" append-to-body :before-close="cancelFunc">
+    <el-dialog
+      title
+      :visible.sync="visible"
+      width="1150px"
+      append-to-body
+      :before-close="cancelFunc"
+    >
       <canvas-dialog
         ref="bigCanvas"
         :canvasDataToChild="canvasData"
@@ -24,96 +36,98 @@
       ></canvas-dialog>
       <span slot="footer" class="dialog-footer">
         <el-button @click="cancelFunc" size="small">鍙� 娑�</el-button>
-        <el-button type="primary" @click="handleOk" size="small">纭� 瀹�</el-button>
+        <el-button type="primary" @click="handleOk" size="small"
+          >纭� 瀹�</el-button
+        >
       </span>
     </el-dialog>
   </div>
 </template>
 <script>
-import canvasDialog from "./Dialog"
-import { updateSnapshot } from "@/api/camera"
+import canvasDialog from "./Dialog";
+import { updateSnapshot } from "@/api/camera";
 export default {
   name: "myCanvas",
   components: {
-    canvasDialog
+    canvasDialog,
   },
   props: {
     divId: {
       default: "my-canvas",
-      type: String
+      type: String,
     },
     isGB28181: {
       default: false,
-      type: Boolean
+      type: Boolean,
     },
     isShowRefresh: {
       default: true,
-      type: Boolean
+      type: Boolean,
     },
     sourceType: {
       default: 1,
-      type: Number
+      type: Number,
     },
     isShowDrawArrow: {
       default: false,
-      type: Boolean
+      type: Boolean,
     },
     disabled: {
       default: false,
-      type: Boolean
+      type: Boolean,
     },
     canvasDataShow: {
       default: () => {
-        return { line: [], rect: [], arrow: [], polygon: [] }
+        return { line: [], rect: [], arrow: [], polygon: [] };
       },
-      type: Object
+      type: Object,
     },
     currentCameraId: {
       type: String,
-      default: ""
+      default: "",
     },
     snapshot_url: {
       type: String,
-      default: ""
+      default: "",
     },
     isLink: {
       type: Boolean,
-      default: false
+      default: false,
     },
     loading: {
       type: Boolean,
-      default: false
+      default: false,
     },
     canvasWidth: {
       type: Number,
-      default: 576
+      default: 576,
     },
     canvasHeight: {
       type: Number,
-      default: 324
+      default: 324,
     },
     showProportion: {
       type: Number,
-      default: 1.666
-    }
+      default: 1.666,
+    },
   },
   computed: {
     canvasBg() {
       if (this.snapshot_url) {
         // 鏁版嵁鏍堣嚜鍔ㄤ笂浼犲鐞�
         if (this.snapshot_url.indexOf("/opt/vasystem") == 0) {
-          return this.snapshot_url.replace("/opt/vasystem", "")
+          return this.snapshot_url.replace("/opt/vasystem", "");
         }
 
         if (this.sourceType == 2) {
-          return `${this.snapshot_url}`
+          return `${this.snapshot_url}`;
         } else {
-          return `/httpImage/${this.snapshot_url}`
+          return `/httpImage/${this.snapshot_url}`;
         }
       } else {
-        return this.blackImg
+        return this.blackImg;
       }
-    }
+    },
   },
   data() {
     return {
@@ -122,7 +136,7 @@
         line: [],
         rect: [],
         arrow: [],
-        polygon: []
+        polygon: [],
       }, // 鏈�缁堣緭鍑虹殑鐢诲竷鍧愭爣鏁版嵁
       canvasPic: new Image(), // 鎾ら攢鐢ㄧ殑鍥剧墖
       canvasHistory: [], // 鍘嗗彶鏁版嵁锛屼互渚涙挙閿�浣跨敤
@@ -130,169 +144,234 @@
       c: null,
       ctx: null,
       visible: false,
-      baseImg: undefined
+      baseImg: undefined,
       //showProportion: 1.666
-    }
+    };
   },
   watch: {
     loading: {
       handler(newVal, oldVal) {
         // console.log(newVal,'loading')
         if (newVal) {
-          this.baseImg = ""
-          this.refresh()
+          this.baseImg = "";
+          this.refresh();
         }
       },
-      deep: true
+      deep: true,
     },
     canvasDataShow: {
       handler(newVal, oldVal) {
         // console.log(newVal, "canvasDataShow newVal");
-        this.canvasData.line = newVal.line
-        this.canvasData.rect = newVal.rect
-        this.canvasData.arrow = newVal.arrow
-        this.canvasData.polygon = newVal.polygon
-        this.clickSelect(this.canvasData)
+        this.canvasData.line = newVal.line;
+        this.canvasData.rect = newVal.rect;
+        this.canvasData.arrow = newVal.arrow;
+        this.canvasData.polygon = newVal.polygon;
+        this.clickSelect(this.canvasData);
       },
-      deep: true
-    }
+      deep: true,
+    },
   },
   mounted() {
     this.$nextTick(() => {
       // this.c = document.querySelector("#" + this.divId);
-      this.c = this.$refs.myCanvas
-      this.ctx = this.c.getContext("2d")
-      this.canvasData = JSON.parse(JSON.stringify(this.canvasDataShow))
-      this.clickSelect(this.canvasData)
-    })
+      this.c = this.$refs.myCanvas;
+      this.ctx = this.c.getContext("2d");
+      this.canvasData = JSON.parse(JSON.stringify(this.canvasDataShow));
+      this.clickSelect(this.canvasData);
+    });
   },
   methods: {
     // 鑾峰彇canvas搴曞浘
     async getCanvasPic() {
+      if (TreeDataPool.selectedNode.type == "MENU") {
+        return;
+      }
       // this.$emit('changeBaseImg',this.currentCameraId)
-      this.$emit("changeLoading", true)
+      this.$emit("changeLoading", true);
       if (this.currentCameraId) {
-        let _this = this
+        let _this = this;
         await updateSnapshot(this.currentCameraId, this.isGB28181)
           .then((res) => {
             if (res.data.cameraId === _this.currentCameraId) {
-              this.baseImg = res.data.snapshotUrl
-              this.$emit("refresh", res.data.snapshotUrl, _this.currentCameraId)
-              this.$forceUpdate()
+              this.baseImg = res.data.snapshotUrl;
+              this.$emit(
+                "refresh",
+                res.data.snapshotUrl,
+                _this.currentCameraId
+              );
+              this.$forceUpdate();
               this.$notify({
                 type: "success",
-                message: "搴曞浘宸插埛鏂�"
-              })
+                message: "搴曞浘宸插埛鏂�",
+              });
             }
           })
           .catch((err) => {
             this.$notify({
               type: "error",
-              message: "搴曞浘鍒锋柊澶辫触"
-            })
-          })
-        this.$emit("changeLoading", false)
+              message: "搴曞浘鍒锋柊澶辫触",
+            });
+          });
+        this.$emit("changeLoading", false);
       }
     },
     showModal() {
       // console.log(this.canvasData, "鐐瑰嚮缁樺埗鐨勬椂鍊欎紶閫掕繃鍘荤殑鏁版嵁");
-      this.visible = true
+      this.visible = true;
       this.$nextTick(() => {
         // this.$refs.bigCanvas.delCursor = {}
-      })
+      });
     },
     cancelFunc() {
-      this.visible = false
-      this.$refs.bigCanvas.cancel()
+      this.visible = false;
+      this.$refs.bigCanvas.cancel();
       // console.log("鍏抽棴浜�");
     },
     handleOk() {
       // 鍒ゆ柇鍥惧舰鐨勫悕瀛楁槸鍚﹂噸澶�
       // console.log("ok");
-      this.$refs.bigCanvas.changeType("0")
-      let repeatName = this.isRepeat()
+      this.$refs.bigCanvas.changeType("0");
+      let repeatName = this.isRepeat();
       if (repeatName !== "") {
         this.$notify({
           type: "error",
-          message: repeatName + "鍥惧舰鍚嶇О閲嶅锛岃鏇存锛�"
-        })
-        return
+          message: repeatName + "鍥惧舰鍚嶇О閲嶅锛岃鏇存锛�",
+        });
+        return;
       }
       this.$notify({
         type: "success",
-        message: "宸蹭繚瀛樼粯鍒讹紒"
-      })
+        message: "宸蹭繚瀛樼粯鍒讹紒",
+      });
       // 姣忔淇濆瓨鍏抽棴妯℃�佺獥鏃堕兘瑕佹妸妯℃�佺獥鐨勬暟鎹啓鍒扮埗缁勪欢閲屾潵
-      this.canvasData = this.$refs.bigCanvas.canvasData
+      this.canvasData = this.$refs.bigCanvas.canvasData;
       // 椤轰究鐢╁埌鏇村灞傚幓
-      this.$emit("fromCanvas", this.$refs.bigCanvas.canvasData)
+      this.$emit("fromCanvas", this.$refs.bigCanvas.canvasData);
       // console.log("浣犲ソ", this.canvasData);
 
-      this.clickSelect(this.canvasData)
-      this.visible = false
+      this.clickSelect(this.canvasData);
+      this.visible = false;
     },
     // 鍥炴樉cavas鏁版嵁
     // 鐐瑰嚮閫変腑鍙樿壊 灏嗗綋鍓嶉〉闈㈡墍鏈夎矾寰勯噸缁樺垽鏂綋鍓嶉紶鏍囩殑鍧愭爣鍦ㄥ摢涓浘褰㈠唴 濡傛灉涓嶄紶鍧愭爣鍙傛暟灏辨槸鍥炴樉鐨勬柟娉�
     clickSelect(e) {
-      this.ctx.clearRect(0, 0, this.c.width, this.c.height)
-      let _this = this // 闆嗗悎涓亶鍘嗛渶瑕佸皢this杞瓨涓�涓嬩娇鐢�
-      _this.canvasData.line.forEach(function(v, i) {
-        _this.ctx.strokeStyle = "yellow"
-        _this.ctx.beginPath()
-        _this.ctx.moveTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion)
-        _this.ctx.lineTo(v.location[1].x / _this.showProportion, v.location[1].y / _this.showProportion)
-        _this.ctx.stroke()
-        _this.showRemarks(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion, v.name)
-        _this.c.style.cursor = "default"
+      this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+      let _this = this; // 闆嗗悎涓亶鍘嗛渶瑕佸皢this杞瓨涓�涓嬩娇鐢�
+      _this.canvasData.line.forEach(function (v, i) {
+        _this.ctx.strokeStyle = "yellow";
+        _this.ctx.beginPath();
+        _this.ctx.moveTo(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion
+        );
+        _this.ctx.lineTo(
+          v.location[1].x / _this.showProportion,
+          v.location[1].y / _this.showProportion
+        );
+        _this.ctx.stroke();
+        _this.showRemarks(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion,
+          v.name
+        );
+        _this.c.style.cursor = "default";
         if (e && _this.ctx.isPointInStroke(e.offsetX, e.offsetY)) {
           // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�
           // 濡傛灉褰撳墠鐜瑕嗙洊浜嗚鍧愭爣锛屽氨灏嗗浘褰㈢殑index鏀惧埌鏁扮粍閲�
           // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
-          _this.type = "0"
-          _this.delCursor.type = "1"
-          _this.delCursor.index = i
+          _this.type = "0";
+          _this.delCursor.type = "1";
+          _this.delCursor.index = i;
           // 灏嗗綋鍓嶅厓绱犳爣绾�
-          _this.ctx.strokeStyle = "red"
-          _this.ctx.beginPath()
-          _this.ctx.moveTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion)
-          _this.ctx.lineTo(v.location[1].x / _this.showProportion, v.location[1].y / _this.showProportion)
-          _this.ctx.stroke()
-          _this.showRemarks(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion, v.name)
-          _this.c.style.cursor = "pointer"
+          _this.ctx.strokeStyle = "red";
+          _this.ctx.beginPath();
+          _this.ctx.moveTo(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion
+          );
+          _this.ctx.lineTo(
+            v.location[1].x / _this.showProportion,
+            v.location[1].y / _this.showProportion
+          );
+          _this.ctx.stroke();
+          _this.showRemarks(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion,
+            v.name
+          );
+          _this.c.style.cursor = "pointer";
         }
-      })
-      _this.canvasData.rect.forEach(function(v, i) {
-        _this.ctx.strokeStyle = "yellow"
-        _this.ctx.beginPath()
-        _this.ctx.moveTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion)
-        _this.ctx.lineTo(v.location[1].x / _this.showProportion, v.location[1].y / _this.showProportion)
-        _this.ctx.lineTo(v.location[2].x / _this.showProportion, v.location[2].y / _this.showProportion)
-        _this.ctx.lineTo(v.location[3].x / _this.showProportion, v.location[3].y / _this.showProportion)
-        _this.ctx.lineTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion)
-        _this.ctx.stroke()
-        _this.showRemarks(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion, v.name)
-        _this.c.style.cursor = "default"
+      });
+      _this.canvasData.rect.forEach(function (v, i) {
+        _this.ctx.strokeStyle = "yellow";
+        _this.ctx.beginPath();
+        _this.ctx.moveTo(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion
+        );
+        _this.ctx.lineTo(
+          v.location[1].x / _this.showProportion,
+          v.location[1].y / _this.showProportion
+        );
+        _this.ctx.lineTo(
+          v.location[2].x / _this.showProportion,
+          v.location[2].y / _this.showProportion
+        );
+        _this.ctx.lineTo(
+          v.location[3].x / _this.showProportion,
+          v.location[3].y / _this.showProportion
+        );
+        _this.ctx.lineTo(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion
+        );
+        _this.ctx.stroke();
+        _this.showRemarks(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion,
+          v.name
+        );
+        _this.c.style.cursor = "default";
         if (e && _this.ctx.isPointInPath(e.offsetX, e.offsetY)) {
           // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�
           // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
-          _this.type = "0"
-          _this.delCursor.type = "2"
-          _this.delCursor.index = i
+          _this.type = "0";
+          _this.delCursor.type = "2";
+          _this.delCursor.index = i;
           // 灏嗗綋鍓嶅厓绱犳爣绾�
-          _this.ctx.strokeStyle = "red"
-          _this.ctx.beginPath()
-          _this.ctx.moveTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion)
-          _this.ctx.lineTo(v.location[1].x / _this.showProportion, v.location[1].y / _this.showProportion)
-          _this.ctx.lineTo(v.location[2].x / _this.showProportion, v.location[2].y / _this.showProportion)
-          _this.ctx.lineTo(v.location[3].x / _this.showProportion, v.location[3].y / _this.showProportion)
-          _this.ctx.lineTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion)
-          _this.ctx.stroke()
-          _this.showRemarks(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion, v.name)
-          _this.c.style.cursor = "pointer"
+          _this.ctx.strokeStyle = "red";
+          _this.ctx.beginPath();
+          _this.ctx.moveTo(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion
+          );
+          _this.ctx.lineTo(
+            v.location[1].x / _this.showProportion,
+            v.location[1].y / _this.showProportion
+          );
+          _this.ctx.lineTo(
+            v.location[2].x / _this.showProportion,
+            v.location[2].y / _this.showProportion
+          );
+          _this.ctx.lineTo(
+            v.location[3].x / _this.showProportion,
+            v.location[3].y / _this.showProportion
+          );
+          _this.ctx.lineTo(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion
+          );
+          _this.ctx.stroke();
+          _this.showRemarks(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion,
+            v.name
+          );
+          _this.c.style.cursor = "pointer";
         }
-      })
-      _this.canvasData.arrow.forEach(function(v, i) {
-        _this.ctx.strokeStyle = "yellow"
+      });
+      _this.canvasData.arrow.forEach(function (v, i) {
+        _this.ctx.strokeStyle = "yellow";
         // _this.ctx.beginPath()
         // _this.ctx.moveTo(v.location[0].x / 2, v.location[0].y / 2)
         // _this.ctx.lineTo(v.location[1].x / 2, v.location[1].y / 2)
@@ -306,18 +385,22 @@
           20,
           30,
           "yellow"
-        ) // 缁樺埗鏂规硶
-        _this.showRemarks(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion, v.name)
-        _this.c.style.cursor = "default"
+        ); // 缁樺埗鏂规硶
+        _this.showRemarks(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion,
+          v.name
+        );
+        _this.c.style.cursor = "default";
         if (e && _this.ctx.isPointInStroke(e.offsetX, e.offsetY)) {
           // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�
           // 濡傛灉褰撳墠鐜瑕嗙洊浜嗚鍧愭爣锛屽氨灏嗗浘褰㈢殑index鏀惧埌鏁扮粍閲�
           // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
-          _this.type = "0"
-          _this.delCursor.type = "4"
-          _this.delCursor.index = i
+          _this.type = "0";
+          _this.delCursor.type = "4";
+          _this.delCursor.index = i;
           // 灏嗗綋鍓嶅厓绱犳爣绾�
-          _this.ctx.strokeStyle = "red"
+          _this.ctx.strokeStyle = "red";
           //   _this.ctx.beginPath()
           //   _this.ctx.moveTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion)
           //   _this.ctx.lineTo(v.location[1].x / _this.showProportion, v.location[1].y / _this.showProportion)
@@ -331,62 +414,78 @@
             20,
             30,
             "red"
-          ) // 缁樺埗鏂规硶
-          _this.showRemarks(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion, v.name)
-          _this.c.style.cursor = "pointer"
+          ); // 缁樺埗鏂规硶
+          _this.showRemarks(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion,
+            v.name
+          );
+          _this.c.style.cursor = "pointer";
         }
-      })
-      _this.canvasData.polygon.forEach(function(v, i) {
+      });
+      _this.canvasData.polygon.forEach(function (v, i) {
         if (v.location.length === 0) {
-          return
+          return;
         }
-        _this.ctx.strokeStyle = "yellow"
-        _this.ctx.beginPath()
-        _this.ctx.moveTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion)
+        _this.ctx.strokeStyle = "yellow";
+        _this.ctx.beginPath();
+        _this.ctx.moveTo(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion
+        );
         for (let i = 1; i < v.location.length; i++) {
-          _this.ctx.lineTo(v.location[i].x / _this.showProportion, v.location[i].y / _this.showProportion)
+          _this.ctx.lineTo(
+            v.location[i].x / _this.showProportion,
+            v.location[i].y / _this.showProportion
+          );
         }
-        _this.ctx.closePath()
-        _this.ctx.stroke()
+        _this.ctx.closePath();
+        _this.ctx.stroke();
         _this.showRemarks(
           v.location[v.location.length - 1].x / _this.showProportion,
           v.location[v.location.length - 1].y / _this.showProportion,
           v.name
-        )
-        _this.c.style.cursor = "default"
+        );
+        _this.c.style.cursor = "default";
         if (e && _this.ctx.isPointInPath(e.offsetX, e.offsetY)) {
           // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�
           // 濡傛灉褰撳墠鐜瑕嗙洊浜嗚鍧愭爣锛屽氨灏嗗浘褰㈢殑index鏀惧埌鏁扮粍閲�
           // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
-          _this.type = "0"
-          _this.delCursor.type = "5"
-          _this.delCursor.index = i
+          _this.type = "0";
+          _this.delCursor.type = "5";
+          _this.delCursor.index = i;
           // 灏嗗綋鍓嶅厓绱犳爣绾�
-          _this.ctx.strokeStyle = "red"
-          _this.ctx.beginPath()
-          _this.ctx.moveTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion)
+          _this.ctx.strokeStyle = "red";
+          _this.ctx.beginPath();
+          _this.ctx.moveTo(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion
+          );
           for (let i = 1; i < v.location.length; i++) {
-            _this.ctx.lineTo(v.location[i].x / _this.showProportion, v.location[i].y / _this.showProportion)
+            _this.ctx.lineTo(
+              v.location[i].x / _this.showProportion,
+              v.location[i].y / _this.showProportion
+            );
           }
-          _this.ctx.closePath()
-          _this.ctx.stroke()
+          _this.ctx.closePath();
+          _this.ctx.stroke();
           _this.showRemarks(
             v.location[v.location.length - 1].x / _this.showProportion,
             v.location[v.location.length - 1].y / _this.showProportion,
             v.name
-          )
-          _this.c.style.cursor = "pointer"
+          );
+          _this.c.style.cursor = "pointer";
         }
-      })
+      });
     },
     // 鍥炴樉鍥惧舰澶囨敞
     showRemarks(x, y, remarks) {
-      this.ctx.moveTo(x, y - 10) // 鍥犱负鏀惧ぇ涔嬪悗鏄痽-20锛屾墍浠ョ缉灏忕増鐨勪负y-10
-      this.ctx.fillStyle = "green" // 璁剧疆濉厖棰滆壊涓虹豢鑹�
-      this.ctx.font = '10px "寰蒋闆呴粦"' // 璁剧疆瀛椾綋
-      this.ctx.textBaseline = "bottom" // 璁剧疆瀛椾綋搴曠嚎瀵归綈缁樺埗鍩虹嚎
-      this.ctx.textAlign = "left" // 璁剧疆瀛椾綋瀵归綈鐨勬柟寮�
-      this.ctx.fillText(remarks, x, y - 10) // 濉厖鏂囧瓧
+      this.ctx.moveTo(x, y - 10); // 鍥犱负鏀惧ぇ涔嬪悗鏄痽-20锛屾墍浠ョ缉灏忕増鐨勪负y-10
+      this.ctx.fillStyle = "green"; // 璁剧疆濉厖棰滆壊涓虹豢鑹�
+      this.ctx.font = '10px "寰蒋闆呴粦"'; // 璁剧疆瀛椾綋
+      this.ctx.textBaseline = "bottom"; // 璁剧疆瀛椾綋搴曠嚎瀵归綈缁樺埗鍩虹嚎
+      this.ctx.textAlign = "left"; // 璁剧疆瀛椾綋瀵归綈鐨勬柟寮�
+      this.ctx.fillText(remarks, x, y - 10); // 濉厖鏂囧瓧
     },
     // 绠ご缁樺埗鍑芥暟
     drawArrow(ctx, fromX, fromY, toX, toY, theta, headlen, width, color) {
@@ -397,86 +496,86 @@
       // headlen锛氫笁瑙掓枩杈归暱搴�
       // width锛氱澶寸嚎瀹藉害
       // color锛氱澶撮鑹�
-      theta = typeof theta !== "undefined" ? theta : 30
-      headlen = typeof theta !== "undefined" ? headlen : 10
-      width = typeof width !== "undefined" ? width : 1
-      color = typeof color !== "undefined" ? color : "yellow"
+      theta = typeof theta !== "undefined" ? theta : 30;
+      headlen = typeof theta !== "undefined" ? headlen : 10;
+      width = typeof width !== "undefined" ? width : 1;
+      color = typeof color !== "undefined" ? color : "yellow";
       // 璁$畻鍚勮搴﹀拰瀵瑰簲鐨凱2,P3鍧愭爣
-      let angle = (Math.atan2(fromY - toY, fromX - toX) * 180) / Math.PI
-      let angle1 = ((angle + theta) * Math.PI) / 180
-      let angle2 = ((angle - theta) * Math.PI) / 180
-      let topX = headlen * Math.cos(angle1)
-      let topY = headlen * Math.sin(angle1)
-      let botX = headlen * Math.cos(angle2)
-      let botY = headlen * Math.sin(angle2)
+      let angle = (Math.atan2(fromY - toY, fromX - toX) * 180) / Math.PI;
+      let angle1 = ((angle + theta) * Math.PI) / 180;
+      let angle2 = ((angle - theta) * Math.PI) / 180;
+      let topX = headlen * Math.cos(angle1);
+      let topY = headlen * Math.sin(angle1);
+      let botX = headlen * Math.cos(angle2);
+      let botY = headlen * Math.sin(angle2);
 
-      ctx.save()
-      ctx.beginPath()
-      let arrowX = fromX - topX
-      let arrowY = fromY - topY
-      ctx.moveTo(arrowX, arrowY)
-      ctx.moveTo(fromX, fromY)
-      ctx.lineTo(toX, toY)
-      arrowX = toX + topX
-      arrowY = toY + topY
-      ctx.moveTo(arrowX, arrowY)
-      ctx.lineTo(toX, toY)
-      arrowX = toX + botX
-      arrowY = toY + botY
-      ctx.lineTo(arrowX, arrowY)
-      ctx.strokeStyle = color
-      ctx.lineWidth = width
-      ctx.stroke()
-      ctx.restore()
+      ctx.save();
+      ctx.beginPath();
+      let arrowX = fromX - topX;
+      let arrowY = fromY - topY;
+      ctx.moveTo(arrowX, arrowY);
+      ctx.moveTo(fromX, fromY);
+      ctx.lineTo(toX, toY);
+      arrowX = toX + topX;
+      arrowY = toY + topY;
+      ctx.moveTo(arrowX, arrowY);
+      ctx.lineTo(toX, toY);
+      arrowX = toX + botX;
+      arrowY = toY + botY;
+      ctx.lineTo(arrowX, arrowY);
+      ctx.strokeStyle = color;
+      ctx.lineWidth = width;
+      ctx.stroke();
+      ctx.restore();
     },
     async refresh() {
       // console.log(this.loading,'鍒锋柊搴曞浘',this.snapshot_url)
       if (!this.currentCameraId) {
-        return false
+        return false;
       }
       // await this.$emit('changeLoading', true)
-      this.getCanvasPic()
+      this.getCanvasPic();
     },
     // 鍒ゆ柇鍥惧舰鍚嶇О鏄惁閲嶅
     isRepeat() {
-      let _this = this // 闆嗗悎涓亶鍘嗛渶瑕佸皢this杞瓨涓�涓嬩娇鐢�
-      let nameArray = []
+      let _this = this; // 闆嗗悎涓亶鍘嗛渶瑕佸皢this杞瓨涓�涓嬩娇鐢�
+      let nameArray = [];
       for (const v of _this.$refs.bigCanvas.canvasData.line) {
         for (const item of nameArray) {
           if (v.name === item) {
-            return v.name
+            return v.name;
           }
         }
-        nameArray.push(v.name)
+        nameArray.push(v.name);
       }
       for (const v of _this.$refs.bigCanvas.canvasData.arrow) {
         for (const item of nameArray) {
           if (v.name === item) {
-            return v.name
+            return v.name;
           }
         }
-        nameArray.push(v.name)
+        nameArray.push(v.name);
       }
       for (const v of _this.$refs.bigCanvas.canvasData.rect) {
         for (const item of nameArray) {
           if (v.name === item) {
-            return v.name
+            return v.name;
           }
         }
-        nameArray.push(v.name)
+        nameArray.push(v.name);
       }
       for (const v of _this.$refs.bigCanvas.canvasData.polygon) {
         for (const item of nameArray) {
           if (v.name === item) {
-            return v.name
+            return v.name;
           }
         }
-        nameArray.push(v.name)
+        nameArray.push(v.name);
       }
-      return ""
-    }
-  }
-}
+      return "";
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
 canvas {

--
Gitblit v1.8.0