feat: 重构洗车预约系统,新增套餐管理和时间段选择功能

- 新增套餐管理模块,支持套餐的增删改查
- 重构预约表结构,支持时间段选择和套餐关联
- 实现日历视图和时间段网格选择界面
- 更新数据库结构,添加套餐表和相关字段
- 优化移动端体验,增强触摸交互
- 更新文档和样式,匹配新功能
This commit is contained in:
2025-11-19 01:06:35 +08:00
parent 0fadca8ca0
commit 8ffad04df3
5 changed files with 1260 additions and 270 deletions
+52 -101
View File
@@ -1,143 +1,94 @@
# 洗车预约系统
# 🚗 洗车预约系统
一个简单实用的PHP洗车预约管理系统,支持在线预约和预约管理功能
现代化洗车预约管理系统,采用日历时间段选择模式,支持套餐管理和移动端优化
## 功能特性
## 功能特性
### 客户功能
- 📝 在线提交洗车预约
- 📱 填写客户信息(姓名、电话、车型、车牌号)
- 🛁 选择服务类型(普通洗车、精洗、打蜡、内饰清洁)
- 📅 选择预约日期和时间
- 💬 添加备注信息
- ✅ 防重复预约检查
- 📅 **日历选择** - 直观的周历显示和时间段网格
- **快捷预约** - 1-4小时快捷时长选择,支持自定义
- 💼 **套餐管理** - 灵活的套餐配置和价格管理
- 📱 **移动优化** - 完美响应式设计,触摸友好
- 🔧 **管理功能** - 预约状态管理和时间冲突检查
### 管理功能
- 📋 查看所有预约记录
- 🔄 更新预约状态(待确认→已确认→已完成)
- ❌ 取消预约功能
- 📊 预约统计显示
- 🎯 状态颜色标识
## 技术栈
- **后端**: PHP 7.4+
- **数据库**: MySQL 5.7+
## 🛠️ 技术栈
- **后端**: PHP 7.4+ | MySQL 5.7+
- **前端**: HTML5 + CSS3 + JavaScript
- **响应式设计**: 移动端自适应
- **数据库操作**: PDO
- **数据库**: PDO + MySQL
## 移动端优化特性
- 📱 **响应式设计**: 完美适配手机、平板、桌面设备
- 👆 **触摸优化**: 针对移动设备优化的触摸交互
- 🔍 **防缩放**: 防止意外的双击缩放
- ⌨️ **输入优化**: 针对移动端键盘类型的自动适配
- 🎨 **界面适配**: 小屏幕下的布局优化
- 🚫 **触摸反馈**: 按钮点击的视觉反馈效果
- 📋 **表单体验**: 移动端友好的表单交互
## 文件结构
## 📁 文件结构
```
carwash_order/
├── index.php # 预约首页
├── bookings.php # 预约管理页面
├── bookings.php # 预约管理
├── packages.php # 套餐管理
├── config.php # 数据库配置
├── db_connect.php # 数据库连接
├── carwash_db.sql # 数据库结构
── style.css # 样式文件
└── README.md # 说明文档
── style.css # 样式文件
```
## 安装说明
## 🚀 快速开始
### 1. 环境要求
- PHP 7.4 或更高版本
- MySQL 5.7 或更高版本
- Web服务器 (Apache/Nginx)
- PHP 7.4+ | MySQL 5.7+ | Web服务器
### 2. 数据库配置
1. 创建MySQL数据库
2. 导入数据库结构:
```bash
mysql -u root -p < carwash_db.sql
```
### 3. 修改配置文件
编辑 `config.php` 文件,修改数据库连接信息:
```php
$host = 'localhost'; // 数据库主机
$username = 'root'; // 数据库用户名
$password = ''; // 数据库密码
$database = 'carwash_booking'; // 数据库名
```
修改 `config.php` 数据库连接信息。
### 4. 运行系统
1. 将所有文件放在Web服务器根目录
2. 访问 `index.php` 开始使用系统
### 3. 访问系统
访问 `index.php` 开始预约,`packages.php` 管理套餐。
## 使用指南
## 📖 使用指南
### 客户预约流程
1. 访问首页,填写完整的预约信息
2. 选择服务类型和预约时间
3. 提交表单后系统会检查时间冲突
4. 成功提交后会显示确认信息
1. **选择日期** → 日历点击选择
2. **选择时间段** → 8:00-18:00时间段
3. **选择时长** → 快捷按钮或自定义
4. **选择套餐** → 从可用套餐选择
5. **填写信息** → 完善客户信息
6. **提交预约** → 自动检查冲突
### 管理员操作
1. 访问 `bookings.php` 查看所有预约
2. 可以更新预约状态:
- **已确认**: 联系客户确认预约
- **已完成**: 洗车服务已完成
- **已取消**: 取消该预约
- **查看预约** → `bookings.php`
- **管理套餐** → `packages.php`
- **更新状态** → 待确认→已确认→已完成→已取消
## 数据库结构
## 🗄️ 数据库结构
### packages 表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | INT | 主键 |
| name | VARCHAR(100) | 套餐名称 |
| description | TEXT | 套餐描述 |
| base_duration | INT | 基础时长(分钟) |
| base_price | DECIMAL(10,2) | 基础价格 |
| services | TEXT | 服务项目 |
| is_active | BOOLEAN | 是否启用 |
### bookings 表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | INT | 主键,自增 |
| id | INT | 主键 |
| customer_name | VARCHAR(100) | 客户姓名 |
| phone | VARCHAR(20) | 联系电话 |
| car_model | VARCHAR(50) | 车型 |
| car_number | VARCHAR(20) | 车牌号 |
| service_type | ENUM | 服务类型 |
| appointment_date | DATE | 预约日期 |
| appointment_time | TIME | 预约时间 |
| notes | TEXT | 备注信息 |
| package_id | INT | 套餐ID |
| start_time | DATETIME | 开始时间 |
| duration | INT | 时长(分钟) |
| status | ENUM | 预约状态 |
| created_at | TIMESTAMP | 创建时间 |
## 服务类型和价格
- **普通洗车**: ¥30
- **精洗**: ¥80
- **打蜡**: ¥120
- **内饰清洁**: ¥60
## 📋 预约状态
- **待确认** 🔵 | **已确认** 🟢 | **已完成** 🟦 | **已取消** 🔴
## 状态说明
- **待确认**: 新提交的预约,等待管理员确认
- **已确认**: 管理员已确认,可以提供服务
- **已完成**: 服务已完成
- **已取消**: 预约已取消
## 🔧 常见问题
## 扩展功能建议
如需添加更多功能,可以考虑:
- 用户注册登录系统
- 在线支付功能
- 短信/邮件通知
- 预约提醒功能
- 服务评价系统
- 数据统计报表
## 故障排除
### 数据库连接失败
1. 检查 `config.php` 中的数据库配置
2. 确认MySQL服务正在运行
3. 检查数据库用户权限
### 页面显示异常
1. 确认PHP版本兼容
2. 检查Web服务器配置
3. 查看PHP错误日志
**数据库连接失败** → 检查 config.php 配置和MySQL服务
**页面显示异常** → 确认PHP版本和Web服务器配置
**日历功能异常** → 检查JavaScript支持和套餐数据
## 许可证
本项目基于MIT许可证开源。