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/PushVideoList.vue |  106 +++++++++++++++++++++++++++++------------------------
 1 files changed, 58 insertions(+), 48 deletions(-)

diff --git a/web_src/src/components/PushVideoList.vue b/web_src/src/components/PushVideoList.vue
index 7b5a406..6aed98a 100644
--- a/web_src/src/components/PushVideoList.vue
+++ b/web_src/src/components/PushVideoList.vue
@@ -34,52 +34,61 @@
         <el-button icon="el-icon-delete" size="mini" style="margin-right: 1rem;"
                    :disabled="multipleSelection.length === 0" type="danger" @click="batchDel">鎵归噺绉婚櫎
         </el-button>
+        <el-button icon="el-icon-plus" size="mini" style="margin-right: 1rem;" type="primary" @click="addStream">娣诲姞閫氶亾
+        </el-button>
+        <el-button icon="el-icon-refresh-right" circle size="mini" @click="refresh()"></el-button>
       </div>
     </div>
     <devicePlayer ref="devicePlayer"></devicePlayer>
     <addStreamTOGB ref="addStreamTOGB"></addStreamTOGB>
-    <el-table ref="pushListTable" :data="pushList" border style="width: 100%" :height="winHeight"
+    <el-table ref="pushListTable" :data="pushList" style="width: 100%" :height="winHeight"
               @selection-change="handleSelectionChange" :row-key="(row)=> row.app + row.stream">
-      <el-table-column align="center" type="selection" :reserve-selection="true" width="55">
+      <el-table-column  type="selection" :reserve-selection="true" min-width="55">
       </el-table-column>
-      <el-table-column prop="name" label="鍚嶇О" align="center">
+      <el-table-column prop="name" label="鍚嶇О" min-width="200">
       </el-table-column>
-      <el-table-column prop="app" label="APP" align="center">
+      <el-table-column prop="app" label="APP" min-width="200">
       </el-table-column>
-      <el-table-column prop="stream" label="娴両D" align="center">
+      <el-table-column prop="stream" label="娴両D" min-width="200">
       </el-table-column>
-      <el-table-column prop="gbId" label="鍥芥爣缂栫爜" width="200" align="center">
+      <el-table-column prop="gbId" label="鍥芥爣缂栫爜" min-width="200" >
       </el-table-column>
-      <el-table-column prop="mediaServerId" label="娴佸獟浣�" width="200" align="center">
+      <el-table-column prop="mediaServerId" label="娴佸獟浣�" min-width="200" >
       </el-table-column>
-      <el-table-column label="寮�濮嬫椂闂�" align="center" width="200">
+      <el-table-column label="寮�濮嬫椂闂�"  min-width="200">
         <template slot-scope="scope">
           <el-button-group>
-            {{ dateFormat(parseInt(scope.row.createStamp)) }}
+            {{ scope.row.pushTime == null? "-":scope.row.pushTime }}
           </el-button-group>
         </template>
       </el-table-column>
-      <el-table-column label="姝e湪鎺ㄦ祦" align="center" width="100">
+      <el-table-column label="姝e湪鎺ㄦ祦"  min-width="100">
         <template slot-scope="scope">
-          {{ (scope.row.status == false && scope.row.gbId == null) || scope.row.status ? '鏄�' : '鍚�' }}
+          {{scope.row.pushIng ? '鏄�' : '鍚�' }}
+        </template>
+      </el-table-column>
+      <el-table-column label="鏈钩鍙版帹娴�"  min-width="100">
+        <template slot-scope="scope">
+          {{scope.row.pushIng && !!scope.row.self ? '鏄�' : '鍚�' }}
         </template>
       </el-table-column>
 
-      <el-table-column label="鎿嶄綔" width="360" align="center" fixed="right">
+      <el-table-column label="鎿嶄綔" min-width="360"  fixed="right">
         <template slot-scope="scope">
-          <el-button-group>
-            <el-button size="mini" icon="el-icon-video-play"
-                       v-if="(scope.row.status == false && scope.row.gbId == null) || scope.row.status"
-                       @click="playPush(scope.row)">鎾斁
-            </el-button>
-            <el-button size="mini" icon="el-icon-delete" type="danger" @click="stopPush(scope.row)">绉婚櫎</el-button>
-            <el-button size="mini" icon="el-icon-position" type="primary" v-if="!!!scope.row.gbId"
-                       @click="addToGB(scope.row)">鍔犲叆鍥芥爣
-            </el-button>
-            <el-button size="mini" icon="el-icon-position" type="primary" v-if="!!scope.row.gbId"
-                       @click="removeFromGB(scope.row)">绉诲嚭鍥芥爣
-            </el-button>
-          </el-button-group>
+          <el-button size="medium" icon="el-icon-video-play"
+                     v-if="scope.row.pushIng === true"
+                     @click="playPush(scope.row)" type="text">鎾斁
+          </el-button>
+          <el-divider direction="vertical"></el-divider>
+          <el-button size="medium" icon="el-icon-delete" type="text" @click="stopPush(scope.row)" style="color: #f56c6c" >绉婚櫎</el-button>
+          <el-divider direction="vertical"></el-divider>
+          <el-button size="medium" icon="el-icon-position" type="text" v-if="!!!scope.row.gbId"
+                     @click="addToGB(scope.row)">鍔犲叆鍥芥爣
+          </el-button>
+          <el-divider v-if="!!!scope.row.gbId" direction="vertical"></el-divider>
+          <el-button size="medium" icon="el-icon-position" type="text" v-if="!!scope.row.gbId"
+                     @click="removeFromGB(scope.row)">绉诲嚭鍥芥爣
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -101,7 +110,7 @@
 <script>
 import streamProxyEdit from './dialog/StreamProxyEdit.vue'
 import devicePlayer from './dialog/devicePlayer.vue'
-import addStreamTOGB from './dialog/addStreamTOGB.vue'
+import addStreamTOGB from './dialog/pushStreamEdit.vue'
 import uiHeader from '../layout/UiHeader.vue'
 import importChannel from './dialog/importChannel.vue'
 import MediaServer from './service/MediaServer'
@@ -171,8 +180,11 @@
           mediaServerId: that.mediaServerId,
         }
       }).then(function (res) {
-        that.total = res.data.total;
-        that.pushList = res.data.list;
+          if (res.data.code === 0) {
+            that.total = res.data.data.total;
+            that.pushList = res.data.data.list;
+          }
+
         that.getDeviceListLoading = false;
       }).catch(function (error) {
         console.error(error);
@@ -185,7 +197,7 @@
       this.getListLoading = true;
       this.$axios({
         method: 'get',
-        url: '/api/media/stream_info_by_app_and_stream',
+        url: '/api/push/getPlayUrl',
         params: {
           app: row.app,
           stream: row.stream,
@@ -193,10 +205,15 @@
         }
       }).then(function (res) {
         that.getListLoading = false;
-        that.$refs.devicePlayer.openDialog("streamPlay", null, null, {
-          streamInfo: res.data.data,
-          hasAudio: true
-        });
+        if (res.data.code === 0 ) {
+          that.$refs.devicePlayer.openDialog("streamPlay", null, null, {
+            streamInfo: res.data.data,
+            hasAudio: true
+          });
+        }else {
+          that.$message.error(res.data.msg);
+        }
+
       }).catch(function (error) {
         console.error(error);
         that.getListLoading = false;
@@ -212,7 +229,7 @@
           streamId: row.stream
         }
       }).then((res) => {
-        if (res.data == "success") {
+        if (res.data.code === 0) {
           that.initData()
         }
       }).catch(function (error) {
@@ -233,30 +250,20 @@
         url: "/api/push/remove_form_gb",
         data: row
       }).then((res) => {
-        if (res.data == "success") {
+        if (res.data.code === 0) {
           that.initData()
         }
       }).catch(function (error) {
         console.error(error);
       });
     },
-    dateFormat: function (/** timestamp=0 **/) {
-      let ts = arguments[0] || 0;
-      let t, y, m, d, h, i, s;
-      t = ts ? new Date(ts) : new Date();
-      y = t.getFullYear();
-      m = t.getMonth() + 1;
-      d = t.getDate();
-      h = t.getHours();
-      i = t.getMinutes();
-      s = t.getSeconds();
-      // 鍙牴鎹渶瑕佸湪杩欓噷瀹氫箟鏃堕棿鏍煎紡
-      return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d) + ' ' + (h < 10 ? '0' + h : h) + ':' + (i < 10 ? '0' + i : i) + ':' + (s < 10 ? '0' + s : s);
-    },
     importChannel: function () {
       this.$refs.importChannel.openDialog(() => {
 
       })
+    },
+    addStream: function (){
+      this.$refs.addStreamTOGB.openDialog(null, this.initData);
     },
     batchDel: function () {
       this.$confirm(`纭畾鍒犻櫎閫変腑鐨�${this.multipleSelection.length}涓�氶亾?`, '鎻愮ず', {
@@ -284,6 +291,9 @@
     handleSelectionChange: function (val) {
       this.multipleSelection = val;
     },
+    refresh: function () {
+      this.initData();
+    },
   }
 };
 </script>

--
Gitblit v1.8.0