# 休药期标准管理 — 前端技术方案

> 依据：`doc/休药期标准/休药期标准管理技术方案.md`；列表与卡片布局对齐 `ruoyi-ui/src/views/breedingStandards/breedingManage/index.vue`（本模块无附件上传、无发布/下架）；请求与表单字段统一 **小驼峰**，与后端 `BizWithdrawalPeriodStandard` 及 Jackson 序列化一致。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/breedingStandards/diseaseTreatment/withdrawalPeriod/index.vue` |
| **组件名** | `WithdrawalPeriodStandard` |
| **菜单配置** | 若依「菜单管理」组件路径：`breedingStandards/diseaseTreatment/withdrawalPeriod/index` |
| **权限前缀** | `withdrawalPeriod:standard:`（**无** `publish`、`offline`） |

---

## 2. API 模块

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

封装方法：`listWithdrawalPeriodStandard`、`getWithdrawalPeriodStandard`、`addWithdrawalPeriodStandard`、`updateWithdrawalPeriodStandard`、`delWithdrawalPeriodStandard`、`syncKbWithdrawalPeriodStandard`、`removeKbWithdrawalPeriodStandard`。

---

## 3. 列表与查询

- **分页**：`pageNum`、`pageSize`（默认 20）。
- **筛选**：`keyword`（**仅**药物名称模糊）；`drugType`（1～4 精确匹配，可清空）。
- **表格列**：药物名称、药物类型文案、休药期天数、使用指南、药物作用（溢出省略）、知识库同步状态、创建时间、操作列。
- **行字段**：`drugName`、`drugType`、`withdrawalDays`、`usageGuide`、`drugEffect`、`kbSyncStatus`、`kbDocId`（详情/查看可展示）等，均为小驼峰。

**药物类型枚举（与后端一致）**：`1` 抗生素、`2` 抗原虫、`3` 抗病毒、`4` 激素。

---

## 4. 表单校验（与后端 Bean / `WithdrawalPeriodStandardValidation` 对齐）

| 字段 | 规则 |
| --- | --- |
| `drugName` | 必填，长度 1～20（`String.length` 口径）；**全表唯一**（保存失败时展示后端「药物名称已存在」） |
| `drugType` | 必填，`1`～`4` |
| `withdrawalDays` | 必填，整数 **1～999** |
| `usageGuide` | 必填，长度 1～200 |
| `drugEffect` | 必填，长度 1～200 |

编辑弹窗使用 `el-input-number` 约束休药期范围，并辅以自定义校验器保证为整数且在 1～999。

---

## 5. 操作按钮与知识库状态

本模块**仅有**知识库同步维度，无发布状态。

| 按钮 | 显示条件 | 权限标识 |
| --- | --- | --- |
| 查看 | 有 `query` 权限 | `withdrawalPeriod:standard:query` |
| 同步知识库 | `kbSyncStatus === 0` | `withdrawalPeriod:standard:syncKb` |
| 移出知识库 | `kbSyncStatus === 1` | `withdrawalPeriod:standard:removeKb` |
| 编辑 | `kbSyncStatus === 0` | `withdrawalPeriod:standard:edit` |
| 删除 | `kbSyncStatus === 0` | `withdrawalPeriod:standard:remove` |

已同步记录须先「移出知识库」后再允许编辑、删除（与需求 **4.6**、技术方案 **3.4** 一致）。

---

## 6. 与养殖标准页的差异摘要

| 项 | 养殖标准（breedingManage） | 休药期标准 |
| --- | --- | --- |
| 正文/封面上传 | 有 | 无 |
| 发布/下架 | 有 | 无 |
| 列表筛选维度 | 关键词 + `standardType` | 药物名称 + `drugType` |
| 知识库 | 同步 / 移出 + 发布链路 | 仅同步 / 移出 |

---

## 7. 联调说明

1. 部署含 `BizWithdrawalPeriodStandardController` 的后端，确认代理 `VUE_APP_BASE_API` 可达。
2. 菜单与按钮权限与 `sql/biz_withdrawal_period_standard.sql` 注释中的标识一致后，用不同权限账号验证列表与写操作。
3. 同步成功后后端可能写入占位 `kbDocId`（如 `LOCAL-{id}`），查看弹窗可展示该字段便于验收。

---

## 8. 修订记录

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