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