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