diff --git a/src/views/study/coursenew.vue b/src/views/study/coursenew.vue index cc6143a8..8846ee60 100644 --- a/src/views/study/coursenew.vue +++ b/src/views/study/coursenew.vue @@ -28,9 +28,9 @@
+ :initTime="contentData.lastStudyTime" :notePlay="notePlay" @onPlayerPlay="onPlayerPlay" + :isDrag="curriculumData.isDrag" @onFullscreen="onFullscreen" @onPlayerPause="onPlayerPause" + @onPlayerEnded="onPlayerEnded" :isCrowd="isCrowd" @onTimeUpdate="handleAudioTimeUpdate">
@@ -41,7 +41,7 @@
+ :src="require('@/assets/images/icon/trample-active.png')" />
@@ -68,7 +68,7 @@
{{ contentData.contentName }}
+ @onPlay="audioPlay" @onPause="audioPause" @onPlayEnd="audioEnd">
@@ -95,7 +95,7 @@
+ style="width: 100%;border:0px;min-height: 473px;" frameborder="0">
@@ -115,21 +115,21 @@
- - - +
提交评分
+
--> + +
-
+
- {{ toScore(courseInfo.score) }} - + {{ toScore(courseInfo.score) }} +
@@ -142,14 +142,14 @@ {{ courseInfo.praises }}
- - - - + + + + {{ courseInfo.trampleCount }}
- +
@@ -157,128 +157,128 @@
-
-
- 课程单元 -
-
- 我的笔记 -
+
+
+ 课程单元
- -
-
-
-
- - - - -
- -
-
{{i+1}}. {{ ele.contentName }}
-
- 学习中 - - - - - - - -
+
+ 我的笔记 +
+
+ +
+
+
+
+ + + + +
+ +
+
{{i+1}}. {{ ele.contentName }}
+
+ 学习中 + + + + + + +
+
-
-
-
-
-
- +
+ + +
-
- -
- - -
- {{index+1}}.{{ list.contentName }} -
-
- 学习中 - - - - - - -
- + +
+
+ +
+ + +
+ {{index+1}}.{{ list.contentName }} +
+
+ 学习中 + + + + + + +
+
- -
- -
+
+ +
+ +
-
-
内容简介
-
课程评论
-
课程笔记
-
-
-
-
目标人群:
{{courseInfo.forUsers}}
-
课程价值:
{{courseInfo.value}}
-
详细介绍:
-
-
-
- -
-
- -
+
+
内容简介
+
课程评论
+
课程笔记
+
+
+
+
目标人群:
{{courseInfo.forUsers}}
+
课程价值:
{{courseInfo.value}}
+
详细介绍:
+
+
+
+ +
+
+ +
-
-
课程讲师
+
+
课程讲师
-
- +
+
@@ -287,8 +287,8 @@
- {{ item.teacherName }} - + {{ item.teacherName }} +
{{cutOrgNamePath(item.authorInfo.orgInfo)}}
@@ -522,13 +522,13 @@ }, noteChange(){ //视频点定位,直接到播放的视频位置 - this.timer = new Date().getTime() + this.timer = new Date().getTime() }, //清空追加学习时长事件 cleanAppendTime(){ - if(this.appendStudyOtherHandle){ - window.clearTimeout(this.appendStudyOtherHandle); - } + if(this.appendStudyOtherHandle){ + window.clearTimeout(this.appendStudyOtherHandle); + } }, //非音视频课学习时长的增加,每一分钟保存一次 appendStudyOtherTime() { @@ -539,46 +539,46 @@ if (!this.contentData.id) { return; } - //每一分钟保存一次 - // 取消阅读的每分钟六十秒的计时,最多是设置的时间或默认时间 - let $this=this; - let startTime = new Date().getTime(); - this.appendStudyOtherHandle = setTimeout(function() { - let endTime = new Date().getTime(); - let totalTime = Math.round((endTime - startTime) / 1000); - $this.cumulativeDuration += totalTime; - if($this.cumulativeDuration <= $this.maxDuration){ - //发送时长 - $this.sendStudyOtherTime(totalTime); - //递归调用 - $this.appendStudyOtherTime(); - }else{ - clearTimeout(this.appendStudyOtherHandle); - $this.cumulativeDuration = 0; - $this.maxDuration = 0; - } - }, 1000*60); + //每一分钟保存一次 + // 取消阅读的每分钟六十秒的计时,最多是设置的时间或默认时间 + let $this=this; + let startTime = new Date().getTime(); + this.appendStudyOtherHandle = setTimeout(function() { + let endTime = new Date().getTime(); + let totalTime = Math.round((endTime - startTime) / 1000); + $this.cumulativeDuration += totalTime; + if($this.cumulativeDuration <= $this.maxDuration){ + //发送时长 + $this.sendStudyOtherTime(totalTime); + //递归调用 + $this.appendStudyOtherTime(); + }else{ + clearTimeout(this.appendStudyOtherHandle); + $this.cumulativeDuration = 0; + $this.maxDuration = 0; + } + }, 1000*60); }, sendStudyOtherTime(totalTime){ //静默处理 apiStat.sendEvent({ - "key": "StudyCourseOther",//课程学习的key - "title": "非音视频课内容",//事件的标题 - "parameters":"second:" + totalTime,//second:value 本次的学习时长 - "content": "学习课程",//事件的内容 - "objId": this.courseInfo.id,//课程的id - "objType": "1",//类型 - "source":"page", - "objInfo": ""+this.courseInfo.name, - "aid":this.userInfo.aid, //当前登录人的id - "aname":this.userInfo.name,//当前人的姓名 - "status": 1 //状态 - }).then(rs=>{ - if(rs.status != 200) { - console.log(rs.message); - } - }); + "key": "StudyCourseOther",//课程学习的key + "title": "非音视频课内容",//事件的标题 + "parameters":"second:" + totalTime,//second:value 本次的学习时长 + "content": "学习课程",//事件的内容 + "objId": this.courseInfo.id,//课程的id + "objType": "1",//类型 + "source":"page", + "objInfo": ""+this.courseInfo.name, + "aid":this.userInfo.aid, //当前登录人的id + "aname":this.userInfo.name,//当前人的姓名 + "status": 1 //状态 + }).then(rs=>{ + if(rs.status != 200) { + console.log(rs.message); + } + }); }, //笔记组件触发,播放指定时间 onPlayVideo(contentId,time){ @@ -587,32 +587,32 @@ console.log(contentId,this.contentData.id,'两个内容id'); let $this=this; if(this.contentData.id==contentId){ - this.onPlayerPause() - this.contentData.lastStudyTime=time; - setTimeout(() => { - $this.$refs.myVideoPlayer.startPlay(time); - }, 10) - console.log('开始播放1'); + this.onPlayerPause() + this.contentData.lastStudyTime=time; + setTimeout(() => { + $this.$refs.myVideoPlayer.startPlay(time); + }, 10) + console.log('开始播放1'); }else{ - //通过contentId - let toResContent=null; - this.contentList.forEach(c => { - if(c.id==contentId){ - c.lastStudyTime=time; - toResContent=c; - } - }); - if(toResContent){ - - this.changePlayRes(toResContent); - setTimeout(() => { - $this.$refs.myVideoPlayer.startPlay(time); - }, 10) - - console.log('开始播放2'); - }else{ - this.$message.error('资源已不存在或更换过,已无法定位'); + //通过contentId + let toResContent=null; + this.contentList.forEach(c => { + if(c.id==contentId){ + c.lastStudyTime=time; + toResContent=c; } + }); + if(toResContent){ + + this.changePlayRes(toResContent); + setTimeout(() => { + $this.$refs.myVideoPlayer.startPlay(time); + }, 10) + + console.log('开始播放2'); + }else{ + this.$message.error('资源已不存在或更换过,已无法定位'); + } } this.playerBoxShow = false; }, @@ -690,23 +690,23 @@ }else if(r.contentType==50){ //scorm this.scormUrl=''; apiCourseFile.detail(r.contentRefId).then(cfrs => { - if(cfrs.status==200){ - this.curCFile = cfrs.result; - //this.scormUrl=cfrs - let pars='?mode=normal&r='+Math.random(); - pars+='&scormId='+this.curCFile.id; - pars+='&courseId='+this.courseId; - pars+='&contentId='+r.id; - pars+='&studentId='+this.userInfo.aid; - pars+='&studentName='+encodeURIComponent(this.userInfo.name); - pars+='&lmsId='+this.studyId; - pars+='&scoId=';//不指定,scorm模块自动根据学习记录定位 - let urlPre=window.location.protocol; - let configUrl=process.env.VUE_APP_SCORM_URL; - configUrl=urlPre+configUrl.substring(configUrl.indexOf(':')+1); + if(cfrs.status==200){ + this.curCFile = cfrs.result; + //this.scormUrl=cfrs + let pars='?mode=normal&r='+Math.random(); + pars+='&scormId='+this.curCFile.id; + pars+='&courseId='+this.courseId; + pars+='&contentId='+r.id; + pars+='&studentId='+this.userInfo.aid; + pars+='&studentName='+encodeURIComponent(this.userInfo.name); + pars+='&lmsId='+this.studyId; + pars+='&scoId=';//不指定,scorm模块自动根据学习记录定位 + let urlPre=window.location.protocol; + let configUrl=process.env.VUE_APP_SCORM_URL; + configUrl=urlPre+configUrl.substring(configUrl.indexOf(':')+1); - this.scormUrl=configUrl+pars;//播放的首页 - } + this.scormUrl=configUrl+pars;//播放的首页 + } }); }else if (r.contentType == 52) { @@ -737,12 +737,12 @@ setTimeout(() => { this.isContentTypeTwo = r.contentType $this.isShowTime() - }, 2000); - } + }, 2000); + } } //以下是学习记录,50是scorm项目 if (this.contentData.contentType > 20 && this.contentData.contentType !== 50) { //非视频类的 - //用户的学习时长,非音视频课程学习,单独的处理 + //用户的学习时长,非音视频课程学习,单独的处理 this.isAppendTime = false; this.appendStudyOtherHandle = setTimeout(function() { @@ -752,18 +752,18 @@ // 没有设置默认时长三十分钟, $this.maxDuration = r.duration !== 0 ? r.duration * 2 : $this.defaultMaxTime; $this.$store.dispatch("userTrigger", { - "key": "StudyCourseOther",//课程学习的key - "title": "非音视频课内容",//事件的标题 - "parameters":"second:15",//second:value 本次的学习时长 - "content": "学习课程",//事件的内容 - "objId": $this.courseInfo.id,//课程的id - "objType": "1",//类型 - "source":"page", - "objInfo": ""+$this.courseInfo.name, - "aid":$this.userInfo.aid, //当前登录人的id - "aname":$this.userInfo.name,//当前人的姓名 - "status": 1 //状态 - }); + "key": "StudyCourseOther",//课程学习的key + "title": "非音视频课内容",//事件的标题 + "parameters":"second:15",//second:value 本次的学习时长 + "content": "学习课程",//事件的内容 + "objId": $this.courseInfo.id,//课程的id + "objType": "1",//类型 + "source":"page", + "objInfo": ""+$this.courseInfo.name, + "aid":$this.userInfo.aid, //当前登录人的id + "aname":$this.userInfo.name,//当前人的姓名 + "status": 1 //状态 + }); $this.appendStudyOtherTime(); }, 15000); //非音视频课程学习,十五秒后记录 this.isContentType = this.contentData.contentType @@ -780,20 +780,20 @@ this.$nextTick(function(){ - if (r.contentType == 10) { - console.log('视频处理lastStudyTime',this.contentData.lastStudyTime) - console.log('视频处理progressVideo',this.contentData.progressVideo) - this.$refs.myVideoPlayer.updateProgressByClickBar2(this.contentData.lastStudyTime,this.contentData.progressVideo); - } + if (r.contentType == 10) { + console.log('视频处理lastStudyTime',this.contentData.lastStudyTime) + console.log('视频处理progressVideo',this.contentData.progressVideo) + this.$refs.myVideoPlayer.updateProgressByClickBar2(this.contentData.lastStudyTime,this.contentData.progressVideo); + } - let h=$this.$refs.coursePlayer.offsetHeight; - //解决获取高度不正的问题 - if(h>400 && h<500){ - h=h+40; - }else if(h>500){ - h=h+60; - } - $this.controlHeight=h-95; + let h=$this.$refs.coursePlayer.offsetHeight; + //解决获取高度不正的问题 + if(h>400 && h<500){ + h=h+40; + }else if(h>500){ + h=h+60; + } + $this.controlHeight=h-95; }) @@ -935,9 +935,9 @@ this.interactRuning = true; let teacherId=''; if(this.teachers.length>0){ - teacherId=this.teachers[0].teacherId; + teacherId=this.teachers[0].teacherId; }else{ - teacherId=this.courseInfo.sysCreateAid + teacherId=this.courseInfo.sysCreateAid } let postData = { objType: 1, @@ -1078,7 +1078,7 @@ class: 'catalog-cell-state1' }; } - break; + break; } return data; }, @@ -1139,8 +1139,8 @@ var markDiv = div.querySelector("#" + divId); console.log("去除水印 ---- gx markDiv ----",markDiv); if (markDiv) { - console.log("执行去除水印 ---- gx markDiv ----",markDiv); - div.removeChild(markDiv); + console.log("执行去除水印 ---- gx markDiv ----",markDiv); + div.removeChild(markDiv); } } }, @@ -1199,9 +1199,9 @@ var time = localStorage.getItem('videoProgressData') var arr = time&&JSON.parse(time) || {} if(arr[this.blobId] && this.contentData.progressVideo 0) { //发送用户学习事件 //console.log('保存到后台学习时长='+duration); let postData={ - "key": "StudyCourse",//课程学习的key - "title": "学习课程",//事件的标题 - "parameters":"second:"+duration,//second:value,total:value 本次的学习时长 - "content": "学习课程【"+this.courseInfo.name+"】",//事件的内容 - "objId": this.courseInfo.id,//课程的id - "objType": "1",//类型 - "source":"page", - "objInfo": ""+this.courseInfo.name, - "aid":this.userInfo.aid, //当前登录人的id - "aname":this.userInfo.name,//当前人的姓名 - "status": 1, //状态 - "contentId": this.contentData.id, + "key": "StudyCourse",//课程学习的key + "title": "学习课程",//事件的标题 + "parameters":"second:"+duration,//second:value,total:value 本次的学习时长 + "content": "学习课程【"+this.courseInfo.name+"】",//事件的内容 + "objId": this.courseInfo.id,//课程的id + "objType": "1",//类型 + "source":"page", + "objInfo": ""+this.courseInfo.name, + "aid":this.userInfo.aid, //当前登录人的id + "aname":this.userInfo.name,//当前人的姓名 + "status": 1, //状态 + "contentId": this.contentData.id, + } + if(this.resType == 10){ + postData.progress = this.sendEventProgress; + } + //静默处理 + apiStat.sendEvent(postData).then(rs=>{ + if(rs.status == 200) { + // this.appendStartTime = new Date();//重新计时 + // studyUtil.clearStudyDuration(); //清除本地存储 + } else { + console.log(rs.message); } - if(this.resType == 10){ - postData.progress = this.sendEventProgress; - } - //静默处理 - apiStat.sendEvent(postData).then(rs=>{ - if(rs.status == 200) { - // this.appendStartTime = new Date();//重新计时 - // studyUtil.clearStudyDuration(); //清除本地存储 - } else { - console.log(rs.message); - } - }); + }); // let postAppendData = { // id: this.appentId, // studyId: this.studyId, @@ -1566,13 +1566,13 @@ }, //结束追加学习时长 stopStudyTime(){ - //console.log('停止追加学习时长'); - this.isAppendTime=false; - //暂停让他为空 从新计时 - this.appendStartTime = null - if (this.appendHandle != null) { - window.clearTimeout(this.appendHandle); - } + //console.log('停止追加学习时长'); + this.isAppendTime=false; + //暂停让他为空 从新计时 + this.appendStartTime = null + if (this.appendHandle != null) { + window.clearTimeout(this.appendHandle); + } }, appendStudyTime() { // 暂停的时候重新从十五秒开始计时 @@ -1594,11 +1594,11 @@ this.appendHandle && window.clearTimeout(this.appendHandle); //启动下次追加学习时长 this.appendHandle = setTimeout(() => { - let endTime = new Date().getTime(); - this.appentInterval = 60 - let totalTime = Math.round((endTime - this.appendStartTime) / 1000); - this.appendStudyTime(); - this.saveStudyDuration(totalTime) + let endTime = new Date().getTime(); + this.appentInterval = 60 + let totalTime = Math.round((endTime - this.appendStartTime) / 1000); + this.appendStudyTime(); + this.saveStudyDuration(totalTime) }, this.appentInterval * 1000); }, @@ -1664,55 +1664,55 @@ }, handleAudioTimeUpdate(currentTime) { // if(this.contentStudysLength.length == 0){ - let params = { - studyId: this.studyId, //学习id, - courseId: this.courseId, //课程id, - contentId: this.contentData.id, //内容id, - contentType: this.contentData.contentType, - contentName: this.contentData.contentName, //内容名称 - progress: 1, - status: 2, - contentTotal: this.totalContent - }; - if(currentTime > 2 && this.trueFalse){ - apiStudy.studyContent(params).then(()=>{ - if(this.contentData.status<2){ - this.contentData.status = 2; - } - }) - this.trueFalse = false - } + let params = { + studyId: this.studyId, //学习id, + courseId: this.courseId, //课程id, + contentId: this.contentData.id, //内容id, + contentType: this.contentData.contentType, + contentName: this.contentData.contentName, //内容名称 + progress: 1, + status: 2, + contentTotal: this.totalContent + }; + if(currentTime > 2 && this.trueFalse){ + apiStudy.studyContent(params).then(()=>{ + if(this.contentData.status<2){ + this.contentData.status = 2; + } + }) + this.trueFalse = false + } }, }, }