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

main.dart 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. void main() async {
  12. WidgetsFlutterBinding.ensureInitialized();
  13. // 初始化 AuthService 并恢复登录态
  14. final authService = AuthService();
  15. await authService.init();
  16. // 初始化全局 HTTP 客户端
  17. ApiService.instance.init(authService);
  18. runApp(WaterApp(authService: authService));
  19. }
  20. class WaterApp extends StatelessWidget {
  21. final AuthService authService;
  22. const WaterApp({super.key, required this.authService});
  23. @override
  24. Widget build(BuildContext context) {
  25. return ChangeNotifierProvider.value(
  26. value: authService,
  27. child: MaterialApp(
  28. title: '智慧水务',
  29. debugShowCheckedModeBanner: false,
  30. theme: ThemeData(
  31. colorSchemeSeed: const Color(0xFF1976D2),
  32. useMaterial3: true,
  33. brightness: Brightness.light,
  34. ),
  35. darkTheme: ThemeData(
  36. colorSchemeSeed: const Color(0xFF1976D2),
  37. useMaterial3: true,
  38. brightness: Brightness.dark,
  39. ),
  40. themeMode: ThemeMode.system,
  41. initialRoute: '/',
  42. routes: {
  43. '/': (context) => Consumer<AuthService>(
  44. builder: (_, auth, __) =>
  45. auth.isLoggedIn ? const HomePage() : const LoginPage(),
  46. ),
  47. '/water/monitor': (context) => const MonitorPage(),
  48. '/water/alert': (context) => const AlertPage(),
  49. '/water/dispatch': (context) => const DispatchPage(),
  50. '/water/quality': (context) => const QualityPage(),
  51. },
  52. ),
  53. );
  54. }
  55. }