From ac1a4a027a7bd88efb32e9da666bdba4b5fa166f Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 14 一月 2022 17:04:26 +0800
Subject: [PATCH] 支持国标级联的目录订阅功能

---
 web_src/src/components/dialog/chooseChannel.vue |   85 ++++++++++++++++++++++++++++++++++--------
 1 files changed, 69 insertions(+), 16 deletions(-)

diff --git a/web_src/src/components/dialog/chooseChannel.vue b/web_src/src/components/dialog/chooseChannel.vue
index 219036c..85755e8 100644
--- a/web_src/src/components/dialog/chooseChannel.vue
+++ b/web_src/src/components/dialog/chooseChannel.vue
@@ -1,32 +1,55 @@
 <template>
 <div id="chooseChannel" v-loading="isLoging">
 
-    <el-dialog title="閫夋嫨閫氶亾" v-if="showDialog" top="2rem" width="70%" :close-on-click-modal="false" :visible.sync="showDialog" :destroy-on-close="true" @close="close()">
-        <el-tabs v-model="tabActiveName" >
+    <el-dialog title="閫夋嫨閫氶亾" v-if="showDialog" top="2rem" width="90%" :close-on-click-modal="false" :visible.sync="showDialog" :destroy-on-close="true" @close="close()">
+      <el-row>
+        <el-col :span="10">
+          <el-tabs v-model="catalogTabActiveName" >
+            <el-tab-pane label="鐩綍缁撴瀯" name="catalog">
+              <el-container>
+                <el-main style="background-color: #FFF;">
+                  <chooseChannelForCatalog ref="chooseChannelForCatalog" :platformId=platformId :platformName=platformName :defaultCatalogId=defaultCatalogId :catalogIdChange="catalogIdChange"></chooseChannelForCatalog>
+                </el-main>
+              </el-container>
+            </el-tab-pane>
+          </el-tabs>
+
+        </el-col>
+        <el-col :span="14">
+          <el-tabs v-model="tabActiveName" @tab-click="tabClick">
             <el-tab-pane label="鍥芥爣閫氶亾" name="gbChannel">
-                <el-container>
-                    <el-main style="background-color: #FFF;">
-                     <chooseChannelForGb :platformId=platformId ></chooseChannelForGb>
-                    </el-main>
-            </el-container>
-
-
+              <el-container>
+                <el-main style="background-color: #FFF;">
+                  <chooseChannelForGb ref="chooseChannelForGb" :platformId=platformId :updateChoosedCallback="updateChooseChannelCallback"></chooseChannelForGb>
+                </el-main>
+              </el-container>
             </el-tab-pane>
             <el-tab-pane label="鐩存挱娴侀�氶亾" name="streamchannel">
-                <!-- TODO -->
+              <el-container>
+                <el-main style="background-color: #FFF;">
+                  <chooseChannelFoStream ref="chooseChannelFoStream" :platformId=platformId :updateChoosedCallback="updateChooseChannelCallback"></chooseChannelFoStream>
+                </el-main>
+              </el-container>
             </el-tab-pane>
-        </el-tabs>
+          </el-tabs>
+        </el-col>
+      </el-row>
+
     </el-dialog>
 </div>
 </template>
 
 <script>
 import chooseChannelForGb from '../dialog/chooseChannelForGb.vue'
+import chooseChannelFoStream from '../dialog/chooseChannelForStream.vue'
+import chooseChannelForCatalog from '../dialog/chooseChannelForCatalog.vue'
 export default {
     name: 'chooseChannel',
     props: {},
     components: {
         chooseChannelForGb,
+        chooseChannelFoStream,
+        chooseChannelForCatalog,
     },
     computed: {
         // getPlayerShared: function () {
@@ -41,22 +64,37 @@
         return {
             isLoging: false,
             tabActiveName: "gbChannel",
+            catalogTabActiveName: "catalog",
             platformId: "",
-            isLoging: false,
+            catalogId: "",
+            platformName: "",
+            defaultCatalogId: "",
             showDialog: false,
             chooseData: {}
 
         };
     },
     methods: {
-        openDialog: function (platformId,  closeCallback) {
-            console.log(platformId)
+        openDialog(platformId, platformName, defaultCatalogId, closeCallback) {
             this.platformId = platformId
+            this.platformName = platformName
+            this.defaultCatalogId = defaultCatalogId
             this.showDialog = true
             this.closeCallback = closeCallback
         },
-        close: function() {
+        tabClick (tab, event){
+          console.log(tab.label)
+          if (tab.label === "gbChannel") {
+            this.$refs.chooseChannelForGb.catalogIdChange(this.catalogId);
+            this.$refs.chooseChannelForGb.initData();
+          }else {
+            this.$refs.chooseChannelFoStream.catalogIdChange(this.catalogId);
+            this.$refs.chooseChannelFoStream.initData();
+          }
 
+        },
+        close: function() {
+          this.closeCallback()
         },
         search: function() {
 
@@ -66,7 +104,7 @@
 
             this.$axios({
                 method:"post",
-                url:"/api/platforms/updateChannelForGB",
+                url:"/api/platform/update_channel_for_gb",
                 data:{
                     platformId:  that.platformId,
                     channelReduces:  that.chooseData
@@ -82,6 +120,21 @@
             }).catch(function (error) {
                 console.log(error);
             });
+        },
+        catalogIdChange: function (id) {
+            console.log("涓棿妯″潡鏀跺埌锛� " + id)
+            this.catalogId = id;
+            if (this.tabActiveName === "gbChannel") {
+              this.$refs.chooseChannelForGb.catalogIdChange(id);
+            }else {
+              this.$refs.chooseChannelFoStream.catalogIdChange(id);
+            }
+        },
+        updateChooseChannelCallback (id, nodeIds){
+          console.log("涓棿妯″潡鏀跺埌閫夋嫨閫氶亾鍙樺寲锛� " + id)
+          console.log("涓棿妯″潡鏀跺埌閫夋嫨閫氶亾鍙樺寲锛� " + nodeIds)
+          console.log("涓棿妯″潡鏀跺埌閫夋嫨閫氶亾鍙樺寲锛� " + typeof (nodeIds))
+          this.$refs.chooseChannelForCatalog.refreshCatalogById(id, nodeIds)
         }
     }
 };

--
Gitblit v1.8.0