# 牦牛疾病预警 — 前端技术方案

> 依据：`牦牛疾病预警功能需求.md`、`牦牛疾病预警技术方案.md`；列表布局参考 `dataModel/grasslandUsage/index.vue`（双 card + 分页）；同步交互参考 `livestockFinance/yakAsset/index.vue`。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/dataModel/yakDiseaseWarning/index.vue` |
| **组件名** | `DataModelYakDiseaseWarning` |
| **菜单配置** | 组件路径：`dataModel/yakDiseaseWarning/index` |
| **权限前缀** | `dataModel:yakDiseaseWarning:list`、`query`、`sync` |

**数据范围**：列表/详情按用户可见牧场过滤（后端 `allowedPastureIds` / 数据权限）；牧场下拉来自 `GET /dataModel/pasture/list`。

---

## 2. API 模块

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

| 方法 | HTTP | 说明 |
| --- | --- | --- |
| `listYakDiseaseWarning` | GET | `/list` |
| `getYakDiseaseWarning` | GET | `/{id}` 详情 |
| `syncYakDiseaseWarning` | POST | `/sync`；`repeatSubmit: false` |

**关联**：`listPasture`（`api/dataModel/pasture.js`）用于牧场筛选下拉。

**列表 Query（小驼峰）**：`startDate`、`endDate`、`pastureId`、`pageNum`、`pageSize`（默认 20）。

**本期无** 新增/修改/删除接口。

---

## 3. 页面结构

1. **筛选区**：预警日期范围、所属牧场；搜索、重置、**同步**（第三方拉取）。  
2. **同步提示**：成功后展示「数据截至：{syncTime}」。  
3. **列表**：预警时间、牦牛编号、所属牧场、预警信息、操作（查看）。  
4. **详情弹窗**：只读展示全部业务字段及扩展字段；有 `yakAssetId` 时可打开「牦牛资产档案」抽屉。

---

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

| 规则 | 实现 |
| --- | --- |
| 只读 | 无增删改；仅列表、详情、同步 |
| 日期筛选 | `startDate`/`endDate`；开始晚于结束提示并阻断查询 |
| 牧场筛选 | `pastureId` 精确匹配；空则不过滤 |
| 排序 | 后端 `alert_time DESC, id DESC` |
| 预警类型 | 详情展示：`1` 体温异常、`2` 运动量异常、`9` 其他 |
| 同步结果 | 提示新增/更新/失败条数；刷新列表 |
| 档案跳转 | 复用 `livestockFinance/yakAsset/detailDrawer` |

---

## 5. 国际化

| 项 | 说明 |
| --- | --- |
| **语言包** | `dataModel.yakDiseaseWarning`（`lang/zh/dataModel.js`、`lang/bo/dataModel.js`） |
| **Mixin** | `dataModelLocaleMixin`，`dmNs = 'yakDiseaseWarning'`；`warningTypeText` |

---

## 6. 文件清单

| 路径 | 说明 |
| --- | --- |
| `src/views/dataModel/yakDiseaseWarning/index.vue` | 主页面 |
| `src/api/dataModel/yakDiseaseWarning.js` | API |
| `src/mixins/dataModelLocaleMixin.js` | 预警类型文案 |
| `src/lang/zh/dataModel.js` | 中文 |
| `src/lang/bo/dataModel.js` | 藏文 |

---

## 7. 联调说明

- 配置菜单组件路径与 `list`/`query`/`sync` 按钮权限。  
- 同步依赖第三方告警接口配置（见后端 `application.yml`）。  
- 查看档案需「牦牛资产档案」模块数据及 `dataModel:yakAsset:query` 权限（抽屉只读）。
