From e28627cd3c8c1c83978537da1986faa4ca9a098b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=BA=8E=E8=82=96=E7=A3=8A?= <18851179580@163.com>
Date: Wed, 4 Sep 2024 18:57:56 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=B6=E9=97=B4=E6=9B=B4?=
=?UTF-8?q?=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/model-seckill/index.vue | 48 +++++++++++++++++++-------
1 file changed, 36 insertions(+), 12 deletions(-)
diff --git a/src/components/model-seckill/index.vue b/src/components/model-seckill/index.vue
index ac022ba9..d6d7235a 100644
--- a/src/components/model-seckill/index.vue
+++ b/src/components/model-seckill/index.vue
@@ -8,8 +8,8 @@
{{ form.topic_text }}
|
-
-
距离结束
+
+
{{ seckill_time.time_first_text }}
@@ -25,7 +25,7 @@
- 活动已结束
+ 已结束
@@ -273,18 +273,33 @@ const default_list = {
};
const list = ref([]);
const time_config = reactive([
- { key: 'hour', value: '12' },
- { key: 'minute', value: '30' },
- { key: 'second', value: '52' },
+ { key: 'hour', value: '00' },
+ { key: 'minute', value: '00' },
+ { key: 'second', value: '00' },
]);
-const endTime = ref('2024-09-07 12:30:52');
const intervalId = ref(undefined);
+const seckill_time = ref({
+ endTime: '2024-09-04 18:51:00',
+ startTime: '2024-09-04 18:51:00',
+ status: 0,
+ time_first_text: '距结束'
+});
const updateCountdown = () => {
const now = new Date();
- const distance = new Date(endTime.value).getTime() - now.getTime();
+ let endTime = seckill_time.value.endTime;
+ if (seckill_time.value.status === 0) {
+ endTime = seckill_time.value.startTime;
+ }
+ const distance = new Date(endTime).getTime() - now.getTime();
// 如果倒计时结束,显示结束信息
if (distance < 0) {
clearInterval(intervalId.value);
+ // 如果是待开始状态,则显示开始倒计时,并且在结束的时候根据结束时候再执行一个定时器
+ if (seckill_time.value.status === 0) {
+ seckill_time.value.status = 1;
+ seckill_time.value.time_first_text = '距结束';
+ intervalId.value = setInterval(updateCountdown, 1000);
+ }
return;
}
// 计算时间
@@ -302,12 +317,22 @@ const updateCountdown = () => {
});
}
// 更新倒计时函数
-onMounted(() => {
+onBeforeMount(() => {
SeckillAPI.getSeckillList({}).then((res: any) => {
const data = res.data;
if (!isEmpty(data.current)) {
- list.value = data.current.goods;
- endTime.value = data.current.time_end;
+ if (!isEmpty(data.current.goods)) {
+ list.value = data.current.goods;
+ } else {
+ list.value = Array(4).fill(default_list);
+ }
+ const { status, time_first_text } = data.current.time;
+ seckill_time.value = {
+ endTime: data.current.time_end,
+ startTime: data.current.time_start,
+ status: status,
+ time_first_text: time_first_text
+ }
intervalId.value = setInterval(updateCountdown, 1000);
} else {
list.value = Array(4).fill(default_list);
@@ -392,7 +417,6 @@ const autoplay = ref(false);
const slides_per_group = ref(1);
// 内容参数的集合
watchEffect(() => {
-
// 是否滚动
if (new_style.value.is_roll) {
autoplay.value = {