实验室检测 — 前端技术方案
依据:实验室检测功能需求.md、实验室检测技术方案.md;布局参考 breedingStandards/breedingManage/index.vue(双 el-card);请求/响应字段 小驼峰。
后端 v1.1(检疫点):新增必填 quarantineStationId;列表筛选 quarantineStationId;下拉 GET /diseaseDetection/labDetection/quarantineStationOptions(仅正常运营检疫站);列表/详情回显 quarantineStationName。前端实现待补。
1. 页面与路由
| 项 |
说明 |
| Vue 路径 |
ruoyi-ui/src/views/diseaseDetection/labDetection/index.vue |
| 组件名 |
LabDetection |
| 菜单配置 |
若依「菜单管理」组件路径:diseaseDetection/labDetection/index |
| 权限标识 |
diseaseDetection:labDetection:list\|query\|add\|edit\|remove |
2. API 模块
| 项 |
说明 |
| 文件 |
ruoyi-ui/src/api/diseaseDetection/labDetection.js |
| Base |
/diseaseDetection/labDetection |
| 方法 |
HTTP |
路径 |
说明 |
listLabDetection |
GET |
/list |
分页;Query:pageNum、pageSize、sampleSource |
getLabDetection |
GET |
/{id} |
详情 |
addLabDetection |
POST |
/ |
新增(不传 detectionRate) |
updateLabDetection |
PUT |
/ |
修改(含 id) |
delLabDetection |
DELETE |
/{ids} |
批量删除,逗号分隔 |
3. 页面结构
- 筛选区(
el-card):样本来源;搜索、重置、新增、批量删除。
- 列表区(
el-card):表格 + 分页;列含检测日期、样本来源、检测量/阳性(带「份」)、检出率(%)、创建时间。
- 新增/编辑弹窗:
testDate、sampleSource、testQuantity、positiveCount;检出率为 disabled 的 el-input,随数量实时计算。
- 查看弹窗:只读展示全部字段及审计信息。
行内操作:查看、编辑、删除(无状态分支,任意记录均可操作)。
4. 枚举与检出率
| 字段 |
编码 |
i18n 键 |
| 样本来源 |
1~4 |
diseaseDetection.labDetection.sampleSource{n} |
检出率展示:优先使用接口 detectionRate(比值 0~1);否则前端按 positiveCount / testQuantity 计算;格式 (ratio * 100).toFixed(2) + '%';testQuantity=0 时为 0.00%。
表单校验:非负整数;positiveCount ≤ testQuantity;testQuantity=0 时 positiveCount 必须为 0。
5. 国际化
| 项 |
说明 |
| 语言包 |
diseaseDetection.labDetection(zh / bo 的 diseaseDetection.js) |
| Mixin |
diseaseDetectionLocaleMixin,data.ddNs = 'labDetection' |
6. 样式与组件
- 检测量、阳性检出数使用
dd-input-with-unit(el-input-number + 后缀「份」),与共同富裕成果页单位输入风格一致。
- 双
el-card 布局与 epidemicReport/index.vue 对齐。
7. 联调说明
- 后端实现
实验室检测技术方案.md §3 及 biz_lab_detection 表。
- 配置菜单与五项按钮权限。
- 验证:检出率与库一致、阳性超量前端拦截、样本来源筛选、批量删除。
- 仓库若尚无 Java 模块,需先对接或 Mock 后再联调列表。
8. 修订记录
| 版本 |
说明 |
| 1.0 |
初版:列表 CRUD;检出率只读实时计算;双卡片布局 |