From ed2fef1d4b4327811326151993fa54ae71ea7b10 Mon Sep 17 00:00:00 2001 From: nisen Date: Mon, 20 Nov 2023 13:40:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=BE=E7=A8=8B=E6=A1=88?= =?UTF-8?q?=E4=BE=8B=E5=92=8C=E6=96=87=E7=AB=A0=E6=97=B6=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/portal/article/Detail.vue | 36 +++++++++++++--------- src/views/portal/case/Detail.vue | 30 +++++++++--------- src/views/study/coursenew.vue | 47 +++++++++++++++++------------ 3 files changed, 64 insertions(+), 49 deletions(-) diff --git a/src/views/portal/article/Detail.vue b/src/views/portal/article/Detail.vue index 83f5039b..7ee41347 100644 --- a/src/views/portal/article/Detail.vue +++ b/src/views/portal/article/Detail.vue @@ -282,23 +282,13 @@ export default { }) }, sendEventData(){ - let event = { - key: "ReadArticle",//后台的事件key 发布文章且审核通过 - title: "阅读文章",//事件的标题 - parameters:"second:" + this.secondTime,//用户自定义参数 name:value,name:value - content: "阅读了文章",//事件的内容 - source:'page', - objId: this.articleId,//关联的id - objType: "2",//关联的类型 - objInfo: this.articleDetailData.title, - aid: this.userInfo.aid, //当前登录人的id - aname: this.userInfo.name,//当前人的姓名 - status: 1 //状态,直接写1 - } + let startTime = new Date().getTime(); this.setTime = setTimeout(()=>{ - this.cumulativeDuration += this.secondTime + let endTime = new Date().getTime(); + let totalTime = parseInt((endTime - startTime) / 1000); + this.cumulativeDuration += totalTime; if(this.cumulativeDuration <= this.defaultMaxTime){ - this.$store.dispatch("userTrigger", event); + this.sendStudyTime(totalTime); this.secondTime = 60 this.sendEventData() }else{ @@ -308,6 +298,22 @@ export default { } },this.secondTime * 1000);//15秒记录一次之后1分钟后记录 }, + // 发送学习时间 + sendStudyTime(totalTime){ + this.$store.dispatch("userTrigger", { + key: "ReadArticle",//后台的事件key 发布文章且审核通过 + title: "阅读文章",//事件的标题 + parameters:"second:" + totalTime,//用户自定义参数 name:value,name:value + content: "阅读了文章",//事件的内容 + source:'page', + objId: this.articleId,//关联的id + objType: "2",//关联的类型 + objInfo: this.articleDetailData.title, + aid: this.userInfo.aid, //当前登录人的id + aname: this.userInfo.name,//当前人的姓名 + status: 1 //状态,直接写1 + }); + }, //获取文章发布人的人物信息 getAuthorInfo(data){ let ids=[data.sysCreateAid] diff --git a/src/views/portal/case/Detail.vue b/src/views/portal/case/Detail.vue index 869bf454..a74997c5 100644 --- a/src/views/portal/case/Detail.vue +++ b/src/views/portal/case/Detail.vue @@ -541,22 +541,24 @@ export default { }) }, sendEventData() { - let event = { - key: "ReadCase",//后台的事件key 发布文章且审核通过 - title: '阅读案例',//事件的标题 - parameters: "second:" + this.secondTime,//用户自定义参数 name:value,name:value - content: '阅读了案例',//事件的内容 - objId: this.resolveId,//关联的id - objType: "3",//关联的类型 - objInfo: this.caseDetail.title, - aid: this.userInfo.aid, //当前登录人的id - aname: this.userInfo.name,//当前人的姓名 - status: 1 //状态,直接写1 - } + let startTime = new Date().getTime(); this.setTimeCase = setTimeout(() => { - this.cumulativeDuration += this.secondTime + let endTime = new Date().getTime(); + let totalTime = parseInt((endTime - startTime) / 1000); + this.cumulativeDuration += totalTime if(this.cumulativeDuration <= this.defaultMaxTime){ - this.$store.dispatch("userTrigger", event); + this.$store.dispatch("userTrigger", { + key: "ReadCase",//后台的事件key 发布文章且审核通过 + title: '阅读案例',//事件的标题 + parameters: "second:" + totalTime,//用户自定义参数 name:value,name:value + content: '阅读了案例',//事件的内容 + objId: this.resolveId,//关联的id + objType: "3",//关联的类型 + objInfo: this.caseDetail.title, + aid: this.userInfo.aid, //当前登录人的id + aname: this.userInfo.name,//当前人的姓名 + status: 1 //状态,直接写1 + }); this.secondTime = 60 this.sendEventData() }else{ diff --git a/src/views/study/coursenew.vue b/src/views/study/coursenew.vue index 50bf1005..8bce3233 100644 --- a/src/views/study/coursenew.vue +++ b/src/views/study/coursenew.vue @@ -474,31 +474,18 @@ if (!this.contentData.id) { return; } - let postData={ - "key": "StudyCourseOther",//课程学习的key - "title": "非音视频课内容",//事件的标题 - "parameters":"second:60",//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 //状态 - } //每一分钟保存一次 // 取消阅读的每分钟六十秒的计时,最多是设置的时间或默认时间 let $this=this; + let startTime = new Date().getTime(); this.appendStudyOtherHandle = setTimeout(function() { - $this.cumulativeDuration += 60; + let endTime = new Date().getTime(); + let totalTime = parseInt((endTime - startTime) / 1000); + $this.cumulativeDuration += totalTime; if($this.cumulativeDuration <= $this.maxDuration){ - //静默处理 - apiStat.sendEvent(postData).then(rs=>{ - if(rs.status != 200) { - console.log(rs.message); - } - }); + //发送时长 + $this.sendStudyOtherTime(totalTime); + //递归调用 $this.appendStudyOtherTime(); }else{ clearTimeout(this.appendStudyOtherHandle); @@ -508,6 +495,26 @@ }, 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); + } + }); + }, //笔记组件触发,播放指定时间 onPlayVideo(contentId,time){ //这里需要根据contentId,是否切换到对应的内容的视频的时间