feat(预约系统): 添加套餐专属预约信息功能并优化复制逻辑
- 在SQL查询中添加package_reminder字段 - 重构复制按钮使用data属性存储预约信息 - 实现套餐专属预约信息的单独保存功能 - 优化复制功能以包含套餐专属提醒信息 - 添加套餐专属预约信息的实时编辑功能
This commit is contained in:
+64
-34
@@ -41,7 +41,7 @@ if (isset($_POST['action']) && isset($_POST['booking_id'])) {
|
||||
// 获取所有预约,支持状态筛选和搜索功能
|
||||
try {
|
||||
// 构建查询,支持筛选和搜索
|
||||
$query = "SELECT b.*, p.package_name FROM bookings b LEFT JOIN packages p ON b.package_id = p.id WHERE 1=1 ";
|
||||
$query = "SELECT b.*, p.package_name, p.package_reminder FROM bookings b LEFT JOIN packages p ON b.package_id = p.id WHERE 1=1 ";
|
||||
$params = [];
|
||||
|
||||
// 状态筛选
|
||||
@@ -272,7 +272,19 @@ try {
|
||||
// 获取车友备注(如果不存在则为空字符串)
|
||||
$notes = $booking['notes'] ?? '';
|
||||
?>
|
||||
<button type="button" class="btn btn-sm btn-copy" onclick="copyMessage(<?php echo $booking['id']; ?>, '<?php echo htmlspecialchars($booking['customer_name']); ?>', '<?php echo htmlspecialchars($booking['phone']); ?>', '<?php echo htmlspecialchars($booking['car_model']); ?>', '<?php echo htmlspecialchars($booking['car_number']); ?>', '<?php echo htmlspecialchars($booking['package_name'] ?? '未选择套餐'); ?>', '<?php echo date('Y-m-d', strtotime($booking['start_time'])); ?>', '<?php echo date('H:i', strtotime($booking['start_time'])); ?> - <?php echo date('H:i', strtotime($booking['end_time'])); ?>', <?php echo $duration; ?>, '<?php echo htmlspecialchars($notes); ?>')">复制预约信息</button>
|
||||
<button type="button" class="btn btn-sm btn-copy"
|
||||
data-id="<?php echo $booking['id']; ?>"
|
||||
data-customer-name="<?php echo htmlspecialchars($booking['customer_name']); ?>"
|
||||
data-phone="<?php echo htmlspecialchars($booking['phone']); ?>"
|
||||
data-car-model="<?php echo htmlspecialchars($booking['car_model']); ?>"
|
||||
data-car-number="<?php echo htmlspecialchars($booking['car_number']); ?>"
|
||||
data-package-name="<?php echo htmlspecialchars($booking['package_name'] ?? '未选择套餐'); ?>"
|
||||
data-date="<?php echo date('Y-m-d', strtotime($booking['start_time'])); ?>"
|
||||
data-time="<?php echo date('H:i', strtotime($booking['start_time'])) . ' - ' . date('H:i', strtotime($booking['end_time'])); ?>"
|
||||
data-duration="<?php echo $duration; ?>"
|
||||
data-notes="<?php echo htmlspecialchars($notes); ?>"
|
||||
data-package-reminder="<?php echo htmlspecialchars($booking['package_reminder'] ?? ''); ?>"
|
||||
onclick="copyMessage(this)">复制预约信息</button>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
@@ -695,44 +707,62 @@ try {
|
||||
}
|
||||
}
|
||||
|
||||
// 复制预约信息到剪贴板
|
||||
function copyMessage(id, customer_name, phone, car_model, car_number, package_name, date, time, duration, notes) {
|
||||
// 构建预约信息字符串
|
||||
const message = `【张老师撸车工作室】预约确认\n
|
||||
客户姓名:${customer_name}
|
||||
联系方式:${phone}
|
||||
车型:${car_model}
|
||||
车牌号:${car_number}
|
||||
预约日期:${date}
|
||||
套餐:${package_name}
|
||||
预约时间:${time}
|
||||
预计服务时长:${duration}分钟
|
||||
车友备注:${notes}
|
||||
\n温馨提示:
|
||||
1. 请提前20分钟到达工作室
|
||||
2. 如需改期或取消,请至少提前2小时联系我们
|
||||
3. 联系电话:186-0345-3500
|
||||
</script>
|
||||
|
||||
<!-- 单独的JavaScript块用于复制功能 -->
|
||||
<!-- 复制预约信息功能 -->
|
||||
<script>
|
||||
function copyMessage(button) {
|
||||
try {
|
||||
// 从按钮的data属性获取预约信息
|
||||
var id = button.dataset.id;
|
||||
var customer_name = button.dataset.customerName;
|
||||
var phone = button.dataset.phone;
|
||||
var car_model = button.dataset.carModel;
|
||||
var car_number = button.dataset.carNumber;
|
||||
var package_name = button.dataset.packageName;
|
||||
var date = button.dataset.date;
|
||||
var time = button.dataset.time;
|
||||
var duration = button.dataset.duration;
|
||||
var notes = button.dataset.notes;
|
||||
var package_reminder = button.dataset.packageReminder;
|
||||
|
||||
\n工作室地点:
|
||||
山西省太原市晋源区义井街道西中环充电站内
|
||||
也可高德/百度/腾讯地图软件内搜索‘张老师撸车’
|
||||
var msg = "【张老师撸车工作室】预约确认\n\n";
|
||||
msg += "客户姓名:" + customer_name + "\n";
|
||||
msg += "联系方式:" + phone + "\n";
|
||||
msg += "车型:" + car_model + "\n";
|
||||
msg += "车牌号:" + car_number + "\n";
|
||||
msg += "预约日期:" + date + "\n";
|
||||
msg += "套餐:" + package_name + "\n";
|
||||
msg += "预约时间:" + time + "\n";
|
||||
msg += "预计服务时长:" + duration + "分钟\n";
|
||||
msg += "车友备注:" + notes + "\n";
|
||||
msg += "" + (package_reminder || "") + "\n\n";
|
||||
|
||||
感谢您选择张老师撸车工作室!
|
||||
祝您用车愉快!
|
||||
|
||||
`;
|
||||
|
||||
// 复制到剪贴板
|
||||
const textArea = document.createElement('textarea');
|
||||
textArea.value = message;
|
||||
document.body.appendChild(textArea);
|
||||
textArea.select();
|
||||
document.execCommand('copy');
|
||||
document.body.removeChild(textArea);
|
||||
var ta = document.createElement('textarea');
|
||||
ta.value = msg;
|
||||
ta.style.position = 'fixed';
|
||||
ta.style.left = '-9999px';
|
||||
document.body.appendChild(ta);
|
||||
ta.select();
|
||||
|
||||
// 显示复制成功提示
|
||||
alert('预约信息已复制到剪贴板!');
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
alert('预约信息已复制到剪贴板!');
|
||||
} catch (err) {
|
||||
alert('复制失败,请手动复制!');
|
||||
}
|
||||
|
||||
document.body.removeChild(ta);
|
||||
} catch (e) {
|
||||
alert('复制过程中发生错误,请稍后重试!');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
// 移动端优化脚本
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
Reference in New Issue
Block a user