From 2118790fa7ceaa78243ac1e1a29932768142b387 Mon Sep 17 00:00:00 2001 From: heyujie <516346543@qq.com> Date: 星期三, 25 八月 2021 15:40:46 +0800 Subject: [PATCH] changchun --- src/pages/changchunTrack/index/Video.vue | 195 ++++++++++++++++++++++++++---------------------- 1 files changed, 104 insertions(+), 91 deletions(-) diff --git a/src/pages/changchunTrack/index/Video.vue b/src/pages/changchunTrack/index/Video.vue index dce2082..4d1a00c 100644 --- a/src/pages/changchunTrack/index/Video.vue +++ b/src/pages/changchunTrack/index/Video.vue @@ -50,12 +50,7 @@ :videoIndex="index" :videoItem="item" :showArea="showArea" - :class="[ - TreeDataPool.activeVideoIndex === index + 1 - ? 'activeItem' - : '', - guid === 1 ? 'onlyActiveItem' : '', - ]" + @click="videoItemClick(index)" ></VideoItem> </div> @@ -80,12 +75,7 @@ :videoIndex="index" :videoItem="item" :showArea="showArea" - :class="[ - TreeDataPool.activeVideoIndex === index + 1 - ? 'activeItem' - : '', - guid === 1 ? 'onlyActiveItem' : '', - ]" + @click="videoItemClick(index)" ></VideoItem> </div> @@ -104,12 +94,7 @@ :starH="`calc(100% - 4px)`" :videoItem="item" :showArea="showArea" - :class="[ - TreeDataPool.activeVideoIndex === index + 1 - ? 'activeItem' - : '', - guid === 1 ? 'onlyActiveItem' : '', - ]" + @click="videoItemClick(index)" ></VideoItem> </div> @@ -123,12 +108,7 @@ :starH="`calc(50% - 4px)`" :videoItem="item" :showArea="showArea" - :class="[ - TreeDataPool.activeVideoIndex === index + 1 - ? 'activeItem' - : '', - guid === 1 ? 'onlyActiveItem' : '', - ]" + @click="videoItemClick(index)" ></VideoItem> </div> @@ -150,12 +130,7 @@ :starH="`calc(50% - 4px)`" :videoItem="item" :showArea="showArea" - :class="[ - TreeDataPool.activeVideoIndex === index + 1 - ? 'activeItem' - : '', - guid === 1 ? 'onlyActiveItem' : '', - ]" + @click="videoItemClick(index)" ></VideoItem> </div> @@ -169,12 +144,7 @@ :starH="`calc(100% - 4px)`" :videoItem="item" :showArea="showArea" - :class="[ - TreeDataPool.activeVideoIndex === index + 1 - ? 'activeItem' - : '', - guid === 1 ? 'onlyActiveItem' : '', - ]" + @click="videoItemClick(index)" ></VideoItem> </div> @@ -185,6 +155,12 @@ v-if="visibilityState && allVideoNum == 16" > <div style="width: 100%; height: 20%"> + <!-- :class="[ + TreeDataPool.activeVideoIndex === index + 1 + ? 'activeItem' + : '', + guid === 1 ? 'onlyActiveItem' : '', + ]" --> <VideoItem v-for="(item, index) in TreeDataPool.videoArr.slice(0, 5)" :key="index" @@ -194,12 +170,7 @@ :starH="`calc(100% - 4px)`" :videoItem="item" :showArea="showArea" - :class="[ - TreeDataPool.activeVideoIndex === index + 1 - ? 'activeItem' - : '', - guid === 1 ? 'onlyActiveItem' : '', - ]" + @click="videoItemClick(index)" ></VideoItem> </div> @@ -213,12 +184,7 @@ :starH="`calc(33.33% - 4px)`" :videoItem="item" :showArea="showArea" - :class="[ - TreeDataPool.activeVideoIndex === index + 1 - ? 'activeItem' - : '', - guid === 1 ? 'onlyActiveItem' : '', - ]" + @click="videoItemClick(index)" ></VideoItem> </div> @@ -240,12 +206,7 @@ :starH="`calc(33.33% - 4px)`" :videoItem="item" :showArea="showArea" - :class="[ - TreeDataPool.activeVideoIndex === index + 1 - ? 'activeItem' - : '', - guid === 1 ? 'onlyActiveItem' : '', - ]" + @click="videoItemClick(index)" ></VideoItem> </div> @@ -259,12 +220,7 @@ :starH="`calc(100% - 4px)`" :videoItem="item" :showArea="showArea" - :class="[ - TreeDataPool.activeVideoIndex === index + 1 - ? 'activeItem' - : '', - guid === 1 ? 'onlyActiveItem' : '', - ]" + @click="videoItemClick(index)" ></VideoItem> </div> @@ -305,8 +261,8 @@ nextVideo: null, list2TakeTurn: [], timer: null, + reqTimer: null, centerIndex: 0, - }; }, created() { @@ -316,7 +272,7 @@ this.getActiveIndex(); this.TreeDataPool.readonly = true; this.TreeDataPool.gbReadonly = true; - this.TreeDataPool.multiple = false; + this.TreeDataPool.multiple = true; }, mounted() { document.addEventListener("visibilitychange", this.visibilitychange, false); @@ -328,22 +284,29 @@ this.getCenter(); this.blackAngWhite(); this.VideoPhotoData.queryTagList(); - showAllCameras().then((res) => { - this.videoNum2Play = res.data.length; - res.data.forEach((info, i) => { - let camera = this.TreeDataPool.getCameraInfoById(info.cameraId); - this.TreeDataPool.setVideoArr(i, camera, this); - if (info.status == 1) { - this.list2TakeTurn.push(info); + // let + // this.TreeDataPool.getAllChildrenNodes() + showAllCameras() + .then((res) => { + this.videoNum2Play = res.data.length; + res.data.forEach((info, i) => { + let camera = this.TreeDataPool.getCameraInfoById(info.cameraId); + this.TreeDataPool.setVideoArr(i, camera, this); + if (info.status >= 1) { + + this.list2TakeTurn.push(info); + } + }); + debugger + if (this.list2TakeTurn.length == 0 && res.data.length) { + this.list2TakeTurn.push(res.data[0]); } + this.centerPlay(); + this.repeatRequest(); + }) + .catch((err) => { + // this.repeatRequest(); }); - if (this.list2TakeTurn.length == 0 && res.data.length) { - - this.list2TakeTurn.push(res.data[0]); - } - this.handleSwitch(); - this.list2TakeTurn.forEach((item) => {}); - }); }, beforeDestroy() { window.removeEventListener("resize", this.getRightWidth); @@ -355,11 +318,8 @@ }, watch: { "TreeDataPool.videoArr": function (newArry) { - console.log("newArry", newArry); const cameras = this.filterNodes(newArry); this.getActiveIndex(); - // this.$refs.taskview.showTasks(cameras); - // this.$refs.photoview.showCapture(cameras); }, "VideoPhotoData.selectBlacks": function (value) { this.blackAngWhite(); @@ -370,30 +330,83 @@ "TreeDataPool.showTreeBox"(value) { this.getRightWidth(); }, + "TreeDataPool.selectedNodes.length"(value) { + // debugger; + this.list2TakeTurn = []; + this.videoNum2Play = this.TreeDataPool.selectedNodes.length; + this.TreeDataPool.selectedNodes.forEach((id, i) => { + let camera = this.TreeDataPool.getCameraInfoById(id); + this.TreeDataPool.setVideoArr(i, camera, this); + + if (camera.status >= 1) { + this.list2TakeTurn.push(camera); + } + }); + }, }, methods: { - handleSwitch() { + isSame(arr1, arr2) { + // debugger + let _arr1 = []; + arr1.forEach((item) => { + _arr1.push(item.cameraId); + }); + for (const id of _arr1) { + if (!arr2.includes(id)) { + return false; + } + } + if (_arr1.length !== arr2.length) { + return false; + } + return true; + }, + centerPlay() { + // debugger if (this.list2TakeTurn.length == 1) { this.centerVideo = this.list2TakeTurn[0]; return; } - let that = this; that.centerVideo = that.list2TakeTurn[that.centerIndex]; - that.nextVideo=that.list2TakeTurn[that.nextIndex] that.centerIndex++; if (that.centerIndex == that.list2TakeTurn.length) { that.centerIndex = 0; - } this.timer = setInterval(() => { that.centerVideo = that.list2TakeTurn[that.centerIndex]; - that.nextVideo=that.list2TakeTurn[that.nextIndex] that.centerIndex++; if (that.centerIndex == that.list2TakeTurn.length) { that.centerIndex = 0; } - }, 12000); + }, 120 * 1000); + }, + repeatRequest() { + this.reqTimer = setInterval(() => { + showAllCameras().then((res) => { + // debugger + let newArr = []; + let newArr1 = []; + res.data.forEach((info, i) => { + if (info.status >= 1) { + newArr.push(info.cameraId); + newArr1.push(info); + } + }); + if (newArr.length == 0 && res.data.length) { + newArr.push(res.data[0].cameraId); + newArr1.push(res.data[0]); + } + // debugger + if (newArr.length != 0 && !this.isSame(this.list2TakeTurn, newArr)) { + // debugger + this.list2TakeTurn = [...newArr1]; + this.centerIndex = 0; + this.centerPlay(); + } + // debugger + }); + }, 3000); }, initTrackWebsocket() { if (typeof WebSocket === "undefined") { @@ -715,12 +728,12 @@ return 16; } }, - nextIndex(){ - if (this.centerIndex==this.list2TakeTurn.length-1) { - return 0 - } - return this.centerIndex+1 - } + nextIndex() { + if (this.centerIndex == this.list2TakeTurn.length - 1) { + return 0; + } + return this.centerIndex + 1; + }, }, }; </script> -- Gitblit v1.8.0