diff --git a/web-admin/health-checkup/doc/CHANGELOG.md b/web-admin/health-checkup/doc/CHANGELOG.md index fd3838b..7a41ad9 100644 --- a/web-admin/health-checkup/doc/CHANGELOG.md +++ b/web-admin/health-checkup/doc/CHANGELOG.md @@ -6,6 +6,7 @@ - `post-unit-cost-stat.html`:单位体检费用统计列表增加"体检医院"列(部门列之后)并在"体检年份"后增加"签约医院"列(该单位签约的体检医院,可能存在多个,逗号相隔);因一个单位会存在多个体检医院,列表按"单位 × 体检医院"拆行——原 6 条单位年度汇总行拆为 16 条医院明细行(各分组内人数/报告/费用合计与原数据保持一致,计划费用仍按 2062.5 元/人 × 已体检人数口径),分页条数同步更新为 16 条,行配置 ROWS 补充 hospital/signed 字段供弹窗标题使用 - `post-unit-cost-stat.html`:列表去掉"总人数"列;"体检报告缺少体检项目信息"弹窗增加"项目费用(元)""折扣后费用(元)"两列(折扣后统一按 8 折示例);统计明细弹窗缺少项目口径的"项目总数"标蓝可点击,点击同样打开体检报告缺少体检项目信息弹窗;员工费用明细弹窗"报告缺少项目数"标蓝可点击(报告不完整时),点击同样打开体检报告缺少体检项目信息弹窗;员工费用明细弹窗顶部新增筛选栏(姓名/员工编号模糊查询、报告完整状态 全部/完整/不完整,查询/重置,打开弹窗时自动重置,无结果显示"暂无数据",合计行随筛选结果汇总)及"导出列表数据"按钮 - `PRD.md`:第 51 节"单位体检费用统计"功能说明改为按"单位 × 体检医院"统计(一行是一个体检医院),表格列说明同步补充"体检医院""签约医院"两列并去掉"总人数",统计明细弹窗/缺少项目弹窗说明同步更新 +- `PRD.md`/`screenshot-prd.js`/截图:按当日 17 个页面改动同步更新 PRD 说明并重截 16 张页面截图;`screenshot-prd.js` 支持传入页面名前缀只重截指定页——具体更新:第 1 节个人体检数据报告弹窗改为常规/胃肠镜/冠脉CTA三页签专业版式;第 4 节操作说明补充封面图(JPG/PNG ≤5MB 1280×720)与视频(MP4 ≤200MB)上传提示;第 10 节医院体检项目新增"同步医院体检项目"多选医院弹窗说明并删除已落地的同步方式补充说明;第 12/27/30 节三类体检计划管理补充"新增模式体检年份锁定当年、隐藏参加人员范围"规则;第 17 节组合模板项目表格增加"金额(元)"列说明并删除已落地的默认费用补充说明;第 22 节指定员工体检医院操作栏增加"批量导入人员""查看导入任务";第 25 节预选信息统计移除"医院"Tab 仅保留部门维度;第 32 节体检预约"体检预约信息"列移至"预约状态"之后;第 36 节医院实时预约人数日期默认改为当日至 30 日后;第 44 节冠脉CTA单位预约统计移除"填写问卷人数"列;第 45 节常规体检报告补充复选框列、"报告模板导入"按钮、体检报告补录弹窗、员工操作确认弹窗及专业版式报告弹窗;第 51 节员工费用明细弹窗补充筛选栏/导出/缺少项目数蓝链;第 62 节胃肠镜体检报告"详情"弹窗改为"查看报告"专业版式、编辑弹窗仅报告图片可修改;第 68 节结果异常移除"异常等级"筛选/列与页首定义说明框 ## [Unreleased] 2026-09-15 diff --git a/web-admin/health-checkup/doc/PRD.md b/web-admin/health-checkup/doc/PRD.md index 56bb2aa..ef866f7 100644 --- a/web-admin/health-checkup/doc/PRD.md +++ b/web-admin/health-checkup/doc/PRD.md @@ -269,7 +269,11 @@ - 一级分类→ 二级分类→ 具体项目,重点项目列分三组: - 操作列(冻结):蓝色链接"查看报告" -**体检报告弹窗:** 标题"姓名 · 体检报告",含体检结论、体检建议、体检项目;每张子表列为项目名称/结果/单位/参考值,异常结果红色标注。支持 ✕/关闭按钮/遮罩/Esc 关闭。 +**体检报告弹窗:** 标题"姓名 · 体检报告",顶部页签切换三类报告(常规体检 / 胃肠镜体检 / 冠脉CTA体检,默认常规体检),均采用专业报告版式(深色报告头 + 基本信息 + 分节内容): +- 常规体检:报告头"健康体检报告",基本信息含姓名/性别/年龄/体检编号/体检日期/体检医院;正文含体检结论(橙色提示框)、体检建议(绿色提示框)及物理检查/内科/外科/化学检查等分科明细;每张子表列为项目名称/结果/单位/参考值,异常结果红色标注 +- 胃肠镜体检:报告头"胃肠镜检查报告",基本信息含检查编号/检查日期/检查医院;胃镜检查表(食管/胃/十二指肠/诊断结果)、肠镜检查表(结肠/诊断结果/病理诊断)+ 报告图片(胃镜报告/肠镜报告/活检报告,"查看"链接) +- 冠脉CTA体检:报告头"冠状动脉CT血管成像报告",基本信息含检查编号/检查日期/检查医院;检查条件(心率/屏气/冠脉分布)、冠状动脉钙化积分(Agatston 总积分)、冠脉分段表格(血管/段、斑块性质标签:钙化/非钙化/混合/无、狭窄程度按分级着色、描述)+ 心脏及心包所见 + 印象(CAD-RADS 评分色块 + 结论列表)+ 建议 + 报告图片 +- 报告内容按员工自动匹配两套示例档案(正常/异常),支持 ✕/关闭按钮/遮罩/Esc 关闭。 **业务规则:** - 异常判定:任一项目结果带异常标记即视为异常员工,"异常员工"筛选据此过滤 @@ -346,7 +350,7 @@ - 讲解类型 *(分段切换:图文讲解/视频讲解;编辑态锁定为只读) - 标题 *(输入框)、简介(多行文本域)、排序(数字,越小越靠前) - 图文讲解专属:操作说明(富文本编辑器) -- 视频讲解专属:封面图(上传)、视频文件(上传) +- 视频讲解专属:封面图(上传,提示"支持 JPG/PNG 格式,大小不超过 5MB,建议尺寸 1280×720(16:9)")、视频文件(上传,仅 MP4,提示"支持 MP4 格式,大小不超过 200MB,时长建议 10 分钟以内") - 底部:取消、保存 **预览弹窗:** 视频类型为 16:9 播放器占位;图文类型渲染富文本内容。 @@ -490,14 +494,13 @@ **新增/编辑弹窗:** 医院 *(下拉)、体检项目名称 *、体检项目编码 *;底部取消、保存 +**同步医院体检项目弹窗:** 点击"同步医院体检项目"打开;说明文案"选择医院进行同步医院体检项目,结果可在查看同步任务中查看";选择医院 *(复选列表:全选 + 各医院多选);底部取消、确认同步。 + **同步任务记录弹窗:** 表格列:触发时间、同步人、状态(蓝色"同步中"/绿色"成功"/红色"失败"标签)、同步数据信息("查看详情"链接);底部关闭 **同步数据信息弹窗:** 点击任务行"查看详情"打开;顶部摘要显示触发时间、同步人、共同步条数;表格列:序号、医院、体检项目编码、体检项目名称、关联体检基本项、关联医院系统项目、同步结果(蓝色"新增"/绿色"更新"标签);底部关闭 -**业务规则:** "同步医院体检项目"确认后生成一条"同步中"任务(同步中即可查看本次明细),完成后变"成功";编辑仅回填医院/编码/名称;删除有确认提示。 - -**补充说明**: -考虑一下选择指定医院同步和全部医院同步 +**业务规则:** "同步医院体检项目"支持指定医院同步(可多选)或全选全部医院同步;未选医院时提示"请选择医院";确认后生成一条"同步中"任务(同步中即可查看本次明细),完成后变"成功",增量项目按所选医院过滤;编辑仅回填医院/编码/名称;删除有确认提示。 --- @@ -544,11 +547,11 @@ **表格列:** 序号、组织单位、体检年份、体检计划名称、承检医院、签约医院、有效标志(绿色标签)、体检计划日期范围、允许预约日期范围(未开启时灰色"未开启")、创建人、创建时间、操作(详情/编辑/删除) **新增/编辑抽屉:** -- 组织单位 *(下拉)、体检年份 *(下拉)、体检计划名称 *(输入框) +- 组织单位 *(下拉)、体检年份 *(下拉,新增模式锁定为当年不可改)、体检计划名称 *(输入框) - 承检医院 *(多选下拉,标签可删) - 签约医院(多选,选项仅限已勾选的承检医院,未选承检医院时禁用并提示"请先选择承检医院") - 体检计划日期范围 *(日期至日期) -- 参加人员范围 *(指定人员面板):指定机构(单位-部门两级树多选,部门全选自动收拢为单位级;默认选中组织单位)+ 指定员工(打开二级"选择员工"弹窗)+ 已选员工标签 +- 参加人员范围 *(指定人员面板,新增模式下隐藏该区域,编辑时显示):指定机构(单位-部门两级树多选,部门全选自动收拢为单位级;默认选中组织单位)+ 指定员工(打开二级"选择员工"弹窗)+ 已选员工标签 - 是否开启预约(开关,默认开启)、允许预约日期范围 *(开启时显示) - 底部:取消、确认新增/保存 @@ -562,7 +565,8 @@ - 承检医院变化时同步剔除失效签约医院; - 是否开启预约关闭后,员工在移动端无法进行预约 - 机构勾选联动员工弹窗过滤; -- 保存校验组织单位/承检医院/计划名称/日期范围/参加人员/预约范围必填且结束≥开始; +- 新增模式:体检年份锁定为当年、隐藏参加人员范围区域(新增后通过编辑补充);编辑模式恢复可编辑 +- 保存校验组织单位/承检医院/计划名称/日期范围/预约范围必填且结束≥开始,参加人员范围仅编辑时校验必选; - 删除有确认提示。 - 可供员工预约的日期范围是医院承检日期+单位允许日期范围的交叉日期,并且在可预约日期的前一天/当天(当天可能是刚创建体检计划,但是预约日期也是当天)给员工发送短信,提醒员工进行预约体检 @@ -668,16 +672,14 @@ **新增/编辑组合模板抽屉:** - 组合模板名称 *、体检医院 *(搜索下拉)、性别 *(男/女/通用)、年龄范围 *、女性专项费用(元)(仅性别=女时显示)、折扣类型 *(数值/百分比)、折扣金额 *(数字) - 内嵌 Tab:必检项目 / 自选项目 / 妇科未婚项目 / 妇科已婚项目 / 防癌筛查项目(性别=男隐藏两个妇科 Tab;防癌筛查 Tab 显示"防癌筛查默认费用(元)"输入) -- 每个 Tab:+ 添加项目 + 表格(体检项目[可搜索下拉]、项目编码[自动填充只读]、项目标记[一般项目/重点项目]、操作[删除]) +- 每个 Tab:+ 添加项目 + 表格(体检项目[可搜索下拉]、项目编码[自动填充只读]、项目标记[一般项目/重点项目]、金额(元)[自动填充只读]、操作[删除]) - 底部:取消、确认保存 **复制上一年度模板弹窗:** 上一年度(复制来源,禁用)、本年度(复制目标,禁用)、体检医院 *、模板 *(未选医院时禁用);提示"确认后将把所选医院的上一年度模板复制到本年度,已存在的同名模板将被覆盖。";取消/确认复制 **组合模板详情弹窗(只读):** 医院名称、体检年份、模板名称、性别、年龄范围、女性专项费用、折扣类型、折扣金额 + 内嵌同名 5 Tab 项目表格(防癌 Tab 末尾显示默认费用);底部关闭 -**业务规则:** 性别联动女性专项费用与妇科 Tab 显隐;折扣类型决定金额落在"折扣数值"或"折扣百分比"列;复制弹窗医院→模板二级联动。 - -**补充说明:** 建议增加体检项目的默认费用显示。 +**业务规则:** 性别联动女性专项费用与妇科 Tab 显隐;折扣类型决定金额落在"折扣数值"或"折扣百分比"列;复制弹窗医院→模板二级联动;选择体检项目后自动带出该项目金额(按项目库单价,妇科/防癌等特殊项目按编码匹配)。 --- @@ -796,7 +798,7 @@ **筛选条件:** 体检年份(年份日历选择控件,默认当年)、单位(下拉)、部门(下拉)、指定体检医院(下拉)、姓名、员工编号、身份证号(输入框)+ 查询/重置按钮 -**操作按钮:** + 添加指定体检医院员工、导出列表数据、查看导出任务、批量删除 +**操作按钮:** + 添加指定体检医院员工、导出列表数据、查看导出任务、批量导入人员、查看导入任务、批量删除 **表格列:** 复选框(全选)、姓名、员工编号、性别、年龄、指定体检医院、身份证号、手机号、单位、部门、年度体检、创建日期、操作(删除) @@ -848,19 +850,15 @@ ![页面截图](screenshots/pre-gastro-stat.jpg) -**功能说明:** 按"部门"和"医院"两个维度统计胃肠镜预选人数;点击预选人数数字弹出人员明细。 +**功能说明:** 按"部门"维度统计胃肠镜预选人数;点击预选人数数字弹出人员明细。 -**Tab 切换:** 部门 / 医院(各自独立筛选栏与表格) +**筛选条件:** 体检年份(年份日历选择控件)、单位部门(下拉)、预选医院(下拉)+ 查询/重置 -**部门 Tab 筛选:** 体检年份(年份日历选择控件)、单位部门(下拉)、预选医院(下拉)+ 查询/重置 -**医院 Tab 筛选:** 体检年份(年份日历选择控件)、单位(下拉)、预选医院(下拉)+ 查询/重置 +**操作按钮:** 导出列表数据、查看导出任务 -**操作按钮(两个 Tab 相同):** 导出列表数据、查看导出任务 +**表格列:** 单位、部门、体检年份、预选计划、预选医院、预选人数(蓝色数字链接) -**部门 Tab 表格列:** 单位、部门、体检年份、预选计划、预选医院、预选人数(蓝色数字链接) -**医院 Tab 表格列:** 预选医院、体检年份、单位、预选人数(蓝色数字链接) - -**预选人数明细弹窗(860px):** 标题"预选人数明细 - {单位部门/医院}";表格列:姓名、员工编号、身份证号、单位、部门、预选医院、提交时间;右上"导出列表数据";底部关闭 +**预选人数明细弹窗(860px):** 标题"预选人数明细 - {单位部门}";表格列:姓名、员工编号、身份证号、单位、部门、预选医院、提交时间;右上"导出列表数据";底部关闭 --- @@ -892,9 +890,9 @@ **表格列:** 序号、单位、体检年份、体检计划名称、承检医院、有效标志、体检计划日期范围、允许预约日期范围、创建人、创建时间、操作(详情/编辑/删除) -**新增/编辑抽屉 / 详情弹窗 / 选择员工二级弹窗:** 字段与常规体检计划管理一致(抽屉标题为"新增/编辑胃肠镜体检计划",计划名称示例为"XX 2026年员工胃肠镜体检")。 +**新增/编辑抽屉 / 详情弹窗 / 选择员工二级弹窗:** 字段与常规体检计划管理一致(抽屉标题为"新增/编辑胃肠镜体检计划",计划名称示例为"XX 2026年员工胃肠镜体检";新增模式体检年份锁定为当年、隐藏参加人员范围区域,编辑模式恢复)。 -**业务规则:** 保存校验(toast 提示)与常规版一致;删除有确认提示。 +**业务规则:** 保存校验(toast 提示)与常规版一致(参加人员范围仅编辑时校验必选);删除有确认提示。 --- @@ -935,7 +933,7 @@ ![页面截图](screenshots/pre-cta-plan-mgmt.jpg) -**功能说明:** 管理各单位年度冠脉CTA体检计划。页面结构与胃肠镜版完全一致(克隆页)。 +**功能说明:** 管理各单位年度冠脉CTA体检计划。页面结构与胃肠镜版完全一致(克隆页);新增模式体检年份锁定为当年、隐藏参加人员范围区域,编辑模式恢复(与常规/胃肠镜版一致)。 --- @@ -972,7 +970,7 @@ **操作按钮:** 导出列表数据、查看导出任务、同步医院体检预约信息 -**表格列(两级表头):** 复选框(全选)、姓名、性别、年龄、年龄范围、身份证号、单位、部门、机构分类、员工编号、体检编码、用工形式、婚姻状态、体检类型、防癌项、是否上市员工、体检医院、体检预约信息、体检总费用、体检明细费用(colspan=4:必检费用/选检费用/妇科费用/防癌筛查费用)、预约状态(标签)、预约日期、体检状态(标签)、体检日期、体检年份、体检计划、操作(详情);前 3 列左冻结、操作列右冻结 +**表格列(两级表头):** 复选框(全选)、姓名、性别、年龄、年龄范围、身份证号、单位、部门、机构分类、员工编号、体检编码、用工形式、婚姻状态、体检类型、防癌项、是否上市员工、体检医院、体检总费用、体检明细费用(colspan=4:必检费用/选检费用/妇科费用/防癌筛查费用)、预约状态(标签)、体检预约信息、预约日期、体检状态(标签)、体检日期、体检年份、体检计划、操作(详情);前 3 列左冻结、操作列右冻结 **预约跟踪详情弹窗(880px):** - 基本信息:姓名/员工编号/性别/年龄/年龄范围/身份证号/单位/部门/机构分类/体检编码/用工形式/婚姻状态/体检类型/防癌项/是否上市员工 @@ -1047,7 +1045,7 @@ **功能说明:** 按医院+日期查看医院承检能力与当日已预约人数的实时统计,用于监控各医院预约饱和度。 -**筛选条件:** 体检年份(年份日历选择控件,默认当年)、医院(下拉)、日期范围(日期至日期,默认当月 1 号至当月最后一天) +**筛选条件:** 体检年份(年份日历选择控件,默认当年)、医院(下拉)、日期范围(日期至日期,默认当日至 30 日后) **操作按钮:** 导出列表数据、查看导出任务 @@ -1166,7 +1164,7 @@ ![页面截图](screenshots/mid-cta-unit-appointment.jpg) -**功能说明:** 按单位(二级/三级)统计冠脉CTA体检的应检、问卷填写、预约与参检人数。页面结构与胃肠镜版单位预约统计完全一致(克隆页)。 +**功能说明:** 按单位(二级/三级)统计冠脉CTA体检的应检、预约与参检人数(冠脉CTA免问卷,无问卷填写列)。页面结构与胃肠镜版单位预约统计类似(克隆页,差异:无"填写问卷人数"列)。 --- @@ -1179,17 +1177,19 @@ ![页面截图](screenshots/post-report-employee.jpg) -**功能说明:** 常规体检报告列表,支持更新报告数据、报告补录、获取影像报告、导出,并可打开单份报告详情弹窗(结论/建议/分科明细)。 +**功能说明:** 常规体检报告列表,支持勾选员工后批量更新报告数据/获取影像报告、报告补录、报告模板导入、导出,并可打开单份专业版式报告弹窗(结论/建议/分科明细)。 **筛选条件:** 体检年份(年份日历选择控件,默认当年)、单位部门(下拉)、姓名、员工编号、身份证号(输入框)+ 查询/重置按钮 -**操作按钮:** 更新体检报告数据、体检报告补录、获取影像报告、导出详细报告、查看导出任务 +**操作按钮:** 更新体检报告数据、体检报告补录、获取影像报告、报告模板导入、导出详细报告、查看导出任务 -**表格列:** 序号、姓名、员工编号、性别、年龄、身份证号、单位、部门、体检医院、体检类型、体检日期、终审日期、更新日期、是否已读、已读时间、操作(查看报告/查看影像/下载报告) +**表格列:** 复选框(全选)、序号、姓名、员工编号、性别、年龄、身份证号、单位、部门、体检医院、体检类型、体检日期、终审日期、更新日期、是否已读、已读时间、操作(查看报告/查看影像/下载报告) -**体检报告弹窗:** -- 每个项目结果表列固定:项目名称/结果/单位/参考值,异常结果红色标注(带 ↑↓ 箭头) -- 更新体检报告数据、体检报告补录、获取影像报告按钮:参考之前代码逻辑 +**体检报告弹窗:** 标题"姓名 · 常规体检报告",专业报告版式:深色报告头"健康体检报告"+ 基本信息区(姓名/性别/年龄/体检编号/体检日期/体检医院);正文含体检结论(橙色提示框)、体检建议(绿色提示框)及物理检查/内科/外科/化学检查等分科明细;每个项目结果表列固定:项目名称/结果/单位/参考值,异常结果红色标注(带 ↑↓ 箭头);底部关闭 + +**体检报告补录弹窗(480px):** 体检医院 *(下拉)、身份证号、体检编号、体检年份 *(年份选择控件,默认当年);提示"身份证号与体检编号必须至少填写一项",两者均为空时确定报错"身份证号与体检编号不能都为空,请至少填写一项";底部取消、确定 + +**员工操作确认弹窗(420px):** 点击"更新体检报告数据"或"获取影像报告"时触发;未勾选员工则提示"请先选择至少一位员工";已勾选时弹窗列出已选员工("已选择 N 位员工,请确认:姓名、…"),确认后执行操作;底部取消、确定 --- @@ -1308,7 +1308,7 @@ **表格列:** 序号、单位、部门(仅三级单位 Tab)、体检医院、已体检人数、报告完整人数、报告不完整人数、报告缺少项目总数、计划总体检费用(元)、实际总体检费用(元)、体检年份、签约医院(该单位签约的体检医院,可能存在多个,逗号相隔,位于体检年份之后)、操作(员工费用明细);已体检人数/报告完整人数/报告不完整人数/报告缺少项目总数 4 列为蓝色数字链接 -**员工费用明细弹窗:** 标题"「单位」YYYY年 员工费用明细";表格列:序号、姓名、员工编号、部门、体检日期、体检医院、应检项目数(蓝链)、已检项目数(蓝链,附灰色提示"含未检/弃检 N")、报告完整状态(绿"完整"/橙"不完整"标签)、报告缺少项目数、计划体检费用(元)、实际体检费用(元);底部合计行;关闭 +**员工费用明细弹窗:** 标题"「单位」YYYY年 员工费用明细";顶部筛选栏(姓名/员工编号模糊查询、报告完整状态 全部/完整/不完整 + 查询/重置按钮,打开弹窗时自动重置)及"导出列表数据"按钮;表格列:序号、姓名、员工编号、部门、体检日期、体检医院、应检项目数(蓝链)、已检项目数(蓝链,附灰色提示"含未检/弃检 N")、报告完整状态(绿"完整"/橙"不完整"标签)、报告缺少项目数(不完整时标蓝可点击,打开体检报告缺少体检项目信息弹窗)、计划体检费用(元)、实际体检费用(元);无结果时显示"暂无数据";底部合计行随筛选结果汇总;关闭 **项目列表弹窗(560px,二层):** 标题"「姓名」应检项目/已检项目(YYYY年)";表头动态:序号、项目名称、项目类别、应检项目费用(元)/项目费用(元)、体检状态(绿"已检"/红"弃检"/橙"未检"标签);底部费用合计行。项目库为 4 档套餐,费用合计恰与额度档 1000/1500/2500/4000 元一致 @@ -1491,31 +1491,34 @@ ![页面截图](screenshots/post-report-gastro.jpg) -**功能说明:** 管理员工胃肠镜体检的报告图片,支持查看报告详情(体检项目/病种勾选/体检处理情况/病变情况四类结构化数据)与上传/替换报告图片。提供列表导出导入及列设置。 +**功能说明:** 管理员工胃肠镜体检的报告图片,支持以专业版式查看报告(胃镜/肠镜所见与诊断、病理诊断、报告图片)及上传/替换报告图片。提供列表导出导入及列设置。 **筛选条件:** 体检年份(年份日历选择控件,默认当年)、单位部门(下拉,单位/部门两级分组)、体检医院(下拉)、姓名、员工编号、身份证号(输入框)+ 查询/重置按钮 **操作按钮:** 导出列表数据、导出体检数据、查看导出任务、导入体检数据、查看导入任务、列设置 -**表格列:** 姓名(固定)、员工编号(固定)、性别、年龄、单位(固定)、部门(固定)、身份证号、体检医院、检查日期、胃镜报告(缩略图)、肠镜报告(缩略图)、创建时间、体检年份、操作(编辑/详情) +**表格列:** 姓名(固定)、员工编号(固定)、性别、年龄、单位(固定)、部门(固定)、身份证号、体检医院、检查日期、胃镜报告(缩略图)、肠镜报告(缩略图)、创建时间、体检年份、操作(编辑/查看报告) **业务规则:** -- 报告缩略图:有报告时点击打开详情弹窗;无报告时灰底占位,点击打开编辑弹窗上传 +- 报告缩略图:有报告时点击打开查看报告弹窗;无报告时灰底占位,点击打开编辑弹窗上传 - 列设置气泡:固定列(姓名/员工编号/单位/部门/操作)不可隐藏,其余列可勾选显隐 - 上传为模拟交互(选择文件后 toast 提示),保存写回行数据 -**报告详情弹窗(900px):** 标题"姓名 · 胃肠镜报告详情": +**查看报告弹窗(宽版):** 标题"姓名 · 胃肠镜检查报告",专业报告版式(与个人体检数据-胃肠镜体检页签一致):深色报告头"胃肠镜检查报告"+ 基本信息区(姓名/性别/年龄/检查编号/检查日期/检查医院); +- 胃镜检查表:项目(食管/胃/十二指肠/诊断结果)× 所见/结论 +- 肠镜检查表:项目(结肠/诊断结果/病理诊断)× 所见/结论 +- 报告图片:胃镜报告/肠镜报告/活检报告("查看"链接);底部关闭 + +**编辑报告弹窗(900px):** - 基本信息两列表单(姓名/身份证号/单位/部门/承检医院/体检年份,只读) -- 胃镜报告图片 *、肠镜报告图片 *、活检报告图片 *(图片预览块,无图时虚线框"暂无图片") -- 4 个页签: +- 胃镜报告图片 *、肠镜报告图片 *、活检报告图片三个图片区(已上传:图片预览 + "重新上传"/"删除"链接;未上传:"上传图片"链接) +- 4 个只读页签: - 体检项目:列 #、检查类别、项目编号、项目名称、结果(胃镜/肠镜分段所见描述) - 病种勾选:列 #、项目编号、项目名称、结果(如 SE02.02 糜烂性胃炎、SE02.05 黏膜萎缩) - 体检处理情况:同列结构(如 PE01.01 病理取材、PE01.02 建议复查) - 病变情况:同列结构(如 LE01.01 胃黏膜糜烂、LE01.02 胃黏膜萎缩) - 病种/处理/病变三个页签仅当该员工有胃镜报告时有数据,否则"暂无数据" -- 底部关闭 - -**编辑报告弹窗(900px):** 基本信息(只读信息网格)+ 胃镜报告图片、肠镜报告图片两个上传区(已上传显示大图预览 + "重新上传""删除"链接;未上传显示"点击上传");取消/保存 +- 仅报告图片可修改,其余字段只读;底部取消/保存 --- @@ -1647,14 +1650,10 @@ ![页面截图](screenshots/exception-result.jpg) -**功能说明:** 展示体检结果中指标超出正常参考范围的异常记录(危急/异常两级),支持按单位、时间范围、异常等级筛选与导出。 +**功能说明:** 展示体检结果中指标超出正常参考范围的异常记录,支持按单位、时间范围筛选与导出。 -**筛选条件:** 体检年份(年份日历选择控件,默认当年)、单位(下拉)、时间范围(日期至日期)、异常等级(下拉:全部/危急/异常)+ 查询/重置按钮 +**筛选条件:** 体检年份(年份日历选择控件,默认当年)、单位(下拉)、时间范围(日期至日期)+ 查询/重置按钮 **操作按钮:** 导出列表数据、查看导出任务 -**表格列:** 序号、异常等级(红色"危急"/橙色"异常"标签)、员工姓名、员工编号、单位、异常项目、异常值、参考范围、发现时间 - -**业务规则:** -- 页首异常数据定义说明框(黄色提示框):危急(指标严重偏离正常范围,需立即处理)、异常(指标超出参考范围但未达危急程度);系统自动检测并记录 -- 异常等级措辞统一不带"值"字(危急/异常),表头数据列"异常值"(指偏离数值本身)不受影响 +**表格列:** 序号、员工姓名、员工编号、单位、异常项目、异常值、参考范围、发现时间 diff --git a/web-admin/health-checkup/doc/screenshot-prd.js b/web-admin/health-checkup/doc/screenshot-prd.js index 8d46e75..176cb5c 100644 --- a/web-admin/health-checkup/doc/screenshot-prd.js +++ b/web-admin/health-checkup/doc/screenshot-prd.js @@ -2,6 +2,7 @@ * 健康体检(管理端)PRD 截图生成脚本 * * 用法:在 web-admin/health-checkup 目录下执行 node doc/screenshot-prd.js + * 可选传入页面名前缀只重截指定页,如 node doc/screenshot-prd.js post-unit-cost-stat pre-plan * 依赖:playwright(npm i playwright && npx playwright install chromium) * 输出:doc/screenshots/*.jpg(与 doc/PRD.md 中 ![页面截图](screenshots/xxx.jpg) 引用一一对应) * @@ -100,6 +101,14 @@ const TASKS = [ ]; (async () => { + const args = process.argv.slice(2); + const tasks = args.length + ? TASKS.filter(t => args.some(a => t.page.startsWith(a) || t.output.startsWith(a))) + : TASKS; + if (!tasks.length) { + console.error('没有匹配到页面:', args.join(' ')); + process.exit(1); + } fs.mkdirSync(OUT_DIR, { recursive: true }); const browser = await chromium.launch(); const context = await browser.newContext({ @@ -109,7 +118,7 @@ const TASKS = [ const page = await context.newPage(); let failed = 0; - for (const task of TASKS) { + for (const task of tasks) { const file = path.join(ROOT, task.page); if (!fs.existsSync(file)) { console.error('✗ 缺少文件:', task.page); @@ -134,6 +143,6 @@ const TASKS = [ } await browser.close(); - console.log(`\n完成:成功 ${TASKS.length - failed} / ${TASKS.length} 张 → ${OUT_DIR}`); + console.log(`\n完成:成功 ${tasks.length - failed} / ${tasks.length} 张 → ${OUT_DIR}`); if (failed > 0) process.exit(1); })(); diff --git a/web-admin/health-checkup/doc/screenshots/archive-personal.jpg b/web-admin/health-checkup/doc/screenshots/archive-personal.jpg index 371d16d..d6027eb 100644 Binary files a/web-admin/health-checkup/doc/screenshots/archive-personal.jpg and b/web-admin/health-checkup/doc/screenshots/archive-personal.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/config-material-video.jpg b/web-admin/health-checkup/doc/screenshots/config-material-video.jpg index e0f5334..ca0b298 100644 Binary files a/web-admin/health-checkup/doc/screenshots/config-material-video.jpg and b/web-admin/health-checkup/doc/screenshots/config-material-video.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/exception-result.jpg b/web-admin/health-checkup/doc/screenshots/exception-result.jpg index 13a3226..aa0b921 100644 Binary files a/web-admin/health-checkup/doc/screenshots/exception-result.jpg and b/web-admin/health-checkup/doc/screenshots/exception-result.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/mid-appointment-track.jpg b/web-admin/health-checkup/doc/screenshots/mid-appointment-track.jpg index b7d35d7..59447ee 100644 Binary files a/web-admin/health-checkup/doc/screenshots/mid-appointment-track.jpg and b/web-admin/health-checkup/doc/screenshots/mid-appointment-track.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/mid-cta-unit-appointment.jpg b/web-admin/health-checkup/doc/screenshots/mid-cta-unit-appointment.jpg index 245aed9..20a2fa9 100644 Binary files a/web-admin/health-checkup/doc/screenshots/mid-cta-unit-appointment.jpg and b/web-admin/health-checkup/doc/screenshots/mid-cta-unit-appointment.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/mid-hospital-realtime.jpg b/web-admin/health-checkup/doc/screenshots/mid-hospital-realtime.jpg index 46e7a22..a470571 100644 Binary files a/web-admin/health-checkup/doc/screenshots/mid-hospital-realtime.jpg and b/web-admin/health-checkup/doc/screenshots/mid-hospital-realtime.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/post-report-employee.jpg b/web-admin/health-checkup/doc/screenshots/post-report-employee.jpg index 3708f09..4efc246 100644 Binary files a/web-admin/health-checkup/doc/screenshots/post-report-employee.jpg and b/web-admin/health-checkup/doc/screenshots/post-report-employee.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/post-unit-cost-stat.jpg b/web-admin/health-checkup/doc/screenshots/post-unit-cost-stat.jpg index 0801dba..7d5dd1d 100644 Binary files a/web-admin/health-checkup/doc/screenshots/post-unit-cost-stat.jpg and b/web-admin/health-checkup/doc/screenshots/post-unit-cost-stat.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/pre-cta-plan-mgmt.jpg b/web-admin/health-checkup/doc/screenshots/pre-cta-plan-mgmt.jpg index 60d69f5..d6bb4e9 100644 Binary files a/web-admin/health-checkup/doc/screenshots/pre-cta-plan-mgmt.jpg and b/web-admin/health-checkup/doc/screenshots/pre-cta-plan-mgmt.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/pre-gastro-plan-mgmt.jpg b/web-admin/health-checkup/doc/screenshots/pre-gastro-plan-mgmt.jpg index c28a6ea..793669d 100644 Binary files a/web-admin/health-checkup/doc/screenshots/pre-gastro-plan-mgmt.jpg and b/web-admin/health-checkup/doc/screenshots/pre-gastro-plan-mgmt.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/pre-gastro-stat.jpg b/web-admin/health-checkup/doc/screenshots/pre-gastro-stat.jpg index 708db46..80c4cc2 100644 Binary files a/web-admin/health-checkup/doc/screenshots/pre-gastro-stat.jpg and b/web-admin/health-checkup/doc/screenshots/pre-gastro-stat.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/pre-item-combo-template.jpg b/web-admin/health-checkup/doc/screenshots/pre-item-combo-template.jpg index 3644f4b..e11678c 100644 Binary files a/web-admin/health-checkup/doc/screenshots/pre-item-combo-template.jpg and b/web-admin/health-checkup/doc/screenshots/pre-item-combo-template.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/pre-plan.jpg b/web-admin/health-checkup/doc/screenshots/pre-plan.jpg index 12fece8..5e42518 100644 Binary files a/web-admin/health-checkup/doc/screenshots/pre-plan.jpg and b/web-admin/health-checkup/doc/screenshots/pre-plan.jpg differ diff --git a/web-admin/health-checkup/doc/screenshots/pre-special-hospital.jpg b/web-admin/health-checkup/doc/screenshots/pre-special-hospital.jpg index 77d986a..9de3b46 100644 Binary files a/web-admin/health-checkup/doc/screenshots/pre-special-hospital.jpg and b/web-admin/health-checkup/doc/screenshots/pre-special-hospital.jpg differ