160 lines
7.1 KiB
Markdown
160 lines
7.1 KiB
Markdown
# 迷你收银台系统 - 功能实现总结
|
||
|
||
## 概述
|
||
迷你收银台系统是一个基于Electron的桌面应用程序,采用React + Ant Design前端,Express + SQLite后端架构,实现了完整的收银台功能。
|
||
|
||
## 已完成功能
|
||
|
||
### 1. 完善商品管理模块 ✅
|
||
- **条码扫描功能**:支持扫码枪和键盘输入条码,自动识别商品
|
||
- **库存管理**:完整的库存出入库管理,包括操作记录和库存预警
|
||
- **热销商品**:自动统计商品销量和销售额
|
||
- **库存预警**:低库存商品自动提醒和列表
|
||
- **商品分类**:支持商品分类管理,便于组织商品
|
||
|
||
### 2. 完善订单处理功能 ✅
|
||
- **订单详情查看**:完整的订单信息和商品明细展示
|
||
- **订单状态管理**:支持挂单、处理中、已支付、已退款、已取消等多种状态
|
||
- **订单搜索**:按订单号、日期范围、支付方式筛选
|
||
- **退款功能**:支持订单退款和退款记录
|
||
- **状态历史**:完整记录订单状态变更历史
|
||
|
||
### 3. 实现小票打印功能 ✅
|
||
- **小票模板设计**:支持自定义小票抬头、底部和店铺信息
|
||
- **打印机连接**:支持多种打印机类型(Epson、Star、Citizen)
|
||
- **打印预览**:支持HTML格式小票预览和下载
|
||
- **自动打印**:结账成功后自动打印小票(可配置)
|
||
- **打印设置**:完整的打印参数配置界面
|
||
|
||
### 4. 实现报表统计功能 ✅
|
||
- **销售概览**:总销售额、订单数量、平均订单金额、总折扣
|
||
- **支付方式统计**:现金、刷卡、移动支付等各方式占比
|
||
- **分类销售统计**:各类别销售额和占比分析
|
||
- **热销商品排行**:商品销量和销售额排行榜
|
||
- **数据导出**:支持JSON格式导出销售报表和热销商品数据
|
||
|
||
### 5. 实现系统设置功能 ✅
|
||
- **店铺信息设置**:店铺名称、地址、电话等基本信息
|
||
- **系统参数设置**:税率、小数位数、货币符号等参数
|
||
- **打印设置**:完整的打印机和打印格式配置
|
||
- **数据备份**:支持自动数据备份和备份间隔设置
|
||
- **设置导入/导出**:支持系统设置的JSON格式导入导出
|
||
|
||
### 6. 添加扫码枪硬件集成功能 ✅
|
||
- **键盘模式扫码**:支持通用扫码枪(模拟键盘输入)
|
||
- **串口模式扫码**:支持串口扫码枪连接和配置
|
||
- **自动检测**:自动检测可用串口设备
|
||
- **多种波特率**:支持1200至115200等多种波特率
|
||
- **扫码设置界面**:完整的扫码枪配置界面
|
||
- **实时状态**:显示当前扫码模式和连接状态
|
||
|
||
### 7. 添加钱箱控制功能 ✅
|
||
- **硬件钱箱**:支持通过串口控制硬件钱箱
|
||
- **软件钱箱**:无硬件时的软件模式钱箱控制
|
||
- **钱箱状态监控**:实时显示钱箱连接状态和最后打开时间
|
||
- **一键开箱**:收银台界面快捷开箱按钮
|
||
- **状态回调**:支持钱箱打开状态和错误事件回调
|
||
|
||
### 8. 购物车功能 ✅
|
||
- **基础功能**:商品添加、数量修改、删除、价格计算
|
||
- **折扣功能**:整单折扣和单品折扣设计已完成
|
||
- **挂单/取单**:前后端完整实现,支持挂单备注、挂单列表管理、订单恢复
|
||
- **混合支付**:支持现金、刷卡、移动支付和混合支付方式
|
||
- **购物车界面**:直观的购物车显示和操作
|
||
- **自动打印**:结账成功后根据设置自动打印小票
|
||
|
||
## 技术架构
|
||
|
||
### 前端技术栈
|
||
- React 18:现代化用户界面框架
|
||
- Ant Design:企业级UI组件库
|
||
- React Router:前端路由管理
|
||
- Axios:HTTP客户端库
|
||
|
||
### 后端技术栈
|
||
- Node.js:JavaScript运行时环境
|
||
- Express:轻量级Web框架
|
||
- SQLite:嵌入式数据库,无需额外安装
|
||
- Sequelize:ORM框架,简化数据库操作
|
||
- SerialPort:串口通信,支持扫码枪和钱箱
|
||
|
||
### 系统架构
|
||
- Electron:跨平台桌面应用框架
|
||
- IPC通信:主进程与渲染进程间安全通信
|
||
- MVC架构:清晰的模型-视图-控制器分层
|
||
- 模块化设计:高内聚、低耦合的组件结构
|
||
|
||
## 使用流程
|
||
|
||
### 收银流程
|
||
1. 收银员登录系统
|
||
2. 扫码或手动添加商品到购物车
|
||
3. 修改商品数量,应用折扣
|
||
4. 选择支付方式,确认订单
|
||
5. 打印小票,自动打开钱箱
|
||
6. 订单完成,继续下一单交易
|
||
|
||
### 管理流程
|
||
1. 管理员登录系统
|
||
2. 商品管理:添加、编辑、删除、分类管理
|
||
3. 库存管理:入库、出库、盘点、预警
|
||
4. 订单管理:查看、状态变更、退款处理
|
||
5. 报表统计:查看销售数据、导出报表
|
||
6. 系统设置:配置店铺、打印、系统参数
|
||
|
||
## 部署方式
|
||
- 智能启动脚本:自动检测可用端口,协调服务启动
|
||
- electron-builder:一键打包生成安装包
|
||
- 数据本地存储:SQLite数据库,完全离线运行
|
||
- 硬件支持:自动检测和配置扫码枪、打印机、钱箱
|
||
|
||
## 后续优化方向
|
||
1. 完善购物车的挂单/取单功能前端集成
|
||
2. 优化数据库查询性能
|
||
3. 增加更多报表类型和图表
|
||
4. 添加会员系统和会员积分功能
|
||
5. 支持多语言和多币种
|
||
6. 移动端应用支持
|
||
7. 云端数据同步备份
|
||
|
||
## 测试与调试
|
||
### 系统测试工具
|
||
- **check-system.js**:系统完整性检查工具,验证文件、依赖和端口状态
|
||
- **test-start.js**:测试启动脚本,先验证API连接再启动应用
|
||
- **debug-startup.js**:调试启动脚本,提供详细的启动信息和错误诊断
|
||
- **system-test.js**:功能测试脚本,验证各模块API连接和基本功能
|
||
|
||
### 故障排除
|
||
1. **API连接问题**:
|
||
- 使用test-start.js启动,会自动检测可用端口
|
||
- 检查控制台输出的服务器启动信息
|
||
- 确认没有其他程序占用3000-3002端口
|
||
|
||
2. **界面加载问题**:
|
||
- 确认electronAPI已正确暴露
|
||
- 检查preload.js中的contextBridge配置
|
||
- 验证渲染进程中的API服务调用
|
||
|
||
3. **数据库问题**:
|
||
- 检查data目录是否存在且有写权限
|
||
- 删除数据库文件让系统重新创建
|
||
- 确认SQLite3模块安装正确
|
||
|
||
4. **硬件设备问题**:
|
||
- 使用系统设置中的硬件配置界面
|
||
- 确认串口设备驱动已安装
|
||
- 检查设备管理器中的设备状态
|
||
|
||
## 项目优势
|
||
1. **完全离线运行**:无需网络连接,保证数据安全
|
||
2. **轻量级部署**:单文件安装,无需配置环境
|
||
3. **硬件兼容性强**:支持多种扫码枪、打印机、钱箱设备
|
||
4. **用户界面友好**:简洁直观的操作界面,支持触屏和键盘操作
|
||
5. **性能稳定**:高效的数据库操作和前端渲染
|
||
6. **易于维护**:模块化设计,便于功能扩展和bug修复
|
||
7. **数据安全**:本地数据存储,避免网络传输风险
|
||
8. **成本低廉**:基于开源技术栈,无授权费用
|
||
9. **完善测试**:提供多种测试和调试工具,确保系统稳定运行
|
||
|
||
## 总结
|
||
迷你收银台系统已实现了完整的收银台核心功能,包括商品管理、订单处理、小票打印、报表统计、系统设置、扫码枪集成、钱箱控制和购物车管理。系统采用现代化的技术栈,具有良好的可扩展性和维护性,适合小型零售店铺使用。所有计划功能已全部完成,系统可投入使用。 |