# 半夏-BBQ掌柜 **Repository Path**: jiang_zhenhua/sp-bbq ## Basic Information - **Project Name**: 半夏-BBQ掌柜 - **Description**: BBQ掌柜 是一款基于 Flutter 开发的移动端应用,帮助烧烤摊主轻松管理菜品、快速下单、跟踪出餐进度,并自动记录历史账单。所有数据本地存储,无需联网即可使用。 - **Primary Language**: Dart - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-05 - **Last Updated**: 2026-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BBQ掌柜
|
|
|
### 点餐下单
| 订单列表(空) | 选择菜品下单 | 进行中的订单 |
|:---:|:---:|:---:|
|
|
|
|
### 历史记录
| 订单详情(已结算) |
|:---:|
|
|
---
## 🛠️ 技术栈
| 技术 | 说明 |
|------|------|
| [Flutter](https://flutter.dev) | 跨平台 UI 框架 |
| [ObjectBox](https://objectbox.io) | 高性能本地数据库 |
| [go_router](https://pub.dev/packages/go_router) | 声明式路由管理 |
| [flutter_screenutil](https://pub.dev/packages/flutter_screenutil) | 屏幕适配 |
| [lpinyin](https://pub.dev/packages/lpinyin) | 中文转拼音(用于字母分组排序) |
| [image_picker](https://pub.dev/packages/image_picker) | 图片选择 |
---
## 📁 项目结构
```
lib/
├── components/ # 公共组件
├── enums/ # 枚举定义
│ └── OrderStatusEnum.dart
├── modles/ # 数据模型(Entity)
│ ├── dish.dart # 菜品
│ ├── order.dart # 订单
│ └── orderDish.dart # 订单-菜品关联
├── pages/ # 页面
│ ├── dish/index.dart # 菜品管理
│ ├── order/index.dart # 订单列表(点餐)
│ ├── order/detail.dart # 订单详情/创建
│ └── history/index.dart # 历史记录
├── utils/ # 工具类
│ └── objectbox.dart # ObjectBox 初始化
├── main.dart # 应用入口
└── objectbox.g.dart # ObjectBox 生成的代码
```
---
## 🚀 快速开始
### 环境要求
- Flutter SDK `^3.8.1`
- Dart SDK `^3.8.1`
- Android Studio / Xcode(用于构建)
### 安装运行
```bash
# 1. 克隆项目
git clone https://gitee.com/jiang_zhenhua/sp-bbq.git
cd sp-bbq
# 2. 安装依赖
flutter pub get
# 3. 生成 ObjectBox 代码(首次运行或修改模型后)
dart run build_runner build --delete-conflicting-outputs
# 4. 运行应用
flutter run
```
### 构建发布包
```bash
# Android APK
flutter build apk --release
# Android AppBundle
flutter build appbundle --release
# iOS
flutter build ios --release
```
---
## 📱 使用指南
### 首次使用
1. 进入【菜品】页,点击右上角 `+` 添加你的烧烤菜品
2. 上传菜品图片、填写名称和价格
3. 回到【点餐】页即可开始下单
### 日常操作流程
1. **点餐**:点击菜品卡片 `+1` → 输入桌号 → 确认下单
2. **出餐**:选中菜品 → 切换"出餐"Tab → 点击 `+1` 标记已出
3. **结算**:在点餐列表点击订单的【结算】按钮
4. **查看历史**:切换到【记录】页,按日期筛选账单
---
## 🗄️ 数据模型
### OrderEntity(订单)
| 字段 | 类型 | 说明 |
|------|------|------|
| orderSn | String | 订单号(SN + 时间戳) |
| tableNo | String | 桌号 |
| price | double | 总金额 |
| status | int | 状态:0=进行中, 1=已完结, 2=作废 |
| finishTime | int | 结算时间戳 |
| voidTime | int | 作废时间戳 |
| createTime | int | 创建时间戳 |
### DishEntity(菜品)
| 字段 | 类型 | 说明 |
|------|------|------|
| cover | String | 图片路径 |
| name | String | 菜品名称 |
| price | double | 单价 |
| stock | int | 库存(-1 表示无限) |
---
## 🤝 参与贡献
欢迎提交 Issue 和 PR!
1. Fork 本仓库
2. 创建你的特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
---
## 📄 开源协议
本项目基于 MIT 协议开源。
---
> 烤串虽香,记账莫忘。祝各位摊主生意兴隆!🔥