# 草场平衡计算 — 前端技术方案 > 依据:`doc/产业数据模型及体系/草蓄平衡计算/草畜平衡计算功能需求.md`、`草蓄平衡计算技术方案.md`;界面布局对齐原型 `Snipaste_2026-05-19_12-33-53.jpg`;字段 **小驼峰**。 --- ## 1. 页面与路由 | 项 | 说明 | | --- | --- | | **Vue 路径** | `ruoyi-ui/src/views/dataModel/grassLivestockBalance/index.vue` | | **组件名** | `GrassLivestockBalance` | | **菜单配置** | 组件路径:`dataModel/grassLivestockBalance/index`(手工配置,不提供 SQL) | | **权限前缀** | `dataModel:grassLivestockBalance:query` | 草场下拉另需:`dataModel:grassland:list`、`dataModel:grassland:query`。 --- ## 2. API 模块 | 项 | 说明 | | --- | --- | | **文件** | `ruoyi-ui/src/api/dataModel/grassLivestockBalance.js` | | **Base** | `/dataModel/grassLivestockBalance` | | 方法 | HTTP | 说明 | | --- | --- | --- | | `calculateGrassLivestockBalance` | POST | `/calculate`,Body 见技术方案 §3.1.1 | | `getGrassLivestockBalanceDefaults` | GET | `/defaults`,羊单位默认参数 | **草场主数据**:复用 `listGrassland`(`keyword` 模糊)、`getGrassland`(选定后带出面积、产草、利用率)。 --- ## 3. 页面结构 1. **基础参数区**(`el-card`):草场 remote 下拉;面积、亩产草量、利用率(0~1);羊单位年需草量、折算系数、养殖数量;**计算**、**清空**。 2. **计算结果区**(`el-card`):11 项只读指标,按原型三行展示;等级字段按 `balanceLevel` 配色;`warning` 时 `el-alert`。 3. **公式说明区**(`el-collapse`):11 条公式 + 四档等级表(文案 i18n,不参与计算)。 --- ## 4. 业务规则(前端) | 规则 | 实现 | | --- | --- | | 草场联动 | `getGrassland(id)` 填充 `areaMu`、`grassYieldPerMu`、`utilizationRate`;切换草场清空结果 | | 默认羊单位参数 | `created` 调 `GET /defaults` 填充;清空后恢复默认 | | 利用率 | 与草场管理一致,传 **0~1** 小数,非百分比 | | 校验 | 与技术方案 §3.5 / 功能需求 §5.1 一致;失败不展示结果 | | 计算 | 校验通过后 `POST /calculate`,展示 `data` 各字段 | | 超载羊单位 / 饲草缺口 | 负值展示绝对值并附「(余量)」 | | 数值格式 | 金额类 2 位小数;超载率加 `%`;超载头数为整数 | | 清空 | 表单、结果、草场选项一并重置 | --- ## 5. 国际化 | 项 | 说明 | | --- | --- | | **语言包** | `dataModel.grassLivestockBalance`(`lang/zh/dataModel.js`、`lang/bo/dataModel.js`) | | **Mixin** | `dataModelLocaleMixin`,`dmNs = 'grassLivestockBalance'` | | **单位** | 亩、kg/亩、0~1 复用 `dataModel.grassland` | --- ## 6. 联调说明 1. 部署 `GrassLivestockBalanceController` 及草场台账 `biz_grassland`。 2. 菜单权限:`dataModel:grassLivestockBalance:query`。 3. 验证:草场带出、默认值、计算 11 项、等级颜色、边界 `warning`、清空与双语切换。 --- ## 7. 文件清单 | 类型 | 路径 | | --- | --- | | 页面 | `ruoyi-ui/src/views/dataModel/grassLivestockBalance/index.vue` | | API | `ruoyi-ui/src/api/dataModel/grassLivestockBalance.js` | | i18n | `ruoyi-ui/src/lang/zh/dataModel.js`、`lang/bo/dataModel.js`(`grassLivestockBalance` 段) | --- ## 8. 修订记录 | 版本 | 说明 | | --- | --- | | 1.0 | 初版:三卡片布局;POST 计算 + GET 默认值;复用草场接口;公式折叠区 |