From c1bc45fe8fc898b451b52d4f9dd2fc7d01e94878 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 06 十一月 2023 15:13:58 +0800
Subject: [PATCH] 修复点播接口状态判断错误
---
web_src/src/components/dialog/chooseChannelForGb.vue | 372 +++++++++++++++++++++++++++++++----------------------
1 files changed, 217 insertions(+), 155 deletions(-)
diff --git a/web_src/src/components/dialog/chooseChannelForGb.vue b/web_src/src/components/dialog/chooseChannelForGb.vue
old mode 100644
new mode 100755
index e46d3e5..bc71577
--- a/web_src/src/components/dialog/chooseChannelForGb.vue
+++ b/web_src/src/components/dialog/chooseChannelForGb.vue
@@ -1,6 +1,10 @@
<template>
-<div id="chooseChannelForGb" >
- <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;font-size: 14px;">
+<div id="chooseChannelForGb" v-loading="loading">
+ <div style="font-size: 17px; color: #606060; white-space: nowrap; line-height: 30px; font-family: monospace;">
+ <span v-if="catalogId == null">{{catalogName}}鐨勫浗鏍囬�氶亾</span>
+ <span v-if="catalogId != null">{{catalogName}}({{catalogId}})鐨勫浗鏍囬�氶亾</span>
+ </div>
+ <div style="background-color: #FFFFFF; position: relative; padding: 0.5rem; text-align: left;font-size: 14px;">
鎼滅储: <el-input @input="search" 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="search" style="margin-right: 1rem; width:6rem" v-model="channelType" placeholder="璇烽�夋嫨" default-first-option>
@@ -9,21 +13,20 @@
<el-option label="瀛愮洰褰�" value="true"></el-option>
</el-select>
- 閫夋嫨鐘舵��: <el-select size="mini" style="margin-right: 1rem; width:6rem" v-model="choosed" @change="search" 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-select size="mini" style="margin-right: 1rem; width:6rem" @change="search" v-model="online" 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-checkbox @change="shareAllCheckedChange">鍏ㄩ儴鍏变韩</el-checkbox>-->
+ <el-button v-if="catalogId !== null" icon="el-icon-delete" size="mini" :disabled="gbChannels.length === 0 || multipleSelection.length === 0" type="danger" @click="batchDel">鎵归噺绉婚櫎</el-button>
+ <el-button v-if="catalogId === null" icon="el-icon-plus" size="mini" :disabled="gbChannels.length === 0 || multipleSelection.length === 0" @click="batchAdd">鎵归噺娣诲姞</el-button>
+ <el-button v-if="catalogId === null" icon="el-icon-plus" size="mini" @click="add()">鍏ㄩ儴娣诲姞</el-button>
+ <el-button v-if="catalogId !== null" type="danger" icon="el-icon-delete" size="mini" @click="remove()">鍏ㄩ儴绉婚櫎</el-button>
</div>
- <el-table ref="gbChannelsTable" :data="gbChannels" border style="width: 100%" :height="winHeight">
+
+ <el-table ref="gbChannelsTable" :data="gbChannels" border style="width: 100%" :height="winHeight" :row-key="(row)=> row.deviceId + row.channelId" @selection-change="handleSelectionChange">
+ <el-table-column align="center" type="selection" :reserve-selection="true" width="55">
+ </el-table-column>
<el-table-column prop="channelId" label="閫氶亾缂栧彿" width="180" align="center">
</el-table-column>
<el-table-column prop="name" label="閫氶亾鍚嶇О" show-overflow-tooltip align="center">
@@ -42,18 +45,20 @@
<el-table-column label="鎿嶄綔" width="100" align="center" fixed="right">
<template slot-scope="scope">
<el-button-group>
- <el-button size="mini" icon="el-icon-plus" v-if="!scope.row.platformId" @click="add(scope.row)">娣诲姞</el-button>
- <el-button size="mini" icon="el-icon-delete" v-if="scope.row.platformId" type="danger" @click="remove(scope.row)">绉婚櫎</el-button>
+ <el-button size="mini" icon="el-icon-plus" v-if="catalogId === null" @click="add(scope.row)">娣诲姞</el-button>
+ <el-button size="mini" icon="el-icon-delete" v-if="catalogId !== null" type="danger" @click="remove(scope.row)">绉婚櫎</el-button>
</el-button-group>
</template>
</el-table-column>
</el-table>
<el-pagination style="float: right;margin-top: 1rem;" @size-change="handleSizeChange" @current-change="currentChange" :current-page="currentPage" :page-size="count" :page-sizes="[10, 20, 30, 50]" layout="total, sizes, prev, pager, next" :total="total">
</el-pagination>
+ <getCatalog ref="getCatalog" :platformId="platformId" ></getCatalog>
</div>
</template>
<script>
+import getCatalog from './getCatalog'
export default {
name: 'chooseChannelForGb',
computed: {
@@ -65,12 +70,16 @@
// };
// }
},
- props: ['platformId','catalogId', 'updateChoosedCallback'],
+ props: ['platformId','catalogId', 'catalogName'],
created() {
this.initData();
},
+ components: {
+ getCatalog,
+ },
data() {
return {
+ loading: false,
gbChannels: [],
gbChoosechannel:{},
searchSrt: "",
@@ -80,7 +89,8 @@
currentPage: 1,
count: 10,
total: 0,
- eventEnanle: false,
+ eventEnable: false,
+ multipleSelection: [],
winHeight: window.innerHeight - 400,
};
@@ -88,8 +98,10 @@
watch:{
platformId(newData, oldData){
console.log(newData)
- this.initData()
-
+ this.getChannelList()
+ },
+ catalogId(newData, oldData){
+ this.getChannelList()
},
},
methods: {
@@ -105,126 +117,143 @@
console.log(val)
this.initData();
},
- rowcheckedChange: function (val, row) {
- console.log(val)
- console.log(row)
- },
add: function (row) {
- console.log(row)
- row.catalogId = this.catalogId
- row.platformId = this.platformId
- this.$axios({
- method:"post",
- url:"/api/platform/update_channel_for_gb",
- data:{
- platformId: this.platformId,
- channelReduces: [row],
- catalogId: this.catalogId
- }
- }).then((res)=>{
- console.log("淇濆瓨鎴愬姛")
- if(this.updateChoosedCallback)this.updateChoosedCallback(this.catalogId)
- }).catch(function (error) {
- console.log(error);
- });
+ let all = typeof(row) === "undefined"
+
+ this.getCatalogFromUser((catalogId)=> {
+ let task = null;
+ this.$axios({
+ method:"post",
+ url:"/api/platform/update_channel_for_gb",
+ data:{
+ platformId: this.platformId,
+ all: all,
+ channelReduces: all?[]:[row],
+ catalogId: catalogId
+ }
+ }).then((res)=>{
+ console.log("淇濆瓨鎴愬姛")
+ window.clearTimeout(task);
+ this.loading = false;
+ this.getChannelList();
+ }).catch((error)=> {
+ window.clearTimeout(task);
+ this.loading = false;
+ console.log(error);
+ });
+ task= setTimeout(()=>{
+ this.loading = true;
+ }, 200)
+ })
+
+
},
remove: function (row) {
- console.log(row)
+ let all = typeof(row) === "undefined"
+ this.$confirm(`纭畾绉婚櫎${all?"鎵�鏈夐�氶亾":""}鍚楋紵`, '鎻愮ず', {
+ dangerouslyUseHTMLString: true,
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ console.log(row)
- this.$axios({
- method:"delete",
- url:"/api/platform/del_channel_for_gb",
- data:{
- platformId: this.platformId,
- channelReduces: [row]
- }
- }).then((res)=>{
- console.log("绉婚櫎鎴愬姛")
- if(this.updateChoosedCallback)this.updateChoosedCallback(row.catalogId)
- row.platformId = null;
- row.catalogId = null
- }).catch(function (error) {
- console.log(error);
+ this.$axios({
+ method:"delete",
+ url:"/api/platform/del_channel_for_gb",
+ data:{
+ platformId: this.platformId,
+ all: all,
+ channelReduces: all?[]:[row],
+ }
+ }).then((res)=>{
+ console.log("绉婚櫎鎴愬姛")
+ this.getChannelList();
+ }).catch(function (error) {
+ console.log(error);
+ });
+ }).catch(() => {
+
});
- },
- checkedChange: function (val) {
- let that = this;
- if (!that.eventEnanle) {
- return;
- }
- let newData = {};
- let addData = [];
- let delData = [];
- if (val.length > 0) {
- for (let i = 0; i < val.length; i++) {
- const element = val[i];
- let key = element.deviceId + "_" + element.channelId;
- newData[key] = element;
- if (!!!that.gbChoosechannel[key]){
- addData.push(element)
- }else{
- delete that.gbChoosechannel[key]
- }
- }
- let oldKeys = Object.keys(that.gbChoosechannel);
- if (oldKeys.length > 0) {
- for (let i = 0; i < oldKeys.length; i++) {
- const key = oldKeys[i];
- delData.push(that.gbChoosechannel[key])
- }
- }
-
- }else{
- let oldKeys = Object.keys(that.gbChoosechannel);
- if (oldKeys.length > 0) {
- for (let i = 0; i < oldKeys.length; i++) {
- const key = oldKeys[i];
- delData.push(that.gbChoosechannel[key])
- }
- }
- }
-
- that.gbChoosechannel = newData;
- if (Object.keys(addData).length >0) {
- that.$axios({
- method:"post",
- url:"/api/platform/update_channel_for_gb",
- data:{
- platformId: that.platformId,
- channelReduces: addData,
- catalogId: that.catalogId
- }
- }).then((res)=>{
- console.log("淇濆瓨鎴愬姛")
- if(that.updateChoosedCallback)that.updateChoosedCallback(that.catalogId)
- }).catch(function (error) {
- console.log(error);
- });
- }
- if (delData.length >0) {
- that.$axios({
- method:"delete",
- url:"/api/platform/del_channel_for_gb",
- data:{
- platformId: that.platformId,
- channelReduces: delData
- }
- }).then((res)=>{
- console.log("绉婚櫎鎴愬姛")
- let nodeIds = new Array();
- for (let i = 0; i < delData.length; i++) {
- nodeIds.push(delData[i].channelId)
- }
- if(that.updateChoosedCallback)that.updateChoosedCallback(null, nodeIds)
- }).catch(function (error) {
- console.log(error);
- });
- }
- },
- shareAllCheckedChange: function (val) {
},
+ // checkedChange: function (val) {
+ // let that = this;
+ // if (!that.eventEnable) {
+ // return;
+ // }
+ // let newData = {};
+ // let addData = [];
+ // let delData = [];
+ // if (val.length > 0) {
+ // for (let i = 0; i < val.length; i++) {
+ // const element = val[i];
+ // let key = element.deviceId + "_" + element.channelId;
+ // newData[key] = element;
+ // if (!!!that.gbChoosechannel[key]){
+ // addData.push(element)
+ // }else{
+ // delete that.gbChoosechannel[key]
+ // }
+ // }
+ //
+ // let oldKeys = Object.keys(that.gbChoosechannel);
+ // if (oldKeys.length > 0) {
+ // for (let i = 0; i < oldKeys.length; i++) {
+ // const key = oldKeys[i];
+ // delData.push(that.gbChoosechannel[key])
+ // }
+ // }
+ //
+ // }else{
+ // let oldKeys = Object.keys(that.gbChoosechannel);
+ // if (oldKeys.length > 0) {
+ // for (let i = 0; i < oldKeys.length; i++) {
+ // const key = oldKeys[i];
+ // delData.push(that.gbChoosechannel[key])
+ // }
+ // }
+ // }
+ //
+ // that.gbChoosechannel = newData;
+ // if (Object.keys(addData).length >0) {
+ // that.$axios({
+ // method:"post",
+ // url:"/api/platform/update_channel_for_gb",
+ // data:{
+ // platformId: that.platformId,
+ // channelReduces: addData,
+ // catalogId: that.catalogId
+ // }
+ // }).then((res)=>{
+ // console.log("淇濆瓨鎴愬姛")
+ // }).catch(function (error) {
+ // console.log(error);
+ // });
+ // }
+ // if (delData.length >0) {
+ // that.$axios({
+ // method:"delete",
+ // url:"/api/platform/del_channel_for_gb",
+ // data:{
+ // platformId: that.platformId,
+ // channelReduces: delData
+ // }
+ // }).then((res)=>{
+ // console.log("绉婚櫎鎴愬姛")
+ // let nodeIds = new Array();
+ // for (let i = 0; i < delData.length; i++) {
+ // nodeIds.push(delData[i].channelId)
+ // }
+ // }).catch(function (error) {
+ // console.log(error);
+ // });
+ // }
+ // },
+ // shareAllCheckedChange: function (val) {
+ //
+ // },
getChannelList: function () {
let that = this;
@@ -236,34 +265,22 @@
count: that.count,
query: that.searchSrt,
online: that.online,
- choosed: that.choosed,
+ catalogId: that.catalogId,
platformId: that.platformId,
channelType: that.channelType
}
})
.then(function (res) {
- that.total = res.data.total;
- that.gbChannels = res.data.list;
+ if (res.data.code === 0 ) {
+ that.total = res.data.data.total;
+ that.gbChannels = res.data.data.list;
that.gbChoosechannel = {};
- // 闃叉鍑虹幇琛ㄦ牸閿欎綅
- that.$nextTick(() => {
- that.$refs.gbChannelsTable.doLayout();
- // 榛樿閫変腑
- var chooseGBS = [];
- for (let i = 0; i < res.data.list.length; i++) {
- const row = res.data.list[i];
- console.log(row.platformId)
- if (row.platformId == that.platformId) {
- that.$refs.gbChannelsTable.toggleRowSelection(row, true);
- chooseGBS.push(row)
- that.gbChoosechannel[row.deviceId+ "_" + row.channelId] = row;
-
- }
- }
- that.eventEnanle = true;
- // that.checkedChange(chooseGBS)
- })
- console.log(that.gbChoosechannel)
+ }
+ // 闃叉鍑虹幇琛ㄦ牸閿欎綅
+ that.$nextTick(() => {
+ that.$refs.gbChannelsTable.doLayout();
+ that.eventEnable = true;
+ })
})
.catch(function (error) {
console.log(error);
@@ -276,10 +293,55 @@
handleGBSelectionChange: function() {
this.initData();
},
- // catalogIdChange: function(id) {
- // this.catalogId = id;
- // console.log("閫氶亾閫夋嫨妯″潡鏀跺埌锛� " + id)
- // },
+ batchDel: function() {
+ this.$confirm(`纭杩�${this.multipleSelection.length}涓�氶亾鍚楋紵`, '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.$axios({
+ method:"delete",
+ url:"/api/platform/del_channel_for_gb",
+ data:{
+ platformId: this.platformId,
+ channelReduces: this.multipleSelection
+ }
+ }).then((res)=>{
+ console.log("绉婚櫎鎴愬姛")
+ this.$refs.gbChannelsTable.clearSelection()
+ this.getChannelList();
+ }).catch(function (error) {
+ console.log(error);
+ });
+ }).catch(() => {
+ });
+ },
+ batchAdd: function() {
+ this.getCatalogFromUser((catalogId)=> {
+
+ this.$axios({
+ method: "post",
+ url: "/api/platform/update_channel_for_gb",
+ data: {
+ platformId: this.platformId,
+ channelReduces: this.multipleSelection,
+ catalogId: catalogId,
+ }
+ }).then((res) => {
+ console.log("淇濆瓨鎴愬姛")
+ this.$refs.gbChannelsTable.clearSelection()
+ this.getChannelList();
+ }).catch(function (error) {
+ console.log(error);
+ });
+ });
+ },
+ handleSelectionChange: function (val) {
+ this.multipleSelection = val;
+ },
+ getCatalogFromUser(callback){
+ this.$refs.getCatalog.openDialog(callback)
+ },
}
};
</script>
--
Gitblit v1.8.0