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 | 211 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 147 insertions(+), 64 deletions(-) diff --git a/src/components/canvas/index.vue b/src/components/canvas/index.vue index c26ef7b..a34a12d 100644 --- a/src/components/canvas/index.vue +++ b/src/components/canvas/index.vue @@ -1,16 +1,26 @@ <template> - <div class="s-cavas"> + <div + class="s-cavas" + :style="{ width: canvasWidth + 'px', height: canvasHeight + 'px' }" + > <canvas ref="myCanvas" :width="canvasWidth" :height="canvasHeight" - :style="`background:url(${canvasBg}) center / 576px 324px 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> + <p class="tip" :style="disabled ? `display:block;` : `display:none;`"> + 鎵归噺閰嶇疆鏂瑰紡涓嶅厑璁哥粯鍒跺尯鍩燂紝璇烽�夋嫨鎽勫儚鏈鸿繘琛屽尯鍩熺粯鍒� + </p> <el-dialog title :visible.sync="visible" @@ -26,7 +36,9 @@ ></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> @@ -37,76 +49,85 @@ 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: [] }; }, - 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, + }, }, computed: { canvasBg() { if (this.snapshot_url) { + // 鏁版嵁鏍堣嚜鍔ㄤ笂浼犲鐞� + if (this.snapshot_url.indexOf("/opt/vasystem") == 0) { + 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; } - } + }, }, data() { return { @@ -115,7 +136,7 @@ line: [], rect: [], arrow: [], - polygon: [] + polygon: [], }, // 鏈�缁堣緭鍑虹殑鐢诲竷鍧愭爣鏁版嵁 canvasPic: new Image(), // 鎾ら攢鐢ㄧ殑鍥剧墖 canvasHistory: [], // 鍘嗗彶鏁版嵁锛屼互渚涙挙閿�浣跨敤 @@ -124,7 +145,7 @@ ctx: null, visible: false, baseImg: undefined, - showProportion: 1.666 + //showProportion: 1.666 }; }, watch: { @@ -136,7 +157,7 @@ this.refresh(); } }, - deep: true + deep: true, }, canvasDataShow: { handler(newVal, oldVal) { @@ -147,8 +168,8 @@ this.canvasData.polygon = newVal.polygon; this.clickSelect(this.canvasData); }, - deep: true - } + deep: true, + }, }, mounted() { this.$nextTick(() => { @@ -162,29 +183,36 @@ 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; - await updateSnapshot(this.currentCameraId) - .then(res => { + 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.$emit( + "refresh", + res.data.snapshotUrl, + _this.currentCameraId + ); + this.$forceUpdate(); this.$notify({ type: "success", - message: "搴曞浘宸插埛鏂�" + message: "搴曞浘宸插埛鏂�", }); } }) - .catch(err => { + .catch((err) => { this.$notify({ type: "error", - message: "搴曞浘鍒锋柊澶辫触" + message: "搴曞浘鍒锋柊澶辫触", }); }); - this.$emit('changeLoading', false) + this.$emit("changeLoading", false); } }, showModal() { @@ -192,34 +220,35 @@ this.visible = true; this.$nextTick(() => { // this.$refs.bigCanvas.delCursor = {} - }) + }); }, cancelFunc() { this.visible = false; - this.$refs.bigCanvas.cancel() + this.$refs.bigCanvas.cancel(); // console.log("鍏抽棴浜�"); }, handleOk() { // 鍒ゆ柇鍥惧舰鐨勫悕瀛楁槸鍚﹂噸澶� // console.log("ok"); - this.$refs.bigCanvas.changeType('0') + this.$refs.bigCanvas.changeType("0"); let repeatName = this.isRepeat(); if (repeatName !== "") { this.$notify({ type: "error", - message: repeatName + "鍥惧舰鍚嶇О閲嶅锛岃鏇存锛�" + message: repeatName + "鍥惧舰鍚嶇О閲嶅锛岃鏇存锛�", }); return; } this.$notify({ type: "success", - message: "宸蹭繚瀛樼粯鍒讹紒" + message: "宸蹭繚瀛樼粯鍒讹紒", }); // 姣忔淇濆瓨鍏抽棴妯℃�佺獥鏃堕兘瑕佹妸妯℃�佺獥鐨勬暟鎹啓鍒扮埗缁勪欢閲屾潵 this.canvasData = this.$refs.bigCanvas.canvasData; // 椤轰究鐢╁埌鏇村灞傚幓 this.$emit("fromCanvas", this.$refs.bigCanvas.canvasData); // console.log("浣犲ソ", this.canvasData); + this.clickSelect(this.canvasData); this.visible = false; }, @@ -231,8 +260,14 @@ _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.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, @@ -250,8 +285,14 @@ // 灏嗗綋鍓嶅厓绱犳爣绾� _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.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, @@ -264,11 +305,26 @@ _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.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, @@ -285,11 +341,26 @@ // 灏嗗綋鍓嶅厓绱犳爣绾� _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.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, @@ -358,9 +429,15 @@ } _this.ctx.strokeStyle = "yellow"; _this.ctx.beginPath(); - _this.ctx.moveTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion); + _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(); @@ -380,9 +457,15 @@ // 灏嗗綋鍓嶅厓绱犳爣绾� _this.ctx.strokeStyle = "red"; _this.ctx.beginPath(); - _this.ctx.moveTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion); + _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(); @@ -490,8 +573,8 @@ nameArray.push(v.name); } return ""; - } - } + }, + }, }; </script> <style lang="scss" scoped> @@ -501,8 +584,8 @@ left: 0; } .s-cavas { - width: 576px; - height: 324px; + // width: 576px; + // height: 324px; margin-top: 10px; position: relative; overflow: auto; -- Gitblit v1.8.0