diff --git a/src/api/modules/course.js b/src/api/modules/course.js index 3f4e503b..00db854c 100644 --- a/src/api/modules/course.js +++ b/src/api/modules/course.js @@ -1,7 +1,7 @@ /** * 课程的操作,课程的添加,修改,列表查询,课程的审核发布等操作。 * 针对于管理员,教师的功能 - * + * **/ import ajax from '@/utils/xajax.js' @@ -170,7 +170,9 @@ const updateContentOrders = function(cid,items) { const detail = function(id) { return ajax.get('/xboe/m/course/manage/detail?id=' + id); } - +const getDictIds = function(pid,type) { + return ajax.get(`/xboe/m/course/manage/getDictIds?pid=${pid}&type=${type}`); +} /** * 更新内容的名称 * @param {Object} data @@ -274,7 +276,7 @@ const countWaitAudit = function() { } /** - * [已用courseAudit中的hrbpAuditList替换] + * [已用courseAudit中的hrbpAuditList替换] * 当前用户需要审核的课程列表 * @param {Object} query 同pageList */ @@ -283,9 +285,9 @@ const auditList = function(query) { } -/** - * 【已移到courseAudit中】 - * 教师需要审核的课程列表 +/** + * 【已移到courseAudit中】 + * 教师需要审核的课程列表 */ const teacherAuditList = function(query) { return ajax.post('/xboe/m/course/audit/teacher-course', query); @@ -446,6 +448,7 @@ export default { findUpdateLogs, getUpdateLog, detail, + getDictIds, saveContent, pageList, setEnabled, diff --git a/src/components/Course/courseForm.vue b/src/components/Course/courseForm.vue index 8163331c..eef5a11f 100644 --- a/src/components/Course/courseForm.vue +++ b/src/components/Course/courseForm.vue @@ -141,6 +141,7 @@ PC端可见 移动端可见 多端可见 + 仅内网访问 @@ -305,6 +306,7 @@ PC端可见 移动端可见 多端可见 + 仅内网访问 @@ -488,6 +490,8 @@ export default { refType:'' }, visibleShow:false, + isPermission:false, + dicts:[], extendRefId:'', extendRefType:'', courseTeachers: [], //课程的老师 @@ -527,7 +531,11 @@ export default { dlgShow: false }, rightTypeId: {}, - catalogSortDialogShow: false + catalogSortDialogShow: false, + selectedOrg: { + orgId: null, + name: '' + } }; }, created() { @@ -552,14 +560,18 @@ export default { }, watch: { courseInfo: { - handler(newVal) { - //需要保存 + handler(newVal, oldVal) { + // 需要保存 this.requireSaveCourse = true; + + console.log("--- watch比较 = ", oldVal.orgId, newVal.orgId); + this.checkOrgPermission(newVal.orgId); }, deep: true } }, mounted() { + this.getDictIds(); let extendFlag=this.$route.query.f; //是否是管理端过来的 this.extendRefId=this.$route.query.refId; this.extendRefType=this.$route.query.refType; @@ -581,6 +593,19 @@ export default { this.loadUserGroup(); }, methods: { + // 检查机构权限 + checkOrgPermission(orgId) { + console.log("--- 监测组织id orgId = ",orgId) + console.log("--- this.isPermission = ",this.isPermission) + console.log("--- device = ",this.courseInfo.device) + if (!orgId) { + this.isPermission = false; + return; + } + console.log("--- this.dicts = ",this.dicts) + this.isPermission = this.dicts.includes(orgId); + console.log("--- 监听结束 this.isPermission = ",this.isPermission) + }, // 关键字的更改 changeKeywords(option){ if(option.target.value){ @@ -885,11 +910,27 @@ export default { this.courseCoverurl = ''; this.courseInfo.coverImg = ''; }, + //获取字典信息 + async getDictIds() { + console.log("--- 获取字典信息 1 = ", this.dicts); + try { + const response = await apiCourse.getDictIds(637, 1); // 确保返回 Promise + console.log("--- 获取字典信息 2 result= ", response); + + if (response.status === 200) { + this.dicts = response.result.dicts; // 正确提取 dicts + console.log("--- 获取字典信息 3 = ", this.dicts); + } + } catch (error) { + console.error("获取字典信息失败:", error); + } + }, //获取课程信息 async getDetail(id) { this.curCourseId = id; this.orgName=''; - let $this = this; + this.isPermission = false; + let $this = this; try { const { result, status } = await apiCourse.detail(id); if (status === 200) { @@ -906,7 +947,10 @@ export default { this.contentInfo.list = result.contents; this.sectionInfo.list = result.sections; this.courseTeachers = result.teachers; //课程的老师信息 - + this.isPermission = result.isPermission; //课程的老师信息 + this.dicts = result.dicts; //课程的老师信息 + console.log("--- 编辑查看 this.isPermission = ",this.isPermission) + console.log("--- 编辑查看 this.dicts = ",this.dicts) if(!this.courseInfo.orgId){ //根据课程创建者获取机构id apiUser.getOrgSimpleByUserId(result.course.sysCreateAid).then(ors=>{ diff --git a/src/components/VideoPlayer/progress-bar.vue b/src/components/VideoPlayer/progress-bar.vue index 84bc066d..8e04b51b 100644 --- a/src/components/VideoPlayer/progress-bar.vue +++ b/src/components/VideoPlayer/progress-bar.vue @@ -37,7 +37,6 @@ export default { }, isDrag:{ type: Boolean, - default: true, }, blobId:{ type: String, diff --git a/src/views/study/coursenew.vue b/src/views/study/coursenew.vue index cc6143a8..d954787e 100644 --- a/src/views/study/coursenew.vue +++ b/src/views/study/coursenew.vue @@ -22,91 +22,101 @@
-
- - -
-
- -
-
-
- - - -
+
+
+ + +
+
+ +
+
+
+ + + +
+
+
+ + + +
+
-
- - - -
-
-
-
+
- -
-
-
- +
- +
+
+ +
+ {{ toScore(courseInfo.score) }} +
-
-
-
-
{{ contentData.contentName }}
-
- +
+
+
{{ contentData.contentName }}
+
+ +
-
-
-
-
此课程内容无法预览,请联系管理员
-
-
- 此课程内容无法预览,请联系管理员 -
- - -
-
-
-
-
- -
-
-
- -
- -
-
- -
-
- - +
+
+ 十分抱歉,您当前的网络环境不符合观看要求。为了保障课程信息的安全,您需要接入公司内网才能观看。 +
+
+ 重新检测 +
@@ -303,6 +313,17 @@
+ +
{{warnTitle}}
+
+   {{warn}} +
+ + 确 + 定 + +
@@ -369,6 +390,7 @@ }, data() { return { + protocolDialogVisible: false, tentative: false, isContentTypeTwo: null, isContentType: null, @@ -390,6 +412,7 @@ curCFile: { converStatus: 4, }, + Internet: 3,//1是成功 2是是失败 3是检测中 radio: '', interactRuning: false, playerBoxShow: false, @@ -431,6 +454,7 @@ getType: getType, ctabName: 'catalog', resType: null, + renderCourse: true, activeNames: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], scoreInfo: { dlgShow: false, @@ -454,9 +478,12 @@ cumulativeDuration:0, //非音频累计时长 maxDuration:0, //非音频最大时长 defaultMaxTime:1800, //非音频默认最大时间 + warn:"测试内容", + warnTitle:"测试标题", } }, mounted() { + this.getInternet(); // 增加的用户受众id let localKey = "user_" + this.userInfo.sysId + "_gids"; let hasIds = sessionStorage.getItem(localKey); @@ -504,10 +531,6 @@ return treeList; } }, - destroyed(){ - this.cleanAppendTime(); - this.stopStudyTime(); - }, methods: { handleOpen(key,path){ if(this.isFalse){ @@ -522,13 +545,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 +562,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 +610,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 +713,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 +760,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 +775,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 +803,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 +958,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 +1101,7 @@ class: 'catalog-cell-state1' }; } - break; + break; } return data; }, @@ -1139,8 +1162,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 +1222,9 @@ var time = localStorage.getItem('videoProgressData') var arr = time&&JSON.parse(time) || {} if(arr[this.blobId] && this.contentData.progressVideo { if (rs.status == 200) { + if(rs.result.isPermission){ + this.protocolDialogVisible=true + } + if (!rs.result.isPermission || (rs.result.isPermission && this.Internet==1)){ + // this.getInternet() + this.renderCourse = true + }else{ + // this.Internet=1; + this.renderCourse = false + this.protocolDialogVisible=true + } if(rs.result.contents.length==0){ $this.$message.error('课程内容已删除或课程已不再使用'); return; @@ -1309,11 +1343,11 @@ } //设置必须的字段 if(rs.result.contents.length==1){ - $this.tab=2; - //console.log('内容只有一个'); + $this.tab=2; + //console.log('内容只有一个'); } if(!rs.result.isCrowd){ - $this.$message.error('您没有查看该课程的权限'); + $this.$message.error('您没有查看该课程的权限'); } // 是否播放 this.isCrowd = rs.result.isCrowd @@ -1357,7 +1391,8 @@ } } this.courseInfo = rs.result.course; - + this.warn = rs.result.warn; + this.warnTitle = rs.result.warnTitle; if (rs.result.teachers && rs.result.teachers.length > 0) { let userIds = []; let ctoUsers = []; @@ -1386,12 +1421,53 @@ this.totalContent = rs.result.contents.length; //加载学习的数据 this.loadStudyData(rs.result); - } else { this.$message.error(rs.message); } + }); }, + refreshPage() { + location.reload(true); + this.getInternet(); + this.loadData(); + }, + getXmlHttpRequest() { + if (window.XMLHttpRequest) { + return new XMLHttpRequest(); + } + else if (window.ActiveXObject) { + return new ActiveXObject("Microsoft.XMLHTTP"); + } + }, + // 检测是否为内网 + getInternet() { + this.Internet = 3; + let $this = this; + let xmlhttp = this.getXmlHttpRequest(); + let timedOut = false; + let timer = setTimeout(function () { + timedOut = true; + xmlhttp.abort(); + }, 1000); + xmlhttp.open("HEAD", window.location.protocol + "//uapi.boe.com.cn/500.html", true); + xmlhttp.send(); + xmlhttp.onreadystatechange = function () { + if (xmlhttp.readyState == 4) { + if (xmlhttp.status == 200) { + clearTimeout(timer); + $this.Internet = 1; + } else { + clearTimeout(timer); + // $this.protocolDialogVisible=true + $this.Internet = 2; + } + } else { + if (timedOut) return;//忽略中止请求 + clearTimeout(timer);//取消等待的超时 + } + } + }, loadStudyData(result) { let $this=this; this.loadScorePraiseAndTrample(); @@ -1514,37 +1590,37 @@ progress(val) { const progressValue = parseFloat(val) * 100; this.sendEventProgress = Number(progressValue.toFixed(2)); - }, + }, saveStudyDuration(duration) { //保存本地存储的学习时长 if (duration > 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 +1642,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 +1670,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,26 +1740,30 @@ }, 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 + } }, }, + destroyed(){ + this.cleanAppendTime(); + this.stopStudyTime(); + }, } @@ -1723,18 +1803,41 @@ min-height: 400px; display: flex; justify-content: space-between; + .course-player-container { + display: flex; + flex-direction: column; + height: 100%; + } .course-player{ //内容播放区域 - flex:1; + flex: 4; // 80%高度 min-width: 700px; - min-height: 400px; - max-height: 800px; - //height: 100%; + // min-height: 400px; + // max-height: 800px; + height: 80%; border: 1px solid #ffffff; padding-right: 20px; + background-color: rgb(238, 238, 238); // overflow: auto; } .course-control{ //内容控制区域 - width: 420px; + width: 420px; + } + } + + @media screen and (max-width: 1200px) { + .course-playbox, + .course-infobox { + flex-direction: column; + } + .course-player, + .course-info { + min-width: 100%; + padding-right: 0; + } + .course-control, + .course-teacher { + width: 100%; + margin-top: 20px; } } .course-infobox { @@ -1856,13 +1959,10 @@ } .player-box { - position: absolute; - // top: 62px; - // left: 184px; - width: 300px; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); + position: relative; + width: 100%; + max-width: 300px; + margin: 20px auto; height: 187px; background: rgba(74, 74, 74, .5); border-radius: 33px; @@ -2005,6 +2105,7 @@ } .course-interact { + flex: 1; // 20%高度 height: 54px; // padding-top: 10px; // padding-right: 10px; @@ -2368,4 +2469,18 @@ height: 200px; background: url('../../../public/images/couresdetail.png'); } + +.protocol { + .protocol-title { + font-size: 20px; + font-weight: 600; + text-align: center; + margin-bottom: 25px; + } + + .protocol-content { + font-size: 14px; + line-height: 25px; + } +}