根因:主包 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
120 lines
5.1 KiB
Markdown
120 lines
5.1 KiB
Markdown
# 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 个
|