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/chooseChannel.vue                                |   20 --
 src/main/java/com/genersoft/iot/vmp/storager/dao/PatformChannelMapper.java      |   37 ++++++
 web_src/src/components/ParentPlatformList.vue                                   |    6 
 src/main/resources/wvp.sqlite                                                   |    0 
 web_src/src/components/gb28181/chooseChannelForGb.vue                           |  141 +++++++++++++++++++++--
 src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java |   43 ++++++
 README.md                                                                       |    2 
 src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java         |   14 ++
 /dev/null                                                                       |    7 -
 web_src/src/components/channelList.vue                                          |    2 
 src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/ChannelReduce.java   |   21 +++
 src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java   |   22 +++
 src/main/resources/application.yml                                              |    2 
 src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java       |   28 ++-
 14 files changed, 285 insertions(+), 60 deletions(-)

diff --git a/README.md b/README.md
index a88ea2d..ab0d0ca 100644
--- a/README.md
+++ b/README.md
@@ -40,7 +40,7 @@
     - [X] WEB娣诲姞涓婄骇骞冲彴
     - [X] 娉ㄥ唽
     - [X] 蹇冭烦淇濇椿
-    - [ ] 閫氶亾閫夋嫨
+    - [X] 閫氶亾閫夋嫨
     - [ ] 閫氶亾鎺ㄩ��
     - [ ] 鐐规挱
     - [ ] 浜戝彴鎺у埗
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
index b4d0c9b..9e986db 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
@@ -206,9 +206,9 @@
 	void outlineForAllParentPlatform();
 
 	/**
-	 * 鏌ヨ閫氶亾淇℃伅锛� 涓嶅尯鍒嗚澶�
+	 * 鏌ヨ閫氶亾淇℃伅锛屼笉鍖哄垎璁惧(宸插叧鑱斿钩鍙版垨鍏ㄩ儴)
 	 */
-	PageInfo<ChannelReduce> queryChannelListInAll(int page, int count, String query, Boolean online, Boolean channelType, String parentChannelId);
+	PageInfo<ChannelReduce> queryAllChannelList(int page, int count, String query, Boolean online, Boolean channelType, String platformId, Boolean inPlatform);
 
 
 	/**
@@ -218,4 +218,14 @@
 	 * @return
 	 */
 	int updateChannelForGB(String platformId, List<ChannelReduce> channelReduces);
+
+	/**
+	 *  绉婚櫎涓婄骇骞冲彴鐨勯�氶亾淇℃伅
+	 * @param platformId
+	 * @param channelReduces
+	 * @return
+	 */
+	int delChannelForGB(String platformId, List<ChannelReduce> channelReduces);
+
+
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
index ff1a7e1..5b04222 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
@@ -4,6 +4,7 @@
 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
 import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce;
 import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
 
 import java.util.List;
 
@@ -11,6 +12,7 @@
  * 鐢ㄤ簬瀛樺偍璁惧閫氶亾淇℃伅
  */
 @Mapper
+@Repository
 public interface DeviceChannelMapper {
 
     @Insert("INSERT INTO device_channel (channelId, deviceId, name, manufacture, model, owner, civilCode, block, " +
@@ -79,18 +81,22 @@
 
     @Select(value = {" <script>" +
             "SELECT * FROM ( "+
-            " SELECT dc.channelId, dc.deviceId, dc.name, de.manufacturer, de.hostAddress, " +
-            "(SELECT count(0) FROM device_channel WHERE parentId=dc.channelId) as subCount " +
-            "FROM device_channel dc LEFT JOIN device de ON dc.deviceId = de.deviceId" +
+                " SELECT dc.channelId, dc.deviceId, dc.name, de.manufacturer, de.hostAddress, " +
+                "(SELECT count(0) FROM device_channel WHERE parentId=dc.channelId) as subCount, " +
+                "pc.platformId " +
+                "FROM device_channel dc " +
+                "LEFT JOIN device de ON dc.deviceId = de.deviceId " +
+                "LEFT JOIN platform_gb_channel pc on pc.deviceId = dc.deviceId AND pc.channelId = dc.channelId " +
+                " WHERE 1=1 " +
+                " <if test=\"query != null\"> AND (dc.channelId LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " +
+                " <if test=\"online == true\" > AND dc.status=1</if> " +
+                " <if test=\"online == false\" > AND dc.status=0</if> " +
+                " <if test=\"platformId != null and inPlatform == true\"> AND pc.platformId=#{platformId} </if> " +
+            ") dcr" +
             " WHERE 1=1 " +
-            " <if test=\"query != null\"> AND (dc.channelId LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " +
-            " <if test=\"parentChannelId != null\"> AND dc.parentId=#{parentChannelId} </if> " +
-            " <if test=\"online == true\" > AND dc.status=1</if>" +
-            " <if test=\"online == false\" > AND dc.status=0</if>) dcr" +
-            " WHERE 1=1 " +
-            " <if test=\"hasSubChannel == true\" >  AND subCount >0</if>" +
-            " <if test=\"hasSubChannel == false\" >  AND subCount=0</if>" +
+            " <if test=\"hasSubChannel!= null and hasSubChannel == true\" >  AND subCount >0</if> " +
+            " <if test=\"hasSubChannel!= null and hasSubChannel == false\" >  AND subCount=0</if> " +
             " </script>"})
 
-    List<ChannelReduce> queryChannelListInAll(String query, Boolean online, Boolean hasSubChannel, String parentChannelId);
+    List<ChannelReduce> queryChannelListInAll(String query, Boolean online, Boolean hasSubChannel, String platformId, Boolean inPlatform);
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/PatformChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/PatformChannelMapper.java
new file mode 100644
index 0000000..00b1260
--- /dev/null
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/PatformChannelMapper.java
@@ -0,0 +1,37 @@
+package com.genersoft.iot.vmp.storager.dao;
+
+import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface PatformChannelMapper {
+
+    /**
+     * 鏌ヨ鍒楄〃閲屽凡缁忓叧鑱旂殑
+     */
+    @Select("<script> "+
+            "SELECT deviceAndChannelId FROM platform_gb_channel WHERE platformId='${platformId}' AND deviceAndChannelId in" +
+            "<foreach collection='deviceAndChannelIds' open='(' item='id_' separator=',' close=')'> '${id_}'</foreach>" +
+            "</script>")
+    List<String> findChannelRelatedPlatform(String platformId, List<String> deviceAndChannelIds);
+
+    @Insert("<script> "+
+            "INSERT INTO platform_gb_channel (channelId, deviceId, platformId, deviceAndChannelId) VALUES" +
+            "<foreach collection='channelReducesToAdd'  item='item' separator=','> ('${item.channelId}','${item.deviceId}', '${platformId}', '${item.deviceId}_${item.channelId}' )</foreach>" +
+            "</script>")
+    int addChannels(String platformId, List<ChannelReduce> channelReducesToAdd);
+
+
+    @Delete("<script> "+
+            "DELETE FROM platform_gb_channel WHERE deviceAndChannelId in" +
+            "<foreach collection='channelReducesToDel'  item='item'  open='(' separator=',' close=')' > '${item.deviceId}_${item.channelId}'</foreach>" +
+            "</script>")
+    int delChannelForGB(String platformId, List<ChannelReduce> channelReducesToDel);
+}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/patformChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/patformChannelMapper.java
deleted file mode 100644
index 9b10ece..0000000
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/patformChannelMapper.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.genersoft.iot.vmp.storager.dao;
-
-import org.mapstruct.Mapper;
-
-@Mapper
-public interface patformChannelMapper {
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
index 546a3e4..aed3026 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
@@ -9,6 +9,7 @@
 import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper;
 import com.genersoft.iot.vmp.storager.dao.DeviceMapper;
 import com.genersoft.iot.vmp.storager.dao.ParentPlatformMapper;
+import com.genersoft.iot.vmp.storager.dao.PatformChannelMapper;
 import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -38,6 +39,9 @@
 
 	@Autowired
     private IRedisCatchStorage redisCatchStorage;
+
+	@Autowired
+    private PatformChannelMapper patformChannelMapper;
 
 
 
@@ -275,17 +279,46 @@
 
 
 	@Override
-	public PageInfo<ChannelReduce> queryChannelListInAll(int page, int count, String query, Boolean online,
-														 Boolean channelType, String parentChannelId) {
+	public PageInfo<ChannelReduce> queryAllChannelList(int page, int count, String query, Boolean online,
+														 Boolean channelType, String platformId, Boolean inPlatform) {
 		PageHelper.startPage(page, count);
-		List<ChannelReduce> all = deviceChannelMapper.queryChannelListInAll(query, online, channelType, parentChannelId);
+		List<ChannelReduce> all = deviceChannelMapper.queryChannelListInAll(query, online, channelType, platformId, inPlatform);
 		return new PageInfo<>(all);
 	}
 
 
-	@Transactional
 	@Override
 	public int updateChannelForGB(String platformId, List<ChannelReduce> channelReduces) {
-		return 0;
+
+		Map<String, ChannelReduce> deviceAndChannels = new HashMap<>();
+		for (ChannelReduce channelReduce : channelReduces) {
+			deviceAndChannels.put(channelReduce.getDeviceId() + "_" + channelReduce.getChannelId(), channelReduce);
+		}
+		List<String> deviceAndChannelList = new ArrayList<>(deviceAndChannels.keySet());
+		// 鏌ヨ褰撳墠宸茬粡瀛樺湪鐨�
+		List<String> relatedPlatformchannels = patformChannelMapper.findChannelRelatedPlatform(platformId, deviceAndChannelList);
+		if (relatedPlatformchannels != null) {
+			deviceAndChannelList.removeAll(relatedPlatformchannels);
+		}
+		for (String relatedPlatformchannel : relatedPlatformchannels) {
+			deviceAndChannels.remove(relatedPlatformchannel);
+		}
+		List<ChannelReduce> channelReducesToAdd = new ArrayList<>(deviceAndChannels.values());
+		// 瀵瑰墿涓嬬殑鏁版嵁杩涜瀛樺偍
+		int result = 0;
+		if (channelReducesToAdd.size() > 0) {
+			result = patformChannelMapper.addChannels(platformId, channelReducesToAdd);
+		}
+
+		return result;
+	}
+
+
+	@Override
+	public int delChannelForGB(String platformId, List<ChannelReduce> channelReduces) {
+
+		int result = patformChannelMapper.delChannelForGB(platformId, channelReduces);
+
+		return result;
 	}
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java
index 0823c49..a75d753 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java
@@ -151,15 +151,21 @@
     @RequestMapping("/platforms/channelList")
     @ResponseBody
     public PageInfo<ChannelReduce> channelList(int page, int count,
+                                              @RequestParam(required = false) String platformId,
                                               @RequestParam(required = false) String query,
                                               @RequestParam(required = false) Boolean online,
+                                              @RequestParam(required = false) Boolean choosed,
                                               @RequestParam(required = false) Boolean channelType){
 
         if (logger.isDebugEnabled()) {
             logger.debug("鏌ヨ鎵�鏈夋墍鏈夐�氶亾API璋冪敤");
         }
-
-        PageInfo<ChannelReduce> channelReduces = storager.queryChannelListInAll(page, count, query, online, channelType, null);
+        PageInfo<ChannelReduce> channelReduces = null;
+        if (platformId != null ) {
+            channelReduces = storager.queryAllChannelList(page, count, query, online, channelType, platformId, choosed);
+        }else {
+            channelReduces = storager.queryAllChannelList(page, count, query, online, channelType, null, false);
+        }
 
         return channelReduces;
     }
@@ -177,5 +183,17 @@
         return new ResponseEntity<>(String.valueOf(result > 0), HttpStatus.OK);
     }
 
+    @RequestMapping("/platforms/delChannelForGB")
+    @ResponseBody
+    public ResponseEntity<String> delChannelForGB(@RequestBody UpdateChannelParam param){
+
+        if (logger.isDebugEnabled()) {
+            logger.debug("缁欎笂绾у钩鍙版坊鍔犲浗鏍囬�氶亾API璋冪敤");
+        }
+        int result = storager.delChannelForGB(param.getPlatformId(), param.getChannelReduces());
+
+        return new ResponseEntity<>(String.valueOf(result > 0), HttpStatus.OK);
+    }
+
 
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/ChannelReduce.java b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/ChannelReduce.java
index 275e0f7..cf62650 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/ChannelReduce.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/ChannelReduce.java
@@ -35,6 +35,11 @@
      */
     private int  subCount;
 
+    /**
+     * 骞冲彴Id
+     */
+    private String  platformId;
+
 
     public String getChannelId() {
         return channelId;
@@ -75,4 +80,20 @@
     public void setHostAddress(String hostAddress) {
         this.hostAddress = hostAddress;
     }
+
+    public int getSubCount() {
+        return subCount;
+    }
+
+    public void setSubCount(int subCount) {
+        this.subCount = subCount;
+    }
+
+    public String getPlatformId() {
+        return platformId;
+    }
+
+    public void setPlatformId(String platformId) {
+        this.platformId = platformId;
+    }
 }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index caf4dfc..ef46c2a 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,3 +1,3 @@
 spring:
   profiles:
-    active: dev
\ No newline at end of file
+    active: local
\ No newline at end of file
diff --git a/src/main/resources/wvp.sqlite b/src/main/resources/wvp.sqlite
index b72a373..3694bad 100644
--- a/src/main/resources/wvp.sqlite
+++ b/src/main/resources/wvp.sqlite
Binary files differ
diff --git a/web_src/src/components/ParentPlatformList.vue b/web_src/src/components/ParentPlatformList.vue
index 98907db..37b8b8f 100644
--- a/web_src/src/components/ParentPlatformList.vue
+++ b/web_src/src/components/ParentPlatformList.vue
@@ -89,9 +89,9 @@
     };
   },
   computed: {
-    
+
     getcurrentDeviceChannels: function() {
-       
+
     }
   },
   mounted() {
@@ -155,7 +155,7 @@
     getPlatformList: function() {
       let that = this;
 
-      this.$axios.get(`/api/platforms/${that.count}/${that.currentPage - 1}`)
+      this.$axios.get(`/api/platforms/${that.count}/${that.currentPage}`)
         .then(function (res) {
           that.total = res.data.total;
           that.platformList = res.data.list;
diff --git a/web_src/src/components/channelList.vue b/web_src/src/components/channelList.vue
index a6a5bd6..943fe3a 100644
--- a/web_src/src/components/channelList.vue
+++ b/web_src/src/components/channelList.vue
@@ -110,7 +110,7 @@
         if (this.autoList) {
             this.updateLooper = setInterval(this.initData, 5000);
         }
-        
+
     },
     destroyed() {
         this.$destroy('videojs');
diff --git a/web_src/src/components/gb28181/chooseChannel.vue b/web_src/src/components/gb28181/chooseChannel.vue
index 9796eb4..62b39dc 100644
--- a/web_src/src/components/gb28181/chooseChannel.vue
+++ b/web_src/src/components/gb28181/chooseChannel.vue
@@ -4,17 +4,13 @@
     <el-dialog title="閫夋嫨閫氶亾" top="2rem" width="70%" :close-on-click-modal="false" :visible.sync="showDialog" :destroy-on-close="true" @close="close()">
         <el-tabs v-model="tabActiveName" >
             <el-tab-pane label="鍥芥爣閫氶亾" name="gbChannel">
-
                 <el-container>
                     <el-main style="background-color: #FFF;">
-                     <chooseChannelForGb :chooseChanage=chooseChanage ></chooseChannelForGb>
+                     <chooseChannelForGb :platformId=platformId ></chooseChannelForGb>
                     </el-main>
-                    <el-footer>
-                         <el-button size="mini" type="primary" style="float: right" @click="save()">淇濆瓨</el-button>
-                    </el-footer>
             </el-container>
-               
-               
+
+
             </el-tab-pane>
             <el-tab-pane label="鐩存挱娴侀�氶亾" name="streamchannel">
                 <!-- TODO -->
@@ -41,7 +37,6 @@
         //     };
         // }
     },
-    created() {},
     data() {
         return {
             isLoging: false,
@@ -49,12 +44,11 @@
             platformId: "",
             isLoging: false,
             showDialog: false,
-            chooseData: []
-            
+            chooseData: {}
+
         };
     },
     methods: {
-        
         openDialog: function (platformId,  closeCallback) {
             console.log(platformId)
             this.platformId = platformId
@@ -88,10 +82,6 @@
             }).catch(function (error) {
                 console.log(error);
             });
-        },
-        chooseChanage: function(val) {
-            console.log(val)
-            this.chooseData = val;
         }
     }
 };
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