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