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