From 3a78425e7fd0dfba0570fd19dc0fed1c3ce0c5fc Mon Sep 17 00:00:00 2001 From: buvta <12312540+buvta@users.noreply.github.com> Date: Fri, 22 Jan 2021 16:02:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A2=91=E9=81=93prefer?= =?UTF-8?q?=E6=BA=90=E8=A2=AB=E5=88=A0=E9=99=A4=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/IPTV.vue | 11 +++++++++-- src/components/Play.vue | 5 ++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/components/IPTV.vue b/src/components/IPTV.vue index 10bc9ba..91447aa 100644 --- a/src/components/IPTV.vue +++ b/src/components/IPTV.vue @@ -274,8 +274,13 @@ export default { if (e.url) { this.video = { iptv: e } } else { - const prefer = e.prefer ? e.channels.find(c => c.id === e.prefer) : e.channels.filter(c => c.isActive)[0] - if (!prefer) return + let prefer + if (e.prefer) prefer = e.channels.find(c => c.id === e.prefer) + if (!prefer) prefer = e.channels.filter(c => c.isActive)[0] + if (!prefer) { + this.$message.error('当前频道所有源已全部停用,不可播放!') + return + } this.video = { iptv: prefer } } this.view = 'Play' @@ -298,6 +303,7 @@ export default { ele.channels.splice(ele.channels.findIndex(e => e.id === row.id), 1) channelList.remove(row.channelID) if (ele.channels.length) { + if (ele.prefer === row.id) delete ele.prefer if (ele.channels.length === 1) ele.hasChildren = false channelList.add(ele) this.$set(this.$refs.iptvTable.store.states.lazyTreeNodeMap, ele.id, ele.channels) @@ -614,6 +620,7 @@ export default { channel.status = '失效' channel.isActive = false if (this.setting.autocleanWhenIptvCheck) { + if (ele.prefer === channel.id) delete ele.prefer ele.channels.splice(ele.channels.findIndex(e => e.id === channel.id), 1) ele.hasCheckedNum-- } diff --git a/src/components/Play.vue b/src/components/Play.vue index 37677e0..0111470 100644 --- a/src/components/Play.vue +++ b/src/components/Play.vue @@ -581,8 +581,11 @@ export default { playChannel (channel) { this.isLive = true if (channel.channels) { + let prefer this.right.sources = channel.channels.filter(e => e.isActive) - channel = channel.prefer ? channel.channels.find(e => e.id === channel.prefer) : channel.channels.filter(e => e.isActive)[0] + if (channel.prefer) prefer = channel.channels.find(e => e.id === channel.prefer) + if (!prefer) prefer = channel.channels.filter(e => e.isActive)[0] + channel = prefer } else { const ele = this.channelList.find(e => e.id === channel.channelID) ele.prefer = channel.id