# 疫病诊疗标准管理 — 前端技术方案

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

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/breedingStandards/diseaseTreatment/epidemicTreatment/index.vue` |
| **组件名** | `EpidemicTreatmentStandard` |
| **菜单配置** | 若依后台「菜单管理」中配置组件路径为 `breedingStandards/diseaseTreatment/epidemicTreatment/index`（与项目其它养殖标准页一致，无 `views/`、`src/` 前缀） |
| **权限前缀** | `epidemicTreatment:standard:` |

---

## 2. API 模块

| 项 | 说明 |
| --- | --- |
| **文件** | `ruoyi-ui/src/api/breedingStandards/epidemicTreatment.js` |
| **Base Path** | `/epidemicTreatment/standard`（经 `VUE_APP_BASE_API` 代理到后端） |

封装方法：`listEpidemicTreatmentStandard`、`getEpidemicTreatmentStandard`、`addEpidemicTreatmentStandard`、`updateEpidemicTreatmentStandard`、`delEpidemicTreatmentStandard`、`syncKbEpidemicTreatmentStandard`、`removeKbEpidemicTreatmentStandard`、`publishEpidemicTreatmentStandard`、`offlineEpidemicTreatmentStandard`。

---

## 3. 列表与查询

- **分页参数**：`pageNum`、`pageSize`（默认 20，与后端默认一致）。
- **筛选**：`keyword`（名称/简介模糊）；`standardType`（精确，可清空）；选项在 `created` 中调用 `listInformationCategoryChildren('001', 5)` 动态加载。
- **表格列**：标准名称、标准类型、简介、正文附件链接、`publishStatus` / `kbSyncStatus` 文案、发布日期、创建时间、操作列。
- **数据字段**：列表行与详情均为小驼峰，如 `contentFileUrl`、`contentFileName`、`publishStatus`、`kbSyncStatus`、`publishTime`、`offlineTime`。

---

## 4. 表单与上传

- **新增/编辑弹窗**：标准名称（1～20 字）、标准类型（资讯类别下拉，`value`=`code`、`label`=`name`）、简介（≤50 字，选填）、正文附件（必填）、封面（选填）。

**标准类型接口**：`ruoyi-ui/src/api/category/informationCategory.js` — `GET /category/informationCategory/children?parentCode=001&categoryType=5`。
- **上传**：`POST /common/upload`，请求头携带 `Authorization: Bearer <token>`；成功后将 `url` → `contentFileUrl`、`fileName` → `contentFilePath`、`originalFilename`（或本地文件名）→ `contentFileName`。
- **前端校验**：正文扩展名 pdf/md/doc/docx/xls/xlsx/ppt/pptx，≤30MB；封面 jpg/jpeg/png，≤10MB；文件名不含英文逗号（与养殖标准页一致）。
- **编辑态附件**：仅当 `publishStatus === 0`（未发布）时可替换正文与封面；已发布记录仅可查看。

---

## 5. 操作按钮与状态机（与后端前置条件一致）

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

说明：已发布且已同步等组合下，删除/编辑等由后端拦截；前端通过按钮隐藏减少误操作。下架后界面展示为未发布 + 已同步（与《疫病诊疗标准管理技术方案》一致）。

---

## 6. 依赖与复用

- **全局**：`pagination`、`parseTime`、`resetForm`、`v-hasPermi`、`$modal` 等与若依 Vue2 工程一致。
- **组件**：`image-preview`（封面预览，与养殖标准页一致）。

---

## 7. 联调说明

1. 确认后端 `BizEpidemicTreatmentStandardController` 已部署且上下文路径与前端代理一致。
2. 在「菜单管理」中挂好菜单与上述按钮权限后，用具备各权限的账号验证列表、CRUD、同步/移出/发布/下架全链路。
3. 若列表无数据，先通过新增 + 上传正文走通 `POST /epidemicTreatment/standard`。

---

## 8. 修订记录

| 日期 | 说明 |
| --- | --- |
| 2026-05-13 | 初稿：页面、API 路径与权限与后端 Controller 对齐；字段小驼峰 |
