7.1 KiB
7.1 KiB
迷你收银台系统 - 功能实现总结
概述
迷你收银台系统是一个基于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架构:清晰的模型-视图-控制器分层
- 模块化设计:高内聚、低耦合的组件结构
使用流程
收银流程
- 收银员登录系统
- 扫码或手动添加商品到购物车
- 修改商品数量,应用折扣
- 选择支付方式,确认订单
- 打印小票,自动打开钱箱
- 订单完成,继续下一单交易
管理流程
- 管理员登录系统
- 商品管理:添加、编辑、删除、分类管理
- 库存管理:入库、出库、盘点、预警
- 订单管理:查看、状态变更、退款处理
- 报表统计:查看销售数据、导出报表
- 系统设置:配置店铺、打印、系统参数
部署方式
- 智能启动脚本:自动检测可用端口,协调服务启动
- electron-builder:一键打包生成安装包
- 数据本地存储:SQLite数据库,完全离线运行
- 硬件支持:自动检测和配置扫码枪、打印机、钱箱
后续优化方向
- 完善购物车的挂单/取单功能前端集成
- 优化数据库查询性能
- 增加更多报表类型和图表
- 添加会员系统和会员积分功能
- 支持多语言和多币种
- 移动端应用支持
- 云端数据同步备份
测试与调试
系统测试工具
- check-system.js:系统完整性检查工具,验证文件、依赖和端口状态
- test-start.js:测试启动脚本,先验证API连接再启动应用
- debug-startup.js:调试启动脚本,提供详细的启动信息和错误诊断
- system-test.js:功能测试脚本,验证各模块API连接和基本功能
故障排除
-
API连接问题:
- 使用test-start.js启动,会自动检测可用端口
- 检查控制台输出的服务器启动信息
- 确认没有其他程序占用3000-3002端口
-
界面加载问题:
- 确认electronAPI已正确暴露
- 检查preload.js中的contextBridge配置
- 验证渲染进程中的API服务调用
-
数据库问题:
- 检查data目录是否存在且有写权限
- 删除数据库文件让系统重新创建
- 确认SQLite3模块安装正确
-
硬件设备问题:
- 使用系统设置中的硬件配置界面
- 确认串口设备驱动已安装
- 检查设备管理器中的设备状态
项目优势
- 完全离线运行:无需网络连接,保证数据安全
- 轻量级部署:单文件安装,无需配置环境
- 硬件兼容性强:支持多种扫码枪、打印机、钱箱设备
- 用户界面友好:简洁直观的操作界面,支持触屏和键盘操作
- 性能稳定:高效的数据库操作和前端渲染
- 易于维护:模块化设计,便于功能扩展和bug修复
- 数据安全:本地数据存储,避免网络传输风险
- 成本低廉:基于开源技术栈,无授权费用
- 完善测试:提供多种测试和调试工具,确保系统稳定运行
总结
迷你收银台系统已实现了完整的收银台核心功能,包括商品管理、订单处理、小票打印、报表统计、系统设置、扫码枪集成、钱箱控制和购物车管理。系统采用现代化的技术栈,具有良好的可扩展性和维护性,适合小型零售店铺使用。所有计划功能已全部完成,系统可投入使用。