# ordering-system **Repository Path**: wuwenchao368/ordering-system ## Basic Information - **Project Name**: ordering-system - **Description**: 下单管理系统+H5下单 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-25 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 点单系统(三端架构) > 成品点单系统,完整可直接运行 > 包含后台管理(PC端)、H5点单(移动端)、服务端API > 支持二次修改定制,零基础也能搭建 ## 技术栈 | 层级 | 技术 | |------|------| | 服务端 | Node.js + Express.js + better-sqlite3 + JWT + bcryptjs | | 后台管理 | Vue 3 + Vite + Element Plus + Axios + ECharts | | H5 点单 | Vue 3 + Vite + Vant 4 + Axios | | 数据库 | SQLite(无需额外安装数据库服务) | ## 主要功能 ### 后台管理(PC端) - **仪表盘** — 今日订单数、今日营收、菜品总数、在售菜品统计 - **分类管理** — 菜品分类增删改查,自定义排序 - **菜品管理** — 菜品增删改查、按分类筛选、上下架、推荐标记 - **餐桌管理** — 餐桌增删改查、容量/位置管理、状态显示(空闲/占用/预订) - **订单管理** — 订单列表、状态流转(待确认→已确认→已完成/已取消)、订单详情查看 - **支付记录** — 收款录入、支付记录查询、按方式统计 - **公告管理** — 公告发布、编辑、草稿/发布/归档状态切换 - **操作日志** — 所有关键操作全记录 - **个人设置** — 个人信息修改、密码修改 ### H5 点单(移动端) - **选桌** — 可视化餐桌选择(显示空闲/占用状态) - **菜单浏览** — 左侧分类切换、右侧菜品列表、推荐标记 - **购物车** — 底部购物车栏、加减数量、菜品明细弹出、合计显示 - **下单结算** — 一键下单(无需登录)、自动生成订单号 - **订单查询** — 按桌号查看历史订单、订单详情 ## 一键部署 ### 环境要求 - **Node.js >= 18**(只需安装这一个软件) ### 1. 下载项目 ```bash git clone <仓库地址> cd ordering-system ``` ### 2. 一键安装所有依赖 ```bash npm run install:all ``` ### 3. 一键初始化数据库(已包含示例数据) ```bash npm run init-db ``` ### 4. 一键启动系统 ```bash npm run dev ``` 启动后访问: - **后台管理**:http://localhost:5175 - **H5 点单**:http://localhost:5176 - **服务端 API**:http://localhost:3002 ### 单独启动(可选) ```bash # 仅启动后端 npm run dev:server # 仅启动后台管理 npm run dev:admin # 仅启动 H5 点单 npm run dev:h5 ``` ## 默认账号 | 角色 | 用户名 | 密码 | |------|--------|------| | 超级管理员 | `admin` | `admin123` | ## 数据库表(9 张) | 表名 | 说明 | |------|------| | `users` | 管理员账号 | | `categories` | 菜品分类(名称、排序、图标) | | `dishes` | 菜品(名称、价格、图片、所属分类、描述、状态) | | `tables` | 餐桌(桌号、容量、位置、状态) | | `orders` | 订单(桌号、状态、总金额、备注) | | `order_items` | 订单明细(所属订单、菜品、数量、单价) | | `payments` | 支付记录(订单、金额、方式、时间) | | `announcements` | 公告 | | `operation_logs` | 操作日志 | ## API 接口一览 | 模块 | 接口前缀 | 主要接口 | |------|----------|----------| | 认证 | `/api/auth` | 登录、个人信息、密码修改 | | 分类 | `/api/categories` | CRUD | | 菜品 | `/api/dishes` | CRUD + 上下架 + 图片上传 | | 餐桌 | `/api/tables` | CRUD | | 订单 | `/api/orders` | CRUD + 确认/完成/取消 + H5下单 | | 支付 | `/api/payments` | 收款 + 记录查询 + 统计 | | 公告 | `/api/announcements` | CRUD | | 统计 | `/api/stats` | 仪表盘 + H5菜单(公开) | | 日志 | `/api/logs` | 操作日志分页查询 | ## 项目结构 ``` ordering-system/ ├── package.json # 根配置(一键启动脚本) ├── start.bat # Windows 一键启动脚本 ├── server/ # 服务端 │ ├── src/ │ │ ├── app.js # Express 入口 │ │ ├── config/ # 配置(数据库、JWT) │ │ ├── middleware/ # 中间件(JWT 认证、错误处理) │ │ ├── routes/ # 路由(9 个模块) │ │ ├── controllers/ # 控制器 │ │ ├── models/ # 数据模型 │ │ └── utils/ # 工具函数 │ ├── data/ordering.db # SQLite 数据库文件 │ └── init-db.js # 建表 + 示例数据 ├── admin/ # 后台管理(Element Plus) │ ├── src/ │ │ ├── main.js │ │ ├── App.vue │ │ ├── api/ │ │ ├── router/ │ │ ├── stores/ │ │ ├── layouts/ │ │ └── views/ (login, dashboard, categories, dishes, tables, orders, payments, announcements, logs, settings) │ ├── index.html │ └── vite.config.js ├── h5/ # H5 点单(Vant 4) │ ├── src/ │ │ ├── main.js │ │ ├── App.vue │ │ ├── api/ │ │ ├── router/ │ │ ├── stores/ (cart) │ │ └── views/ (Home, Menu, Orders, OrderDetail) │ ├── index.html │ └── vite.config.js └── README.md ``` ## 初始数据 系统初始化自带以下示例数据,开箱即用: | 数据 | 数量 | 说明 | |------|------|------| | 管理员 | 1 | admin / admin123 | | 菜品分类 | 7 | 热销推荐、热菜、凉菜、主食、汤羹、酒水饮品、甜品 | | 菜品 | 25 | 含价格、单位、推荐标记 | | 餐桌 | 10 | T01-T10,大厅/靠窗/包间 | | 订单 | 4 | 含已完成/已确认/待确认状态 | | 公告 | 3 | 已发布的系统公告 | ## 二次开发定制 - **前端页面** `admin/` 和 `h5/` 下每个功能独立文件夹 - **后端 API** 按 routes → controllers → models 三层分离 - **数据库** SQLite,可切换 MySQL/PostgreSQL - **样式** Element Plus / Vant 均可全局主题定制 ## 许可证 MIT