# 生长与出栏标准管理 — 前端技术方案

> 依据：`doc/生长与出栏标准/生长与出栏标准管理技术方案.md`；页面布局对齐 `ruoyi-ui/src/views/breedingStandards/breedingManage/index.vue`；请求与表单字段统一 **小驼峰**，与后端 `BizGrowthSlaughterStandard` 及 Jackson 序列化一致。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/breedingStandards/growthOutbound/index.vue` |
| **组件名** | `GrowthOutboundStandard` |
| **菜单配置** | 若依「菜单管理」组件路径：`breedingStandards/growthOutbound/index` |
| **权限前缀** | `growthSlaughter:standard:` |

---

## 2. API 模块

| 项 | 说明 |
| --- | --- |
| **文件** | `ruoyi-ui/src/api/breedingStandards/growthSlaughter.js` |
| **Base Path** | `/growthSlaughter/standard` |

封装方法：`listGrowthSlaughterStandard`、`getGrowthSlaughterStandard`、`addGrowthSlaughterStandard`、`updateGrowthSlaughterStandard`、`delGrowthSlaughterStandard`、`syncKbGrowthSlaughterStandard`、`removeKbGrowthSlaughterStandard`、`publishGrowthSlaughterStandard`、`offlineGrowthSlaughterStandard`。

---

## 3. 列表与查询

- **分页**：`pageNum`、`pageSize`（默认 20）。
- **筛选**：`keyword`（标准名称或简介模糊）；`standardType`（精确，可空）。
- **标准类型**：`created` 调用 `listInformationCategoryChildren('001', 4)` 动态加载；`value`=`code`，`label`=`name`。
- **表格列**：标准名称、标准类型、简介、正文附件链接、`publishStatus`、`kbSyncStatus`、发布日期、创建时间、操作列。

---

## 4. 表单与上传

- **新增/编辑**：标准名称（1～20）、标准类型、简介（≤50 字，选填）、正文附件（必填）、封面（选填）。
- **上传**：`POST /common/upload`，Header `Authorization: Bearer <token>`；映射 `url` → `contentFileUrl`、`fileName` → `contentFilePath`、`originalFilename`/文件名 → `contentFileName`。
- **前端校验**：正文扩展名与大小（≤30MB）、封面 jpg/jpeg/png（≤10MB）、文件名不含英文逗号，与疫病诊疗/养殖标准页一致。
- **编辑态**：仅 `publishStatus === 0`（未发布）时可替换正文与封面。

---

## 5. 操作按钮与状态机

与《养殖标准管理技术方案》双维模型一致：**未发布/已发布** × **未同步/已同步**。

| 按钮 | 显示条件 | 权限标识 |
| --- | --- | --- |
| 查看 | 有 query 权限 | `growthSlaughter:standard:query` |
| 同步知识库 | 未发布且未同步 | `growthSlaughter:standard:syncKb` |
| 移出知识库 | 未发布且已同步 | `growthSlaughter:standard:removeKb` |
| 编辑 | 未发布 | `growthSlaughter:standard:edit` |
| 删除 | 未发布且未同步 | `growthSlaughter:standard:remove` |
| 发布 | 未发布且已同步 | `growthSlaughter:standard:publish` |
| 下架 | 已发布 | `growthSlaughter:standard:offline` |

下架完成后业务稳态为 **未发布 + 已同步**，可再次修改并重新发布（与功能需求 **4.8** 一致）。

---

## 6. 与疫病诊疗标准前端的差异

| 项 | 疫病诊疗 | 生长与出栏 |
| --- | --- | --- |
| API 文件 | `epidemicTreatment.js` | `growthSlaughter.js` |
| Base Path | `/epidemicTreatment/standard` | `/growthSlaughter/standard` |
| 标准类型选项 | 资讯类别接口 | `001011` 牦牛生长、`001012` 牦牛出栏（`parentCode=001`，`categoryType=4`） |

页面结构、上传组件与权限粒度与疫病诊疗标准页保持一致，便于维护。

---

## 7. 联调说明

1. 确认后端 `BizGrowthSlaughterStandardController` 已部署，`VUE_APP_BASE_API` 代理正确。
2. 菜单与按钮权限与 `sql/biz_growth_slaughter_standard.sql` 注释中的标识一致。
3. 新增前可先调用 `/common/upload` 验证 Token 与跨域；再提交 `POST /growthSlaughter/standard` 全量合法 Body。

---

## 8. 修订记录

| 日期 | 说明 |
| --- | --- |
| 2026-05-13 | 初稿：页面、API、权限与后端 Controller 对齐 |
