|
@@ -0,0 +1,651 @@
|
|
|
+<template>
|
|
|
+ <cover-view style="display: flex;justify-content: space-between;align-items: center;" @click="getVideo">
|
|
|
+ <cover-view style="display: flex;justify-content: space-between;margin: 20rpx 0;width: 100%;">
|
|
|
+ <cover-view style="display: flex;align-items: center;flex:1;">
|
|
|
+ <cover-view class="tag tagColor1" v-if="menuItem.sectionType==1">录播</cover-view>
|
|
|
+ <cover-view class="tag tagColor2" v-if="menuItem.sectionType==2">直播</cover-view>
|
|
|
+ <cover-view class="tag tagColor3" v-if="menuItem.sectionType==3">回放</cover-view>
|
|
|
+ <cover-view class="t_content">
|
|
|
+ <cover-view v-if="menuItem.sectionType==1" :class="playSectionId==newId && playNextId==playId?'color1':''">{{menuItem.name || ''}}</cover-view>
|
|
|
+ <cover-view v-if="menuItem.sectionType==2" :class="playSectionId==newId && playNextId==playId?'color2':''">{{menuItem.name || ''}}</cover-view>
|
|
|
+ <cover-view v-if="menuItem.sectionType==3" :class="playSectionId==newId && playNextId==playId?'color3':''">{{menuItem.name || ''}}</cover-view>
|
|
|
+ <cover-view style="font-size: 20rpx;color: #FF3B30;" v-if="menuItem.sectionType==2 && menuItem.liveStartTime">
|
|
|
+ <cover-view v-if="menuItem.liveStartTime>nowTime || !isBuy">
|
|
|
+ <cover-view>{{$method.timestampToTime(menuItem.liveStartTime, isDay =false)}}</cover-view>-
|
|
|
+ <cover-view>{{$method.timestampToTime(menuItem.liveEndTime, isDay =false)}}</cover-view>
|
|
|
+ </cover-view>
|
|
|
+ <template v-if="isLast()">
|
|
|
+ <cover-view v-if="liveLast.watchStatus == 'live'">
|
|
|
+ <cover-view>直播中</cover-view>
|
|
|
+ </cover-view>
|
|
|
+ <cover-view v-if="liveLast.watchStatus == 'end'">
|
|
|
+ <cover-view>当前直播回放视频请稍后再查看</cover-view>
|
|
|
+ </cover-view>
|
|
|
+ </template>
|
|
|
+ <!-- <view v-if="menuItem.liveStartTime<=nowTime&&menuItem.liveEndTime>nowTime">
|
|
|
+ <text>直播中</text>
|
|
|
+ </view>
|
|
|
+ <view v-if="menuItem.liveEndTime<nowTime">
|
|
|
+ <text>回放</text>
|
|
|
+ </view> -->
|
|
|
+ </cover-view>
|
|
|
+ <cover-view style="font-size: 20rpx;color: #FF3B30;" v-if="menuItem.sectionType == 3">
|
|
|
+ <cover-view v-if="!menuItem.recordingUrl">
|
|
|
+ <cover-view>当前直播回放视频请稍后再查看</cover-view>
|
|
|
+ </cover-view>
|
|
|
+ <cover-view v-else>
|
|
|
+ 回放中
|
|
|
+ </cover-view>
|
|
|
+ </cover-view>
|
|
|
+ </cover-view>
|
|
|
+ <cover-view v-if="menuItem.sectionType==null">{{menuItem.name || ''}}</cover-view>
|
|
|
+ </cover-view>
|
|
|
+ <cover-view style="font-size: 20rpx;color: #FF3B30;" v-if="menuItem.liveStartTime && menuItem.sectionType != 3 && isBuy">
|
|
|
+
|
|
|
+ <template v-if="!isLast() && !isLive">
|
|
|
+ <cover-view class="tagWillPlay" v-if="menuItem.liveStartTime>nowTime">
|
|
|
+ <cover-view>待开播</cover-view>
|
|
|
+ </cover-view>
|
|
|
+ <cover-view class="tagPlaying" v-if="menuItem.liveStartTime<=nowTime&&menuItem.liveEndTime>nowTime">
|
|
|
+ <cover-view>直播中</cover-view>
|
|
|
+ </cover-view>
|
|
|
+ <cover-view class="tagPlayed" v-if="menuItem.liveEndTime<nowTime">
|
|
|
+ <cover-view>已结束</cover-view>
|
|
|
+ </cover-view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ </cover-view>
|
|
|
+ <!-- 直播课程没有学习状态 -->
|
|
|
+ <template v-if="!isLive">
|
|
|
+ <cover-view v-if="(isRebuild||menuItem.rebuild>0)" class="tagRe">待重修</cover-view>
|
|
|
+ <cover-view v-else>
|
|
|
+ <cover-view v-if="menuItem.learning==1" class="tagGreen">已看完</cover-view>
|
|
|
+ </cover-view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+
|
|
|
+ </cover-view>
|
|
|
+ <cover-view v-if="menuItem.tryListen&&!isBuy" class="tryBox">
|
|
|
+ 试看
|
|
|
+ </cover-view>
|
|
|
+ </cover-view>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { mapGetters } from 'vuex';
|
|
|
+import eventHub from '@/common/eventHub.js'
|
|
|
+import {WEBVIEW_URL} from '@/common/request.js'
|
|
|
+export default {
|
|
|
+ name: 'courseSection',
|
|
|
+ props: {
|
|
|
+ isLive:false, //是否是直播课
|
|
|
+ orderGoodsId:{
|
|
|
+ default:0
|
|
|
+ },
|
|
|
+ preItem:{
|
|
|
+ default:undefined,
|
|
|
+ },
|
|
|
+ learningOrder:{ //是否设置学习顺序 1 章节顺序 0不设置 2从头学到尾顺序
|
|
|
+ type:Number,
|
|
|
+ default:0
|
|
|
+ },
|
|
|
+ courseId: {
|
|
|
+ type: Number,
|
|
|
+ default: 0
|
|
|
+ },
|
|
|
+ goodsId: {
|
|
|
+ type: Number,
|
|
|
+ default: 0
|
|
|
+ },
|
|
|
+ menuItem: {
|
|
|
+ type: Object,
|
|
|
+ default: {}
|
|
|
+ },
|
|
|
+ isBuy: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
+ },
|
|
|
+ levelId: {
|
|
|
+ type: String,
|
|
|
+ default: ""
|
|
|
+ },
|
|
|
+ isRebuild: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
+ },
|
|
|
+ gradeId: {
|
|
|
+ type: Number,
|
|
|
+ default: 0
|
|
|
+ },
|
|
|
+ nextMenuItem: {
|
|
|
+ type: Object,
|
|
|
+ default: {}
|
|
|
+ },
|
|
|
+ sectionMaxNum:{
|
|
|
+ default:undefined,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ watch:{
|
|
|
+ menuItem(val) {
|
|
|
+ console.log(val,'val')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ nowTime:0,
|
|
|
+ newId:0,
|
|
|
+ playId:'',
|
|
|
+ clickLock:false, //点击锁,防止连续点击多次
|
|
|
+ };
|
|
|
+ },
|
|
|
+ onLoad() {
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.nowTime = Number(new Date().getTime()/1000).toFixed(0)
|
|
|
+ this.newId= this.menuItem.sectionId>0?this.menuItem.sectionId:this.menuItem.menuId
|
|
|
+ console.log(this.newId,'this.newId')
|
|
|
+ console.log(this.playSectionId,'this.playSectionId')
|
|
|
+ console.log(this.isRebuild)
|
|
|
+ console.log(this.nextMenuItem,'nextMenuItem')
|
|
|
+ console.log(this.menuItem,'this.menuItem')
|
|
|
+ let moduleId = this.menuItem.moduleId || 0;
|
|
|
+ let chapterId = this.menuItem.chapterId || 0;
|
|
|
+ let sectionId = this.menuItem.sectionId || this.menuItem.menuId;
|
|
|
+ let playNextId = `moduleId${moduleId}chapterId${chapterId}sectionId${sectionId}${this.isRebuild?'isRebuild':''}`;
|
|
|
+ this.playId = playNextId;
|
|
|
+ uni.$off('playNext'+playNextId) //绑定前先移除之前的事件
|
|
|
+ uni.$once('playNext'+playNextId, (data) => {
|
|
|
+ //到时会触发每个节的监听事件,只允许当前节的接收
|
|
|
+ let self = this
|
|
|
+
|
|
|
+ if(this.nextMenuItem.recordingUrl&&this.isRebuild&&(this.newId==this.playSectionId) && data.fromRebuild){ // fromRebuild 来自重修目录的点击才弹出播放下一节
|
|
|
+ //重修存在下一节
|
|
|
+ uni.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content: '是否播放下一节',
|
|
|
+ success: function (res) {
|
|
|
+ if (res.confirm) {
|
|
|
+ console.log('用户点击确定');
|
|
|
+ let nextId= self.nextMenuItem.sectionId>0?self.nextMenuItem.sectionId:self.nextMenuItem.menuId
|
|
|
+ //设置播放的节ID
|
|
|
+ self.$store.commit('setPlaySectionId', {playSectionId :nextId});
|
|
|
+ self.$store.commit('setPlayVID', {playVID :self.nextMenuItem.recordingUrl});
|
|
|
+ let ids = self.levelId.split('-');
|
|
|
+ ids[2] = nextId
|
|
|
+ uni.$emit('levelId', ids.join('-'))
|
|
|
+ uni.$emit('getSection', self.nextMenuItem)
|
|
|
+ self.$emit('playEnd',{isRebuild:self.isRebuild})
|
|
|
+ // uni.$off('playend')
|
|
|
+ // uni.$on('playend',res => {
|
|
|
+ // console.log('playend2')
|
|
|
+ // this.$emit('playEnd',{isRebuild:this.isRebuild})
|
|
|
+ // })
|
|
|
+
|
|
|
+ } else {
|
|
|
+ let nextId= self.nextMenuItem.sectionId>0?self.nextMenuItem.sectionId:self.nextMenuItem.menuId
|
|
|
+ //设置播放的节ID
|
|
|
+ self.$store.commit('setPlaySectionId', {playSectionId :nextId});
|
|
|
+ self.$store.commit('setPlayVID', {playVID :self.nextMenuItem.recordingUrl});
|
|
|
+ let ids = self.levelId.split('-');
|
|
|
+ ids[2] = nextId
|
|
|
+ self.$emit('playEnd',{isRebuild:self.isRebuild})
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$emit('playEnd',{isRebuild:this.isRebuild})
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ isLast() {
|
|
|
+ console.log(this.liveLast,'this.liveLast')
|
|
|
+ if(this.liveLast) {
|
|
|
+ let sectionASame = this.liveLast.sectionId == (this.menuItem.sectionId || this.menuItem.menuId)
|
|
|
+ let chapterSame = this.liveLast.chapterId == (this.menuItem.chapterId || 0)
|
|
|
+ let moduleSame = this.liveLast.moduleId == (this.menuItem.moduleId || 0);
|
|
|
+ console.log(sectionASame && chapterSame && moduleSame,'sectionASame && chapterSame && moduleSame')
|
|
|
+ return sectionASame && chapterSame && moduleSame
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ studyRecordMenuAllList() {
|
|
|
+ return new Promise(resolve => {
|
|
|
+
|
|
|
+ this.$api.studyRecordMenuAllList({
|
|
|
+ courseId:this.courseId,
|
|
|
+ gradeId:this.gradeId,
|
|
|
+ goodsId:this.goodsId
|
|
|
+ }).then(res => {
|
|
|
+ if(res.data.code == 200) {
|
|
|
+ resolve(res.data.data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ gradeCheckGoodsStudy() {
|
|
|
+ let moduleId = this.menuItem.moduleId || 0;
|
|
|
+ let chapterId = this.menuItem.chapterId || 0;
|
|
|
+ let sectionId = this.menuItem.sectionId || this.menuItem.menuId;
|
|
|
+ return new Promise(resolve => {
|
|
|
+ this.$api.gradeCheckGoodsStudy({
|
|
|
+ goodsId:this.goodsId,
|
|
|
+ gradeId:this.gradeId,
|
|
|
+ moduleId:this.menuItem.moduleId || 0,
|
|
|
+ chapterId:this.menuItem.chapterId || 0,
|
|
|
+ sectionId:this.menuItem.sectionId || this.menuItem.menuId
|
|
|
+ }).then( res => {
|
|
|
+ resolve(res.data.data)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ goodsTodayStudySectionNum() {
|
|
|
+ return new Promise(resolve => {
|
|
|
+ this.$api.goodsTodayStudySectionNum({goodsId:this.goodsId,gradeId:this.gradeId}).then(res => {
|
|
|
+ if(res.data.code == 200) {
|
|
|
+ resolve(res.data.data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ async getVideo(){
|
|
|
+ if(this.clickLock) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.clickLock = true;
|
|
|
+
|
|
|
+ if(this.learningOrder == 2 && !this.menuItem.isRebuild && !this.isLive) { //要按从头到尾顺序学习, 且不是重修课程
|
|
|
+ if(this.preItem) {
|
|
|
+ let rows = await this.studyRecordMenuAllList();
|
|
|
+ let newRows = [];
|
|
|
+ for(let i = 0; i < rows.length; i++ ) {
|
|
|
+ let moduleTrue = rows[i].moduleId == this.menuItem.moduleId || rows[i].moduleId == 0
|
|
|
+ let chapterTrue = rows[i].chapterId == this.menuItem.chapterId || rows[i].chapterId == 0;
|
|
|
+ let sectionTrue = (rows[i].sectionId == this.menuItem.sectionId) || (rows[i].sectionId == this.menuItem.menuId);
|
|
|
+ if(moduleTrue && chapterTrue && sectionTrue) {
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ if(rows[i].sectionType != 2) {
|
|
|
+ newRows.push(rows[i])
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log(newRows)
|
|
|
+ let isAllLearn = newRows.every(item => {
|
|
|
+ return item.studyStatus == 1;
|
|
|
+ })
|
|
|
+
|
|
|
+ if(isAllLearn) {
|
|
|
+ this.playVideo();
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ icon:'none',
|
|
|
+ title:'请按顺序学习视频课程'
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ // if(this.preItem.menuType == 3) { //上一个是节
|
|
|
+ // if(this.preItem.learning == 1) { //上一节学完
|
|
|
+ // this.playVideo();
|
|
|
+ // } else {
|
|
|
+ // uni.showToast({
|
|
|
+ // icon:'none',
|
|
|
+ // title:'请按顺序学习视频课程'
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ // } else if(this.preItem.menuType == 2) { //上一个是章
|
|
|
+ // this.$api.reSectionList({chapterId: this.preItem.menuId || this.preItem.chapterId,gradeId:this.gradeId,courseId:this.courseId,moduleId:this.preItem.moduleId || 0}).then(res => {
|
|
|
+ // if(res.data.code==200){
|
|
|
+ // let lastItem = res.data.data[res.data.data.length -1];
|
|
|
+ // if(lastItem.learning == 1) {
|
|
|
+ // this.playVideo();
|
|
|
+ // } else {
|
|
|
+ // uni.showToast({
|
|
|
+ // icon:'none',
|
|
|
+ // title:'请按顺序学习视频课程'
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // } else if(this.preItem.menuType == 1) { //上一个是模块
|
|
|
+ // this.$api.reChapterList({moduleId:this.preItem.menuId,gradeId:this.gradeId,courseId:this.courseId}).then(res => {
|
|
|
+ // if(res.data.code==200){
|
|
|
+ // let lastChapterItem = res.data.data[res.data.data.length -1];
|
|
|
+
|
|
|
+ // this.$api.reSectionList({chapterId:lastChapterItem.chapterId,gradeId:this.gradeId,courseId:this.courseId,moduleId:this.menuItem.menuId || this.menuItem.moduleId}).then(res => {
|
|
|
+ // if(res.data.code==200){
|
|
|
+ // let lastSectionItem = res.data.data[res.data.data.length -1];
|
|
|
+ // if(lastSectionItem.learning == 1) {
|
|
|
+ // this.playVideo();
|
|
|
+ // } else {
|
|
|
+ // uni.showToast({
|
|
|
+ // icon:'none',
|
|
|
+ // title:'请按顺序学习视频课程'
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ } else { //第一章第一节
|
|
|
+ this.playVideo();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.playVideo();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ this.clickLock = false;
|
|
|
+ },3000)
|
|
|
+
|
|
|
+ },
|
|
|
+ studyRecordGetChannelBasicInfo(channelId) {
|
|
|
+ return new Promise((resolve) => {
|
|
|
+ this.$api
|
|
|
+ .studyRecordGetChannelBasicInfo({
|
|
|
+ channelId,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ resolve(res.data.data);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ async playVideo() {
|
|
|
+ if(this.menuItem.sectionType==1||this.menuItem.sectionType==3){
|
|
|
+ //录播
|
|
|
+ if(!this.isBuy){
|
|
|
+ //非购买
|
|
|
+ if(!this.menuItem.tryListen){
|
|
|
+ //不允许试听
|
|
|
+ this.clickLock = false;
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+ this.$store.commit('setPlaySectionId', {playSectionId :this.newId});
|
|
|
+ this.$store.commit('setPlayVID', {playVID :this.menuItem.recordingUrl});
|
|
|
+ this.menuItem.courseId = this.courseId;
|
|
|
+ uni.$emit('getSection', this.menuItem)
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ let learnNum = await this.goodsTodayStudySectionNum()
|
|
|
+ let hasLearn = await this.gradeCheckGoodsStudy();
|
|
|
+
|
|
|
+ console.log(this.sectionMaxNum,'this.sectionMaxNum')
|
|
|
+ console.log(learnNum,'learnNum')
|
|
|
+ if(this.sectionMaxNum > 0) {
|
|
|
+ if(learnNum >= this.sectionMaxNum && !hasLearn) {
|
|
|
+ uni.showToast({
|
|
|
+ icon:'none',
|
|
|
+ title:`每天最多学习${this.sectionMaxNum}节`
|
|
|
+ })
|
|
|
+ this.clickLock = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!this.menuItem.recordingUrl){
|
|
|
+ uni.showToast({
|
|
|
+ title: '暂无播放地址数据',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ this.clickLock = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ /* if(this.playSectionId==this.newId){
|
|
|
+ //切换为同一节
|
|
|
+ return
|
|
|
+ } */
|
|
|
+
|
|
|
+ if(this.playSectionId>0){
|
|
|
+ //切换视频
|
|
|
+ let oldSectionId = this.playSectionId
|
|
|
+ uni.$emit('changeSection', oldSectionId)
|
|
|
+ }
|
|
|
+ //设置播放的节ID
|
|
|
+ this.$store.commit('setPlaySectionId', {playSectionId :this.newId});
|
|
|
+ this.$store.commit('setPlayVID', {playVID :this.menuItem.recordingUrl});
|
|
|
+ this.$store.commit('updatePlayNextId',this.playId)
|
|
|
+ uni.$emit('levelId', this.levelId)
|
|
|
+ uni.$emit('getSection', this.menuItem)
|
|
|
+ uni.$emit('isRebuild',this.isRebuild)
|
|
|
+ console.log(this.menuItem,'menuItem')
|
|
|
+ // uni.$off('playend')
|
|
|
+ // uni.$on('playend',res => {
|
|
|
+ // console.log('playend2')
|
|
|
+ // this.$emit('playEnd',{isRebuild:this.isRebuild})
|
|
|
+ // })
|
|
|
+ console.log(999)
|
|
|
+ }
|
|
|
+ if(this.menuItem.sectionType==2){
|
|
|
+ //直播
|
|
|
+ if(!this.isBuy){
|
|
|
+ //非购买
|
|
|
+ this.clickLock = false;
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ let learnNum = await this.goodsTodayStudySectionNum()
|
|
|
+ let hasLearn = await this.gradeCheckGoodsStudy();
|
|
|
+
|
|
|
+ console.log(this.sectionMaxNum,'this.sectionMaxNum')
|
|
|
+ console.log(learnNum,'learnNum')
|
|
|
+ if(this.sectionMaxNum > 0 && !this.isLive) {
|
|
|
+ if(learnNum >= this.sectionMaxNum && !hasLearn) {
|
|
|
+ uni.showToast({
|
|
|
+ icon:'none',
|
|
|
+ title:`每天最多学习${this.sectionMaxNum}节`
|
|
|
+ })
|
|
|
+ this.clickLock = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!this.menuItem.liveUrl){
|
|
|
+ uni.showToast({
|
|
|
+ title: '暂无直播地址数据',
|
|
|
+ icon: 'error'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ let data = await this.studyRecordGetChannelBasicInfo(this.menuItem.liveUrl);
|
|
|
+ let nowTime = +this.$method.timest();
|
|
|
+
|
|
|
+ if (this.menuItem.liveStartTime > nowTime) {
|
|
|
+ if (data.watchStatus == "end" || data.watchStatus == "playback") {
|
|
|
+ this.clickLock = false;
|
|
|
+ uni.showToast({
|
|
|
+ title: '直播未开始',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else if (
|
|
|
+ this.menuItem.liveStartTime < nowTime &&
|
|
|
+ this.menuItem.liveEndTime > nowTime
|
|
|
+ ) {
|
|
|
+ if (data.watchStatus == "end" || data.watchStatus == "playback") {
|
|
|
+ this.clickLock = false;
|
|
|
+ uni.showToast({
|
|
|
+ title: '暂无直播',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else if (this.menuItem.liveEndTime < nowTime) {
|
|
|
+ if (data.watchStatus == "end" || data.watchStatus == "playback") {
|
|
|
+ this.clickLock = false;
|
|
|
+ uni.showToast({
|
|
|
+ title: '直播已结束',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // if (data.watchStatus == "end" || data.watchStatus == "playback") {
|
|
|
+ // this.clickLock = false;
|
|
|
+ // uni.showToast({
|
|
|
+ // title: '直播已结束',
|
|
|
+ // icon: 'none'
|
|
|
+ // });
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // if (data.watchStatus == "waiting") {
|
|
|
+ // this.clickLock = false;
|
|
|
+ // uni.showToast({
|
|
|
+ // title: '直播未开始',
|
|
|
+ // icon: 'none'
|
|
|
+ // });
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // if(this.playSectionId==this.newId){
|
|
|
+ // //切换为同一频道
|
|
|
+ // this.clickLock = false;
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ let moduleId = this.menuItem.moduleId || 0;
|
|
|
+ let chapterId = this.menuItem.chapterId || 0;
|
|
|
+ let sectionId = this.menuItem.sectionId || this.menuItem.menuId;
|
|
|
+ let encode = encodeURIComponent(WEBVIEW_URL+'pages/live/index?token='+uni.getStorageSync('token')+'&userInfo='+JSON.stringify(this.userInfo)+'&channelId='+this.menuItem.liveUrl+'&gradeId='+this.gradeId+'&courseId='+this.courseId+'&goodsId='+this.goodsId+'&orderGoodsId='+this.orderGoodsId+'§ionId='+sectionId+'&chapterId='+chapterId+'&moduleId='+moduleId)
|
|
|
+ uni.navigateTo({
|
|
|
+ url:`../../pages/webview/index?url=`+encode
|
|
|
+ })
|
|
|
+
|
|
|
+ return;
|
|
|
+ //设置播放的节ID
|
|
|
+ // this.$store.commit('setPlaySectionId', {playSectionId :this.newId});
|
|
|
+ // this.$store.commit('setPlayChannelId', {playChannelId :this.menuItem.liveUrl});
|
|
|
+ // this.$store.commit('updatePlayNextId',this.playId)
|
|
|
+ // uni.$emit('levelId', this.levelId)
|
|
|
+ // uni.$emit('getChannel', this.menuItem)
|
|
|
+ // uni.$emit('isRebuild',this.isRebuild)
|
|
|
+ // console.log(this.menuItem,'menuItem')
|
|
|
+ // uni.$off('playend')
|
|
|
+ // uni.$on('playend',res => {
|
|
|
+ // console.log('playend1')
|
|
|
+ // this.$emit('playEnd',{isRebuild:this.isRebuild})
|
|
|
+ // })
|
|
|
+ console.log(888)
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: { ...mapGetters(['playSectionId','playChannelId','playVID','playNextId','userInfo','liveLast']) }
|
|
|
+
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped lang="scss">
|
|
|
+ .tagGreen{
|
|
|
+ width: 80rpx;
|
|
|
+ height: 28rpx;
|
|
|
+ background: #34C759;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ font-size: 20rpx;
|
|
|
+ color: #FFFFFF;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ .tagWillPlay{
|
|
|
+ width: 80rpx;
|
|
|
+ height: 28rpx;
|
|
|
+ background: #EBF4FF;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ font-size: 20rpx;
|
|
|
+ color: #007AFF;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ .tagPlaying{
|
|
|
+ width: 80rpx;
|
|
|
+ height: 28rpx;
|
|
|
+ background: #FFF7EB;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ font-size: 20rpx;
|
|
|
+ color: #FF9500;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ .tagPlayed{
|
|
|
+ width: 80rpx;
|
|
|
+ height: 28rpx;
|
|
|
+ background: #EEEEEE;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ font-size: 20rpx;
|
|
|
+ color: #666666;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ .tagRe{
|
|
|
+ width: 80rpx;
|
|
|
+ height: 28rpx;
|
|
|
+ background: #FF3B30;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ font-size: 20rpx;
|
|
|
+ color: #FFFFFF;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ .tryBox{
|
|
|
+ width: 96rpx;
|
|
|
+ height: 48rpx;
|
|
|
+ background: #007AFF;
|
|
|
+ border-radius: 24rpx;
|
|
|
+ color: #FFFFFF;
|
|
|
+ font-size: 30rpx;
|
|
|
+ line-height: 48rpx;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ .icon_up{
|
|
|
+ width: 24rpx;
|
|
|
+ height: 24rpx;
|
|
|
+ }
|
|
|
+ .t_content3{
|
|
|
+ color: #007AFF;
|
|
|
+ }
|
|
|
+ .t_content2{
|
|
|
+ color: #007AFF;
|
|
|
+ }
|
|
|
+ .t_content1{
|
|
|
+ color: #007AFF;
|
|
|
+ }
|
|
|
+ .t_content{
|
|
|
+ font-size: 30rpx;
|
|
|
+ margin-left: 10rpx;
|
|
|
+ color: #666666;
|
|
|
+ flex:1;
|
|
|
+ }
|
|
|
+ .tagColor3{
|
|
|
+ border: 2rpx solid #FF9500;
|
|
|
+ color: #FF9500;
|
|
|
+ }
|
|
|
+ .tagColor2{
|
|
|
+ border: 2rpx solid #FF3B30;
|
|
|
+ color: #FF3B30;
|
|
|
+ }
|
|
|
+ .tagColor1{
|
|
|
+ border: 2rpx solid #007AFF;
|
|
|
+ color: #007AFF;
|
|
|
+ // border-top: 2rpx soloid #007AFF;
|
|
|
+ }
|
|
|
+ .color3{
|
|
|
+ color: #FF9500;
|
|
|
+ }
|
|
|
+ .color2{
|
|
|
+ color: #FF3B30;
|
|
|
+ }
|
|
|
+ .color1{
|
|
|
+ color: #007AFF;
|
|
|
+ }
|
|
|
+ .tag{
|
|
|
+ border-radius: 8rpx;
|
|
|
+ font-size: 20rpx;
|
|
|
+ padding: 5rpx;
|
|
|
+ }
|
|
|
+</style>
|