47 lines
1.6 KiB
JavaScript
47 lines
1.6 KiB
JavaScript
import dayjs from 'dayjs';
|
|
import isBetween from 'dayjs/plugin/isBetween'
|
|
dayjs.extend(isBetween)
|
|
// 判断商品是否在可售时间内
|
|
export const isProductAvailable = (sellDaysStr, startTimeStr, endTimeStr) => {
|
|
// 将后端返回的字符串转换为数组
|
|
const sellDays = sellDaysStr.split(',');
|
|
const now = dayjs();
|
|
const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
|
|
const currentDay = days[now.day()];
|
|
|
|
// console.log('当前日期:', currentDay);
|
|
// console.log('可售日期列表:', sellDays);
|
|
|
|
// 检查当前周几是否在可售周几列表中
|
|
if (!sellDays.includes(currentDay)) {
|
|
// console.log('当前日期不在可售日期列表中');
|
|
return false;
|
|
}
|
|
|
|
const startTime = dayjs(`${now.format('YYYY-MM-DD')} ${startTimeStr}`);
|
|
let endTime = dayjs(`${now.format('YYYY-MM-DD')} ${endTimeStr}`);
|
|
|
|
// 处理跨天情况
|
|
if (endTime.isBefore(startTime)) {
|
|
endTime = endTime.add(1, 'day');
|
|
}
|
|
|
|
// console.log('当前时间:', now.format('YYYY-MM-DD HH:mm:ss'));
|
|
// console.log('开始时间:', startTime.format('YYYY-MM-DD HH:mm:ss'));
|
|
// console.log('结束时间:', endTime.format('YYYY-MM-DD HH:mm:ss'));
|
|
|
|
const isInRange = now.isBetween(startTime, endTime, null, '[)');
|
|
// console.log('当前时间是否在可售时间范围内:', isInRange);
|
|
|
|
return isInRange;
|
|
}
|
|
|
|
//点单页面商品数据补充格式化,增加购物车选中数量,增加是否在可售时段内
|
|
export function goodsInitParamsFull(product) {
|
|
return {
|
|
...product,
|
|
cartNumber: 0,
|
|
isSaleTimeshow: isProductAvailable(product.days, product
|
|
.startTime, product.endTime)
|
|
}
|
|
} |