mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-12 20:36:43 +08:00
Merge branch 'zcwyTeacher' into 'master'
Zcwy teacher See merge request !83
This commit is contained in:
@@ -551,7 +551,6 @@ export default {
|
|||||||
},
|
},
|
||||||
currentProgress: function () {
|
currentProgress: function () {
|
||||||
// 进度条到终点时修改播放状态
|
// 进度条到终点时修改播放状态
|
||||||
//console.log('播放中', this.videoDom.currentTime)
|
|
||||||
this.$emit('onPlayerPlaying', this.videoDom.currentTime,this.videoDom.duration)
|
this.$emit('onPlayerPlaying', this.videoDom.currentTime,this.videoDom.duration)
|
||||||
if (this.currentProgress === 1) {
|
if (this.currentProgress === 1) {
|
||||||
this.isPlaying = false;
|
this.isPlaying = false;
|
||||||
|
|||||||
@@ -621,10 +621,11 @@ export default {
|
|||||||
item.device = 2;
|
item.device = 2;
|
||||||
}
|
}
|
||||||
//转化为秒
|
//转化为秒
|
||||||
if(item.minute){
|
// if(item.minute){
|
||||||
item.duration=parseFloat(item.minute)*60;
|
// item.duration=parseFloat(item.minute)*60;
|
||||||
}
|
// }
|
||||||
|
// 如果没有给一个默认值30分钟
|
||||||
|
item.duration = item.minute ? parseFloat(item.minute) * 60 : 1800;
|
||||||
});
|
});
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
coueseFile.batchUpdate(this.fileList).then(rs => {
|
coueseFile.batchUpdate(this.fileList).then(rs => {
|
||||||
|
|||||||
@@ -158,7 +158,10 @@ export default {
|
|||||||
diagSync:false,//控制弹窗
|
diagSync:false,//控制弹窗
|
||||||
isPraise:false,
|
isPraise:false,
|
||||||
isFavorite: false,
|
isFavorite: false,
|
||||||
setTime: null
|
setTime: null,
|
||||||
|
defaultMaxTime: 1800,//最大时长
|
||||||
|
cumulativeDuration:0,//累计时长
|
||||||
|
secondTime:15,//默认时长
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
@@ -178,7 +181,8 @@ export default {
|
|||||||
},
|
},
|
||||||
beforeDestroy(){
|
beforeDestroy(){
|
||||||
window.removeEventListener("scroll",this.handleScroll);
|
window.removeEventListener("scroll",this.handleScroll);
|
||||||
clearInterval(this.setTime);
|
clearTimeout(this.setTime);
|
||||||
|
this.cumulativeDuration = 0;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
banJump() {
|
banJump() {
|
||||||
@@ -252,7 +256,8 @@ export default {
|
|||||||
this.articleDetailData=res.result;
|
this.articleDetailData=res.result;
|
||||||
//if(this.articleDetailData.toString()!='{}'){
|
//if(this.articleDetailData.toString()!='{}'){
|
||||||
this.getAuthorInfo(this.articleDetailData)
|
this.getAuthorInfo(this.articleDetailData)
|
||||||
let event = {
|
//记录查看文章
|
||||||
|
this.$store.dispatch("userTrigger", {
|
||||||
key: "ViewArticle",//后台的事件key 发布文章且审核通过
|
key: "ViewArticle",//后台的事件key 发布文章且审核通过
|
||||||
title: "查看文章",//事件的标题
|
title: "查看文章",//事件的标题
|
||||||
parameters:"",//用户自定义参数 name:value,name:value
|
parameters:"",//用户自定义参数 name:value,name:value
|
||||||
@@ -264,15 +269,9 @@ export default {
|
|||||||
aid: this.userInfo.aid, //当前登录人的id
|
aid: this.userInfo.aid, //当前登录人的id
|
||||||
aname: this.userInfo.name,//当前人的姓名
|
aname: this.userInfo.name,//当前人的姓名
|
||||||
status: 1 //状态,直接写1
|
status: 1 //状态,直接写1
|
||||||
}
|
});
|
||||||
this.$store.dispatch("userTrigger", event);
|
//记录阅读时长
|
||||||
this.setTime = setTimeout(()=>{
|
this.sendEventData()
|
||||||
event.key = 'ReadArticle';
|
|
||||||
event.title = "阅读文章";
|
|
||||||
event.parameters='second:60';//增加60秒的学习时长
|
|
||||||
event.content = "阅读了文章"
|
|
||||||
$this.$store.dispatch("userTrigger", event);
|
|
||||||
},61000);//1分钟后记录
|
|
||||||
//}
|
//}
|
||||||
}else{
|
}else{
|
||||||
this.noData = false;
|
this.noData = false;
|
||||||
@@ -282,6 +281,33 @@ export default {
|
|||||||
this.$message.error("获取数据失败")
|
this.$message.error("获取数据失败")
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
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
|
||||||
|
}
|
||||||
|
this.setTime = setTimeout(()=>{
|
||||||
|
this.cumulativeDuration += this.secondTime
|
||||||
|
if(this.cumulativeDuration <= this.defaultMaxTime){
|
||||||
|
this.$store.dispatch("userTrigger", event);
|
||||||
|
this.secondTime = 60
|
||||||
|
this.sendEventData()
|
||||||
|
}else{
|
||||||
|
this.cumulativeDuration = 0
|
||||||
|
clearTimeout(this.setTime);
|
||||||
|
this.setTime = null
|
||||||
|
}
|
||||||
|
},this.secondTime * 1000);//15秒记录一次之后1分钟后记录
|
||||||
|
},
|
||||||
//获取文章发布人的人物信息
|
//获取文章发布人的人物信息
|
||||||
getAuthorInfo(data){
|
getAuthorInfo(data){
|
||||||
let ids=[data.sysCreateAid]
|
let ids=[data.sysCreateAid]
|
||||||
|
|||||||
@@ -223,7 +223,10 @@ export default {
|
|||||||
Profess: [],
|
Profess: [],
|
||||||
orgData: [],
|
orgData: [],
|
||||||
setTimeCase: null,
|
setTimeCase: null,
|
||||||
dataTime: sessionStorage.getItem('startTime') || 0
|
dataTime: sessionStorage.getItem('startTime') || 0,
|
||||||
|
defaultMaxTime: 1800,//最大时长
|
||||||
|
cumulativeDuration:0,//累计时长
|
||||||
|
secondTime:15, //秒数
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -263,7 +266,8 @@ export default {
|
|||||||
this.endTimeRequst(this.resolveId, recordEndTime)
|
this.endTimeRequst(this.resolveId, recordEndTime)
|
||||||
sessionStorage.removeItem('startTime')
|
sessionStorage.removeItem('startTime')
|
||||||
window.removeEventListener("scroll", this.handleScroll);
|
window.removeEventListener("scroll", this.handleScroll);
|
||||||
clearInterval(this.setTimeCase);
|
clearTimeout(this.setTimeCase);
|
||||||
|
this.cumulativeDuration = 0;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
endTimeRequst(caseId, recordEndTime) {
|
endTimeRequst(caseId, recordEndTime) {
|
||||||
@@ -280,7 +284,6 @@ export default {
|
|||||||
},
|
},
|
||||||
allRequests(id = '') {
|
allRequests(id = '') {
|
||||||
this.Intsucc();
|
this.Intsucc();
|
||||||
this.retest();
|
|
||||||
|
|
||||||
this.resolveId = id ? id : this.$route.query.id;
|
this.resolveId = id ? id : this.$route.query.id;
|
||||||
this.$watermark.set(this.userInfo.name + this.userInfo.loginName);
|
this.$watermark.set(this.userInfo.name + this.userInfo.loginName);
|
||||||
@@ -293,6 +296,7 @@ export default {
|
|||||||
this.getPopularity();
|
this.getPopularity();
|
||||||
this.getPositive();
|
this.getPositive();
|
||||||
this.couresreso();
|
this.couresreso();
|
||||||
|
this.retest();
|
||||||
window.addEventListener(
|
window.addEventListener(
|
||||||
"scroll",
|
"scroll",
|
||||||
this.handleScroll
|
this.handleScroll
|
||||||
@@ -330,6 +334,18 @@ export default {
|
|||||||
if (xmlhttp.status == 200) {
|
if (xmlhttp.status == 200) {
|
||||||
clearTimeout(timer);
|
clearTimeout(timer);
|
||||||
$this.Internet = 1;
|
$this.Internet = 1;
|
||||||
|
$this.$store.dispatch("userTrigger", {
|
||||||
|
key: "ViewCase",//后台的事件key 发布文章且审核通过
|
||||||
|
title: '查看案例',//事件的标题
|
||||||
|
parameters: "",//用户自定义参数 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.sendEventData();
|
$this.sendEventData();
|
||||||
} else {
|
} else {
|
||||||
clearTimeout(timer);
|
clearTimeout(timer);
|
||||||
@@ -526,10 +542,10 @@ export default {
|
|||||||
},
|
},
|
||||||
sendEventData() {
|
sendEventData() {
|
||||||
let event = {
|
let event = {
|
||||||
key: "ViewCase",//后台的事件key 发布文章且审核通过
|
key: "ReadCase",//后台的事件key 发布文章且审核通过
|
||||||
title: '查看案例',//事件的标题
|
title: '阅读案例',//事件的标题
|
||||||
parameters: "",//用户自定义参数 name:value,name:value
|
parameters: "second:" + this.secondTime,//用户自定义参数 name:value,name:value
|
||||||
content: '查看了案例',//事件的内容
|
content: '阅读了案例',//事件的内容
|
||||||
objId: this.resolveId,//关联的id
|
objId: this.resolveId,//关联的id
|
||||||
objType: "3",//关联的类型
|
objType: "3",//关联的类型
|
||||||
objInfo: this.caseDetail.title,
|
objInfo: this.caseDetail.title,
|
||||||
@@ -537,15 +553,18 @@ export default {
|
|||||||
aname: this.userInfo.name,//当前人的姓名
|
aname: this.userInfo.name,//当前人的姓名
|
||||||
status: 1 //状态,直接写1
|
status: 1 //状态,直接写1
|
||||||
}
|
}
|
||||||
this.$store.dispatch("userTrigger", event);
|
|
||||||
let $this = this;
|
|
||||||
this.setTimeCase = setTimeout(() => {
|
this.setTimeCase = setTimeout(() => {
|
||||||
event.key = 'ReadCase';
|
this.cumulativeDuration += this.secondTime
|
||||||
event.title = '阅读案例';
|
if(this.cumulativeDuration <= this.defaultMaxTime){
|
||||||
event.parameters = "second:60";
|
this.$store.dispatch("userTrigger", event);
|
||||||
event.content = '阅读了案例';
|
this.secondTime = 60
|
||||||
$this.$store.dispatch("userTrigger", event);
|
this.sendEventData()
|
||||||
}, 61000);//1分钟之后发送阅读案例事件
|
}else{
|
||||||
|
this.cumulativeDuration = 0
|
||||||
|
clearTimeout(this.setTimeCase);
|
||||||
|
this.setTimeCase = null
|
||||||
|
}
|
||||||
|
}, this.secondTime * 1000);//15秒记录一次之后1分钟之后发送阅读案例事件
|
||||||
},
|
},
|
||||||
getCaseData() {
|
getCaseData() {
|
||||||
let $this = this;
|
let $this = this;
|
||||||
|
|||||||
@@ -643,6 +643,7 @@ export default {
|
|||||||
pageIndex: 1, // 第几页
|
pageIndex: 1, // 第几页
|
||||||
pageSize: 9,//每页多少条
|
pageSize: 9,//每页多少条
|
||||||
openCourse: 0,//增加的公开课查询
|
openCourse: 0,//增加的公开课查询
|
||||||
|
userId:''
|
||||||
},
|
},
|
||||||
sceneList: [], //场景
|
sceneList: [], //场景
|
||||||
keyword: "",//查询的关键字
|
keyword: "",//查询的关键字
|
||||||
@@ -1375,6 +1376,7 @@ export default {
|
|||||||
let isTopList = [];
|
let isTopList = [];
|
||||||
// 隐藏loadMore
|
// 隐藏loadMore
|
||||||
this.moreState = 2;
|
this.moreState = 2;
|
||||||
|
this.course.userId = this.userInfo.aid
|
||||||
await apiCoursePortal.courseSearch(this.course).then(res => {
|
await apiCoursePortal.courseSearch(this.course).then(res => {
|
||||||
this.searching = false;
|
this.searching = false;
|
||||||
if (res.status == 200) {
|
if (res.status == 200) {
|
||||||
|
|||||||
@@ -394,6 +394,9 @@
|
|||||||
localTimeKey:'boeu-study-time' ,//本地存储的学习时长的key json格式
|
localTimeKey:'boeu-study-time' ,//本地存储的学习时长的key json格式
|
||||||
localTimeValue:0,//计算的时间
|
localTimeValue:0,//计算的时间
|
||||||
appendStudyOtherHandle:null,
|
appendStudyOtherHandle:null,
|
||||||
|
cumulativeDuration:0, //非音频累计时长
|
||||||
|
maxDuration:0, //非音频最大时长
|
||||||
|
defaultMaxTime:1800 //非音频默认最大时间
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -484,18 +487,25 @@
|
|||||||
"aname":this.userInfo.name,//当前人的姓名
|
"aname":this.userInfo.name,//当前人的姓名
|
||||||
"status": 1 //状态
|
"status": 1 //状态
|
||||||
}
|
}
|
||||||
//静默处理
|
|
||||||
apiStat.sendEvent(postData).then(rs=>{
|
|
||||||
if(rs.status != 200) {
|
|
||||||
console.log(rs.message);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//每一分钟保存一次
|
//每一分钟保存一次
|
||||||
// 取消阅读的每分钟六十秒的计时
|
// 取消阅读的每分钟六十秒的计时,最多是设置的时间或默认时间
|
||||||
// let $this=this;
|
let $this=this;
|
||||||
// this.appendStudyOtherHandle = setTimeout(function() {
|
this.appendStudyOtherHandle = setTimeout(function() {
|
||||||
// $this.appendStudyOtherTime();
|
$this.cumulativeDuration += 60;
|
||||||
// }, 1000*60);
|
if($this.cumulativeDuration <= $this.maxDuration){
|
||||||
|
//静默处理
|
||||||
|
apiStat.sendEvent(postData).then(rs=>{
|
||||||
|
if(rs.status != 200) {
|
||||||
|
console.log(rs.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$this.appendStudyOtherTime();
|
||||||
|
}else{
|
||||||
|
clearTimeout(this.appendStudyOtherHandle);
|
||||||
|
$this.cumulativeDuration = 0;
|
||||||
|
$this.maxDuration = 0;
|
||||||
|
}
|
||||||
|
}, 1000*60);
|
||||||
|
|
||||||
},
|
},
|
||||||
//笔记组件触发,播放指定时间
|
//笔记组件触发,播放指定时间
|
||||||
@@ -662,14 +672,32 @@
|
|||||||
if (this.contentData.status < 2) {
|
if (this.contentData.status < 2) {
|
||||||
this.contentData.status = 2; //进行中
|
this.contentData.status = 2; //进行中
|
||||||
}
|
}
|
||||||
//以下是学习记录
|
//以下是学习记录,50是scorm项目
|
||||||
if (this.contentData.contentType > 20) { //非视频类的
|
if (this.contentData.contentType > 20 && this.contentData.contentType !== 50) { //非视频类的
|
||||||
//用户的学习时长,非音视频课程学习,单独的处理
|
//用户的学习时长,非音视频课程学习,单独的处理
|
||||||
this.isAppendTime = false;
|
this.isAppendTime = false;
|
||||||
|
|
||||||
this.appendStudyOtherHandle = setTimeout(function() {
|
this.appendStudyOtherHandle = setTimeout(function() {
|
||||||
|
// 开始之前把响应式清空
|
||||||
|
$this.maxDuration = 0;
|
||||||
|
$this.cumulativeDuration = 0;
|
||||||
|
// 没有设置默认时长三十分钟,
|
||||||
|
$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 //状态
|
||||||
|
});
|
||||||
$this.appendStudyOtherTime();
|
$this.appendStudyOtherTime();
|
||||||
}, 1000*60*2); //非音视频课程学习,2分钟后记录,因为一次记录是60秒
|
}, 15000); //非音视频课程学习,十五秒后记录
|
||||||
//this.appendStudyTime();
|
//this.appendStudyTime();
|
||||||
if (this.contentData.contentType != 50) {
|
if (this.contentData.contentType != 50) {
|
||||||
this.handleTimeout = setTimeout(function(){
|
this.handleTimeout = setTimeout(function(){
|
||||||
|
|||||||
Reference in New Issue
Block a user