# 草场使用记录 — 前端技术方案

> 依据：`草场使用记录功能需求.md`、`草场使用记录技术方案.md`；布局对齐 `breedingStandards/breedingManage/index.vue`（双 `el-card`）；字段 **小驼峰**。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/dataModel/grasslandUsage/index.vue` |
| **组件名** | `GrasslandUsage` |
| **菜单配置** | 组件路径：`dataModel/grasslandUsage/index`（手工配置，不提供 SQL） |
| **权限前缀** | `dataModel:grasslandUsage:list\|query\|add\|edit\|remove\|export` |

---

## 2. API 模块

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

| 方法 | HTTP | 说明 |
| --- | --- | --- |
| `listGrasslandUsage` | GET | `/list` |
| `getGrasslandUsage` | GET | `/{id}` |
| `addGrasslandUsage` | POST | `/` |
| `updateGrasslandUsage` | PUT | `/` |
| `delGrasslandUsage` | DELETE | `/{ids}` |

**主数据下拉**：复用 `listGrassland`、`listPasture`（`keyword` 模糊，`pageSize=50`）。

---

## 3. 页面结构

1. **筛选区**：草场名称关键字；**预约日期**（创建日期 `daterange` → `startDate`/`endDate`）；搜索、重置、新增、批量删除、导出。  
2. **列表区**：草场名称、使用面积（亩）、养殖主体、使用起止日、实际使用天数、放牧数量（头）、放牧方式、创建时间、操作列。  
3. **新增/编辑**：草场/主体 **remote + filterable** 下拉；使用面积（亩，≤ 草场总面积提示）；使用时段 **daterange**；实际使用天数只读自动计算；放牧数量、放牧方式。  
4. **查看弹窗**：只读 + 审计字段。

---

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

| 规则 | 实现 |
| --- | --- |
| 实际使用天数 | `结束 − 开始 + 1`（含起止日）；`useDateRange` 变更时刷新；提交不传 `actualUseDays`（后端重算） |
| 使用面积 | `> 0` 且 ≤ 所选草场 `areaMu` |
| 放牧数量 | 整数 ≥ 1 |
| 放牧方式 | 1 轮牧 / 2 自由放牧 / 3 季节性放牧 |
| 创建日期筛选 | `createDateRange` 映射 `startDate`、`endDate`；起 > 止时提示 |

---

## 5. 国际化

| 项 | 说明 |
| --- | --- |
| **语言包** | `dataModel.grasslandUsage`（`lang/zh/dataModel.js`、`lang/bo/dataModel.js`） |
| **Mixin** | `dataModelLocaleMixin`，`data.dmNs = 'grasslandUsage'` |
| **单位** | 亩、天复用 `dataModel.grassland.unitMu` / `unitDay` |

---

## 6. 联调说明

1. 部署 `BizGrasslandUsageRecordController` 及 `biz_grassland_usage_record` 表。  
2. 菜单与按钮权限与技术方案 §4 一致。  
3. 验证：主数据远程搜索、面积上限、使用天数与后端一致、逻辑删除后列表不可见。

---

## 7. 文件清单

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

---

## 8. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.0 | 初版：双卡片 CRUD；主数据远程下拉；使用时段 daterange |
