依据:
药物禁配标准管理技术方案.md(同目录,下称总方案)、药物禁配标准管理功能需求.md。本模块无发布/下架、无附件上传;仅 知识库同步 单维状态机;主表 + 配伍子表 一对多。请求与表单字段统一 小驼峰,与后端BizDrugIncompatibilityStandard/BizDrugIncompatibilityCompanion及 Jackson 序列化一致。
| 项 | 说明 |
|---|---|
| 工程 | 若依 RuoYi-Vue 前端(Vue 2.x + Element UI) |
| 页面路径 | ruoyi-ui/src/views/breedingStandards/diseaseTreatment/drugIncompatibility/index.vue |
| 组件名 | DrugIncompatibilityStandard |
| 布局参考 | 双 el-card(查询区 + 表格区);新增/编辑弹窗 + 查看弹窗 |
| 国际化 | breedingStdLocaleMixin,命名空间 breedingStd.dic |
| 类型 | 路径 |
|---|---|
| 页面 | ruoyi-ui/src/views/breedingStandards/diseaseTreatment/drugIncompatibility/index.vue |
| API 模块 | ruoyi-ui/src/api/breedingStandards/drugIncompatibility.js |
菜单配置:组件路径 breedingStandards/diseaseTreatment/drugIncompatibility/index;权限前缀 drugIncompatibility:standard:(无 publish、offline)。
| UI | 绑定/说明 |
|---|---|
| 主药名称 | queryParams.keyword,仅 main_drug_name 模糊匹配(总方案 §3.1) |
| 新增 | 权限 drugIncompatibility:standard:add |
| 列 | 字段 | 备注 |
|---|---|---|
| 主药名称 | mainDrugName |
— |
| 配伍结果 | compatResult |
空显示「—」 |
| 配伍药物数 | companionCount |
列表聚合字段,非持久化 |
| 知识库同步 | kbSyncStatus |
kbSyncStatusText |
| 创建时间 | createTime |
parseTime |
| 操作 | — | 见 §5 |
分页:默认 pageNum=1、pageSize=20。列表行不含 companions 明细。
| 字段 | 控件 | 校验 |
|---|---|---|
mainDrugName |
输入框,maxlength=20 |
必填 1~20;提交前 trim |
compatResult |
输入框 | 选填 ≤50(后端校验);空串省略(后端存 NULL);前端 maxlength 待与后端对齐时可仍为 20 |
companions |
动态行列表 | 至少 1 条;每项 companionDrugName 1~20;trim 后互不相同且均不等于主药名 |
配伍校验器 validateCompanionsField 与后端 DrugIncompatibilityStandardValidation 规则一致。编辑时由详情接口拉取有序 companions;不向前端暴露或提交 kbSyncStatus、kbDocId。
编辑条件:仅 kbSyncStatus === 0(总方案 §3.4)。已同步点编辑提示 ruleSyncedNoEdit,不打开弹窗。
展示主药、配伍药物有序列表、配伍结果 + kbSyncStatus、kbDocId(便于验收占位 ID)、createTime、updateTime。
companions(仅 companionDrugName),对应后端子表全量替换(总方案 §1、§3.4)。blur 或配伍名 input 时触发 companions 字段重校验(主药与配伍互斥规则)。本模块仅有知识库同步维度(功能需求 §5 操作矩阵)。
| 按钮 | 权限标识 | 显示条件 |
|---|---|---|
| 查看 | drugIncompatibility:standard:query |
有权限即显 |
| 同步知识库 | drugIncompatibility:standard:syncKb |
kbSyncStatus === 0 |
| 移出知识库 | drugIncompatibility:standard:removeKb |
kbSyncStatus === 1 |
| 编辑 | drugIncompatibility:standard:edit |
kbSyncStatus === 0 |
| 删除 | drugIncompatibility:standard:remove |
kbSyncStatus === 0 |
canEdit / canDelete / canSyncKb / canRemoveKb 使用 Number(kbSyncStatus) 比较。已同步记录点编辑/删除时前端提示 ruleSyncedNoEdit / ruleDeleteNeedRemoveKb(双重守卫,与按钮 v-if 一致)。
文件:ruoyi-ui/src/api/breedingStandards/drugIncompatibility.js,Base Path /drugIncompatibility/standard。
| 方法 | HTTP | URI |
|---|---|---|
listDrugIncompatibilityStandard |
GET | /list |
getDrugIncompatibilityStandard |
GET | /{id} |
addDrugIncompatibilityStandard |
POST | / |
updateDrugIncompatibilityStandard |
PUT | / |
delDrugIncompatibilityStandard |
DELETE | /{ids} |
syncKbDrugIncompatibilityStandard |
POST | /syncKb/{id} |
removeKbDrugIncompatibilityStandard |
POST | /removeKb/{id} |
列表查询参数:pageNum、pageSize、keyword。
请求体(新增/修改):mainDrugName、compatResult(可空)、companions(≥1 条,每项 companionDrugName);修改时含 id。
| 场景 | 前端行为 |
|---|---|
| 配伍校验失败 | 表单字段错误(重名、与主药相同、条数不足等) |
| 已同步点编辑 | msgWarning(ruleSyncedNoEdit) |
| 已同步点删除 | msgWarning(ruleDeleteNeedRemoveKb) |
| 同步 / 移出 / 删除 | this.$modal.confirm 二次确认 |
| 项 | 养殖标准 | 药物禁配标准 |
|---|---|---|
| 正文/封面上传 | 有 | 无 |
| 发布/下架 | 有 | 无 |
| 状态机 | 上架 × 知识库 | 仅知识库 |
| 数据结构 | 单表 + 附件 | 主表 + 配伍子表 一对多 |
| 列表筛选 | 关键词 + standardType(资讯类别编码) |
仅主药名称 keyword |
breedingStandards/diseaseTreatment/drugIncompatibility/indexpublish / offline 按钮与权限companions 校验/drugIncompatibility/standard/** 与总方案 §3 对齐| 版本 | 日期 | 说明 |
|---|---|---|
| v1.0 | 2026-05-13 | 初稿:双卡片 CRUD、主表+配伍子表、知识库同步/移出 |
| v1.1 | 2026-06-01 | 对齐总方案/功能需求:无发布下架单维知识库状态机;keyword 仅主药名称;Number(kbSyncStatus) 判断;已同步编辑/删除提示;提交字段 trim;查看弹窗展示 kbDocId |