智慧水务管理系统 - 精河县供水工程综合管理平台

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import 'package:flutter/material.dart';
  2. import 'package:provider/provider.dart';
  3. import 'services/auth_service.dart';
  4. import 'services/api_service.dart';
  5. import 'pages/login/login_page.dart';
  6. import 'pages/home/home_page.dart';
  7. import 'pages/water/monitor_page.dart';
  8. import 'pages/water/alert_page.dart';
  9. import 'pages/water/dispatch_page.dart';
  10. import 'pages/water/quality_page.dart';
  11. import 'pages/patrol/task_list_page.dart';
  12. import 'pages/patrol/task_detail_page.dart';
  13. import 'pages/patrol/track_page.dart';
  14. import 'pages/revenue/meter_reading_page.dart';
  15. import 'pages/revenue/billing_page.dart';
  16. import 'pages/revenue/payment_page.dart';
  17. void main() async {
  18. WidgetsFlutterBinding.ensureInitialized();
  19. // 初始化 AuthService 并恢复登录态
  20. final authService = AuthService();
  21. await authService.init();
  22. // 初始化全局 HTTP 客户端
  23. ApiService.instance.init(authService);
  24. runApp(WaterApp(authService: authService));
  25. }
  26. class WaterApp extends StatelessWidget {
  27. final AuthService authService;
  28. const WaterApp({super.key, required this.authService});
  29. @override
  30. Widget build(BuildContext context) {
  31. return ChangeNotifierProvider.value(
  32. value: authService,
  33. child: MaterialApp(
  34. title: '智慧水务',
  35. debugShowCheckedModeBanner: false,
  36. theme: ThemeData(
  37. colorSchemeSeed: const Color(0xFF1976D2),
  38. useMaterial3: true,
  39. brightness: Brightness.light,
  40. ),
  41. darkTheme: ThemeData(
  42. colorSchemeSeed: const Color(0xFF1976D2),
  43. useMaterial3: true,
  44. brightness: Brightness.dark,
  45. ),
  46. themeMode: ThemeMode.system,
  47. initialRoute: '/',
  48. routes: {
  49. '/': (context) => Consumer<AuthService>(
  50. builder: (_, auth, __) =>
  51. auth.isLoggedIn ? const HomePage() : const LoginPage(),
  52. ),
  53. '/water/monitor': (context) => const MonitorPage(),
  54. '/water/alert': (context) => const AlertPage(),
  55. '/water/dispatch': (context) => const DispatchPage(),
  56. '/water/quality': (context) => const QualityPage(),
  57. // 巡检管理
  58. '/patrol/tasks': (context) => const TaskListPage(),
  59. // 营收管理
  60. '/revenue/meter-reading': (context) => const MeterReadingPage(),
  61. '/revenue/billing': (context) => const BillingPage(),
  62. '/revenue/payment': (context) => const PaymentPage(),
  63. },
  64. ),
  65. );
  66. }
  67. }