# 疫情上报 — 前端技术方案 > 依据:`疫情上报功能需求.md`、`疫情上报技术方案.md`;布局参考 `breedingStandards/breedingManage/index.vue`(双 `el-card`);请求/响应字段 **小驼峰**。 --- ## 1. 页面与路由 | 项 | 说明 | | --- | --- | | **Vue 路径** | `ruoyi-ui/src/views/diseaseDetection/epidemicReport/index.vue` | | **组件名** | `EpidemicReport` | | **菜单配置** | 若依「菜单管理」组件路径:`diseaseDetection/epidemicReport/index` | | **权限标识** | `diseaseDetection:epidemicReport:list\|query\|add\|edit\|remove\|relieve` | --- ## 2. API 模块 | 项 | 说明 | | --- | --- | | **文件** | `ruoyi-ui/src/api/diseaseDetection/epidemicReport.js` | | **Base** | `/diseaseDetection/epidemicReport` | | 方法 | HTTP | 路径 | 说明 | | --- | --- | --- | --- | | `listEpidemicReport` | GET | `/list` | 分页;Query:`pageNum`、`pageSize`、`transmissionRoute`、`riskLevel`、`relieveStatus` | | `getEpidemicReport` | GET | `/{id}` | 详情 | | `addEpidemicReport` | POST | `/` | 新增(不含 `releaseDate`) | | `updateEpidemicReport` | PUT | `/` | 修改(含 `id`;仅未解除) | | `delEpidemicReport` | DELETE | `/{ids}` | 批量删除,逗号分隔 | | `relieveEpidemicReport` | PUT | `/relieve` | Body:`id`、`releaseDate` | --- ## 3. 页面结构 1. **筛选区**(`el-card`):传播途径、风险等级、处置状态(0 未解除 / 1 已解除);搜索、重置、新增、批量删除。 2. **列表区**(`el-card`):表格 + 分页;列含上报日期、传播途径、疫病类型/名称、风险等级、涉疫点位/轨迹、处置状态、解除日期、创建时间。 3. **新增/编辑弹窗**:`reportDate`、`transmissionRoute`、`affectedLocationTrack`、`epidemicType`、`epidemicName`、`riskLevel`;**不**含解除日期。 4. **解除弹窗**:仅 `releaseDate`;日期选择器禁用早于当前行 `reportDate`、晚于今天。 5. **查看弹窗**:只读展示全部字段及审计信息。 **行内操作** | 处置状态 | 可用按钮 | | --- | --- | | 未解除 | 查看、编辑、解除、删除 | | 已解除 | 查看、删除 | 前端以 `releaseDate` 非空或 `relieveStatus === 1` 判定「已解除」(`diseaseDetectionLocaleMixin.isReleased`)。 --- ## 4. 枚举与展示 | 字段 | 编码 | i18n 键前缀 | | --- | --- | --- | | 传播途径 | 1~4 | `diseaseDetection.epidemicReport.transmission{n}` | | 疫病类型 | 1~4 | `diseaseDetection.epidemicReport.epidemicType{n}` | | 风险等级 | 1~3 | `diseaseDetection.epidemicReport.risk{n}` | 列表/表单使用 `el-select` + 计算属性 `*Options`;表格列通过 `transmissionLabel` 等方法转文案。 --- ## 5. 国际化 | 项 | 说明 | | --- | --- | | **语言包** | `ruoyi-ui/src/lang/zh/diseaseDetection.js`、`ruoyi-ui/src/lang/bo/diseaseDetection.js` | | **注册** | `zh-CN.js`、`bo.js` 挂载 `diseaseDetection` | | **Mixin** | `diseaseDetectionLocaleMixin`:`ddT`(`data.ddNs = 'epidemicReport'`)、`ddCommon`、`relieveStatusText`、`isReleased` | --- ## 6. 校验与交互要点 - 新增/编辑:必填与长度(轨迹 1~500、疫病名称 1~50)与后端一致。 - 编辑/解除前:若已解除,提示 `ruleReleasedNoEdit` / `ruleReleasedNoRelieve` 并中止。 - 解除:`releaseDate` 必填;自定义校验 `≥ reportDate` 且 `≤ 今天`;确认后调用 `relieve` 接口。 - 删除:单条带 `id` 确认文案;批量需先勾选。 - 权限:`v-hasPermi` 控制按钮显隐。 --- ## 7. 联调说明 1. 后端实现 `疫情上报技术方案.md` §3 接口及 `biz_epidemic_report` 表。 2. 配置菜单与六项按钮权限。 3. 验证:未解除可改/可解除;已解除隐藏编辑/解除;解除日期边界;筛选 `relieveStatus`。 4. 当前仓库若尚无 Java 模块,可先 Mock 或对接完成后端再联调列表。 --- ## 8. 修订记录 | 版本 | 说明 | | --- | --- | | 1.0 | 初版:列表 CRUD + 解除弹窗;对齐养殖标准管理双卡片布局 |