From c3ce2bc5d069ba57309567aee4ae418bc0cf75ed Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 17 三月 2023 13:22:05 +0800
Subject: [PATCH] 优化异常处理以及级联设备状态查询

---
 web_src/src/components/live.vue |   54 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 35 insertions(+), 19 deletions(-)

diff --git a/web_src/src/components/live.vue b/web_src/src/components/live.vue
index 87d7ea8..4a7af49 100644
--- a/web_src/src/components/live.vue
+++ b/web_src/src/components/live.vue
@@ -17,7 +17,8 @@
                  :style="liveStyle" :class="{redborder:playerIdx == (i-1)}"
                  @click="playerIdx = (i-1)">
               <div v-if="!videoUrl[i-1]" style="color: #ffffff;font-size: 30px;font-weight: bold;">{{ i }}</div>
-              <player v-else :videoUrl="videoUrl[i-1]" fluent autoplay @screenshot="shot" @destroy="destroy"/>
+              <player ref="player" v-else :videoUrl="videoUrl[i-1]" fluent autoplay @screenshot="shot"
+                      @destroy="destroy"/>
             </div>
           </div>
         </el-main>
@@ -59,14 +60,22 @@
 
   computed: {
     liveStyle() {
+      let style = {width: '100%', height: '100%'}
       switch (this.spilt) {
         case 4:
-          return {width: '49%', height: '49%'}
+          style = {width: '49%', height: '49%'}
+          break
         case 9:
-          return {width: '32%', height: '32%'}
-        default:
-          return {width: '100%', height: '100%'}
+          style = {width: '32%', height: '32%'}
+          break
       }
+      this.$nextTick(() => {
+        for (let i = 0; i < this.spilt; i++) {
+          const player = this.$refs.player
+          player && player[i] && player[i].updatePlayerDomSize()
+        }
+      })
+      return style
     }
   },
   watch: {
@@ -98,20 +107,24 @@
       console.log(idx);
       this.clear(idx.substring(idx.length - 1))
     },
-    clickEvent: function (data) {
-      if (data.channelId && data.subCount == 0) {
-        this.sendDevicePush(data)
+    clickEvent: function (device, data, isCatalog) {
+      if (data.channelId && !isCatalog) {
+        if (device.online === 0) {
+          this.$message.error('璁惧绂荤嚎!涓嶅厑璁哥偣鎾�');
+        }else {
+          this.sendDevicePush(data)
+        }
       }
     },
-    contextMenuEvent: function (data) {
+    contextMenuEvent: function (device, event, data, isCatalog) {
 
     },
     //閫氱煡璁惧涓婁紶濯掍綋娴�
     sendDevicePush: function (itemData) {
-      if (itemData.status === 0) {
-        this.$message.error('璁惧绂荤嚎!');
-        return
-      }
+      // if (itemData.status === 0) {
+      //   this.$message.error('璁惧绂荤嚎!');
+      //   return
+      // }
       this.save(itemData)
       let deviceId = itemData.deviceId;
       // this.isLoging = true;
@@ -124,12 +137,15 @@
         method: 'get',
         url: '/api/play/start/' + deviceId + '/' + channelId
       }).then(function (res) {
-        // that.isLoging = false;
-        console.log('=====----=====')
-        console.log(res)
-        if (res.data.code == 0 && res.data.data) {
-          itemData.playUrl = res.data.data.httpsFlv
-          that.setPlayUrl(res.data.data.ws_flv, idxTmp)
+        if (res.data.code === 0 && res.data.data) {
+          let videoUrl;
+          if (location.protocol === "https:") {
+            videoUrl = res.data.data.wss_flv;
+          } else {
+            videoUrl = res.data.data.ws_flv;
+          }
+          itemData.playUrl = videoUrl;
+          that.setPlayUrl(videoUrl, idxTmp);
         } else {
           that.$message.error(res.data.msg);
         }

--
Gitblit v1.8.0