# 半夏-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掌柜
star fork
[comment]: <> ([宽屏预览](https://gitee.com/jiang_zhenhua/sp-bbq/blob/master/README.md))
宽 屏 预 览 文 档
如果对您有帮助,您可以点右上角 "Star" ❤️ 支持一下 谢谢!
### 📖 简介: BBQ掌柜 是一款基于 Flutter 开发的移动端应用,帮助烧烤摊主轻松管理菜品、快速下单、跟踪出餐进度,并自动记录历史账单。所有数据本地存储,无需联网即可使用。 --- ## ✨ 功能特性 ### 🍖 菜品管理 - 添加菜品:支持上传菜品图片、设置名称和价格 - 库存管理:实时调整菜品库存,无库存自动禁止下单 - 字母索引:菜品按拼音首字母分组,像通讯录一样快速查找 - 吸顶分组:滚动时字母标题自动吸顶,右侧字母索引导航 ### 📝 点餐下单 - 一键加单:点击菜品直接 +1,操作零延迟 - 桌号管理:为每单绑定桌号,方便送餐 - Tab 切换:下单 / 出餐双模式切换,减少底部空间占用 - 批量操作:支持 +5 / -5 批量调整数量 ### 🍽️ 出餐管理 - 实时追踪:每道菜显示"已出 / 已点"数量 - 智能排序:进行中的订单按"待出餐数量 + 下单时间"自动排序 - 待出提醒:已点未出餐的菜品醒目标识 ### 💰 订单结算 - 结算归档:已完结订单自动移入历史记录 - 作废处理:支持订单作废,记录作废时间 - 账单详情:查看每单的菜品明细、下单时间、结算/作废时间 ### 📊 历史记录 - 双 Tab 视图:已结算 / 已作废分开查看 - 日期筛选:支持按日期范围筛选历史订单 - 金额统计:自动计算订单总金额 --- ## 📸 界面预览 ### 菜品管理 | 空状态 | 新增菜品 | 字母分组列表 | |:---:|:---:|:---:| | | | | ### 点餐下单 | 订单列表(空) | 选择菜品下单 | 进行中的订单 | |:---:|:---:|:---:| | | | | ### 历史记录 | 订单详情(已结算) | |:---:| | | --- ## 🛠️ 技术栈 | 技术 | 说明 | |------|------| | [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 协议开源。 --- > 烤串虽香,记账莫忘。祝各位摊主生意兴隆!🔥