# 交易市场管理 — 前端技术方案

> 依据：`交易市场管理功能需求.md`、`交易市场管理技术方案.md`；布局对齐 `livestock/quarantineStation/index.vue`（双 `el-card`）；字段 **小驼峰**。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/livestock/tradeMarket/index.vue` |
| **组件名** | `LivestockTradeMarket` |
| **菜单配置** | 组件路径：`livestock/tradeMarket/index`（「畜牧流通资源管理」目录下，手工配置） |
| **权限前缀** | `livestock:tradeMarket:list\|query\|add\|edit\|remove` |

---

## 2. API 模块

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

| 方法 | HTTP | URI |
| --- | --- | --- |
| `listTradeMarket` | GET | `/list` |
| `getTradeMarket` | GET | `/{id}` |
| `addTradeMarket` | POST | `/` |
| `updateTradeMarket` | PUT | `/` |
| `delTradeMarket` | DELETE | `/{ids}` |

---

## 3. 页面结构

1. **筛选区**：市场名称（模糊 `marketName`）、运营状态（精确 `operateStatus`）；搜索、重置、新增。  
2. **列表区**：市场名称、详细地址、负责人、联系方式（脱敏）、运营状态、操作。  
3. **新增/编辑弹窗**：`marketName` 1～10、`detailAddress` textarea 1～200、负责人、手机号、`operateStatus`（默认 1）、单图上传。  
4. **查看弹窗**：全部字段只读、照片预览、审计信息；可跳转编辑/删除。

---

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

| 规则 | 实现 |
| --- | --- |
| 名称/地址/负责人 | `trim` 后校验长度；提交 payload 为去空白字符串 |
| 手机号 | `PHONE_REG`：`^1[3-9]\d{9}$` |
| 运营状态 | `operateStatus`：`1` 正常 `2` 停业 `3` 注销；新增默认 `1` |
| 照片 | `POST /common/upload`；`jpg/jpeg/png`、≤10MB、单张；`photoFileUrl` / `photoFilePath` |
| 列表筛选 | `queryParams.marketName`、`operateStatus` 原样提交 |
| 名称唯一 / 关联删除 | 由后端返回错误信息 |
| 地图标点 | **不实现** |

---

## 5. 国际化

| 项 | 说明 |
| --- | --- |
| **语言包** | `livestock.tradeMarket`（`lang/zh/livestock.js`、`lang/bo/livestock.js`） |
| **Mixin** | `livestockLocaleMixin`，`lsNs = 'tradeMarket'` |
| **公共文案** | `livestock.common.*`、`livestock.status.dash` |

---

## 6. 与检疫站 / 交易市场平台对照

| 项 | 检疫站 | 交易市场（本模块） | 交易市场平台·栏位 |
| --- | --- | --- | --- |
| 页面路径 | `livestock/quarantineStation/index` | `livestock/tradeMarket/index` | `tradeMarket/marketStall/index` |
| API Base | `/livestock/quarantineStation` | `/livestock/tradeMarket` | `/tradeMarket/marketStall` |
| 名称字段 | `stationName` | `marketName` | `stallCode`（只读） |

---

## 7. 联调说明

1. 部署 `BizTradeMarketController` 及 `biz_trade_market` 表。  
2. 菜单组件路径 `livestock/tradeMarket/index`，权限与后端 `livestock:tradeMarket:*` 一致。  
3. 验证：CRUD、名称模糊与状态精确筛选、照片上传回显、列表电话脱敏、无地图入口。

---

## 8. 文件清单

| 类型 | 路径 |
| --- | --- |
| 页面 | `ruoyi-ui/src/views/livestock/tradeMarket/index.vue` |
| API | `ruoyi-ui/src/api/livestock/tradeMarket.js` |
| i18n | `ruoyi-ui/src/lang/zh/livestock.js`、`lang/bo/livestock.js`（`tradeMarket` 节点） |
| Mixin | `ruoyi-ui/src/mixins/livestockLocaleMixin.js`（复用） |

---

## 9. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.0 | 初版：双卡片 CRUD；对齐检疫站页；`marketName` 小驼峰；路径与 `/tradeMarket/*` 平台模块区分 |
