Skip to content

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

豆时U栈 · BeanTimeU

拼豆店单机本地管理系统 — 倒计时看板 + 后台算账,零配置开箱即用。

版本:v1.0.0 技术栈:Python 3.8+ / Flask / SQLite / HTML + CSS + JavaScript 运行平台:Windows(支持打包为单文件 EXE)


功能特性

前台看板(U型布局)

  • 12 张单人桌 U 型排列:左翼 4 张、底部 4 张、右翼 4 张,顶部为采光窗
  • 老板操作台:U 型底部正中央,金色边框深色背景,实时显示今日营业额 + 时钟
  • 开桌倒计时:点击空桌 → 选择「1小时卡(¥30)」或「2小时卡(¥50)」→ 实时倒计时
  • 加钟功能:计时中点击桌子 → 加钟 30 分钟 / +¥15,自动累加订单金额
  • 动态加桌:底部「➕ 增加桌子」按钮,新桌自动追加到布局
  • 超时自动结账:倒计时归零自动释放桌子,订单计入营业额

后台算账系统

  • 今日营业额、当月总营业额、固定支出(房租 ¥3000/月)、额外支出、当月净赚
  • 额外支出记账:名称 + 金额,自动归类到当月
  • 本月支出明细列表
  • ⚡ 极速测试按钮:一键插入一单已完成的 1 小时订单(¥30),即时验证数据变化

数据预置

  • 首次启动自动注入过去 90 天模拟数据:每天 5~15 笔随机订单(含加钟)
  • 随机生成「购买豆子/胶水/模板」等额外支出记录
  • 固定种子保证数据可复现

快速开始

方式一:一键启动(推荐)

双击 一键启动.bat,脚本会自动检查 Python、安装依赖并启动服务,启动后自动打开浏览器。

方式二:命令行启动

# 1. 安装依赖
pip install -r requirements.txt

# 2. 启动
python app.py

# 3. 浏览器访问
# http://127.0.0.1:5001

自定义端口:

python app.py --port 8080

开启调试模式(代码热重载):

python app.py --debug

打包为单文件 EXE

双击 一键打包.bat,脚本自动安装 PyInstaller 并打包。

打包完成后,可执行文件位于:

dist\BeanTimeU.exe
  • 单文件分发,目标机器无需安装 Python
  • 首次运行在 exe 同目录生成 beantimeu.db 数据库
  • 双击即启动,自动打开浏览器

手动打包命令:

pyinstaller --onefile --name BeanTimeU ^
    --add-data "templates;templates" ^
    --add-data "static;static" ^
    --collect-all flask --console app.py

项目结构

BeanTimeU/
├── app.py                  # Flask 后端 + SQLite 初始化 + 模拟数据注入
├── requirements.txt        # Python 依赖
├── 一键启动.bat             # Windows 一键启动脚本
├── 一键打包.bat             # Windows 一键打包 EXE 脚本
├── README.md               # 项目说明文档
├── templates/
│   └── index.html          # 单页前端(前台看板 + 后台算账)
├── static/
│   └── style.css           # 马卡龙色系样式
└── beantimeu.db            # 运行后自动生成(SQLite 数据库)

数据库表结构

表名 说明 关键字段
desks 桌子 id, desk_name, status(idle/running), current_order_id
orders 订单 id, desk_id, start_time, end_time, total_price, status
time_cards 时间卡 1小时卡(60min,¥30)、2小时卡(120min,¥50)
add_ons 加钟记录 order_id, extra_minutes(30), extra_price(15), created_at
expenses 支出 type(固定/额外), description, amount, occurred_date
system_config 系统配置 key, value(每月固定支出 ¥3000)

所有时间字段使用整数时间戳,避免时区问题。


API 接口

方法 路径 说明
GET / 主页面
GET /api/time_cards 获取时间卡列表
GET /api/desks 获取所有桌子(含当前订单)
POST /api/desk/add 增加桌子
POST /api/order/start 开桌(desk_id + card_id)
POST /api/order/add_time 加钟(order_id,+30min/+¥15)
POST /api/order/end 提前结束订单
GET /api/stats 获取营业额/支出/净赚统计
GET /api/expenses 获取本月支出明细
POST /api/expense/add 添加额外支出
POST /api/test/quick 极速测试(插入1小时已完成订单)

定价规则

项目 价格
1小时卡 ¥30
2小时卡 ¥50
加钟(每30分钟) ¥15
每月固定支出(房租) ¥3000

净赚公式:当月净赚 = 当月总营业额 - 固定支出 - 额外支出总和


UI 设计

  • 马卡龙色系:淡粉 #FFF0F3、淡蓝 #E3F2FD、淡黄 #FFF9C4、淡绿 #E8F5E9
  • 桌子状态:绿色 = 空闲,红色 = 计时中(带闪烁指示灯 + 剩余时间)
  • 老板操作台:深棕背景 + 金色边框 + 皇冠标识
  • 卡片式布局:圆角 16px,柔和阴影,悬停上浮效果

版本历史

v1.0.0(2026-08-21)

  • 初始版本发布
  • U型 12 桌倒计时看板
  • 开桌 / 加钟 / 动态加桌 / 超时自动结账
  • 后台算账系统(营业额、支出、净赚)
  • 极速测试按钮
  • 过去 90 天模拟数据自动注入
  • 支持一键启动脚本和一键打包 EXE

常见问题

Q:端口 5001 被占用怎么办? A:用 python app.py --port 其他端口 指定,或修改 app.py 中的 DEFAULT_PORT。

Q:如何重置模拟数据? A:删除 beantimeu.db 文件,重新启动会自动重新注入数据。

Q:打包后的 EXE 运行很慢? A:单文件模式首次启动需要解压资源,属于正常现象;如需更快启动可改用 --onedir 目录模式。

Q:数据存在哪里? A:直接运行时在项目根目录的 beantimeu.db;打包后在 EXE 所在目录。


License

MIT License — 仅供学习和内部使用。

About

一个拼豆店管理系统,Python Flask+SQlite+原生js

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages