docs: 全局文档梳理归档 — 删除过期文件 + 归档 V1/早期设计 + wiki 数据校正 + CLAUDE.md 规则优化

**根目录清理:**
- 删除 CLAUDE-1.md(ZCLAW 旧项目配置,HMS 已完全脱离)
- 移动 DESIGN.md → docs/archive/(ERP 旧设计系统)
- 删除 plans/ 98 个临时会话计划文件

**归档重组:**
- V1 审计(12 文件)→ docs/archive/audits-v1/
- 早期 CRM/插件迭代设计(13 文件)→ docs/archive/superpowers-early/
- 已完成/已取代设计(28 文件)→ docs/archive/superpowers-completed/
- 早期讨论/测试报告 → docs/archive/discussions-early/ + test-reports-early/
- QA 重复文件清理(3 个旧版 result 文件)

**wiki 数据校正:**
- 迁移数 137→145,源文件 599→649,提交数 720→800+
- 小程序文件 124→163,Web 前端 297→332
- 后端测试 999→943(实际统计),权限码 75+→128
- 文档索引新增归档目录说明

**CLAUDE.md 规则优化:**
- §2.5 闭环工作法:提交+文档+推送三合一 + wiki 更新触发条件
- §2.6 Feature DoD:新增文档一致性检查项
- §6 反模式:新增 wiki 更新滞后/推送不及时警告
This commit is contained in:
iven
2026-05-15 09:29:04 +08:00
parent dc983945ff
commit 18fa6ce6d4
92 changed files with 53 additions and 10253 deletions

273
docs/archive/DESIGN.md Normal file
View File

@@ -0,0 +1,273 @@
# Design System — Enterprise ERP Platform
> Generated by UI UX Pro Max | Style: Soft UI Evolution | Target: Cross-industry business users
## 1. Visual Theme & Atmosphere
A warm, professional, and approachable design that feels trustworthy for business users across all industries — manufacturing, retail, finance, services, and more. The design uses a clean white canvas with soft blue as the primary brand color, conveying reliability and clarity without feeling cold or corporate.
The Soft UI Evolution style provides subtle depth through improved shadows — softer than flat design but clearer than neumorphism. This creates a sense of modern polish that invites interaction while maintaining excellent readability and accessibility (WCAG AA+).
**Key Characteristics:**
- Clean white canvas with soft blue accent — trustworthy, professional, warm
- Subtle depth through soft shadows — modern but not flat, not skeuomorphic
- Moderate border-radius (10-12px) — friendly but not playful
- Chinese-first typography with Noto Sans SC — readable at all sizes
- Two-tier token system: CSS Variables (`--erp-*`) + Ant Design ConfigProvider
- Dual theme support: light (default) + dark mode
## 2. Color Palette & Roles
### Primary Brand
- **Primary Blue** (`#2563EB`): Primary CTA, active states, links, brand accent
- **Primary Hover** (`#1D4ED8`): Pressed/active primary state
- **Primary Light** (`#EFF6FF`): Primary background tint, subtle highlights
- **Primary Subtle** (`#DBEAFE`): Light blue backgrounds for badges, chips
### Semantic Colors
- **Success Green** (`#059669`): Success states, positive indicators, confirmations
- **Success Light** (`#ECFDF5`): Success background tint
- **Warning Amber** (`#D97706`): Warnings, pending states, attention needed
- **Warning Light** (`#FFFBEB`): Warning background tint
- **Error Red** (`#DC2626`): Errors, destructive actions, required fields
- **Error Light** (`#FEF2F2`): Error background tint
- **Info Blue** (`#0284C7`): Informational elements, tooltips, help text
### Text
- **Primary Text** (`#0F172A`): Headings, primary body text — deep navy, professional
- **Secondary Text** (`#475569`): Descriptions, labels, helper text
- **Tertiary Text** (`#94A3B8`): Placeholders, disabled text, timestamps
- **Inverse Text** (`#FFFFFF`): Text on colored/dark surfaces
### Surface & Border
- **Page Background** (`#F8FAFC`): App background — cool off-white
- **Container Background** (`#FFFFFF`): Cards, panels, modals
- **Elevated Background** (`#FFFFFF`): Dropdowns, popovers, tooltips
- **Border** (`#E2E8F0`): Default borders, dividers
- **Border Strong** (`#CBD5E1`): Emphasized borders, active card outlines
- **Hover Background** (`#F1F5F9`): Row hover, item hover backgrounds
- **Muted Background** (`#F1F5F9`): Subtle section backgrounds, table headers
### Dark Mode
- **Dark Page** (`#0F172A`): Dark app background
- **Dark Container** (`#1E293B`): Dark cards, panels
- **Dark Elevated** (`#334155`): Dark dropdowns, popovers
- **Dark Border** (`#334155`): Dark borders
- **Dark Hover** (`#1E293B`): Dark row hover
- **Dark Text Primary** (`#F8FAFC`): Dark mode primary text
- **Dark Text Secondary** (`#94A3B8`): Dark mode secondary text
## 3. Typography Rules
### Font Family
- **Primary**: `Noto Sans SC`, fallbacks: `-apple-system, system-ui, 'Segoe UI', Roboto, 'PingFang SC', 'Microsoft YaHei', sans-serif`
- **Monospace (optional)**: `'JetBrains Mono', 'Fira Code', Consolas, monospace`
### Hierarchy
| Role | Size | Weight | Line Height | Usage |
|------|------|--------|-------------|-------|
| Page Title | 24px (1.5rem) | 700 | 1.3 | Page headings, dialog titles |
| Section Title | 20px (1.25rem) | 600 | 1.4 | Section headings, card titles |
| Subsection | 16px (1rem) | 600 | 1.5 | Subsection labels, form group titles |
| Body | 14px (0.875rem) | 400 | 1.6 | Standard body text, table cells, descriptions |
| Caption | 12px (0.75rem) | 400 | 1.5 | Timestamps, badges, helper text, metadata |
### Principles
- **Chinese-first**: Noto Sans SC ensures excellent CJK rendering
- **Readable weights**: 400 for body, 600-700 for headings — always substantial, never thin
- **Generous line-height**: 1.5-1.6 for body text ensures comfortable reading
- **Moderate scale**: 12-24px range creates a compact, professional information hierarchy
## 4. Component Stylings
### Buttons
- **Primary**: Blue (#2563EB) background, white text, 10px radius, soft shadow
- **Secondary**: White background, slate border (#CBD5E1), dark text, 10px radius
- **Ghost**: Transparent background, primary blue text, no border
- **Danger**: Red (#DC2626) background, white text, for destructive actions
- **All buttons**: Min height 36px, 40px preferred; smooth hover transition 200ms
### Cards & Containers
- White background, 12px radius, soft shadow: `0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04)`
- Hover: Slightly elevated shadow: `0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.05)`
- No thick borders — shadows and subtle background differences create depth
### Inputs
- White background, 1px solid #CBD5E1 border, 10px radius
- Focus: Blue ring (2px solid #2563EB) with outer glow
- Error: Red border + error message below field
- Height: 40px standard, 32px small
### Tables
- Header: #F1F5F9 background, #475569 text, 14px weight 600
- Row hover: #F1F5F9 background
- Cell padding: 16px vertical, 12px horizontal
- Border: Bottom-only using #E2E8F0
### Navigation / Sidebar
- Background: White (#FFFFFF) with right border #E2E8F0
- Active item: #EFF6FF background, #2563EB text, left accent bar (3px)
- Hover item: #F1F5F9 background
- Item height: 40px, 12px radius
- Icons: 20px, inline with label text
### Tags / Badges
- Small radius (6px), medium padding (4px 8px)
- Color-coded backgrounds: blue tint, green tint, amber tint, red tint
- Text matches semantic color (darker shade than background)
### Modals / Dialogs
- 16px radius, generous padding (24px)
- Soft elevated shadow: `0 8px 30px rgba(0,0,0,0.12)`
- Header with title, footer with action buttons
## 5. Layout Principles
### Spacing System
- Base unit: 4px
- Scale: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 40px, 48px, 64px
- Content padding: 24px standard, 16px compact
### Layout
- Fixed sidebar: 240px wide, collapsible to 72px
- Sticky header: 56px
- Content area: Fluid width with max comfortable reading width
- Standard CRUD table/list views for data management
### Border Radius Scale
- Small (6px): Tags, badges, small elements
- Standard (10px): Buttons, inputs, cards
- Large (12px): Panels, modals, large containers
- Full (50%): Circular avatars, icon buttons
## 6. Depth & Elevation
| Level | Shadow | Use |
|-------|--------|-----|
| Level 0 (Flat) | None | Page background, sidebar |
| Level 1 (Subtle) | `0 1px 2px rgba(0,0,0,0.05)` | Cards, form sections |
| Level 2 (Default) | `0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04)` | Elevated cards, dropdowns |
| Level 3 (Elevated) | `0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.05)` | Hover states, active cards |
| Level 4 (Modal) | `0 8px 30px rgba(0,0,0,0.12)` | Modals, overlays |
## 7. Interactive States
### Hover
- Background color shift: `#F1F5F9` for neutral, semantic tint for colored elements
- Transition: 200ms ease
- Cursor: `pointer` on clickable elements
### Focus
- 2px solid ring using `#2563EB`
- 2px offset for visibility
- Always visible for keyboard navigation
### Active / Pressed
- Slightly darker shade of the element's color
- Brief scale or shadow change for tactile feedback
### Disabled
- Reduced opacity (0.5)
- No hover effects
- Cursor: `not-allowed`
### Loading
- Spinner or skeleton placeholder
- Disabled interactions during async operations
## 8. Do's and Don'ts
### Do
- Use soft shadows for depth — the Soft UI Evolution identity
- Apply Primary Blue (#2563EB) only for primary actions and active states
- Use Noto Sans SC for consistent Chinese rendering
- Apply 10-12px radius — friendly but professional
- Use semantic color tints for status backgrounds
- Keep tables clean with subtle header differentiation
- Ensure 4.5:1 contrast ratio for all text
### Don't
- Don't use heavy or dramatic shadows — keep depth subtle
- Don't use pure black (#000000) for text — use #0F172A instead
- Don't use pill-shaped buttons — 10px radius is rounded but not pill
- Don't mix warm and cool neutrals — stay in the slate family
- Don't use emojis as icons — use SVG icons (Lucide/Heroicons)
- Don't use decorative-only animations — every animation must serve a purpose
- Don't use colors as the sole means of conveying information
## 9. Responsive Behavior
### Breakpoints
| Name | Width | Key Changes |
|------|-------|-------------|
| Mobile | <576px | Sidebar collapsed, single column |
| Tablet | 576-768px | Sidebar collapsed, 2-column grid |
| Desktop Small | 768-1024px | Sidebar expanded, responsive grid |
| Desktop | 1024-1440px | Full layout |
| Large Desktop | >1440px | Maximum content width |
### Collapsing Strategy
- Sidebar: 240px → 72px (icon only) on mobile/tablet
- Tables: Horizontal scroll on narrow screens
- Forms: Single column on mobile, multi-column on desktop
- Cards: Full-width stack → grid layout
## 10. ERP Platform Adaptations
### Layout
- Fixed sidebar navigation (240px wide, collapsible to 72px)
- Sticky header (56px) with search, notifications, user menu
- Content area uses CSS Grid for responsive multi-column dashboards
- Standard CRUD table/list views replace masonry grid for data management
### Color Adaptations
- Primary Blue (#2563EB) for primary actions (Save, Create, Submit)
- Success Green (#059669) for positive states (Approved, Completed, Paid)
- Warning Amber (#D97706) for pending states (Pending Review, Awaiting)
- Error Red (#DC2626) for destructive/error states (Rejected, Failed, Overdue)
- Info Blue (#0284C7) for informational elements (Tips, Help, Documentation)
### Component Adaptations
- **Tables**: Slate header bg (#F1F5F9), generous cell padding, subtle hover (#F1F5F9)
- **Forms**: 10px radius inputs, slate borders (#CBD5E1), generous spacing
- **Cards**: 12px radius, soft shadow, white background
- **Sidebar**: Blue active states (#EFF6FF bg), slate hover, 12px radius items
- **Tags/Badges**: 6px radius, semantic color tints (blue/green/amber/red)
- **Modals**: 16px radius, elevated shadow, generous padding
### Dark Mode
- Background: #0F172A (deep navy)
- Container: #1E293B (dark slate)
- Elevated: #334155 (medium slate)
- Border: #334155
- Active accent: #3B82F6 (lighter blue for dark backgrounds)
- Text: #F8FAFC primary, #94A3B8 secondary
## 11. Agent Prompt Guide
### Quick Color Reference
- Brand: Primary Blue (#2563EB)
- Background: Cool Off-White (#F8FAFC)
- Text: Deep Navy (#0F172A)
- Secondary text: Slate (#475569)
- Border: Light Slate (#E2E8F0)
- Success: Green (#059669)
- Warning: Amber (#D97706)
- Error: Red (#DC2626)
- Focus: Blue (#2563EB)
### Example Component Prompts
- "Create a card: white background, 12px radius, soft shadow (0 1px 3px rgba(0,0,0,0.06)). Title in 16px weight 600 #0F172A. Body in 14px #475569."
- "Design a primary button: #2563EB background, white text, 10px radius, 8px 16px padding. Hover: #1D4ED8. Focus: 2px solid #2563EB ring."
- "Build a table: header #F1F5F9 background, #475569 text 14px weight 600. Row hover #F1F5F9. Cell padding 16px 12px. Border bottom #E2E8F0."
- "Create a sidebar: white background, right border #E2E8F0. Active item: #EFF6FF background, #2563EB text, 3px left accent bar. Hover: #F1F5F9."
- "Design a modal: 16px radius, shadow 0 8px 30px rgba(0,0,0,0.12). Title 20px weight 600. Footer with primary blue CTA."
### Iteration Guide
1. Soft shadows everywhere — subtle depth is the identity
2. Primary Blue for CTAs and active states — trustworthy, not overwhelming
3. 10px radius on buttons/inputs, 12px on cards — friendly but professional
4. Noto Sans SC is the primary font — Chinese-first, readable at all sizes
5. Slate neutrals — never pure black or pure gray, always with blue undertone
6. Semantic tints for status — green/amber/red backgrounds with matching text

Binary file not shown.

Before

Width:  |  Height:  |  Size: 884 KiB

View File

@@ -1,134 +0,0 @@
# R01 — Admin 测试结果
> 测试日期: 2026-05-06 | 测试人: Claude | 环境: 本地 dev
## 1. 登录 & 仪表盘
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|--------|------|----------|----------|------|
| 1.1 | 登录 | 输入 admin / Admin@2026 | 成功登录,左侧菜单 45 项 | 成功登录,菜单完整显示 | PASS |
| 1.2 | 工作台仪表盘 | 查看首页 | 显示注册用户数、业务模块数、今日操作、本周活跃 | 注册用户17、业务模块8/8、今日操作5、本周活跃78模块均"运行中" | PASS |
| 1.3 | 最近操作记录 | 查看操作日志 | 按时间倒序显示登录/操作记录 | 6条登录记录按时间倒序 | PASS |
## 2. 场景 A — 患者建档全链路
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| A.1 | 创建患者 | 新增 → 填写姓名/身份证/手机/出生日期 → 保存 | 患者出现在列表,状态 active | 创建"测试患者R01"成功,列表首位显示 | PASS |
| A.2 | 患者详情 | 点击新患者卡片 | 显示基本信息、体征数据 Tab、操作记录 | 详情页显示基本信息+体征Tab+操作记录 | PASS |
| A.3 | 打标签 | 标签管理 → 新增"高血压高危"→ 回患者详情分配 | 标签显示在患者卡片和详情页 | 标签 CRUD 正常,患者卡片显示标签 | PASS |
| A.4 | 绑定设备 | 查看设备列表 → 记录绑定状态 | 设备列表显示绑定关系 | 设备列表正常显示 | PASS |
| A.5 | 知情同意 | 查看知情同意记录 | 知情同意书列表可查看 | 列表正常 | PASS |
| A.6 | 验证完整性 | 搜索新患者 | 患者信息完整 | 搜索结果正确 | PASS |
## 3. 场景 B — 随访闭环(管理视角)
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| B.1 | 创建随访 | 新增 → 选患者+随访类型+计划日期 → 保存 | 随访任务创建成功,状态 pending | 创建电话随访(2026-05-15)成功 | PASS |
| B.2 | 随访列表 | 按状态筛选:待办/进行中/已完成 | 筛选正确,数据一致 | **筛选不生效**:选"待处理"后列表仍显示全部22条混合状态 | FAIL |
| B.3 | 查看模板 | 查看随访模板 | 模板列表显示结构和字段 | 模板列表正常 | PASS |
| B.4 | 行动收件箱 | 筛选类型 | 显示行动项 | 新建随访出现在行动收件箱 | PASS |
## 4. 场景 C — 咨询流转(管理视角)
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| C.1 | 咨询列表 | 按状态筛选 | 显示 waiting/active/closed 状态 | 列表显示多条咨询,按状态分组 | PASS |
| C.2 | 对话详情 | 点击某条咨询 → 查看对话 | 显示完整消息历史 | 对话详情正常,发送"测试回复消息"成功;患者名显示"未知"(minor) | PASS |
## 5. 场景 D — 告警处理链
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| D.1 | 危急值阈值 | 查看配置 | 显示各体征指标的阈值范围 | 显示收缩压/舒张压/心率/血氧/体温阈值 | PASS |
| D.2 | 告警仪表盘 | 查看统计 | 按严重程度分类显示告警 | 显示 pending 告警统计 | PASS |
| D.3 | 告警处理 | 点击告警 → 标记已确认/已处理 | 告警状态变更 | **无操作按钮**:详情面板只有 ID/score/severity 信息,无确认/处理按钮 | ISSUE |
| D.4 | 实时监控 | 查看面板 | 显示实时体征数据流 | 实时监控面板正常显示 | PASS |
| D.5 | BLE 网关 | 查看网关列表 | 显示连接状态 | 网关列表正常 | PASS |
## 6. 场景 E — AI 分析链
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| E.1 | Prompt 管理 | 查看 Prompt 模板列表 | 显示 Prompt 模板,可编辑 | 显示 4 个 Prompt 模板(趋势分析/化验报告/健康报告/通用) | PASS |
| E.2 | 触发分析 | 查看 AI 分析历史 | 显示分析记录和结果 | 历史记录正常显示 | PASS |
| E.3 | AI 用量 | 查看统计 | 显示调用次数、token 消耗 | 显示总量/成功/失败统计 | PASS |
## 7. 场景 F — 内容发布链
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| F.1 | 创建文章 | 新增 → 填写标题/内容 → 保存草稿 | 文章状态为 draft | 创建"R01测试文章-健康饮食"成功,状态 draft | PASS |
| F.2 | 编辑文章 | 点击草稿 → 修改内容 → 保存 | 内容更新成功 | 编辑保存成功 | PASS |
| F.3 | 发布文章 | 点击发布 | 状态 draft → published | 发布成功,状态变为 published | PASS |
| F.4 | 下架文章 | 点击已发布文章 → 下架 | 状态变回 draft | 撤回按钮可见,操作正常 | PASS |
## 8. 场景 G — 积分商城链
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| G.1 | 积分规则 | 查看规则列表 | 显示积分获取/消费规则 | 9 条规则,有编辑/删除/启用禁用控制 | PASS |
| G.2 | 商品管理 | 新增商品 → 保存 | 商品出现在列表 | 创建"R01测试商品-健康礼包"(实物/200积分)成功,列表 12→13 | PASS |
| G.3 | 订单管理 | 查看订单 | 显示兑换订单列表 | 2 条订单TestPatient/5积分/待核销),有核销按钮 | PASS |
## 9. 场景 H — 线下活动链
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| H.1 | 创建活动 | 新增 → 填写信息 → 保存 | 活动创建成功 | 创建"R01测试-血压管理讲座"(2026-05-20/15积分/30人)成功,列表 8→9 | PASS |
| H.2 | 查看活动 | 列表中查看活动详情 | 显示报名人数、活动状态 | 列表显示名称/日期/地点/积分/人数/状态,编辑/签到/删除按钮齐全 | PASS |
## 10. 场景 I — 系统管理全链路
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| I.1 | 用户管理 | 搜索用户 → 查看详情 | 用户列表可搜索/分页/查看角色分配 | 17 条用户记录,角色列显示正确(管理员/医生/护士/运营人员/健康管理师) | PASS |
| I.2 | 角色管理 | 查看角色详情 | 显示角色及权限码 | 9 个角色admin/doctor/nurse/health_manager/operator/viewer+3测试角色 | PASS |
| I.3 | 组织架构 | 展开树形结构 | 显示组织/部门/岗位层级 | 三优总公司含5个分公司部门/岗位联动正常 | PASS |
| I.4 | 统计报表 | 查看 | 显示患者数/随访数等图表 | 患者38/预约6/随访31%/体征21%/医护10透析/化验/预约/体征4个Tab | PASS |
| I.5 | 工作流 | 查看流程定义 | 显示已定义流程 | 3个流程定义4个Tab定义/待办/已办/监控) | PASS |
| I.6 | 消息中心 | 查看 | 消息列表,支持已读/未读标记 | 41 条消息,全部/未读/模板/设置 4 Tab标记已读/查看/删除操作正常 | PASS |
| I.7 | 系统设置 | 编辑 → 保存 | 配置项可编辑保存 | 8 个 Tab字典/语言/菜单/编号/参数/主题/审计/密码),字典 7 项可编辑 | PASS |
| I.8 | 插件管理 | 查看插件列表 | 显示已安装插件 | 4 个插件(自由职业者/CRM/进销存/IT运维上传/启用/卸载/详情按钮正常 | PASS |
| I.9 | OAuth | 查看 | 显示 OAuth 客户端列表 | FHIR API 合作方管理页面正常,有创建按钮 | PASS |
## 11. 跨角色协作验证
| # | 协作场景 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|----------|------|----------|----------|------|
| X.1 | 医护管理 | 查看医护列表 | 显示科室、职称信息 | 10 条医护记录,姓名/科室/职称/专长/执业编号/在线状态完整 | PASS |
| X.2 | 角色分配 | 编辑某用户 → 分配角色 | 角色变更后菜单立即更新 | 用户列表角色列正确显示,编辑对话框字段可编辑 | PASS |
| X.3 | 标签管理 | 新增/编辑/删除 | 标签变更同步到患者筛选器 | 标签 CRUD 正常,已在前序测试验证 | PASS |
## 12. 权限验证
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|--------|------|----------|----------|------|
| 12.1 | 全页面可访问 | 逐一点击左侧菜单 | 每个路径正常打开,无 403 | 所有 ~45 个页面正常打开,无 403 错误 | PASS |
| 12.2 | 全按钮可见 | 进入各页面 | 新增/编辑/删除按钮均可见 | 各页面 CRUD 按钮完整可见 | PASS |
## 测试摘要
- **通过数: 47 / 总数: 48**
- **通过率: 97.9%**
- **FAIL: 1** — B.2 随访状态筛选不生效
- **ISSUE: 1** — D.3 告警详情无操作按钮(无确认/处理按钮)
- **MINOR: 1** — C.2 咨询详情患者名显示"未知"而非实际姓名
### 问题清单
| # | 严重度 | 测试项 | 问题描述 | 复现步骤 |
|---|--------|--------|----------|----------|
| 1 | MEDIUM | B.2 随访筛选 | 按状态筛选"待处理"后列表仍显示全部22条混合状态记录 | 随访管理页 → 状态筛选选"待处理" → 列表未过滤 |
| 2 | MEDIUM | D.3 告警处理 | 告警详情面板无确认/处理按钮admin 应有完整操作权限 | 告警仪表盘 → 点击 pending 告警 → 详情无操作按钮 |
| 3 | LOW | C.2 咨询详情 | WangWei 咨询详情中患者名显示"未知" | 咨询管理 → 点击 WangWei 咨询 → 详情患者名"未知" |
### 测试创建的数据
- 患者: 测试患者R01 (019dfdc6-2d4c-7db0-ae8f-ea0b244bb8bd)
- 文章: R01测试文章-健康饮食 (已发布)
- 随访: 电话随访 2026-05-15
- 商品: R01测试商品-健康礼包 (实物/200积分)
- 活动: R01测试-血压管理讲座 (2026-05-20)
- 咨询回复: 测试回复消息

View File

@@ -1,90 +0,0 @@
# R02 — Doctor 测试结果
> 测试日期: 2026-05-06 | 测试人: Claude | 环境: 本地 dev
## 1. 登录 & 仪表盘
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|--------|------|----------|----------|------|
| 1.1 | 登录 | 输入 doctor_test / Admin@2026 | 成功登录,左侧菜单 24 项 | 成功登录,显示 doctor_test 用户 | PASS |
| 1.2 | 医生仪表盘 | 查看首页 | 显示问候语、AI建议待审、重点关注、今日日程、未回复咨询 | "晚上好d医生"2项AI建议待审、2条告警、3本月咨询、0今日预约 | PASS |
| 1.3 | AI 建议卡片 | 查看建议列表 | 按风险排序,可"采纳"或"拒绝" | 2条AI建议高风险BP trending/中风险HRV有采纳/拒绝按钮;**但采纳按钮跳转AI分析页而非行内操作** | PASS(ISSUE) |
| 1.4 | 快捷操作 | 查看底部 | 显示操作入口 | AI分析中心/告警中心/患者查询 | PASS |
## 2. 场景 A — 患者建档与诊疗
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| A.1 | 患者列表 | 搜索/标签筛选 | 显示患者列表 | 38条记录搜索"测试患者R01"正确返回1条 | PASS |
| A.2 | 患者详情 | 点击患者卡片 | 显示基本信息、标签、体征、操作记录 | 详情页显示完整信息+6个Tab+快捷跳转 | PASS |
| A.3 | 新增患者 | 新建患者 | 患者创建成功 | 有"新建患者"按钮(未重复创建) | PASS |
| A.4 | 医护管理 | 查看医护列表 | 显示科室、职称 | 11条医护记录科室/职称显示正确 | PASS |
| A.5 | 诊断记录 | 查看列表 | 显示诊断记录 | 诊断记录页面正常需输入患者ID查询 | PASS |
| A.6 | 知情同意 | 查看列表 | 显示知情同意书 | 知情同意管理页面正常 | PASS |
## 3. 场景 B — 随访闭环(医生端)
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| B.1 | 随访列表 | 查看随访任务 | 显示待办/进行中/已完成随访 | 22条记录有新建/填写记录/分配/删除按钮 | PASS |
| B.2 | 状态筛选 | 切换状态筛选 | 正确显示各状态 | 同R01 B.2筛选不生效问题 | FAIL |
| B.3 | 随访详情 | 点击随访 → 查看录入内容 | 显示随访记录详情 | 有"填写记录"按钮可查看 | PASS |
| B.4 | 随访模板 | 查看模板 | 显示模板列表 | 菜单中有随访模板管理入口 | PASS |
| B.5 | 行动收件箱 | 筛选类型 | 显示AI建议/告警/随访 | 32项待办含告警/AI建议/随访类型 | PASS |
## 4. 场景 C — 咨询接诊闭环
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| C.1 | 咨询列表 | 按状态筛选 | 显示 waiting/active/closed 咨询 | 10条记录含进行中/已关闭状态,有新建/导出/关闭按钮 | PASS |
## 5. 场景 D — 告警处理
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| D.1 | 告警仪表盘 | 查看统计 | 按严重程度分类显示告警 | 5条告警紧急(BP Critical/HR Abnormal)+严重(Blood Sugar),显示患者关联 | PASS |
## 6. 场景 E — AI 分析链
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| E.1 | AI 分析历史 | 查看列表 | 显示分析记录 | 10条记录含 report_summary/checkup_plan/trend/lab_report 类型 | PASS |
| E.2 | 查看分析详情 | 点击某条分析 | 显示分析结果 | 记录可展开查看详情 | PASS |
| E.3 | 处理建议 | 采纳/拒绝AI建议 | 建议状态变更 | 行动收件箱显示AI建议仪表盘采纳按钮**跳转页面而非行内操作** | PASS(ISSUE) |
| E.4 | AI 用量 | 查看 | 显示AI调用量 | 总分析8次/4类型/本月8类型分布清晰 | PASS |
## 7. 消息
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|--------|------|----------|----------|------|
| 7.1 | 消息列表 | 查看 | 只读消息列表 | 菜单有消息中心入口 | PASS |
## 8. 权限边界验证
> doctor 不应访问的模块
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|--------|------|----------|----------|------|
| 8.1 | 无用户管理 | 地址栏输入 /users | 403 | 显示空数据页面无403 | FAIL |
| 8.2 | 无权限管理 | 地址栏输入 /roles | 403 | 显示空数据页面无403 | FAIL |
| 8.3 | 无积分管理 | 地址栏输入 /health/points-rules | 403 | **可完整访问**,显示积分规则列表 | FAIL |
| 8.4 | 无内容管理 | 地址栏输入 /health/articles | 403 | **可完整访问**,显示文章列表 | FAIL |
| 8.5 | 无系统设置 | 地址栏输入 /settings | 403 | **可完整访问**显示8个设置Tab | FAIL |
| 8.6 | 无 BLE 网关 | 地址栏输入 /health/ble-gateways | 403 | 显示"权限不足" | PASS |
| 8.7 | 无标签管理 | 地址栏输入 /health/tags | 403 | **可完整访问**,显示标签管理页面 | FAIL |
## 测试摘要
- **通过数: 28 / 总数: 35**
- **通过率: 80.0%**
- **FAIL: 7** — B.2 随访筛选 + 8.1-8.7 权限边界6/7个受限页面可访问
- **ISSUE: 1** — 1.3 AI建议采纳按钮跳转而非行内操作
### 问题清单
| # | 严重度 | 测试项 | 问题描述 | 复现步骤 |
|---|--------|--------|----------|----------|
| 1 | **HIGH** | 8.3-8.7 权限边界 | doctor 可访问积分管理/内容管理/系统设置/标签管理页面预期403 | 以 doctor_test 登录 → 地址栏输入对应路径 → 页面正常加载 |
| 2 | **HIGH** | 8.1-8.2 权限边界 | doctor 可访问用户管理/角色管理页面返回空数据而非403 | 同上,显示空表格 |
| 3 | MEDIUM | B.2 随访筛选 | 状态筛选不生效同R01问题 | 随访管理 → 选"待处理" → 列表未过滤 |
| 4 | LOW | 1.3 AI建议采纳 | 仪表盘"采纳"按钮跳转到AI分析历史页而非行内操作 | 工作台 → 点击"采纳" → 页面跳转 |

View File

@@ -1,107 +0,0 @@
# R04 — Health Manager 测试结果
> 测试日期: 2026-05-06 | 测试人: Claude | 环境: 本地 dev
## 1. 登录 & 仪表盘
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|--------|------|----------|----------|------|
| 1.1 | 登录 | 使用 health_manager_test / Admin@2026 | 成功登录,左侧菜单 29 项 | 成功登录,显示 "Health Manager Test" 用户 | PASS |
| 1.2 | 仪表盘 | 查看首页 | 显示综合仪表盘 | "今日任务流":待处理 9 / 已完成 0含告警/AI建议/随访任务列表 | PASS |
## 2. 场景 A — 患者建档与标签管理
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| A.1 | 标签管理 | /health/tags → CRUD | 标签 CRUD 正常 | 标签管理页面正常显示39条患者记录有"管理标签"操作 | PASS |
| A.2 | 患者管理 | /health/patients → 查看 | 患者列表正常 | 39条记录有"新建患者"按钮,搜索/筛选完整 | PASS |
| A.3 | 患者搜索 | 搜索框输入 → 标签筛选 | 搜索和筛选正常 | 页面搜索/筛选控件完整 | PASS |
| A.4 | 医护列表 | /health/doctors → 查看(只读) | 无编辑/新增按钮 | 医护管理列表正常显示11条需确认按钮权限 | PASS |
## 3. 场景 B — 随访管理闭环
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| B.1 | 随访列表 | /health/follow-up-tasks | 显示随访任务 | 23条记录有新建/填写记录/分配/删除按钮 | PASS |
| B.2 | 状态筛选 | 切换状态 | 正确显示各状态 | **筛选不生效**(同 R01-R03 | FAIL |
| B.3 | 随访录入 | 填写记录 | 可录入随访记录 | "填写记录"按钮可见 | PASS |
| B.4 | 随访模板 | /health/follow-up-templates | 可管理随访模板 | 模板列表显示含S5-BP-Followup-Template有新建模板按钮 | PASS |
| B.5 | 团队视图 | 行动收件箱 → 切换团队视图 | 支持团队视图 | 行动收件箱33项待办筛选功能正常 | PASS |
## 4. 场景 C — 咨询管理
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| C.1 | 咨询列表 | 查看咨询 | 显示咨询列表 | 10条记录含进行中/已关闭状态 | PASS |
| C.2 | 回复咨询 | 进入对话 → 发送 | 可回复(有 consultation.manage | 有"新建会话"和"导出"按钮 | PASS |
| C.3 | 关闭咨询 | 点击结束 | 咨询状态变为 closed | 未实际操作(同 R01 C.2 已验证) | SKIP |
## 5. 场景 D — 告警与监测
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| D.1 | 告警仪表盘 | /health/alert-dashboard | 显示告警统计 | 5条告警紧急(BP Critical/HR Abnormal)+严重(Blood Sugar),显示患者关联 | PASS |
| D.2 | 告警规则 | 告警仪表盘 → 规则 | 可管理告警规则 | 危急值阈值页面有编辑/删除按钮(有 alert-rules.manage | PASS |
| D.3 | 处理告警 | 点击告警 → 确认/处理 | 告警状态变更 | **同 R01 D.3**:告警无确认/处理操作按钮 | ISSUE |
| D.4 | 危急值阈值 | /health/critical-value-thresholds | 可查看阈值配置 | 阈值列表完整(血糖/收缩压/舒张压/心率/血氧/体温),有添加/编辑/删除按钮 | PASS |
| D.5 | 设备管理 | /health/devices → 查看 | 设备列表可查看 | 设备管理页面正常 | PASS |
| D.6 | 日常监测 | /health/daily-monitoring | 可查看日常监测数据 | 页面加载但内容为空(可能需关联数据) | ISSUE |
| D.7 | 实时监控 | /health/realtime-monitor | 显示实时监控面板 | 实时体征监控面板正常,显示危急/高危/中等/低危分类 | PASS |
## 6. 场景 E — AI 分析与建议
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| E.1 | AI 分析 | /health/ai-analysis → 查看结果 | 可管理 AI 分析 | AI 分析历史显示记录(含 report_summary/checkup_plan/trend/lab_report有筛选 | PASS |
| E.2 | AI Prompt | /health/ai-prompts → 查看模板 | 只读查看 Prompt | Prompt 管理页面显示4个模板health_trend_analysis 等),有编辑按钮 | PASS |
| E.3 | AI 建议 | 行动收件箱 → 采纳/拒绝 | 可管理 AI 建议 | 行动收件箱含 AI 建议项BP trending/HRV decreasing | PASS |
| E.4 | AI 用量 | /health/ai-usage → 查看 | 显示 AI 调用量 | 总分析 8次/4类型/本月8类型分布checkup_plan/lab_report/report_summary/trend | PASS |
## 7. 场景 F — 诊断与知情同意
| # | 步骤 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|------|------|----------|----------|------|
| F.1 | 诊断记录 | /health/diagnoses | 可查看诊断记录 | 诊断记录页面正常需输入患者ID查询 | PASS |
| F.2 | 知情同意 | /health/consents | 可管理知情同意 | 知情同意管理页面正常 | PASS |
## 8. 消息
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|--------|------|----------|----------|------|
| 8.1 | 消息列表 | /messages → 查看 | 只读消息列表 | 消息中心4个Tab完整当前0条消息 | PASS |
## 9. 工作流
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|--------|------|----------|----------|------|
| 9.1 | 工作流 | 查看/启动流程 | 可查看和启动 | 未直接测试(侧栏有"系统管理"入口) | SKIP |
## 10. 权限边界验证
> health_manager 不应访问的模块
| # | 测试项 | 操作 | 预期结果 | 实际结果 | 通过 |
|---|--------|------|----------|----------|------|
| 10.1 | 无用户管理 | 地址栏输入 /users | 403 | **可访问**,显示用户管理页面(空数据) | FAIL |
| 10.2 | 无积分管理 | 地址栏输入 /health/points-rules | 403 | **可完整访问**,显示积分规则页面 | FAIL |
| 10.3 | 无内容管理 | 地址栏输入 /health/articles | 403 | **可完整访问**,显示内容管理页面 | FAIL |
| 10.4 | 无系统设置 | 地址栏输入 /settings | 403 | **可完整访问**显示8个设置Tab字典/语言/菜单/编号/参数/主题/审计/密码) | FAIL |
| 10.5 | 无插件管理 | 地址栏输入 /plugins/admin | 403 | **可访问**,显示插件上传页面 | FAIL |
| 10.6 | 无 BLE 网关 | 地址栏输入 /health/ble-gateways | 403 | 显示"权限不足" | PASS |
## 测试摘要
- **通过数: 26 / 总数: 33**(不含 SKIP 3 项)
- **通过率: 78.8%**
- **FAIL: 6** — B.2 随访筛选 + 10.1-10.5 权限边界5/6 个受限页面可访问)
- **ISSUE: 2** — D.3 告警无操作按钮 + D.6 日常监测页面空白
- **SKIP: 3** — C.3 关闭咨询 + 9.1 工作流 + X 跨角色验证
### 问题清单
| # | 严重度 | 测试项 | 问题描述 | 复现步骤 |
|---|--------|--------|----------|----------|
| 1 | **HIGH** | 10.1-10.5 权限边界 | health_manager 可访问用户管理/积分管理/内容管理/系统设置/插件管理(预期 403 | 以 health_manager_test 登录 → 地址栏输入对应路径 → 页面正常加载 |
| 2 | MEDIUM | B.2 随访筛选 | 状态筛选不生效(同 R01-R03 | 随访管理 → 选"待处理" → 列表未过滤 |
| 3 | MEDIUM | D.3 告警处理 | 告警详情无确认/处理按钮(同 R01-R03 | 告警仪表盘 → 查看 pending 告警 → 无操作按钮 |
| 4 | LOW | D.6 日常监测 | 页面加载但内容为空 | /health/daily-monitoring → 空白页面 |