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

@@ -68,28 +68,25 @@ class _AccountHeader extends StatelessWidget {
children: [
InkWell(
onTap: () => pushRoute(ref, 'profile'),
borderRadius: BorderRadius.circular(24),
borderRadius: BorderRadius.circular(33),
child: Container(
width: 66,
height: 66,
decoration: BoxDecoration(
gradient: const LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [Color(0xFFA5F3FC), Color(0xFFD8B4FE)],
),
borderRadius: BorderRadius.circular(24),
color: Colors.white,
shape: BoxShape.circle,
border: Border.all(color: const Color(0xFFE9EEF5)),
boxShadow: [
BoxShadow(
color: const Color(0xFF7C3AED).withValues(alpha: 0.12),
blurRadius: 22,
offset: const Offset(0, 12),
color: const Color(0xFF101828).withValues(alpha: 0.06),
blurRadius: 14,
offset: const Offset(0, 6),
),
],
),
child: const Icon(
Icons.person_rounded,
color: Colors.white,
color: Color(0xFF94A3B8),
size: 34,
),
),
@@ -357,9 +354,9 @@ class _NavigationSection extends StatelessWidget {
return _Panel(
title: '功能入口',
backgroundGradient: const LinearGradient(
begin: Alignment.bottomCenter,
end: Alignment.topCenter,
colors: [Color(0xFFA8EDEA), Color(0xFFFED6E3)],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Color(0xFFEAF4FB), Color(0xFFF4F9FD)],
),
child: GridView.builder(
itemCount: items.length,