From edec2b7f3023ccb2fc8f371de52cd752a9392722 Mon Sep 17 00:00:00 2001 From: nisen Date: Wed, 22 Nov 2023 13:59:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=AD=A3=E5=B8=B8=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E8=AE=B0=E5=BD=95=E6=97=B6=E9=95=BF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/study/coursenew.vue | 109 ++++++++++++++++++++-------------- 1 file changed, 66 insertions(+), 43 deletions(-) diff --git a/src/views/study/coursenew.vue b/src/views/study/coursenew.vue index a15c90df..3ba59886 100644 --- a/src/views/study/coursenew.vue +++ b/src/views/study/coursenew.vue @@ -386,7 +386,7 @@ appendHandle: null, //追加学习时长的timeout句柄 isAppendTime: false, //是否追加学习时长 appentId: '', //当前追加的学习时长的id,此字段已经不再使用 - appentInterval: 5000, //追加学习时间的间隔 5秒加一次 + appentInterval: 15, //追加学习时间的间隔 5秒加一次 handleTimeout: null, completed: [], tab: 1, @@ -1408,7 +1408,7 @@ apiStat.sendEvent(postData).then(rs=>{ if(rs.status == 200) { // this.appendStartTime = new Date();//重新计时 - studyUtil.clearStudyDuration(); //清除本地存储 + // studyUtil.clearStudyDuration(); //清除本地存储 } else { console.log(rs.message); } @@ -1441,8 +1441,9 @@ window.clearTimeout(this.appendHandle); } }, - //追加学习时长, flag是否提交到后台 appendStudyTime() { + //重新覆盖时间 + this.appendStartTime = new Date().getTime(); //console.log('开始追加学习时长',this.isAppendTime); if (this.studyId == '') { return; @@ -1451,50 +1452,72 @@ return; } if (!this.isAppendTime) { - this.appendStartTime = null; return; } - - if (this.appendHandle != null) { - window.clearTimeout(this.appendHandle); - } - //首先从本地读取 - let duration = studyUtil.getStudyDuration(); - //console.log('追加学习时长,当前本地积累的学习时长='+duration); - //追加学习长 - let $this = this; - if (this.appendStartTime == null) { - this.appendStartTime = new Date(); - this.appendHandle = setTimeout(function() { - $this.appendStudyTime(); - }, $this.appentInterval); //设置定时追加学习时长 - //保存之前的 - if (duration >= 60 ) { - this.saveStudyDuration(duration); - } - return; - } - //如果当前追加开始时间不为空 - let now = new Date(); - let m = now.getTime() - this.appendStartTime.getTime(); //相差的毫秒数 - // console.log(m/1000,'时间'); - - let sen = Math.round(m / 1000); //计算秒数 - // console.log('定时器时间',sen); - // 每次添加的是定时器计时的时间 - duration = duration + sen;//追加的是秒 - if (duration >= 60) { //一分钟保存一次 - this.saveStudyDuration(duration); - } else { - studyUtil.setStudyDuration(duration); //添加到本地存储中 - } - //重新覆盖时间 - this.appendStartTime = new Date(); + this.appendHandle && window.clearTimeout(this.appendHandle); //启动下次追加学习时长 - this.appendHandle = setTimeout(function() { - $this.appendStudyTime(); - }, $this.appentInterval); + this.appendHandle = setTimeout(() => { + let endTime = new Date().getTime(); + this.appentInterval = 60 + let totalTime = Math.round((endTime - this.appendStartTime) / 1000); + this.saveStudyDuration(totalTime) + this.appendStudyTime(); + }, this.appentInterval * 1000); }, + //追加学习时长, flag是否提交到后台 + // appendStudyTime() { + // //console.log('开始追加学习时长',this.isAppendTime); + // if (this.studyId == '') { + // return; + // } + // if (!this.contentData.id) { + // return; + // } + // if (!this.isAppendTime) { + // this.appendStartTime = null; + // return; + // } + + // if (this.appendHandle != null) { + // window.clearTimeout(this.appendHandle); + // } + // //首先从本地读取 + // let duration = studyUtil.getStudyDuration(); + // //console.log('追加学习时长,当前本地积累的学习时长='+duration); + // //追加学习长 + // let $this = this; + // if (this.appendStartTime == null) { + // this.appendStartTime = new Date(); + // this.appendHandle = setTimeout(function() { + // $this.appendStudyTime(); + // }, $this.appentInterval); //设置定时追加学习时长 + // //保存之前的 + // if (duration >= 60 ) { + // this.saveStudyDuration(duration); + // } + // return; + // } + // //如果当前追加开始时间不为空 + // let now = new Date(); + // let m = now.getTime() - this.appendStartTime.getTime(); //相差的毫秒数 + // // console.log(m/1000,'时间'); + + // let sen = Math.round(m / 1000); //计算秒数 + // // console.log('定时器时间',sen); + // // 每次添加的是定时器计时的时间 + // duration = duration + sen;//追加的是秒 + // if (duration >= 60) { //一分钟保存一次 + // this.saveStudyDuration(duration); + // } else { + // studyUtil.setStudyDuration(duration); //添加到本地存储中 + // } + // //重新覆盖时间 + // this.appendStartTime = new Date(); + // //启动下次追加学习时长 + // this.appendHandle = setTimeout(function() { + // $this.appendStudyTime(); + // }, $this.appentInterval); + // }, finishStudyItem() { //设置完成学习的内容,针对于音视频的内容 if (!this.contentData.studyItemId) {