feat: 二级页面色彩刷新 + 用药/通知/设备重构 + 后端健康档案/通知管线增强 + 大量测试

## 后端
- 健康档案: 新增手术状态字段 + EF 迁移; HealthArchiveService 新增查询方法
- 健康记录: HealthRecordService 新增批量/统计方法; 契约扩展
- 用药: 新增 MedicationScheduleStatus 枚举; MedicationService 排班逻辑调整
- 通知: EfUserNotificationPipeline 重构; 新增 EfReminderCatchUpService; 通知管线支持更多场景
- 用户: UserService 账号删除逻辑; 新增 local_account_file_cleanup; EfUserRepository 扩展
- AI: medication_agent_handler 微调; prompt_manager 优化; AiConversationService 上下文处理
- Endpoint: doctor/medication/exercise/health/notification/user 等多接口调整
- BackgroundService: health_record_reminder_service 重构, 提醒补漏逻辑
- 测试: 新增 account_deletion/doctor_endpoint/medication_schedule/medication_update/prompt_manager 测试

## 前端
- UI 系统: app_theme 大幅重构; app_colors/app_design_tokens/app_module_visuals 调整; 二级页面色彩刷新
- 主页: home_page 背景渐变 + 消息列表提取 _HomeMessages + 通知检查逻辑; chat_messages_view 全面重构
- 用药: medication_list/edit/checkin 三页重构, 新增 medication_ui_logic 抽取
- 通知: notification_prefs_page 重构, 新增 notification_prefs_logic; notification_center 优化
- 设备: device_management 重构, 新增 device_sync_ui_logic; device_scan 优化
- 趋势图: trend_page 大幅重构
- 登录: login_page 重构
- 个人资料: 新增 profile_edit_page; profile_page 优化
- 运动: 新增 exercise/ 目录 + care_plan_ui_logic
- 其他: remaining_pages/report_pages/health_drawer/admin/doctor 等多页面调整
- 组件: common_widgets/app_empty_state/app_error_state/app_future_view/app_toast/ai_content 优化
- Provider: chat_provider/consultation_provider/data_providers/auth_provider 调整
- AndroidManifest: 移除多余权限
- 测试: 新增 ai_content/care_plan/home_message/login_flow/medication_checkin/medication_ui/notification_prefs/profile_device/secondary_page/swipe_delete 等大量测试

## 文档
- 新增 ui-design-system.md 设计系统文档
- 新增 secondary-page-color-refresh 计划 + specs 目录
This commit is contained in:
MingNian
2026-07-15 23:22:52 +08:00
parent e654c1e0cc
commit fade61ac21
138 changed files with 12636 additions and 5013 deletions

79
docs/ui-design-system.md Normal file
View File

@@ -0,0 +1,79 @@
# 健康 App 前端 UI 设计系统
这份规范用于后续逐页精修。首页是品牌化例外,保持当前紫色背景和已有结构;以下规则主要约束普通二级页面。
## 1. 页面层级
- 标题栏:纯白背景,深色标题和返回图标。
- 页面画布:`#F7F8FA`,只负责建立内容边界,不作为卡片颜色。
- 主要内容组:纯白背景,区域间保留 1216 px 的画布间距。
- 列表行:同一内容组内连续排列,用文字区域浅分隔线区分,不为每一行单独套卡片。
- 重点对象报告、设备、AI 分析和关键概览可以使用独立白色卡片。
## 2. 颜色角色
- 品牌紫:通用选中、焦点、品牌按钮描边和少量重点操作。
- 模块色:只用于统一样式的图标、极浅图标底、图表曲线、小标签和状态识别。
- 中性色:页面画布、分隔线、正文层级和不可用状态。
- 语义色:绿色表示成功/正常,黄色表示提醒/等待,红色表示错误/危险,蓝色表示信息/进行中。
- 禁止模块色用于整页背景、大面积头部、大卡片底色和普通新增按钮。
## 3. 间距
- 页面左右边距16 px。
- 页面顶部内容间距12 px。
- 内容组间距1216 px。
- 列表图标与文字12 px。
- 列表行垂直内边距:根据内容使用 12 或 16 px不通过缩小字体制造紧凑感。
## 4. 圆角与阴影
- 所有圆角使用 `AppRadius`,不得在页面里随意新增数值。
- 连续内容组默认使用 16 px 圆角。
- 输入框和小型操作使用 1014 px 圆角。
- 普通内容组默认无阴影、无描边。
- 浮动操作可以使用一层轻微中性阴影;同一组件不同时使用明显边框和重阴影。
## 5. 字体层级
- 页面标题1920 px粗体颜色 `textPrimary`
- 区域标题18 px粗体。
- 列表主标题1617 px中粗体。
- 正文和补充说明1315 px保证对比度不使用过浅小字。
- 数值、单位、份量和热量在同一行时保持基线、字号和字重协调。
- 选中状态不能改变文字大小、字重或位置。
## 6. 图标
- 全 App 优先使用同一套 Material 线性 `outlined/rounded` 图标,不混用大面积实心图标。
- 普通列表图标底座统一为 40×40 px、10 px 圆角,图标统一为 22 px。
- 不同模块可以改变图标和极浅底色,但尺寸、线条感觉、底座形状和对齐必须一致。
- 无底座的小型操作图标统一为 2024 px并保证至少 44 px 点击区域。
## 7. 按钮
- 通用新增:白底、紫色渐变细描边、深紫色线性加号;所有模块共用同一组件。
- 页面主要操作:优先使用白底紫色品牌描边;是否使用实心按钮由逐页任务重要性决定。
- 次要操作:白底或极浅灰底、深色文字。
- 危险操作:白底红字;只有确认删除阶段显示红色危险面。
- 新增、上传、绑定和记录属于通用操作,不跟随模块颜色。
## 8. 列表与滑动操作
- 列表行连续排列,分隔线从文字区域开始,不穿过左侧图标。
- 整行可点击,附属按钮不能缩小主点击区域。
- 删除背景默认完全隐藏,向左打开删除操作后才出现。
- 删除失败时保留真实列表数据,不提前移除前端项目。
## 9. 弹窗、表单和状态
- 弹窗、底部面板统一白色,不跟随模块色。
- 输入框焦点继续使用品牌紫,错误提示使用语义红。
- 空状态说明原因并提供一个明确下一步;加载、空、失败和未开放必须能被用户区分。
- 暂未启用的问诊和随访显示明确准备状态,不伪装成可用功能。
## 10. 逐页精修原则
- 每次只精修一个真实页面或一组完全同构页面。
- 先看真机截图,再确定该页的信息层级、内容组、操作和模块色用量。
- 不因建立设计系统而批量重排所有页面;公共组件只提供一致基础,页面布局仍按实际任务设计。