# 供应商管理 — 前端技术方案

> 依据：`供应商管理功能需求.md`、`供应商管理技术方案.md`；布局对齐 `dataHub/dataSendRecord/index.vue`（双 `el-card`）；字段 **小驼峰**。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/tradeMarket/supplier/index.vue` |
| **组件名** | `TradeMarketSupplier` |
| **菜单配置** | 组件路径：`tradeMarket/supplier/index`（「交易市场平台」目录下，手工配置） |
| **权限前缀** | `tradeMarket:supplier:list\|query\|add\|edit\|remove` |

---

## 2. API 模块

| 项 | 说明 |
| --- | --- |
| **文件** | `ruoyi-ui/src/api/tradeMarket/supplier.js` |
| **Base** | `/tradeMarket/supplier` |

| 方法 | HTTP | 说明 |
| --- | --- | --- |
| `listSupplier` | GET | `/list` |
| `getSupplier` | GET | `/{id}` |
| `addSupplier` | POST | `/` |
| `updateSupplier` | PUT | `/` |
| `delSupplier` | DELETE | `/{ids}` |

---

## 3. 页面结构

1. **筛选区**：供应商编号、供应商名称（均**精确**匹配）；搜索、重置、新增。  
2. **列表区**：编号、名称、类型、身份识别号、联系方式、经营地点、车辆号码、收费方式、操作（查看/编辑/删除）。  
3. **新增/编辑弹窗**：编号只读（新增为「保存后自动生成」）；类型切换身份字段标签；收费方式联动显示收费标准或两档费率；车辆号牌动态行（最多 10 条，`+` 增行）。  
4. **查看弹窗**：只读全字段；按收费方式展示费率/标准；底部编辑、删除。

---

## 4. 业务规则（前端）

| 规则 | 实现 |
| --- | --- |
| 供应商编号 | 新增不传；编辑只读展示 `supplierCode` |
| 供应商类型 | `1` 个体户 → 身份证校验；`2` 企业 → 18 位 USCC |
| 收费联动 | `feeMethod=1` 隐藏费率；`=2` 显示 `feeStandard`；`=3` 显示两费率 0～100% |
| 提交清洗 | `buildPayload` 按收费方式置不适用字段为 `null` |
| 车辆号牌 | `vehiclePlateList` 编辑；提交为 `vehiclePlates` 数组；车牌正则校验 |
| 名称/手机 | 名称 1～20 trim；`PHONE_REG` |
| 列表展示 | 优先 `supplierTypeName`/`feeMethodName`；车牌 `、` 拼接 |
| 删除 | 确认框展示编号、名称 |

**枚举常量（页面内）**

| 常量 | 值 |
| --- | --- |
| 个体户 | `supplierType = 1` |
| 企业 | `supplierType = 2` |
| 按户计费 | `feeMethod = 1` |
| 按头计费 | `feeMethod = 2` |
| 按额计费 | `feeMethod = 3` |

---

## 5. 国际化

| 项 | 说明 |
| --- | --- |
| **语言包** | `tradeMarket.supplier`（`lang/zh/tradeMarket.js`、`lang/bo/tradeMarket.js`） |
| **Mixin** | `tradeMarketLocaleMixin`，`tmNs = 'supplier'`，方法 `tmT` / `tmCommon` |
| **注册** | `lang/zh-CN.js`、`lang/bo.js` 引入 `tradeMarket` |

---

## 6. 联调说明

1. 部署 `BizSupplierController` 及 `biz_supplier` 表（见后端技术方案）。  
2. 菜单组件 `tradeMarket/supplier/index`，权限与后端 §4 一致。  
3. 验证：编号/名称精确筛选、三种收费方式新增、类型切换证件校验、车辆多条、修改编号不变、逻辑删除、双语切换。

---

## 7. 文件清单

| 类型 | 路径 |
| --- | --- |
| 页面 | `ruoyi-ui/src/views/tradeMarket/supplier/index.vue` |
| API | `ruoyi-ui/src/api/tradeMarket/supplier.js` |
| Mixin | `ruoyi-ui/src/mixins/tradeMarketLocaleMixin.js` |
| i18n | `ruoyi-ui/src/lang/zh/tradeMarket.js`、`lang/bo/tradeMarket.js` |

---

## 8. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.0 | 初版：双卡片 CRUD；收费三档联动；车辆动态行；汉藏 i18n |
