MarketFlow 是一个基于 Avalonia UI 框架开发的跨平台桌面应用程序,旨在模拟超市收银系统的核心流程。该项目涵盖了商品管理、优惠券策略、订单结算(POS)以及销售数据可视化等功能,是一个优秀的 Avalonia 与 MVVM 架构实践案例。
- 跨平台支持:基于 Avalonia 框架,支持 Windows、Linux、macOS。
- 自定义控件:
- ...
ShowInfo:用于展示关键信息,支持多级标题与自定义配色。 Button:扩展按钮控件,增强点击反馈与样式定制。
- ...
-
🛍️ 商品管理 (Products)
- ...支持商品的增、删、改、查。
- 商品分类管理与条形码生成/展示。
- 包含搜索与筛选功能,便于快速查找商品。
-
🎟️ 优惠券管理 (Coupons)
- ...策略丰富:支持整单折扣、单品立减、满减等多种促销方式。
- 生命周期:管理优惠券的有效期。
- 提供完整的优惠券维护界面。
-
💻 收银台 (POS)
- 扫码录入:模拟商品扫码添加到购物车。
- 自动计算:实时计算订单金额,自动应用符合条件的优惠券。
- 结算流程:完成订单支付并保存交易记录。
-
📊 数据看板 (Home)
- ...数据可视化:使用 LiveChartsCore 展示销售统计图表。
- 经营分析:直观呈现销售趋势与业绩数据。
- 开发框架: Avalonia UI
- 架构模式: MVVM (Model-View-ViewModel)
- 核心依赖库:
- ...
CommunityToolkit.Mvvm: 高效实现 MVVM 模式,处理数据绑定与命令。 LiveChartsCore: 强大的数据可视化图表库。nietras.SeparatedValues: 高性能 CSV 文件读写。BarcodeStandard: 条形码生成工具。
- ...
项目采用清晰的分层架构,主要代码结构如下:
| ...目录/模块 | 说明 | 核心文件示例 |
|---|---|---|
| ViewModels | 业务逻辑与状态管理 | ProductsViewModel.cs, CouponsViewModel.cs, PosViewModel.cs, HomeViewModel.cs |
| Views | UI 界面定义 (Axaml) | CouponsView.axaml, PosView.axaml, HomeView.axaml |
| Models | 数据模型定义 | ProductType.cs, CouponType.cs, OrderInfo.cs |
| Components | 自定义 UI 组件 | ShowInfo.axaml, Button.axaml |
| Data Storage | 数据持久化层 | SepHelper.cs (CSV 读写辅助类) |
项目采用轻量级的 CSV 文件 进行本地数据存储,无需安装额外数据库。SepHelper 类负责统一管理以下数据文件:
- ...
Product.csv: 商品基础信息 ProductType.csv: 商品分类定义CouponInfo.csv: 优惠券配置OrderInfo.csv: 订单明细- ...
Orders.csv: 订单汇总记录
- ...克隆项目
git clone https://github.com/fvffv/MarketFlow.git