|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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="正在推流"  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="操作" min-width="360"  fixed="right"> | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-button size="medium" icon="el-icon-video-play" | 
|---|
|  |  |  | v-if="(scope.row.status == false && scope.row.gbId == null) || scope.row.status" | 
|---|
|  |  |  | v-if="scope.row.pushIng === true" | 
|---|
|  |  |  | @click="playPush(scope.row)" type="text">播放 | 
|---|
|  |  |  | </el-button> | 
|---|
|  |  |  | <el-divider direction="vertical"></el-divider> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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' | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }).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; | 
|---|
|  |  |  | 
|---|
|  |  |  | streamId: row.stream | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }).then((res) => { | 
|---|
|  |  |  | if (res.data == "success") { | 
|---|
|  |  |  | if (res.data.code === 0) { | 
|---|
|  |  |  | that.initData() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }).catch(function (error) { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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}个通道?`, '提示', { | 
|---|
|  |  |  | confirmButtonText: '确定', | 
|---|