前端: - 新增 DietCapturePage 独立拍照识别页 - 5种消息卡片类型完整实现(数据确认/用药/饮食/报告/快捷选项) - 任务卡片区:异常警告+数据摘要+自动折叠 - 侧滑抽屉:历史对话列表+对话管理 - 运动计划:进度卡片+创建计划+每日打卡 - 报告页:拍照/相册/PDF上传+分析 - 面板按钮补全血氧/体重录入 - UI 升级:紫色主题+动画+气泡样式 - 全部迁移 Riverpod 3.x API 后端: - 新增 _UpdateMessageTypeAndMetadata,Tool Calling 自动映射消息类型 - SSE answer 事件携带 type 字段 - 提示词优化(移除"阿福",语气规则归位) - 运动计划支持 AI 创建和打卡 测试: - 新增 full_e2e_test.py 全流程测试(认证/数据CRUD/6个Agent对话/VLM/报告)
64 lines
2.0 KiB
Dart
64 lines
2.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'navigation_provider.dart';
|
|
import '../pages/auth/login_page.dart';
|
|
import '../pages/home/home_page.dart';
|
|
import '../pages/chart/trend_page.dart';
|
|
import '../pages/medication/medication_list_page.dart';
|
|
import '../pages/report/report_pages.dart';
|
|
import '../pages/consultation/consultation_pages.dart';
|
|
import '../pages/settings/settings_pages.dart';
|
|
import '../pages/profile/profile_page.dart';
|
|
import '../pages/diet/diet_capture_page.dart';
|
|
import '../pages/remaining_pages.dart';
|
|
|
|
/// 根据路由信息返回对应页面
|
|
Widget buildPage(RouteInfo route) {
|
|
final params = route.params;
|
|
switch (route.name) {
|
|
case 'login':
|
|
return const LoginPage();
|
|
case 'home':
|
|
return const HomePage();
|
|
case 'trend':
|
|
return TrendPage(metricType: params['type'] ?? '');
|
|
case 'calendar':
|
|
return const HealthCalendarPage();
|
|
case 'medications':
|
|
return const MedicationListPage();
|
|
case 'medicationAdd':
|
|
return const MedicationEditPage();
|
|
case 'medicationEdit':
|
|
return MedicationEditPage(id: params['id']);
|
|
case 'reports':
|
|
return const ReportListPage();
|
|
case 'reportDetail':
|
|
return ReportDetailPage(id: params['id']!);
|
|
case 'doctors':
|
|
return const DoctorListPage();
|
|
case 'consultation':
|
|
return DoctorChatPage(id: params['id']!);
|
|
case 'exercisePlan':
|
|
return const ExercisePlanPage();
|
|
case 'dietRecords':
|
|
return const DietRecordListPage();
|
|
case 'dietCapture':
|
|
return const DietCapturePage();
|
|
case 'profile':
|
|
return const ProfilePage();
|
|
case 'profileEdit':
|
|
return const EditProfilePage();
|
|
case 'healthArchive':
|
|
return const HealthArchivePage();
|
|
case 'followups':
|
|
return const FollowUpListPage();
|
|
case 'settings':
|
|
return const SettingsPage();
|
|
case 'notificationPrefs':
|
|
return const NotificationPrefsPage();
|
|
case 'staticText':
|
|
return StaticTextPage(type: params['type']!);
|
|
default:
|
|
return const LoginPage();
|
|
}
|
|
}
|