From 64a2057423ef957ca9ca4d1e7244692d74265173 Mon Sep 17 00:00:00 2001 From: e <2432808546@qq.com> Date: Mon, 29 Nov 2021 15:38:55 +0800 Subject: [PATCH] bug --- src/components/case/index.vue | 89 +++++++++++++++++++++++++--------- src/pages/index/list/index.vue | 7 +++ 2 files changed, 72 insertions(+), 24 deletions(-) diff --git a/src/components/case/index.vue b/src/components/case/index.vue index 816d627..78a6cd2 100644 --- a/src/components/case/index.vue +++ b/src/components/case/index.vue @@ -184,6 +184,7 @@ export default { loading:false, sss:1, popContainer:false, + timestamp:'', } }, watch: { @@ -243,6 +244,13 @@ export default { let projectId = this.getQueryVariable('projectId') let assessmentId = this.getQueryVariable('assessmentId') let classId = this.getQueryVariable('classId') + let stopTime = this.getQueryVariable('stopTime') + let timestamp = +stopTime; + if (timestamp != null){ + sessionStorage.setItem('timestamp', timestamp) + }else{ + sessionStorage.setItem('timestamp', null) + } if (token != null){ sessionStorage.setItem('token', token) sessionStorage.setItem('cid', cid) @@ -379,14 +387,16 @@ export default { getProjectDetail(params).then((data)=>{ if(data.status == 200){ this.globalTimer = ""; - this.countVal = ""; - this.day = "00"; - this.seconds = "00"; - this.minutes = "00"; - this.hour = "00"; + let stopTime = sessionStorage.getItem('timestamp') + let timestamp = +stopTime; + this.countVal = timestamp; + // this.day = "00"; + // this.seconds = "00"; + // this.minutes = "00"; + // this.hour = "00"; this.sss = 1; - this.hintOpen = data.data.projectManage.hintOpen - this.startCountFn(); + this.hintOpen = data.data.projectManage.hintOpen; + this.countDown(timestamp); let projectId = this.getQueryVariable('projectId') if(projectId != null){ //获取当前时间 @@ -511,14 +521,17 @@ export default { }); }); }, - //开始计时 + + //开始计时 startCountFn() { if (!this.isStart) { - this.countVal = this.countVal ? this.countVal : 0; + // this.countVal = this.countVal ? this.countVal : 0; this.globalTimer = setInterval(() => { if(this.sss == 0){ this.globalTimer = null; clearInterval(this.globalTimer); + }else if (this.timestamp){ + this.counterFn(this.countVal--); }else{ this.counterFn(this.countVal++); } @@ -526,22 +539,50 @@ export default { this.isStart = true; } }, + //倒计时 + countDown(timestamp){ + this.timestamp = timestamp + console.log(this.timestamp) + this.sss = 1; + this.globalTimer = null; + clearInterval(this.globalTimer); + this.startCountFn() + }, counterFn(counterTime) { - let leave1 = counterTime % (24 * 3600 * 1); //计算天数后剩余的毫秒数 - let leave2 = leave1 % (3600 * 1); //计算小时数后剩余的毫秒数 - let leave3 = leave2 % (60 * 1); //计算分钟数后剩余的毫秒数 - let day = Math.floor(counterTime / (24 * 3600 * 1)); //计算相差天数 - let hour = Math.floor(leave1 / (3600 * 1)); //计算相差小时 - let minutes = Math.floor(leave2 / (60 * 1)); //计算相差分钟 - let seconds = Math.round(leave3 / 1); //计算相差秒 - day = day >= 10 ? day : "0" + day; - hour = hour >= 10 ? hour : "0" + hour; - minutes = minutes >= 10 ? minutes : "0" + minutes; - seconds = seconds >= 10 ? seconds : "0" + seconds; - this.day = day; - this.hour = hour; - this.minutes = minutes; - this.seconds = seconds; + if (this.timestamp){ + let countDown = (new Date(counterTime).getTime() - new Date().getTime()) / 1000 + if (countDown > 0) { + let d = Math.floor(countDown / (60 * 60 * 24)); + let h = Math.floor(countDown / (60 * 60)); + let m = Math.floor(countDown % (60 * 60) / 60); + let s = Math.floor(countDown % (60 * 60) % 60); + this.day = `${d > 9 ? d : `0${d}`}`; + this.hour = `${h > 9 ? h : `0${h}`}`; + this.minutes = `${m > 9 ? m : `0${m}`}`; + this.seconds = `${s > 9 ? s : `0${s}`}`; + } else { + this.day = '00'; + this.hour = '00'; + this.minutes = '00'; + this.seconds = '00'; + } + }else{ + let leave1 = counterTime % (24 * 3600 * 1); //计算天数后剩余的毫秒数 + let leave2 = leave1 % (3600 * 1); //计算小时数后剩余的毫秒数 + let leave3 = leave2 % (60 * 1); //计算分钟数后剩余的毫秒数 + let day = Math.floor(counterTime / (24 * 3600 * 1)); //计算相差天数 + let hour = Math.floor(leave1 / (3600 * 1)); //计算相差小时 + let minutes = Math.floor(leave2 / (60 * 1)); //计算相差分钟 + let seconds = Math.round(leave3 / 1); //计算相差秒 + day = day >= 10 ? day : "0" + day; + hour = hour >= 10 ? hour : "0" + hour; + minutes = minutes >= 10 ? minutes : "0" + minutes; + seconds = seconds >= 10 ? seconds : "0" + seconds; + this.day = day; + this.hour = hour; + this.minutes = minutes; + this.seconds = seconds; + } }, //重新开始 reload() { diff --git a/src/pages/index/list/index.vue b/src/pages/index/list/index.vue index 587d108..aa00e68 100644 --- a/src/pages/index/list/index.vue +++ b/src/pages/index/list/index.vue @@ -40,11 +40,18 @@ export default { let token = this.getQueryVariable('token') let cid = this.getQueryVariable('cid') let systemId = this.getQueryVariable('systemId') + let stopTime = this.getQueryVariable('stopTime') + let timestamp =+stopTime; if (token != null){ sessionStorage.setItem('token', token) sessionStorage.setItem('cid', cid) sessionStorage.setItem('systemId', systemId) } + if (timestamp != null){ + sessionStorage.setItem('timestamp', timestamp) + }else{ + sessionStorage.setItem('timestamp', null) + } }, methods: { getQueryVariable(name) {