# 牧场管理 — 前端技术方案

> 依据：`牧场管理功能需求.md`、`牧场管理技术方案.md`；布局参考 `breedingStandards/breedingManage/index.vue`（双 `el-card`）；请求/响应字段 **小驼峰**。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/dataModel/pasture/index.vue` |
| **组件名** | `Pasture` |
| **菜单配置** | 若依「菜单管理」组件路径：`dataModel/pasture/index` |
| **权限标识** | `dataModel:pasture:list\|query\|add\|edit\|remove\|export` |

---

## 2. API 模块

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

| 方法 | HTTP | 路径 | 说明 |
| --- | --- | --- | --- |
| `listPasture` | GET | `/list` | 分页；Query：`keyword`、`pastureNature`、`bizStatus` |
| `getPasture` | GET | `/{id}` | 详情 |
| `addPasture` | POST | `/` | 新增 |
| `updatePasture` | PUT | `/` | 修改（含 `id`） |
| `delPasture` | DELETE | `/{ids}` | 逻辑删除，逗号分隔 |

**导出**：`download('dataModel/pasture/export', query, fileName)`。

**照片上传**：`POST /common/upload` → `photoFileUrl`、`photoFilePath`（`fileName`）。

---

## 3. 页面结构

1. **筛选区**：牧场名称关键字、牧场性质、经营状态；搜索、重置、新增、批量删除、导出。  
2. **列表区**：名称、性质、证件号（脱敏）、省市区、地址、负责人、手机（脱敏）、经营状态、创建时间。  
3. **新增/编辑弹窗**（900px，两列）：主体信息、**省/市/县三级级联**（`RegionCascader`）、照片（单张）、备注。  
4. **查看弹窗**：全字段只读；照片 `el-image` 预览。

**行内操作**：查看、编辑、删除（无地图标点）。

---

## 4. 枚举与校验

| 字段 | 编码 | i18n |
| --- | --- | --- |
| 牧场性质 | 1 个体 / 2 企业 | `dataModel.pasture.nature{n}` |
| 经营状态 | 1 正常 / 2 停业 / 3 注销 | `dataModel.pasture.bizStatus{n}` |

| 校验 | 规则 |
| --- | --- |
| 牧场名称 | 1～10 字 |
| 证件号 | 个体：18 位身份证；企业：18 位 `USCC`（`[0-9A-Z]{18}`） |
| 区划 | 须选至县级（6 个 code/name 字段） |
| 手机 | `1[3-9]` 开头的 11 位 |
| 照片 | jpg/jpeg/png，≤10MB，可选 |

切换牧场性质时清空证件号并重新校验。

---

## 5. 组件与依赖

| 项 | 说明 |
| --- | --- |
| **RegionCascader** | `ruoyi-ui/src/components/RegionCascader/index.vue`；数据来自 `element-china-area-data` |
| **chinaRegion** | `ruoyi-ui/src/utils/chinaRegion.js` |
| **i18n** | `dataModel.pasture`（`zh` / `bo`）；Mixin：`dataModelLocaleMixin`，`dmNs = 'pasture'` |

---

## 6. 联调说明

1. 后端已实现 `BizPastureController`（`/dataModel/pasture`）。  
2. 配置菜单与六项按钮权限。  
3. 区划 code 与库表一致（国标 adcode）；历史短码数据可能在级联中无法回显，宜统一为国标码。  
4. 删除为逻辑删除；换图/删除时旧照片清理由后端处理。

---

## 7. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.0 | 初版：CRUD + 区划级联 + 单图上传；双卡片布局 |
