西藏巴青项目

疫病诊疗标准管理前端技术方案.md 7.9KB

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

依据:疫病诊疗标准管理技术方案.md(同目录,下称总方案)、疫病诊疗标准管理功能需求.md。页面布局对齐 ruoyi-ui/src/views/breedingStandards/breedingManage/index.vue;请求与表单字段统一 小驼峰,与后端 BizEpidemicTreatmentStandard 及 Jackson 序列化一致。


1. 页面与路由

说明
Vue 路径 ruoyi-ui/src/views/breedingStandards/diseaseTreatment/epidemicTreatment/index.vue
组件名 EpidemicTreatmentStandard
菜单配置 若依「菜单管理」组件路径:breedingStandards/diseaseTreatment/epidemicTreatment/index
Mixin breedingStdLocaleMixinstdNs = "ep"breedingStd.ep.*
权限前缀 `epidemicTreatment:standard:list

2. API 模块

文件 Base Path
ruoyi-ui/src/api/breedingStandards/epidemicTreatment.js /epidemicTreatment/standard
ruoyi-ui/src/api/category/informationCategory.js /category/informationCategory/children
方法 HTTP URI 说明
listEpidemicTreatmentStandard GET /list 分页列表
getEpidemicTreatmentStandard GET /{id} 详情
addEpidemicTreatmentStandard POST / 新增
updateEpidemicTreatmentStandard PUT / 修改(仅未发布+未同步)
delEpidemicTreatmentStandard DELETE /{ids} 删除
syncKbEpidemicTreatmentStandard POST /syncKb/{id} 同步知识库
removeKbEpidemicTreatmentStandard POST /removeKb/{id} 移出知识库
publishEpidemicTreatmentStandard POST /publish/{id} 发布
offlineEpidemicTreatmentStandard POST /offline/{id} 下架

标准类型下拉listInformationCategoryChildren('001', '5'),与后端 EpidemicTreatmentStandardTypeValidator 一致。

上传POST /common/upload → 正文 contentFileUrl / contentFilePath / contentFileName;封面 coverFileUrl / coverFilePath


3. 页面结构

布局为双 el-card(筛选 + 列表),中间 <br /> 分隔。

3.1 筛选区

绑定字段 说明
queryParams.keyword 名称/简介模糊(总方案 §3.1
queryParams.standardType 资讯类别编码精确匹配,可清空
queryParams.pageNum / pageSize 默认 1 / 20

3.2 列表列

字段 / 展示
标准名称 standardName
标准类型 typeLabel(standardType),列宽 112
简介 introduction
正文附件 contentFileName 链至 contentFileUrl
上架状态 publishStatusText(publishStatus)
知识库同步 kbSyncStatusText(kbSyncStatus)
发布日期 publishTimeyyyy-MM-dd
创建时间 createTime
操作 §5

3.3 新增/编辑弹窗

  • 标题:dialogAdd / dialogEdit:key="formKey" 重置表单。
  • 字段:standardName(1~20)、standardTypeintroduction(≤50)、正文上传、封面上传。
  • 编辑时 canEditFormRow:仅 publishStatus=0kbSyncStatus=0 可改字段及换附件;已发布/已同步点编辑分别提示 rulePublishedNoEdit / ruleSyncedNoEdit
  • 提交 Body 不含 publishStatuskbSyncStatuskbDocId;编辑带 id

3.4 查看弹窗

只读展示主字段、封面(image-preview)、上架/同步状态、发布时间、下架时间。


4. 标准类型

created 调用 loadStandardTypeOptions();失败时 errStdTypeLoad 提示。

mapCategoryItem 将接口项映射为 { value: code, label: name }

typeLabel 优先匹配 standardTypeOptions;存量值 1 回退 stdT('type1')(疾病决策);仍无则回显编码。

编码(示例) 界面文案
001013 疾病决策(资讯类别,总方案 §2.2

迁移脚本:biz_epidemic_treatment_standard_alter_standard_type.sql1001013)。


5. 状态常量与操作矩阵

脚本常量

常量 含义
PUBLISH_STATUS.UNPUBLISHED 0 未发布(含下架回流)
PUBLISH_STATUS.PUBLISHED 1 已发布
KB_SYNC_STATUS.UNSYNCED 0 未同步
KB_SYNC_STATUS.SYNCED 1 已同步

合法稳态:(0,0)(0,1)(1,1)。下架成功后为 未发布 + 已同步(知识库保留副本,≠ 移出)。

组合 编辑 同步 移出 发布 下架 删除
未发布 + 未同步
未发布 + 已同步
已发布 + 已同步

can* 方法(均 Number() 比较)+ v-hasPermi + v-if 控制按钮。

方法 条件
canEdit publishStatus === 0kbSyncStatus === 0
canSyncKb 未发布且未同步
canRemoveKb 未发布且已同步
canPublish 未发布且已同步
canOffline 已发布
canDelete 未发布且未同步

交互提示

  • 已发布点编辑:rulePublishedNoEdit
  • 已同步点编辑:ruleSyncedNoEdit
  • 已同步点删除:ruleDeleteNeedRemoveKb
  • 标准类型加载失败:errStdTypeLoad
  • 同步/移出/发布/下架/删除:二次确认后调接口,成功 getList() 刷新

6. 表单与上传校验

前端规则
标准名称 必填,1~20 字
标准类型 必选(资讯类别编码)
简介 选填,≤50 字
正文 必填;后缀 pdf/md/doc/docx/xls/xlsx/pptx(服务端 EpidemicTreatmentStandardRules);≤30MB;文件名不含英文逗号。说明:页面 contentFileExts 本次未同步,保存以服务端校验为准
封面 选填;jpg/jpeg/png;≤10MB

已同步记录为只读;改内容须先移出知识库后再编辑、同步。


7. 国际化

命名空间 路径
模块文案 breedingStd.ep.*lang/zh/breedingStd.jslang/bo/breedingStd.js
公共文案 breedingStd.common.*breedingStd.status.*

8. 依赖组件与工具

说明
pagination 分页
parseTime 时间格式化
image-preview 查看弹窗封面预览
resetForm 重置查询表单
$modal confirm / msgSuccess / msgWarning / msgError / loading

9. 联调检查项

  1. 标准类型下拉与保存编码(如 001013)一致。
  2. 未发布+未同步:可新增、同步、编辑、删除。
  3. 未发布+已同步:不可编辑(前端拦截),可移出、发布;不可删。
  4. 已发布:仅查看、下架;下架后回到未发布+已同步。
  5. 正文 contentFileName 在列表与详情正确展示;双语切换正常。

10. 文件清单

类型 路径
页面 ruoyi-ui/src/views/breedingStandards/diseaseTreatment/epidemicTreatment/index.vue
业务 API ruoyi-ui/src/api/breedingStandards/epidemicTreatment.js
类别 API ruoyi-ui/src/api/category/informationCategory.js
Mixin ruoyi-ui/src/mixins/breedingStdLocaleMixin.js
i18n ruoyi-ui/src/lang/zh/breedingStd.jslang/bo/breedingStd.js

11. 修订记录

版本 说明
1.0 初稿:双卡片 CRUD、资讯类别编码、双维状态机、附件上传、知识库与发布/下架
1.1 2026-06-01:标准类型改资讯类别编码(parentCode=001&categoryType=5);存量 1 回退展示;编辑/上传仅 未发布+未同步;类型加载失败与已同步编辑提示;下架回流 (0,1) 操作矩阵修正
1.2 2026-05-20:正文服务端白名单:pdfmddocdocxxlsxlsxpptx(移除 ppt);前端 contentFileExts 本次不改