diff --git a/lib/app/bindings/initial_binding.dart b/lib/app/bindings/initial_binding.dart index 9c37f43..b09de08 100644 --- a/lib/app/bindings/initial_binding.dart +++ b/lib/app/bindings/initial_binding.dart @@ -9,13 +9,20 @@ import 'package:problem_check_system/data/repositories/problem_repository.dart'; class InitialBinding implements Bindings { @override void dependencies() { - /// 注册所有的适配器 + _registerCoreServices(); + _registerRepositories(); + } + + void _registerCoreServices() { + /// 立即注册所有的适配器 Get.put(GetStorage(), permanent: true); Get.put(HttpProvider()); Get.put(LocalDatabase()); Get.put(ConnectivityProvider()); + } - /// 注册所有的仓库 + void _registerRepositories() { + /// 懒加载注册所有的仓库 Get.lazyPut( () => AuthRepository( httpProvider: Get.find(), diff --git a/lib/app/routes/app_pages.dart b/lib/app/routes/app_pages.dart index 3fcee75..856326b 100644 --- a/lib/app/routes/app_pages.dart +++ b/lib/app/routes/app_pages.dart @@ -1,7 +1,7 @@ import 'package:get/get.dart'; import 'package:problem_check_system/modules/home/bindings/home_binding.dart'; import 'package:problem_check_system/modules/home/views/home_page.dart'; -import 'package:problem_check_system/modules/auth/bindings/auth_binding.dart'; +import 'package:problem_check_system/modules/auth/bindings/login_binding.dart'; import 'package:problem_check_system/modules/auth/views/login_page.dart'; import 'package:problem_check_system/modules/my/bingdings/change_password_binding.dart'; import 'package:problem_check_system/modules/my/views/change_password.dart'; @@ -21,7 +21,7 @@ abstract class AppPages { GetPage( name: AppRoutes.login, page: () => const LoginPage(), - binding: AuthBinding(), + binding: LoginBinding(), ), GetPage( name: AppRoutes.changePassword, diff --git a/lib/data/providers/http_provider.dart b/lib/data/providers/http_provider.dart index ef33fca..d5233b7 100644 --- a/lib/data/providers/http_provider.dart +++ b/lib/data/providers/http_provider.dart @@ -3,7 +3,6 @@ import 'package:flutter/foundation.dart'; import 'package:get/get.dart' hide Response; import 'package:pretty_dio_logger/pretty_dio_logger.dart'; import 'package:problem_check_system/data/repositories/auth_repository.dart'; -import 'package:problem_check_system/modules/auth/controllers/auth_controller.dart'; // DioProvider 是一个 GetxService,确保它在应用生命周期内是单例的。 // 它负责初始化和配置 Dio 实例,并添加所有拦截器。 diff --git a/lib/modules/auth/bindings/auth_binding.dart b/lib/modules/auth/bindings/auth_binding.dart deleted file mode 100644 index 040da78..0000000 --- a/lib/modules/auth/bindings/auth_binding.dart +++ /dev/null @@ -1,14 +0,0 @@ -import 'package:get/get.dart'; -import 'package:problem_check_system/data/repositories/auth_repository.dart'; -import 'package:problem_check_system/modules/auth/controllers/auth_controller.dart'; - -class AuthBinding implements Bindings { - @override - void dependencies() { - // 2. 注入控制器 (AuthController),它依赖于 AuthProvider - // 控制器通过 Get.find() 获取已注入的依赖 - Get.lazyPut( - () => AuthController(authRepository: Get.find()), - ); - } -} diff --git a/lib/modules/auth/bindings/login_binding.dart b/lib/modules/auth/bindings/login_binding.dart new file mode 100644 index 0000000..11ebd89 --- /dev/null +++ b/lib/modules/auth/bindings/login_binding.dart @@ -0,0 +1,12 @@ +import 'package:get/get.dart'; +import 'package:problem_check_system/data/repositories/auth_repository.dart'; +import 'package:problem_check_system/modules/auth/controllers/login_controller.dart'; + +class LoginBinding implements Bindings { + @override + void dependencies() { + Get.lazyPut( + () => LoginController(authRepository: Get.find()), + ); + } +} diff --git a/lib/modules/auth/controllers/auth_controller.dart b/lib/modules/auth/controllers/login_controller.dart similarity index 96% rename from lib/modules/auth/controllers/auth_controller.dart rename to lib/modules/auth/controllers/login_controller.dart index a38c55e..a37a364 100644 --- a/lib/modules/auth/controllers/auth_controller.dart +++ b/lib/modules/auth/controllers/login_controller.dart @@ -4,7 +4,7 @@ import 'package:problem_check_system/data/models/auth_model.dart'; import 'package:problem_check_system/app/routes/app_routes.dart'; import 'package:problem_check_system/data/repositories/auth_repository.dart'; -class AuthController extends GetxController { +class LoginController extends GetxController { final AuthRepository _authRepository; final TextEditingController usernameController = TextEditingController(); final TextEditingController passwordController = TextEditingController(); @@ -12,7 +12,7 @@ class AuthController extends GetxController { final isLoading = false.obs; final rememberPassword = false.obs; - AuthController({required AuthRepository authRepository}) + LoginController({required AuthRepository authRepository}) : _authRepository = authRepository; @override diff --git a/lib/modules/auth/views/login_page.dart b/lib/modules/auth/views/login_page.dart index fa72f87..c81594f 100644 --- a/lib/modules/auth/views/login_page.dart +++ b/lib/modules/auth/views/login_page.dart @@ -2,9 +2,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; -import 'package:problem_check_system/modules/auth/controllers/auth_controller.dart'; +import 'package:problem_check_system/modules/auth/controllers/login_controller.dart'; -class LoginPage extends GetView { +class LoginPage extends GetView { const LoginPage({super.key}); @override @@ -48,7 +48,7 @@ class LoginPage extends GetView { ), ), SizedBox(height: 56.5.h), - Center(child: _buildLoginCard(controller)), + Center(child: _buildLoginCard()), ], ), ], @@ -57,7 +57,7 @@ class LoginPage extends GetView { } // 修改 _buildLoginCard 方法,它不再需要传入 TextEditingController - Widget _buildLoginCard(AuthController controller) { + Widget _buildLoginCard() { return Container( width: 334.w, height: 574.5.h, @@ -84,9 +84,9 @@ class LoginPage extends GetView { controller: controller.passwordController, ), const SizedBox(height: 9.5), - _buildRememberPasswordRow(controller), + _buildRememberPasswordRow(), const SizedBox(height: 138.5), - _buildLoginButton(controller), + _buildLoginButton(), ], ), ); @@ -121,7 +121,7 @@ class LoginPage extends GetView { ); } - Widget _buildRememberPasswordRow(AuthController controller) { + Widget _buildRememberPasswordRow() { return Row( mainAxisAlignment: MainAxisAlignment.end, children: [ @@ -139,7 +139,7 @@ class LoginPage extends GetView { ); } - Widget _buildLoginButton(AuthController controller) { + Widget _buildLoginButton() { return SizedBox( width: double.infinity, child: ElevatedButton( diff --git a/lib/modules/home/bindings/home_binding.dart b/lib/modules/home/bindings/home_binding.dart index 35e0479..701773d 100644 --- a/lib/modules/home/bindings/home_binding.dart +++ b/lib/modules/home/bindings/home_binding.dart @@ -5,7 +5,7 @@ import 'package:problem_check_system/data/providers/http_provider.dart'; import 'package:problem_check_system/data/providers/local_database.dart'; import 'package:problem_check_system/data/repositories/auth_repository.dart'; import 'package:problem_check_system/data/repositories/problem_repository.dart'; -import 'package:problem_check_system/modules/auth/controllers/auth_controller.dart'; +import 'package:problem_check_system/modules/auth/controllers/login_controller.dart'; import 'package:problem_check_system/modules/home/controllers/home_controller.dart'; import 'package:problem_check_system/modules/my/controllers/my_controller.dart'; import 'package:problem_check_system/modules/problem/controllers/problem_controller.dart'; @@ -22,11 +22,6 @@ class HomeBinding implements Bindings { fenix: true, ); - /// 注册认证控制器 - Get.lazyPut( - () => AuthController(authRepository: Get.find()), - ); - /// 注册我的控制器 Get.lazyPut( () => MyController(authRepository: Get.find()), diff --git a/lib/modules/my/views/my_page.dart b/lib/modules/my/views/my_page.dart index 7dd453b..82fc3db 100644 --- a/lib/modules/my/views/my_page.dart +++ b/lib/modules/my/views/my_page.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:problem_check_system/modules/my/controllers/my_controller.dart'; -import 'package:problem_check_system/modules/auth/controllers/auth_controller.dart'; +import 'package:problem_check_system/modules/auth/controllers/login_controller.dart'; import '../../../app/routes/app_routes.dart';