From e33ceaa2f24d40dc911f6470bdfa9f12a036f2d5 Mon Sep 17 00:00:00 2001 From: jinna Date: Thu, 16 Feb 2023 09:12:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=80=92=E8=AE=A1=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/myExam.vue | 75 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/src/views/myExam.vue b/src/views/myExam.vue index e9ffa0a..7837dfb 100644 --- a/src/views/myExam.vue +++ b/src/views/myExam.vue @@ -26,7 +26,7 @@
{{ item.project }}
- {{ item.apmStatus == 1 ? '您的体检项目已取消' : item.apmStatus == 3 ? '体检项目已完成' : item.limitTime }}
+ {{ item.apmStatus == 1 ? '您的体检项目已取消' : item.apmStatus == 3 ? '体检项目已完成' : getTime(item.limitTime) }}
{ + return time =>{ + console.log(time) + let interVal = null + if(interVal){ + clearInterval(this.interVal); + }else{ + // this.intervalTime(this.starTime,this.lastTime) + interVal = setInterval(() => { + // time = this.intervalTime(time,this.lastTime) + time = time > 1000 ? time + 1000 : 0; + return time + }, 1000); + } + } + } + }, beforeDestroy() { if (this.setInterval) { clearInterval(this.setInterval); @@ -87,11 +108,17 @@ export default { this.examArr = res.data.records; this.examArr.map(item => { let systemTime = Date.parse(new Date(this.systemTime)); + this.starTime = systemTime + let latime = item.apmDay.substr(0,10) + ' ' + item.timeFrame.split('-')[1] + ':00'; + this.lastTime = Date.parse(new Date(latime)) let time = item.timeFrame.split('-')[1].split(':'); let endTime = Date.parse(new Date(this.doDateFormatter(item.apmDay) + ' ' + (time[0] < 10 ? '0' + time[0] : time[0]) + ':' + (time[1] < 10 ? '0' + time[1] : time[1]) + ':00')); let time2 = item.timeFrame.split('-')[0].split(':'); let startTime = Date.parse(new Date(this.doDateFormatter(item.apmDay) + ' ' + (time2[0] < 10 ? '0' + time2[0] : time2[0]) + ':' + (time2[1] < 10 ? '0' + time2[1] : time2[1]) + ':00')); - item.limitTime = this.calcDateTimeStr(systemTime < endTime ? endTime - systemTime : 0);//距离体检时间剩余毫秒数 + item.time = systemTime < endTime ? endTime - systemTime : 0; + // item.limitTime = this.calcDateTimeStr(systemTime < endTime ? endTime - systemTime : 0);//距离体检时间剩余毫秒数 + item.limitTime = systemTime + // console.log('time ===>',item.limitTime) item.limitCancelTime = systemTime < startTime ? startTime - systemTime : 0;//距离取消预约剩余毫秒数 }) //开启倒计时 @@ -100,8 +127,11 @@ export default { } this.setInterval = setInterval(() => { this.examArr.map(item => { - item.limitTime = this.calcDateTimeStr(item.limitTime); + // item.limitTime = this.calcDateTimeStr(item.limitTime); + this.starTime = this.starTime > 1000 ? this.starTime + 1000 : 0; + item.limitTime = this.intervalTime(this.starTime,this.lastTime) item.limitCancelTime = item.limitCancelTime > 1000 ? item.limitCancelTime - 1000 : 0; + }) }, 1000); }, err => { @@ -111,6 +141,41 @@ export default { this.$toast.clear(); } }, + + // 计算时间差 + //计算两个时间之间的时间差 多少天时分秒 + intervalTime(startTime,endTime) { + // var timestamp=new Date().getTime(); //计算当前时间戳 + var timestamp = (Date.parse(new Date()))/1000;//计算当前时间戳 (毫秒级) + var date1 = ""; //开始时间 + if(timestamp',time) let ret = calcTime(time); + console.log('ret ===>',ret) return time > 0 ? `距离体检还有${ret.days}天${ret.hours}:${ret.minutes}:${(ret.seconds + '').substr(0, 2)}` : '' }, //取消预约