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 = {