修复套餐默认时间和时间段选择问题

This commit is contained in:
2025-12-06 01:06:11 +08:00
parent 3944051b25
commit d0abed0f86
+17 -7
View File
@@ -655,14 +655,24 @@ try {
slotDuration: 30 // 30分钟一个时段
};
// 预约数据
const bookingsByDate_<?php echo $submission['id']; ?> = <?php echo json_encode($bookings_by_date); ?>;
// 预约数据 - 为每个提交创建独立的预约数据对象
const allBookingsByDate = <?php echo json_encode($bookings_by_date); ?>;
// 页面加载时初始化第一个预约的日期时间
// 页面加载时初始化所有预约的日期时间和套餐信息
document.addEventListener('DOMContentLoaded', function() {
<?php foreach ($pending_submissions as $submission): ?>
// 初始化日期
selectDate(<?php echo $submission['id']; ?>, '<?php echo date('Y-m-d'); ?>');
// 初始化默认套餐信息(如果有默认选择的话)
const packageSelect = document.getElementById('selected_package_<?php echo $submission['id']; ?>');
if (packageSelect.value) {
updatePackageInfo(<?php echo $submission['id']; ?>);
} else if (packageSelect.options.length > 1) {
// 默认选择第一个套餐
packageSelect.selectedIndex = 1;
updatePackageInfo(<?php echo $submission['id']; ?>);
}
<?php endforeach; ?>
});
@@ -693,7 +703,7 @@ try {
timeGrid.innerHTML = '';
// 获取当天已有预约
const dayBookings = bookingsByDate_<?php echo $submission['id']; ?>[date] || [];
const dayBookings = allBookingsByDate[date] || [];
// 生成时间段
for (let hour = workingHours.start; hour < workingHours.end; hour++) {
@@ -702,7 +712,7 @@ try {
const slotTime = new Date(`${date} ${timeString}:00`);
const now = new Date();
const isPast = slotTime <= now;
const isBooked = checkTimeSlotBooked(date, timeString, submissionId);
const isBooked = checkTimeSlotBooked(date, timeString);
const slotDiv = document.createElement('div');
slotDiv.className = `time-slot ${isPast ? 'past' : ''} ${isBooked ? 'booked' : 'available'}`;
@@ -717,8 +727,8 @@ try {
}
// 检查时间段是否已被预约
function checkTimeSlotBooked(date, time, submissionId) {
const bookings = bookingsByDate_<?php echo $submission['id']; ?>[date] || [];
function checkTimeSlotBooked(date, time) {
const bookings = allBookingsByDate[date] || [];
for (let booking of bookings) {
const bookingStart = booking.start_time;