feat: 健康录入提醒 + 多指标异常 + 用药漏服 + UI 优化

后端
- NotificationPreference 增加健康录入提醒总开关和 5 子项(血压/心率/血糖/血氧/体重)
- EF 迁移 AddHealthRecordReminder
- 新增 GET/PUT /api/notification-prefs
- 新增 HealthRecordReminderService 每天 9 点/12 点扫描未录入用户推送提醒

前端
- 通知偏好对接真实后端 API
- 设置页新增「健康录入提醒」总开关+5 子项
- 通知中心右上角加齿轮跳设置页
- 今日健康卡片:4 项异常检测+多项合并;用药只显漏服并按时间窗口区分文案
- 侧边栏头像改圆形白底灰图标,去掉紫色品牌渐变
- 整体背景统一浅灰白 #F6F8FC,去掉浅紫渐变
- 设置页简化(去掉分组/彩色图标方块)
- 健康档案保存按钮移到右上角,TextButton 全局默认黑色
- API baseUrl 跟随网络环境
This commit is contained in:
MingNian
2026-06-24 22:11:21 +08:00
parent 7ff429e071
commit 53ce19e8c3
18 changed files with 2379 additions and 565 deletions

View File

@@ -67,8 +67,8 @@ class _MedicationListPageState extends ConsumerState<MedicationListPage>
preferredSize: const Size.fromHeight(48),
child: TabBar(
controller: _tabCtrl,
indicatorColor: AppColors.primary,
labelColor: AppColors.primary,
indicatorColor: AppColors.textPrimary,
labelColor: AppColors.textPrimary,
unselectedLabelColor: AppColors.textHint,
labelStyle: const TextStyle(
fontSize: 15,
@@ -84,9 +84,7 @@ class _MedicationListPageState extends ConsumerState<MedicationListPage>
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)),
child: const Icon(Icons.add, size: 28, color: Colors.white),
),
body: Container(
decoration: const BoxDecoration(gradient: AppColors.bgGradient),
child: AppFutureView<List<Map<String, dynamic>>>(
body: AppFutureView<List<Map<String, dynamic>>>(
future: _future,
onRetry: _load,
errorTitle: '用药信息加载失败',
@@ -121,10 +119,15 @@ class _MedicationListPageState extends ConsumerState<MedicationListPage>
child: Container(
padding: const EdgeInsets.all(AppTheme.sLg),
decoration: BoxDecoration(
gradient: AppColors.surfaceGradient,
color: Colors.white,
borderRadius: BorderRadius.circular(AppTheme.rLg),
border: Border.all(color: AppColors.borderLight),
boxShadow: AppColors.cardShadowLight,
boxShadow: [
BoxShadow(
color: const Color(0xFF101828).withValues(alpha: 0.08),
blurRadius: 18,
offset: const Offset(0, 6),
),
],
),
child: Row(
children: [
@@ -207,7 +210,6 @@ class _MedicationListPageState extends ConsumerState<MedicationListPage>
);
},
),
),
);
}
}