From f082797d9bf323084ebc6216c84eb00f05da868f Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期三, 13 一月 2021 17:08:26 +0800 Subject: [PATCH] 完成向上级联->选择通道-003 --- web_src/src/components/gb28181/chooseChannelForGb.vue | 141 +++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 129 insertions(+), 12 deletions(-) diff --git a/web_src/src/components/gb28181/chooseChannelForGb.vue b/web_src/src/components/gb28181/chooseChannelForGb.vue index 3e488fe..c57fe17 100644 --- a/web_src/src/components/gb28181/chooseChannelForGb.vue +++ b/web_src/src/components/gb28181/chooseChannelForGb.vue @@ -3,19 +3,28 @@ <div style="background-color: #FFFFFF; margin-bottom: 1rem; 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;" v-model="channelType" placeholder="璇烽�夋嫨" default-first-option> + 閫氶亾绫诲瀷: <el-select size="mini" @change="search" style="margin-right: 1rem; width:6rem" v-model="channelType" placeholder="璇烽�夋嫨" default-first-option> <el-option label="鍏ㄩ儴" value=""></el-option> <el-option label="璁惧" value="false"></el-option> <el-option label="瀛愮洰褰�" value="true"></el-option> </el-select> - 鍦ㄧ嚎鐘舵��: <el-select size="mini" style="margin-right: 1rem;" @change="search" v-model="online" placeholder="璇烽�夋嫨" default-first-option> + + 閫夋嫨鐘舵��: <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="shareAllCheckedChanage">鍏ㄩ儴鍏变韩</el-checkbox> </div> - <el-table ref="gbChannelsTable" :data="gbChannels" border style="width: 100%" @selection-change="chooseChanage" > - <el-table-column type="selection" width="55" align="center" fixed> </el-table-column> + <el-table ref="gbChannelsTable" :data="gbChannels" border style="width: 100%" @selection-change="checkedChanage" > + <el-table-column type="selection" width="55" align="center" fixed > </el-table-column> <el-table-column prop="channelId" label="閫氶亾缂栧彿" width="210"> </el-table-column> <el-table-column prop="name" label="閫氶亾鍚嶇О"> @@ -50,21 +59,31 @@ // }; // } }, - props: ['chooseChanage'], + props: ['platformId'], created() { this.initData(); }, data() { return { gbChannels: [], + gbChoosechannel:{}, searchSrt: "", channelType: "", online: "", - currentPage: parseInt(this.$route.params.page), - count: parseInt(this.$route.params.count), - total: 0 - + choosed: "", + currentPage: 0, + count: 15, + total: 0, + eventEnanle: false + }; + }, + watch:{ + platformId(newData, oldData){ + console.log(newData) + this.initData() + + }, }, methods: { initData: function() { @@ -75,30 +94,128 @@ this.initData(); }, handleSizeChange: function (val) { - this.count = val; + this.count = val; + console.log(val) this.initData(); + }, + rowcheckedChanage: function (val, row) { + console.log(val) + console.log(row) + }, + checkedChanage: function (val) { + var that = this; + if (!that.eventEnanle) { + return; + } + var tabelData = JSON.parse(JSON.stringify(this.$refs.gbChannelsTable.data)); + console.log("checkedChanage") + console.log(val) + + var newData = {}; + var addData = []; + var delData = []; + if (val.length > 0) { + for (let i = 0; i < val.length; i++) { + const element = val[i]; + var key = element.deviceId + "_" + element.channelId; + newData[key] = element; + if (!!!that.gbChoosechannel[key]){ + addData.push(element) + }else{ + delete that.gbChoosechannel[key] + } + } + + var 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{ + var 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/platforms/updateChannelForGB", + data:{ + platformId: that.platformId, + channelReduces: addData + } + }).then((res)=>{ + console.log("淇濆瓨鎴愬姛") + }).catch(function (error) { + console.log(error); + }); + } + if (Object.keys(delData).length >0) { + that.$axios({ + method:"post", + url:"/api/platforms/delChannelForGB", + data:{ + platformId: that.platformId, + channelReduces: delData + } + }).then((res)=>{ + console.log("绉婚櫎鎴愬姛") + }).catch(function (error) { + console.log(error); + }); + } + + }, + shareAllCheckedChanage: function (val) { + this.chooseChanage(null, val) }, getChannelList: function () { let that = this; this.$axios.get(`/api/platforms/channelList`, { params: { - page: that.currentPage - 1, + page: that.currentPage, count: that.count, query: that.searchSrt, online: that.online, + choosed: that.choosed, + platformId: that.platformId, channelType: that.channelType } }) .then(function (res) { - console.log(res); that.total = res.data.total; that.gbChannels = res.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.checkedChanage(chooseGBS) }) + console.log(that.gbChoosechannel) }) .catch(function (error) { console.log(error); -- Gitblit v1.8.0