- BLE: 修复Omron设备Indication模式连接(先订阅后配CCCD + forceIndications) + 直连重连
- BLE: 设备断连实时检测(connectionState流→Provider→UI)
- 修复: 血压数据上报后端枚举不匹配(Device→DeviceSync)导致500
- 新增: DELETE /api/health-records/{id} 后端接口
- 设备管理页: 白色主题重设计 + 直连重连 + 实时状态 + Toast通知
- 设备扫描页: 白色主题 + 扫描动画居中 + 已连接等待页面
- 健康记录: 左滑删除(Dismissible) + 同时清理_allRecords和_filtered
- 导航: 修复自定义路由栈下Navigator.pop黑屏bug
- 文档: 医生端合并App完整设计文档(已确认版)
77 lines
2.7 KiB
Dart
77 lines
2.7 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/medication/medication_checkin_page.dart';
|
|
import '../pages/medication/medication_edit_page.dart';
|
|
import '../pages/report/report_pages.dart';
|
|
import '../pages/report/ai_analysis_page.dart';
|
|
import '../pages/consultation/consultation_pages.dart';
|
|
import '../pages/settings/settings_pages.dart';
|
|
import '../pages/settings/notification_prefs_page.dart';
|
|
import '../pages/profile/profile_page.dart';
|
|
import '../pages/profile/service_package_detail_page.dart';
|
|
import '../pages/diet/diet_capture_page.dart';
|
|
import '../pages/device/device_scan_page.dart';
|
|
import '../pages/device/device_management_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']?.isNotEmpty == true ? params['type'] : null);
|
|
case 'calendar':
|
|
return const HealthCalendarPage();
|
|
case 'medications':
|
|
return const MedicationListPage();
|
|
case 'medCheckIn':
|
|
return MedicationCheckInPage(medId: params['id']);
|
|
case 'medicationEdit':
|
|
return const MedicationEditPage();
|
|
case 'reports':
|
|
return const ReportListPage();
|
|
case 'aiAnalysis':
|
|
return AiAnalysisPage(id: params['id']!);
|
|
case 'consultation':
|
|
return DoctorChatPage(id: params['id']!);
|
|
case 'exercisePlan':
|
|
return const ExercisePlanPage();
|
|
case 'exerciseCreate':
|
|
return const ExercisePlanCreatePage();
|
|
case 'dietRecords':
|
|
return const DietRecordListPage();
|
|
case 'dietCapture':
|
|
return const DietCapturePage();
|
|
case 'profile':
|
|
return const ProfilePage();
|
|
case 'devices':
|
|
return const DeviceManagementPage();
|
|
case 'deviceScan':
|
|
return const DeviceScanPage();
|
|
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']!);
|
|
case 'servicePackageDetail':
|
|
return ServicePackageDetailPage(packageId: params['id']!);
|
|
case 'dietDetail':
|
|
return DietRecordDetailPage(id: params['id']!);
|
|
default:
|
|
return const LoginPage();
|
|
}
|
|
}
|