From c57e5e89dae2b3c8ed12ec6fa5093200d9d3f4a5 Mon Sep 17 00:00:00 2001 From: daihh Date: Fri, 30 Sep 2022 16:59:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E8=AF=95=E7=9A=84=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=8C=E5=90=8C=E4=B8=80=E6=9C=9F=E4=BF=AE=E6=94=B9=E8=BF=87?= =?UTF-8?q?=E7=9A=84=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/exam/Test.vue | 59 ++++++++++++++++++++++++++++++++--------- 1 file changed, 46 insertions(+), 13 deletions(-) diff --git a/src/views/exam/Test.vue b/src/views/exam/Test.vue index 0f7a2739..ad7bf9eb 100644 --- a/src/views/exam/Test.vue +++ b/src/views/exam/Test.vue @@ -287,7 +287,9 @@ export default { updateAnswerTimeer:null,//定时提交答案 submitButton:false, score:0, - tableData:[] + tableData:[], + postAnswerTime:0 ,//定时发送答卷的记时间 + postAnswerLocalKey:'exam_answer' //本地保存答案的key值 } }, computed:{ @@ -428,6 +430,7 @@ export default { }, //开始考试 startTest(){ + this.postAnswerTime=0; this.curTestAnswer={}; // 先禁用,防止重复提交 if(this.testPaper.entranceTime && this.testPaper.entranceTime !=='') { @@ -584,22 +587,31 @@ export default { let str2=tempAnswer.join(); if(str1==str2){ - console.log('str1='+str1); - console.log('str2='+str2); + //console.log('str1='+str1); + //console.log('str2='+str2); total+=item.defaultScore; } }); } - console.log('实际得分:'+total) + //console.log('实际得分:'+total) return total; }, reStartTest(row){ //继续考试 + this.postAnswerTime=0; this.curTestAnswer=row; apiTestPaper.getAnswerDetail(row.id).then(res=>{ if(res.status === 200) { this.paperQuestion= JSON.parse(res.result.paperJson); //填充答案 let answerJson = JSON.parse(res.result.answerJson); + //检查本地存储 + let localKey=this.postAnswerLocalKey+row.id; + let localAnswer=localStorage.getItem(localKey); + //console.log(localAnswer,'localAnswer') + if(localAnswer){ + answerJson=JSON.parse(localAnswer); + } + //设置已答题内容 this.paperQuestion.forEach((qitem,index) => { let avalue=answerJson[qitem.id]; @@ -610,9 +622,9 @@ export default { qitem.userAnswer=avalue.split(','); }else if(qitem.type==3){ //判断 qitem.userAnswer=avalue; - //console.log(avalue,'avalue'); } } + }); //console.log(this.paperQuestion,'this.paperQuestion') this.arrangeQuestion(); @@ -720,8 +732,9 @@ export default { } let that = this; this.updateAnswerTimeer =window.setInterval(function(){ + that.postAnswerTime+=5000; that.updateAnswer(); - },10000);//测试时可以修改的变小了 + },5000);//每隔5秒保存一次 }, // 停止提交答案 stopUpdateAnswer(){ @@ -770,12 +783,28 @@ export default { //检查 data.second=this.testPaper.testDuration*60-this.remainingTime; data.score=this.countScore(); - apiTestPaper.updateAnswer(data).then((res) => { - if (res.status == 200) { - }else{ - console.log('自动记录答卷失败:'+res.message,res.error); - } - }) + + let $this=this; + let localKey=this.postAnswerLocalKey+this.aloneExamAnswerId; + + //console.log(this.postAnswerTime,"postAnswerTime"); + //1分钟保存到后一次 + if(this.postAnswerTime>=60000){ + //console.log(data.json,'提交') + apiTestPaper.updateAnswer(data).then((res) => { + if (res.status == 200) { + $this.postAnswerTime=0; + localStorage.removeItem(localKey); + }else{ + console.log('自动记录答卷失败:'+res.message,res.error); + } + }) + }else{ + //存储到本地 + //console.log(data.json,'本地存储') + localStorage.setItem(localKey,data.json); + } + }, // 人工提交 manualSubmit(){ @@ -796,6 +825,8 @@ export default { // this.$message.error('请先答题'); // return; // } + + let localKey=this.postAnswerLocalKey+this.aloneExamAnswerId; let strAnswer=this.getAnswer(); //一个题都没有答的情况,不能提交 let objAnswer=JSON.parse(strAnswer); @@ -854,6 +885,8 @@ export default { //转化为百分制显示 this.score = data.score; this.submitButton = false; + //清除本地缓存 + localStorage.removeItem(localKey); } else { this.submitButton = false; this.$message.error(res.message) @@ -967,4 +1000,4 @@ export default { text-align: center; line-height: 65px; } - + \ No newline at end of file