From 9f16b5c553b479ea12fe368a7ecc748872ea8b98 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期四, 12 六月 2025 11:11:27 +0800 Subject: [PATCH] 修改配置文件 --- web_src/src/components/dialog/chooseChannelForGb.vue | 352 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 233 insertions(+), 119 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 b21416c..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,27 +13,25 @@ <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="shareAllCheckedChanage">鍏ㄩ儴鍏变韩</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%" @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 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="name" label="閫氶亾鍚嶇О"> + <el-table-column prop="channelId" label="閫氶亾缂栧彿" width="180" align="center"> </el-table-column> - <el-table-column prop="deviceId" label="璁惧缂栧彿" width="210" > + <el-table-column prop="name" label="閫氶亾鍚嶇О" show-overflow-tooltip align="center"> + </el-table-column> + <el-table-column prop="deviceId" label="璁惧缂栧彿" width="180" align="center"> </el-table-column> <el-table-column label="璁惧鍦板潃" width="180" align="center"> <template slot-scope="scope"> @@ -40,16 +42,25 @@ </el-table-column> <el-table-column prop="manufacturer" label="鍘傚" align="center"> </el-table-column> + <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="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', - props: {}, computed: { // getPlayerShared: function () { // return { @@ -59,30 +70,38 @@ // }; // } }, - props: ['platformId'], + props: ['platformId','catalogId', 'catalogName'], created() { this.initData(); }, + components: { + getCatalog, + }, data() { return { + loading: false, gbChannels: [], gbChoosechannel:{}, searchSrt: "", channelType: "", online: "", choosed: "", - currentPage: 0, + currentPage: 1, count: 10, total: 0, - eventEnanle: false + eventEnable: false, + multipleSelection: [], + winHeight: window.innerHeight - 400, }; }, watch:{ platformId(newData, oldData){ console.log(newData) - this.initData() - + this.getChannelList() + }, + catalogId(newData, oldData){ + this.getChannelList() }, }, methods: { @@ -97,125 +116,171 @@ this.count = val; console.log(val) this.initData(); + }, + add: function (row) { + 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) + }) + }, - rowcheckedChanage: function (val, row) { - console.log(val) + remove: function (row) { + let all = typeof(row) === "undefined" + this.$confirm(`纭畾绉婚櫎${all?"鎵�鏈夐�氶亾":""}鍚楋紵`, '鎻愮ず', { + dangerouslyUseHTMLString: true, + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { 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]) - } - } - } + 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(() => { - 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) - }, + // 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; - this.$axios.get(`/api/platforms/channelList`, { + this.$axios({ + method:"get", + url:`/api/platform/channel_list`, params: { page: that.currentPage, 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.checkedChanage(chooseGBS) - }) - console.log(that.gbChoosechannel) + } + // 闃叉鍑虹幇琛ㄦ牸閿欎綅 + that.$nextTick(() => { + that.$refs.gbChannelsTable.doLayout(); + that.eventEnable = true; + }) }) .catch(function (error) { console.log(error); @@ -228,6 +293,55 @@ handleGBSelectionChange: function() { this.initData(); }, + 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