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