# 畜牧产品产量登记 — 前端技术方案

> 依据：同目录功能需求、技术方案；交互对齐出栏/合作社村级填报；字段 **小驼峰**。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/dataModel/livestockProductOutput/index.vue` |
| **组件名** | `LivestockProductOutput` |
| **菜单配置** | 组件路径：`dataModel/livestockProductOutput/index` |
| **权限前缀** | `dataModel:livestockProductOutput:list\|query\|add\|edit\|remove\|import\|export` |

---

## 2. API 模块

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

| 方法 | HTTP | 说明 |
| --- | --- | --- |
| `listLivestockProductOutput` | GET | `/list` |
| `getLivestockProductOutput` | GET | `/{id}` |
| `addLivestockProductOutput` | POST | `/` |
| `updateLivestockProductOutput` | PUT | `/` |
| `delLivestockProductOutput` | DELETE | `/{ids}` |
| `listLivestockProductOutputYearOptions` | GET | `/yearOptions` |
| `listLivestockProductOutputMonthOptions` | GET | `/monthOptions` |
| `listLivestockProductOutputTownOptions` | GET | `/townOptions` |
| `listLivestockProductOutputVillageTree` | GET | `/villageTree` |
| `importLivestockProductOutput` | POST | `/importData`（`file` + 年月） |
| `downloadLivestockProductOutputTemplate` | GET | `/importTemplate`（`blob`） |
| `exportLivestockProductOutput` | GET | `/export`（年月，可选 `townDeptId`，`blob`） |

---

## 3. 页面结构

1. **筛选**：年、月、乡镇、村（可搜索）；搜索 / 重置 / 新增 / 导入 / 导出。  
2. **列表**：年、月、乡镇、村、肉产量、奶产量、操作。  
3. **新增/编辑**：年、月、村（必填）；肉/奶产量（万吨，≥0）；备注；新增默认本年本月；不选乡镇。  
4. **详情**：全部字段 + 乡镇只读。  
5. **导入**：选年月 → 上传 → upsert 摘要。  
6. **导出**：选年月，可选乡镇；文件含合计行（后端）。

---

## 4. 业务规则

| 规则 | 实现 |
| --- | --- |
| 村选项 | `/villageTree` 拍平为「乡镇 / 村」；`el-select` + `filterable` |
| 提交 | 只传 `villageDeptId` 与产量；乡镇由后端反推 |
| 唯一键 | 年+月+村，重复由后端拦截 |
| 产量 | `meatOutput`、`milkOutput`，单位万吨，精度 4 位，可选非负 |

---

## 5. 国际化

`dataModel.livestockProductOutput`（`lang/zh|bo/dataModel.js`）；`dmNs = 'livestockProductOutput'`。

---

## 6. 联调说明

1. 执行 `sql/biz_livestock_product_output.sql`。  
2. 菜单组件 `dataModel/livestockProductOutput/index`。  
3. 验证：村可搜索、CRUD、导入 upsert、导出含合计行。

---

## 7. 文件清单

| 类型 | 路径 |
| --- | --- |
| 页面 | `ruoyi-ui/src/views/dataModel/livestockProductOutput/index.vue` |
| API | `ruoyi-ui/src/api/dataModel/livestockProductOutput.js` |
| i18n | `lang/zh/dataModel.js`、`lang/bo/dataModel.js` |

---

## 8. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.0 | 初版：村×年月；CRUD + 导入 upsert + 导出可选乡镇 |
