From edef6ae8f59823258ce610c9074d32e698958b51 Mon Sep 17 00:00:00 2001
From: ZZJ <10913410+zzj2100@user.noreply.gitee.com>
Date: 星期四, 28 七月 2022 15:30:44 +0800
Subject: [PATCH] 本地图片适配

---
 src/components/canvas/index.vue |   78 ++++++++++++++++++++++++++------------
 1 files changed, 53 insertions(+), 25 deletions(-)

diff --git a/src/components/canvas/index.vue b/src/components/canvas/index.vue
index b7266ef..2467ad5 100644
--- a/src/components/canvas/index.vue
+++ b/src/components/canvas/index.vue
@@ -42,7 +42,7 @@
 </template>
 <script>
 import canvasDialog from "./Dialog";
-import { updateSnapshot } from "@/api/camera";
+import { updateSnapshot, updategb28181 } from "@/api/camera";
 export default {
   name: "myCanvas",
   components: {
@@ -79,9 +79,8 @@
       },
       type: Object,
     },
-    currentCameraId: {
-      type: String,
-      default: "",
+    currentCamera: {
+      type: Object,
     },
     snapshot_url: {
       type: String,
@@ -116,10 +115,15 @@
           return this.snapshot_url.replace("/opt/vasystem", "");
         }
 
+        if (this.snapshot_url.indexOf("data:image/png;base64,") != -1) {
+          return `${this.snapshot_url}`;
+        }
+
         if (this.sourceType == 2) {
           return `${this.snapshot_url}`;
         } else {
-          return `/httpImage/${this.snapshot_url}`;
+          console.log(this.snapshot_url);
+          return `http://${this.snapshot_url}`;
         }
       } else {
         return this.blackImg;
@@ -148,7 +152,6 @@
   watch: {
     loading: {
       handler(newVal, oldVal) {
-        // console.log(newVal,'loading')
         if (newVal) {
           this.baseImg = "";
           this.refresh();
@@ -182,30 +185,54 @@
     async getCanvasPic() {
       // this.$emit('changeBaseImg',this.currentCameraId)
       this.$emit("changeLoading", true);
-      if (this.currentCameraId) {
+      if (this.currentCamera.cameraId) {
         let _this = this;
-        await updateSnapshot(this.currentCameraId)
-          .then((res) => {
-            if (res.data.cameraId === _this.currentCameraId) {
-              this.baseImg = res.data.snapshotUrl;
-              this.$emit(
+
+        if (_this.currentCamera.type === 1) {
+          await updategb28181({
+            id: _this.currentCamera.cameraId,
+          }).then((res) => {
+            if (res.data.cameraId === _this.currentCamera.cameraId) {
+              _this.baseImg = "data:image/png;base64," + res.data.base64;
+              _this.$emit(
                 "refresh",
-                res.data.snapshotUrl,
-                _this.currentCameraId
+                _this.baseImg,
+                _this.currentCamera.cameraName
               );
-              this.$forceUpdate();
-              this.$notify({
+              _this.$forceUpdate();
+              _this.$notify({
                 type: "success",
                 message: "搴曞浘宸插埛鏂�",
               });
             }
-          })
-          .catch((err) => {
-            this.$notify({
-              type: "error",
-              message: "搴曞浘鍒锋柊澶辫触",
-            });
           });
+
+          this.$emit("changeLoading", false);
+
+          return;
+        }
+
+        await updateSnapshot({
+          id: _this.currentCamera.cameraId,
+          name: _this.currentCamera.cameraName,
+          type: _this.currentCamera.type,
+          rtsp: _this.currentCamera.rtsp,
+        }).then((res) => {
+          if (res.data.cameraId === _this.currentCamera.cameraId) {
+            _this.baseImg = "data:image/png;base64," + res.data.base64;
+            _this.$emit(
+              "refresh",
+              _this.baseImg,
+              _this.currentCamera.cameraName
+            );
+            _this.$forceUpdate();
+            _this.$notify({
+              type: "success",
+              message: "搴曞浘宸插埛鏂�",
+            });
+          }
+        });
+
         this.$emit("changeLoading", false);
       }
     },
@@ -523,8 +550,9 @@
       ctx.restore();
     },
     async refresh() {
-      // console.log(this.loading,'鍒锋柊搴曞浘',this.snapshot_url)
-      if (!this.currentCameraId) {
+      console.log("鍒锋柊搴曞浘");
+      if (!this.currentCamera.cameraId) {
+        console.log("娌″埛鏂�");
         return false;
       }
       // await this.$emit('changeLoading', true)
@@ -631,7 +659,7 @@
 
   .dialog-footer {
     display: flex;
-    justify-content: end;
+    justify-content: flex-end;
     text-align: center;
     line-height: 32px;
     font-size: 14px;

--
Gitblit v1.8.0