一个基于 Vue 3 + FastAPI 的企业食堂订餐管理系统,提供菜品管理、订单管理、用户管理等功能。
- 前端: Vue 3 + Vue Router + Vuex + Element Plus
- 后端: FastAPI + SQLAlchemy + SQLite
- 认证: JWT + bcrypt
- 部署: Docker + Nginx + Supervisor
- 用户登录/注册
- 查看菜品列表
- 订餐下单
- 查看订单状态
- 个人中心
- 菜品分类管理
- 菜品信息管理
- 订单管理
- 用户管理
- 统计报表
- Docker >= 20.10
- Docker Compose (可选)
# 构建镜像
docker build -t catering-system:latest .
# 运行容器
docker run -d -p 80:80 --name catering-app catering-system:latest
| 角色 |
用户名 |
密码 |
| 系统管理员 |
admin |
admin123 |
| 食堂管理员 |
canteen |
canteen123 |
| 测试员工 |
employee |
employee123 |
repo/
├── frontend/ # 前端代码
│ ├── public/ # 静态资源
│ ├── src/
│ │ ├── api/ # API 接口封装
│ │ ├── router/ # 路由配置
│ │ ├── store/ # 状态管理
│ │ ├── utils/ # 工具函数
│ │ ├── views/ # 页面组件
│ │ ├── App.vue # 根组件
│ │ └── main.js # 入口文件
│ ├── package.json
│ └── vue.config.js
├── backend/ # 后端代码
│ ├── app/
│ │ ├── api/ # API 路由
│ │ ├── core/ # 核心配置
│ │ ├── db/ # 数据库配置
│ │ ├── models/ # 数据模型
│ │ ├── schemas/ # 数据验证
│ │ └── services/ # 业务逻辑
│ ├── main.py # 应用入口
│ └── requirements.txt
└── supervisord.conf # Supervisor 配置
| 方法 |
路径 |
描述 |
| POST |
/api/v1/auth/login |
用户登录 |
| GET |
/api/v1/auth/me |
获取当前用户 |
| 方法 |
路径 |
描述 |
| GET |
/api/v1/dishes |
获取菜品列表 |
| POST |
/api/v1/dishes |
创建菜品 |
| GET |
/api/v1/dishes/{id} |
获取菜品详情 |
| PUT |
/api/v1/dishes/{id} |
更新菜品 |
| DELETE |
/api/v1/dishes/{id} |
删除菜品 |
| 方法 |
路径 |
描述 |
| GET |
/api/v1/orders |
获取订单列表 |
| POST |
/api/v1/orders |
创建订单 |
| GET |
/api/v1/orders/{id} |
获取订单详情 |
| PUT |
/api/v1/orders/{id} |
更新订单状态 |
cd repo/frontend
npm install
npm run serve
cd repo/backend
pip install -r requirements.txt
uvicorn main:app --reload
# 构建并运行
docker build -t catering-system:latest .
docker run -d -p 80:80 --name catering-app catering-system:latest
| 变量名 |
说明 |
默认值 |
| DATABASE_URL |
数据库连接地址 |
sqlite:///./app.db |
| SECRET_KEY |
JWT 密钥 |
随机生成 |
| ACCESS_TOKEN_EXPIRE_MINUTES |
Token 过期时间 |
30 |
MIT License