|
|
|
@ -19,10 +19,38 @@ |
|
|
|
<view class="desc" v-if="item.seckill.start_left_time.length==0">距离结束还剩余 |
|
|
|
{{item.seckill.end_left_time[0]}}天{{item.seckill.end_left_time[1]}}时{{item.seckill.end_left_time[2]}}分{{item.seckill.end_left_time[3]}}秒 |
|
|
|
</view> --> |
|
|
|
<view class="desc" v-if="item.seckill.start_left_time.length==0">距离结束还剩余 |
|
|
|
{{ item.seckill.ends_at | timeStamp }} |
|
|
|
<view class="desc" v-if="item.ifStart">距离结束还剩余 |
|
|
|
<countdown-timer :time="item.countTime" :autoStart="true" @finish="dateFinish"> |
|
|
|
<template v-slot="{day,hour,minute, second}"> |
|
|
|
<view class="lf-flex"> |
|
|
|
<view class="lf-font-24">{{ day >= 10 ? day : "0" + day }}</view> |
|
|
|
<view class="lf-font-24">天</view> |
|
|
|
<view class="lf-font-24">{{ hour >= 10 ? hour : "0" + hour }}</view> |
|
|
|
<view class="lf-font-24">时</view> |
|
|
|
<view class="lf-font-24">{{ minute >= 10 ? minute : "0" + minute }}</view> |
|
|
|
<view class="lf-font-24">分</view> |
|
|
|
<view class="lf-font-24">{{ second >= 10 ? second : "0" + second }}</view> |
|
|
|
<view class="lf-font-24">秒</view> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
</countdown-timer> |
|
|
|
</view> |
|
|
|
<view class="desc" v-else>距离开始还剩余 |
|
|
|
<countdown-timer :time="item.countTime" :autoStart="true" @finish="dateFinish"> |
|
|
|
<template v-slot="{day,hour,minute, second}"> |
|
|
|
<view class="lf-flex"> |
|
|
|
<view class="lf-font-24">{{ day >= 10 ? day : "0" + day }}</view> |
|
|
|
<view class="lf-font-24">天</view> |
|
|
|
<view class="lf-font-24">{{ hour >= 10 ? hour : "0" + hour }}</view> |
|
|
|
<view class="lf-font-24">时</view> |
|
|
|
<view class="lf-font-24">{{ minute >= 10 ? minute : "0" + minute }}</view> |
|
|
|
<view class="lf-font-24">分</view> |
|
|
|
<view class="lf-font-24">{{ second >= 10 ? second : "0" + second }}</view> |
|
|
|
<view class="lf-font-24">秒</view> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
</countdown-timer> |
|
|
|
</view> |
|
|
|
|
|
|
|
</view> |
|
|
|
<view class="lf-row-between"> |
|
|
|
<view class="price"> |
|
|
|
@ -45,6 +73,7 @@ |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import countdownTimer from '@/components/countdown-timer/countdown-timer'; |
|
|
|
export default { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
@ -64,6 +93,9 @@ |
|
|
|
second: '' |
|
|
|
} |
|
|
|
}, |
|
|
|
components: { |
|
|
|
countdownTimer |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
autoHeight() { |
|
|
|
return `calc(${this.scrollH}px - ${this.nav_height}px - 180rpx)`; |
|
|
|
@ -73,89 +105,6 @@ |
|
|
|
let info = uni.getSystemInfoSync(); |
|
|
|
this.scrollH = info.screenHeight; |
|
|
|
this.getSeckillList(); |
|
|
|
// setInterval(() => { |
|
|
|
// //定时器调用 直接传入时间戳即可 |
|
|
|
// this.timer = this.timeStamp('2021-09-29 21:27:00') |
|
|
|
// }, 1000) |
|
|
|
}, |
|
|
|
filters: { |
|
|
|
timeStamp(times) { |
|
|
|
// setInterval(() => { |
|
|
|
|
|
|
|
// }, 1000) |
|
|
|
//定时器调用 直接传入时间戳即可 |
|
|
|
let timestamp = Date.parse(new Date()); |
|
|
|
timestamp = timestamp/1000; |
|
|
|
|
|
|
|
let timestap1 = Date.parse(new Date(times)); |
|
|
|
|
|
|
|
let letime = (timestap1/1000) - timestamp; |
|
|
|
let time = parseInt(letime); |
|
|
|
if (parseInt(letime) > 60) { |
|
|
|
let second = parseInt(letime) % 60; |
|
|
|
let min = parseInt(letime / 60); |
|
|
|
// 直接返回字符串格式: |
|
|
|
// time = min + "分" + second + "秒"; |
|
|
|
// 返回对象格式: |
|
|
|
time = { |
|
|
|
min: min, |
|
|
|
second: second |
|
|
|
}; |
|
|
|
if (min > 60) { |
|
|
|
min = parseInt(letime / 60) % 60; |
|
|
|
let hour = parseInt(parseInt(letime / 60) / 60); |
|
|
|
// 直接返回字符串格式: |
|
|
|
// time = hour + "时" + min + "分" + second + "秒"; |
|
|
|
// 返回对象格式: |
|
|
|
time = { |
|
|
|
hour: hour, |
|
|
|
min: min, |
|
|
|
second: second |
|
|
|
} |
|
|
|
if (hour >= 24) { |
|
|
|
hour = parseInt(parseInt(letime / 60) / 60) % 24; |
|
|
|
let day = parseInt(parseInt(parseInt(letime / 60) / 60) / 24); |
|
|
|
// 直接返回字符串格式: |
|
|
|
// time = day + "天" + hour + "时" + min + "分" + second + "秒"; |
|
|
|
// 返回对象格式: |
|
|
|
time = { |
|
|
|
day: day, |
|
|
|
hour: hour, |
|
|
|
min: min, |
|
|
|
second: second |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// 判断是否小于10,小于10就补零 |
|
|
|
if (time.day < 10) { |
|
|
|
time.day = '0' + time.day |
|
|
|
} else if (time.day == undefined) { |
|
|
|
time.day = '00' |
|
|
|
} |
|
|
|
if (time.hour < 10) { |
|
|
|
time.hour = '0' + time.hour |
|
|
|
} else if (time.hour == undefined) { |
|
|
|
time.hour = '00' |
|
|
|
} |
|
|
|
if (time.min < 10) { |
|
|
|
time.min = '0' + time.min |
|
|
|
} else if (time.min == undefined) { |
|
|
|
time.min = '00' |
|
|
|
} |
|
|
|
if (time.second < 10) { |
|
|
|
time.second = '0' + time.second |
|
|
|
} |
|
|
|
console.log(time) |
|
|
|
// this.day = time.day |
|
|
|
// this.hour = time.hour |
|
|
|
// this.min = time.min |
|
|
|
// this.second = time.second |
|
|
|
// 输出结果: |
|
|
|
return time.day+'天'+time.hour+'时'+time.min+'分'+time.second+'秒'; |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 页面触底,加载下一页 |
|
|
|
@ -181,6 +130,19 @@ |
|
|
|
type: 'scrollRefresh' |
|
|
|
}); |
|
|
|
}, |
|
|
|
getTime(){ |
|
|
|
var date = new Date(), |
|
|
|
year = date.getFullYear(), |
|
|
|
month = date.getMonth() + 1, |
|
|
|
day = date.getDate(), |
|
|
|
hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(), |
|
|
|
minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(), |
|
|
|
second = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); |
|
|
|
month >= 1 && month <= 9 ? (month = "0" + month) : ""; |
|
|
|
day >= 0 && day <= 9 ? (day = "0" + day) : ""; |
|
|
|
var timer = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second; |
|
|
|
return timer; |
|
|
|
}, |
|
|
|
getSeckillList(options = {}) { |
|
|
|
this.$http.get({ |
|
|
|
api: 'api/seckill/all' |
|
|
|
@ -198,9 +160,50 @@ |
|
|
|
this.isRefresher = false; |
|
|
|
} |
|
|
|
if (this.page == 1) { |
|
|
|
this.list = res.data.data; |
|
|
|
let list = res.data.data; |
|
|
|
list.forEach((item,index) => { |
|
|
|
let now_date = new Date(new Date().toLocaleDateString()).getTime(); |
|
|
|
let start_date = new Date(new Date(item.seckill.starts_at).toLocaleDateString()).getTime(); |
|
|
|
console.log(now_date) |
|
|
|
console.log(start_date) |
|
|
|
console.log(item) |
|
|
|
if(now_date < start_date) { |
|
|
|
this.$set(item,'ifStart',false) |
|
|
|
var date = this.getTime() |
|
|
|
let time = new Date(item.seckill.starts_at).getTime() - new Date(date).getTime() |
|
|
|
this.$set(item,'countTime',time) |
|
|
|
}else { |
|
|
|
this.list.push(...res.data.data); |
|
|
|
this.$set(item,'ifStart',true) |
|
|
|
var date = this.getTime() |
|
|
|
let time = new Date(item.seckill.ends_at).getTime() - new Date(date).getTime() |
|
|
|
this.$set(item,'countTime',time) |
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
this.list = list |
|
|
|
console.log(this.list) |
|
|
|
} else { |
|
|
|
let list = res.data.data; |
|
|
|
list.forEach((item,index) => { |
|
|
|
let now_date = new Date(new Date().toLocaleDateString()).getTime(); |
|
|
|
let start_date = new Date(new Date(item.seckill.starts_at).toLocaleDateString()).getTime(); |
|
|
|
console.log(now_date) |
|
|
|
console.log(start_date) |
|
|
|
console.log(item) |
|
|
|
if(now_date < start_date) { |
|
|
|
this.$set(item,'ifStart',false) |
|
|
|
var date = this.getTime() |
|
|
|
let time = new Date(item.seckill.starts_at).getTime() - new Date(date).getTime() |
|
|
|
this.$set(item,'countTime',time) |
|
|
|
}else { |
|
|
|
this.$set(item,'ifStart',true) |
|
|
|
var date = this.getTime() |
|
|
|
let time = new Date(item.seckill.ends_at).getTime() - new Date(date).getTime() |
|
|
|
this.$set(item,'countTime',time) |
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
this.list.push(...list); |
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
@ -277,7 +280,7 @@ |
|
|
|
} |
|
|
|
|
|
|
|
.desc { |
|
|
|
width: 281rpx; |
|
|
|
// width: 281rpx; |
|
|
|
height: max-content; |
|
|
|
border-radius: 3rpx; |
|
|
|
background-color: #E9F2F2; |
|
|
|
|