- Region 表新增热度列,热门省份优先显示 - 区县下拉按地级市分组、已录区县优先、支持全省搜索 - 组选择内置一组至二十组 - 银行卡号独立行+粗体预览,开户行独立行 - 新增农户类型:农户/个体户/合作社/经营集体/公司 - 身份证正反面支持高拍仪/摄像头OCR与手机扫码上传,附件存本地/OSS - 新增农户头像采集组件(摄像头/本地上传),预留人脸识别收购扩展 - 同名村弹窗提醒(防选错乡镇) - 编辑窗体禁止遮罩/Esc误关,整体加宽适配高频操作 - 修复二维码局域网手机无法访问(监听0.0.0.0、局域网IP识别、Vite代理兜底)
89 lines
4.2 KiB
Markdown
89 lines
4.2 KiB
Markdown
# 农易富 · 农产品收购交易平台(BS 版)
|
||
|
||
基于主干信息 F8 农产品收购业务的产品化网页版(Browser/Server)平台,服务于**收购公司、收购站、收购个体**,向**农户**收购农产品,覆盖"农户管理 → 过磅称重 → 电子支付 → 反向开票 → 统计报表 → 可视化大屏"全业务链路。
|
||
|
||
## 技术栈
|
||
|
||
| 端 | 技术 |
|
||
| --- | --- |
|
||
| 后端 | C# / .NET 10(ASP.NET Core Web API、EF Core 10、JWT、BCrypt) |
|
||
| 数据库 | 在线 MySQL 8(Pomelo 官方分支 `Microting.EntityFrameworkCore.MySql`,支持 EF Core 10) |
|
||
| 前端 | Vue 3(最新版)+ Vite + TypeScript + Pinia + Vue Router + Element Plus + ECharts + Axios |
|
||
| 适配 | 电脑 PC 与触摸屏(触摸屏过磅页大按钮 + 数字键盘) |
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
backend/AgriculturalPlatform.Api/ # 后端 API
|
||
├── Models/ # 实体模型(组织/用户/农户/品种/收购单/支付/发票)
|
||
├── Data/ # DbContext 与种子数据
|
||
├── Dtos/ # 接口传输对象
|
||
├── Services/ # JWT、数据权限、单号生成、当前用户
|
||
└── Controllers/ # Auth/Orgs/Users/Farmers/Products/Purchases/Payments/Invoices/Reports/Dashboard
|
||
frontend/ # 前端
|
||
└── src/
|
||
├── api/ # Axios 封装与全部接口
|
||
├── views/ # 登录、工作台、大屏、各业务模块页面
|
||
├── layouts/ # 主布局(侧边菜单)
|
||
└── stores/ # Pinia 状态
|
||
docker-compose.yml # 可选:本地 MySQL 8 开发环境
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 1. 准备数据库(在线 MySQL 或本地)
|
||
|
||
- **在线 MySQL**:将下方连接串改为你的在线数据库地址(首次启动会自动建库建表并写入演示数据)。
|
||
|
||
### 2. 后端
|
||
|
||
```bash
|
||
cd backend/AgriculturalPlatform.Api
|
||
# 修改 appsettings.json 中 ConnectionStrings:Default 为你的 MySQL 连接串
|
||
dotnet restore
|
||
dotnet run
|
||
```
|
||
|
||
后端默认地址:`http://localhost:5246`(OpenAPI 文档:`http://localhost:5246/openapi/v1.json`)。
|
||
|
||
### 3. 前端
|
||
|
||
```bash
|
||
cd frontend
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
前端默认地址:`http://localhost:5173`,已配置 `/api` 代理到后端。
|
||
|
||
### 4. 登录
|
||
|
||
| 账号 | 密码 | 角色 |
|
||
| --- | --- | --- |
|
||
| admin | 123456 | 系统管理员 |
|
||
| company | 123456 | 公司管理员 |
|
||
| station1 / station2 | 123456 | 收购站员工 |
|
||
| individual | 123456 | 收购个体 |
|
||
|
||
## 功能清单
|
||
|
||
- **农户管理**:农户档案(身份证/联系方式/村组/银行账户)、信用评分、冻结/启用、交易统计。
|
||
- **过磅称重**:一次过磅(毛重)→ 二次回皮(皮重)自动计算净重与金额;支持 PC 列表操作与**触摸屏大字键盘**过磅;进行中单据实时展示。
|
||
- **电子支付**:按收购单或批量结算,微信/支付宝/银行转账/现金四种方式,支付确认与退款,农户应收/已付/未付汇总。
|
||
- **反向开票**:收购方向农户开具"农产品收购发票"(自产农产品免税,税率 0%),支持按已结算收购单一键开票、发票作废(红冲)。
|
||
- **统计报表**:收购汇总(按日/月/品种/农户/收购方)、付款统计(方式/状态)、开票统计,支持图表与 CSV 导出。
|
||
- **可视化大屏**:今日/本月 KPI、14 天趋势、品种占比、农户排行、收购方对比、实时过磅,30 秒自动刷新。
|
||
- **组织与用户**:公司 / 收购站 / 收购个体三级组织;四类角色;**数据权限隔离**(公司只看本公司及旗下站点数据)。
|
||
|
||
## 数据库配置说明
|
||
|
||
后端启动时会执行 `EnsureCreated + Seed`:数据库不存在则自动建表,空库自动写入演示数据(组织、账号、品种、农户及近 30 天收购/付款/发票历史)。
|
||
|
||
生产建议改用 EF Core Migration 管理表结构。
|
||
|
||
## 常见问题
|
||
|
||
- **后端启动报数据库连接失败**:检查 `appsettings.json` 的 `ConnectionStrings:Default`,MySQL 需允许远程连接(主机防火墙/云数据库白名单放行)。
|
||
- **前端接口 401**:登录过期,重新登录即可。
|
||
- **想换端口**:后端在 `Properties/launchSettings.json` 修改后,同步修改 `frontend/vite.config.ts` 的代理 target 与后端 `appsettings.json` 的 `FrontendUrl`。
|