From 69d9692f6194d1e03ec81cf87ea8f0e7a62f7173 Mon Sep 17 00:00:00 2001
From: wangyimeng <421132955@qq.com>
Date: 星期三, 16 三月 2022 15:27:12 +0800
Subject: [PATCH] 删除重复字段
---
web_src/src/components/PushVideoList.vue | 126 +++++++++++++++++++++++++++++++++---------
1 files changed, 99 insertions(+), 27 deletions(-)
diff --git a/web_src/src/components/PushVideoList.vue b/web_src/src/components/PushVideoList.vue
index 2f3ab2b..4c803da 100644
--- a/web_src/src/components/PushVideoList.vue
+++ b/web_src/src/components/PushVideoList.vue
@@ -8,25 +8,53 @@
<div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;">
<span style="font-size: 1rem; font-weight: bold;">鎺ㄦ祦鍒楄〃</span>
</div>
+ <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;font-size: 14px;">
+
+ 鎼滅储: <el-input @input="getPushList" style="margin-right: 1rem; width: auto;" size="mini" placeholder="鍏抽敭瀛�" prefix-icon="el-icon-search" v-model="searchSrt" clearable> </el-input>
+
+ 娴佸獟浣�: <el-select size="mini" @change="getPushList" style="margin-right: 1rem;" v-model="mediaServerId" placeholder="璇烽�夋嫨" default-first-option>
+ <el-option label="鍏ㄩ儴" value=""></el-option>
+ <el-option
+ v-for="item in mediaServerList"
+ :key="item.id"
+ :label="item.id"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ 鎺ㄦ祦鐘舵��: <el-select size="mini" style="margin-right: 1rem;" @change="getPushList" v-model="pushing" placeholder="璇烽�夋嫨" default-first-option>
+ <el-option label="鍏ㄩ儴" value=""></el-option>
+ <el-option label="鎺ㄦ祦杩涜涓�" value="true"></el-option>
+ <el-option label="鎺ㄦ祦鏈繘琛�" value="false"></el-option>
+ </el-select>
+ <el-button icon="el-icon-upload2" size="mini" style="margin-right: 1rem;" type="primary" @click="importChannel">閫氶亾瀵煎叆</el-button>
+ <el-button icon="el-icon-download" size="mini" style="margin-right: 1rem;" type="primary" >
+ <a style="color: #FFFFFF; text-align: center; text-decoration: none" href="/static/file/鎺ㄦ祦閫氶亾瀵煎叆.zip" download='鎺ㄦ祦閫氶亾瀵煎叆.zip' >涓嬭浇妯℃澘</a>
+ </el-button>
+ <el-button icon="el-icon-delete" size="mini" style="margin-right: 1rem;" :disabled="multipleSelection.length === 0" type="danger" @click="batchDel">鎵归噺绉婚櫎</el-button>
+ </div>
<devicePlayer ref="devicePlayer"></devicePlayer>
<addStreamTOGB ref="addStreamTOGB"></addStreamTOGB>
- <el-table :data="pushList" border style="width: 100%" :height="winHeight">
- <el-table-column prop="app" label="APP" width="180" align="center">
+ <el-table ref="pushListTable" :data="pushList" border 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>
+ <el-table-column prop="name" label="鍚嶇О" align="center">
</el-table-column>
- <el-table-column prop="stream" label="娴両D" width="240" align="center">
+ <el-table-column prop="app" label="APP" align="center">
</el-table-column>
- <el-table-column prop="gbId" label="鍥芥爣缂栫爜" width="150" align="center">
+ <el-table-column prop="stream" label="娴両D" align="center">
</el-table-column>
- <el-table-column prop="mediaServerId" label="娴佸獟浣�" width="150" align="center">
+ <el-table-column prop="gbId" label="鍥芥爣缂栫爜" width="200" align="center">
</el-table-column>
- <el-table-column label="寮�濮嬫椂闂�" align="center" >
+ <el-table-column prop="mediaServerId" label="娴佸獟浣�" width="200" align="center">
+ </el-table-column>
+ <el-table-column label="寮�濮嬫椂闂�" align="center" width="200">
<template slot-scope="scope">
<el-button-group>
{{dateFormat(parseInt(scope.row.createStamp))}}
</el-button-group>
</template>
</el-table-column>
- <el-table-column label="姝e湪鎺ㄦ祦" align="center" >
+ <el-table-column label="姝e湪鎺ㄦ祦" align="center" width="100">
<template slot-scope="scope">
{{(scope.row.status == false && scope.row.gbId == null) || scope.row.status ?'鏄�':'鍚�'}}
</template>
@@ -35,8 +63,8 @@
<el-table-column label="鎿嶄綔" width="360" align="center" fixed="right">
<template slot-scope="scope">
<el-button-group>
- <el-button size="mini" icon="el-icon-video-play" @click="playPuhsh(scope.row)">鎾斁</el-button>
- <el-button size="mini" icon="el-icon-switch-button" type="danger" @click="stopPuhsh(scope.row)">绉婚櫎</el-button>
+ <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>
@@ -54,6 +82,7 @@
:total="total">
</el-pagination>
<streamProxyEdit ref="streamProxyEdit" ></streamProxyEdit>
+ <importChannel ref="importChannel" ></importChannel>
</el-main>
</el-container>
</div>
@@ -64,13 +93,16 @@
import devicePlayer from './dialog/devicePlayer.vue'
import addStreamTOGB from './dialog/addStreamTOGB.vue'
import uiHeader from './UiHeader.vue'
+ import importChannel from './dialog/importChannel.vue'
+ import MediaServer from './service/MediaServer'
export default {
name: 'pushVideoList',
components: {
devicePlayer,
addStreamTOGB,
streamProxyEdit,
- uiHeader
+ uiHeader,
+ importChannel,
},
data() {
return {
@@ -78,10 +110,16 @@
currentPusher: {}, //褰撳墠鎿嶄綔璁惧瀵硅薄
updateLooper: 0, //鏁版嵁鍒锋柊杞鏍囧織
currentDeviceChannelsLenth:0,
- winHeight: window.innerHeight - 200,
+ winHeight: window.innerHeight - 250,
+ mediaServerObj : new MediaServer(),
currentPage:1,
count:15,
total:0,
+ searchSrt: "",
+ pushing: "",
+ mediaServerId: "",
+ mediaServerList: [],
+ multipleSelection: [],
getDeviceListLoading: false
};
},
@@ -89,13 +127,16 @@
},
mounted() {
this.initData();
- this.updateLooper = setInterval(this.initData, 2000);
+ this.updateLooper = setInterval(this.getPushList, 2000);
},
destroyed() {
clearTimeout(this.updateLooper);
},
methods: {
initData: function() {
+ this.mediaServerObj.getOnlineMediaServerList((data)=>{
+ this.mediaServerList = data.data;
+ })
this.getPushList();
},
currentChange: function(val){
@@ -114,21 +155,22 @@
url:`/api/push/list`,
params: {
page: that.currentPage,
- count: that.count
+ count: that.count,
+ query: that.searchSrt,
+ pushing: that.pushing,
+ mediaServerId: that.mediaServerId,
}
}).then(function (res) {
- console.log(res);
- console.log(res.data.list);
that.total = res.data.total;
that.pushList = res.data.list;
that.getDeviceListLoading = false;
}).catch(function (error) {
- console.log(error);
+ console.error(error);
that.getDeviceListLoading = false;
});
},
- playPuhsh: function(row){
+ playPush: function(row){
let that = this;
this.getListLoading = true;
this.$axios({
@@ -146,12 +188,12 @@
hasAudio: true
});
}).catch(function (error) {
- console.log(error);
+ console.error(error);
that.getListLoading = false;
});
},
- stopPuhsh: function(row){
- var that = this;
+ stopPush: function(row){
+ let that = this;
that.$axios({
method:"post",
url:"/api/push/stop",
@@ -164,14 +206,14 @@
that.initData()
}
}).catch(function (error) {
- console.log(error);
+ console.error(error);
});
},
addToGB: function(row){
this.$refs.addStreamTOGB.openDialog({app: row.app, stream: row.stream, mediaServerId: row.mediaServerId}, this.initData);
},
removeFromGB: function(row){
- var that = this;
+ let that = this;
that.$axios({
method:"delete",
url:"/api/push/remove_form_gb",
@@ -181,13 +223,13 @@
that.initData()
}
}).catch(function (error) {
- console.log(error);
+ console.error(error);
});
},
dateFormat: function(/** timestamp=0 **/) {
- var ts = arguments[0] || 0;
- var t,y,m,d,h,i,s;
- t = ts ? new Date(ts*1000) : new Date();
+ 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();
@@ -196,8 +238,38 @@
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(()=>{
+ })
+ },
+ batchDel: function () {
+ this.$confirm(`纭畾鍒犻櫎閫変腑鐨�${this.multipleSelection.length}涓�氶亾?`, '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ let that = this;
+ that.$axios({
+ method:"delete",
+ url:"/api/push/batchStop",
+ data: {
+ gbStreams: this.multipleSelection
+ }
+ }).then((res)=>{
+ this.initData();
+ this.$refs.pushListTable.clearSelection();
+ }).catch(function (error) {
+ console.error(error);
+ });
+ }).catch(() => {
+
+ });
+ },
+ handleSelectionChange: function (val) {
+ this.multipleSelection = val;
+ },
}
};
</script>
--
Gitblit v1.8.0