Files
hms/docs/audits/v3-beta/02-web-functional.md
iven 1e59007bd5 fix(mp): DevTools 卡死 + 主包 2MB→766KB + 代码质量 4 项全通过
根因:主包 2MB 全量组件注入导致 DevTools 渲染引擎内存渐增,
叠加离线时固定 3s 抑制期后的请求洪泛。

修复:
- app.config.ts 添加 lazyCodeLoading: requiredComponents
  主包 2.0MB→766KB,taro.js 526→131KB,vendors.js 230→28KB
- request.ts 离线抑制改为指数退避(3s→6s→12s→30s cap)
  后端不可达时自动延长抑制,防止请求风暴
- SegmentTabs Tab 接口改为 readonly,修复 TS 编译错误
- AbortController polyfill 补齐小程序运行时缺失
- 健康首页/设备同步/健康档案/报告/设置页 UI 重构
- 文章页公开端点适配游客访问
- 健康首页 Swiper 间隔优化 4s→5s,动画 500→300ms
2026-05-24 11:32:40 +08:00

5.1 KiB
Raw Blame History

Web 前端核心业务功能测试

测试工具: chrome-devtools MCP | 环境: Chrome, 1920x1080 测试账号: admin / Admin@2026 | 截图: docs/qa/screenshots/

1. 登录流程 — PASS

测试项 结果 说明
登录页渲染 PASS 双栏布局,品牌信息完整
登录后跳转 PASS 跳转至工作台 /#/
侧边栏菜单 PASS 7 个一级菜单加载(工作台/患者中心/随访关怀/健康监测/运营管理/AI助手/系统管理)
用户信息显示 PASS 右上角"系统管理员" + 头像
权限不足页面 PASS 403 页面清晰,含返回首页按钮
XSS 安全 PASS SQL 注入测试数据 Robert"); DROP TABLE patients;-- 正确转义显示

2. 患者管理 — FAIL (2 issues)

测试项 结果 说明
患者列表加载 PASS 136 条记录7 页分页
分页切换 PASS 第 2 页数据正确
创建表单打开 PASS 4 个分组(基本信息/联系方式/医疗信息/紧急联系人)
编辑表单 PASS 预填充已有数据
空表单提交 FAIL 空表单成功提交创建患者(后端有校验但前端未拦截)
搜索功能 FAIL 输入 "Test" 搜索后列表仍显示全部 136 条

H-01: 患者创建表单缺少前端必填校验

  • 严重性: HIGH
  • 证据: 点击"保存"空表单后审计日志显示"创建 了 患者"
  • 根因: Ant Design Form 未配置 rules: [{ required: true }] 或未调用 form.validateFields()
  • 修复:PatientList.tsx 的 DrawerForm 中添加 rules 配置,提交前调 form.validateFields()
  • 预计工时: 1h

M-01: 患者搜索不生效

  • 严重性: MEDIUM
  • 证据: 搜索框输入 "Test" + 回车,列表无变化
  • 根因: 搜索框 keyword 参数可能未正确传递到 API 请求
  • 修复: 检查搜索输入与 API 参数绑定
  • 预计工时: 2h

3. 健康数据/实时监控 — PASS

测试项 结果 说明
实时监控页 PASS 危急/高危/中等/低危告警计数正确
告警面板 PASS 1 个高危患者活跃告警
告警列表 PASS 5 条告警记录,状态/严重程度正确
筛选功能 PASS 患者下拉框存在

4. 预约管理 — FAIL (1 issue)

测试项 结果 说明
预约列表页渲染 PASS 表头正确(患者/医护/类型/日期/时段/状态/创建时间/备注/操作)
预约数据 FAIL 表格显示 "No data" + "网络连接异常,请检查网络"
新建预约按钮 PASS 按钮可见

H-02: 预约列表 API 网络连接异常

  • 严重性: HIGH
  • 证据: 页面显示"网络连接异常"No data"同时出现
  • 根因: 可能是后端 API 错误或前端 API 路径不匹配
  • 修复: 检查 /api/v1/health/appointments 端点状态和前端 API 路径
  • 预计工时: 2h

5. 咨询管理 — PASS

测试项 结果 说明
咨询列表加载 PASS 18 条咨询记录
状态显示 PASS 已关闭/进行中/等待中正确
操作按钮 PASS 进行中的会话显示"关闭"按钮
未读消息计数 PASS 患者端/医护端分别显示
筛选/导出 PASS 状态筛选、日期范围、导出按钮均存在

6. 工作台/仪表盘 — PASS_WITH_ISSUES

测试项 结果 说明
工作台首页 PASS 6 大状态卡片 + 统计 + 模块状态 + 活跃度
系统状态 PASS PostgreSQL/API/定时任务/文件存储/消息队列/缓存 全绿
统计数据 PASS 注册用户 27/今日活跃 4/本周 9/月活 18
最近操作 PASS 实时显示登录/创建/删除操作
通知面板 PASS 危急值告警和待办事项正常
侧边栏折叠 PASS 折叠后仅图标,悬停展开子菜单
Admin Dashboard FAIL /#/health/admin-dashboard 显示 403

M-02: Admin Dashboard URL 直接访问 403

  • 严重性: MEDIUM
  • 说明: AdminDashboard 组件存在但路由未注册,该页面可能仅作为工作台内嵌组件使用
  • 修复: 移除直接访问路径或正确注册路由并配置权限
  • 预计工时: 1h

7. 主题切换 — PASS (4/4)

主题 结果 说明
信任蓝(默认) PASS 蓝色系侧边栏
深邃夜色 PASS 深色侧边栏和页头
翡翠清雅 PASS 绿色系
温润东方 PASS 暖色调
持久化 PASS localStorage hms-theme 保存,刷新后保持

8. 控制台警告

类型 消息 严重性
WARN [antd: Drawer] width is deprecated. Please use size instead. LOW
WARN [antd: List] component is deprecated. And will be removed in next major version. LOW

小结

  • 完全通过领域: 5/8登录/健康数据/咨询/工作台/主题)
  • 存在问题领域: 3/8患者管理/预约/仪表盘路由)
  • HIGH 问题: 2 个 | MEDIUM 问题: 2 个 | LOW 问题: 2 个