feat: 用药打卡全面重构 - 按次追踪 + 独立打卡页 + 任务区汇总

- 后端用药提醒改为按次粒度(每个服药时间独立判断)
- 新增 per-dose 打卡/取消打卡 API
- 新增 MedicationCheckInPage 独立打卡页(每药每时间单独toggle)
- 用药列表删底部弹窗(编辑/停药),点药品直接进该药打卡页
- 任务区用药汇总为一行(过期待服已服)
- 支持隔天(EveryOtherDay)/每周频率判断
- 删历史对话功能(ConversationItem + conversationListProvider + UI)
This commit is contained in:
MingNian
2026-06-08 16:21:13 +08:00
parent fc7150ad60
commit 16d1d3d305
17 changed files with 519 additions and 373 deletions

View File

@@ -150,6 +150,7 @@ class _ExercisePlanPageState extends ConsumerState<ExercisePlanPage> {
return ListView.builder(padding: const EdgeInsets.all(12), itemCount: plans.length, itemBuilder: (ctx, i) {
final p = plans[i];
final items = (p['items'] as List?)?.cast<Map<String, dynamic>>() ?? [];
if (items.isEmpty) return const SizedBox.shrink();
final total = items.length;
final done = items.where((it) => it['isCompleted'] == true).length;
// 基于weekStartDate推算今天对应的条目索引