Browse Source

各模块的初始化与页面路由组件路由创建

liukai 3 months ago
parent
commit
6c86e418ff
87 changed files with 1940 additions and 36 deletions
  1. 1 1
      app/android/app/src/main/AndroidManifest.xml
  2. 31 8
      app/lib/main.dart
  3. 29 0
      app/lib/router/page/app_page_router.dart
  4. 44 0
      melos.yaml
  5. 0 0
      packages/cpt_auth/lib/modules/auth_export.dart
  6. 34 0
      packages/cpt_auth/lib/modules/auth_login/page/Profile_edit_page.dart
  7. 14 0
      packages/cpt_auth/lib/modules/auth_login/vm/auth_login_view_model.dart
  8. 27 0
      packages/cpt_auth/lib/modules/auth_login/vm/auth_login_view_model.g.dart
  9. 31 0
      packages/cpt_auth/lib/router/component/auth_component_service.dart
  10. 26 0
      packages/cpt_auth/lib/router/component/auth_component_service.g.dart
  11. 21 0
      packages/cpt_auth/lib/router/page/auth_page_router.dart
  12. 39 0
      packages/cpt_auth/lib/router/page/auth_page_router.gr.dart
  13. 0 1
      packages/cpt_community/lib/modules/community.dart
  14. 34 0
      packages/cpt_community/lib/modules/community/page/community_page.dart
  15. 14 0
      packages/cpt_community/lib/modules/community/vm/community_view_model.dart
  16. 27 0
      packages/cpt_community/lib/modules/community/vm/community_view_model.g.dart
  17. 0 0
      packages/cpt_community/lib/modules/community_export.dart
  18. 25 0
      packages/cpt_community/lib/router/component/community_component_service.dart
  19. 27 0
      packages/cpt_community/lib/router/component/community_component_service.g.dart
  20. 21 0
      packages/cpt_community/lib/router/page/community_page_router.dart
  21. 39 0
      packages/cpt_community/lib/router/page/community_page_router.gr.dart
  22. 34 0
      packages/cpt_facility/lib/modules/facility/page/facility_page.dart
  23. 14 0
      packages/cpt_facility/lib/modules/facility/vm/facility_view_model.dart
  24. 26 0
      packages/cpt_facility/lib/modules/facility/vm/facility_view_model.g.dart
  25. 0 0
      packages/cpt_facility/lib/modules/facility_export.dart
  26. 24 0
      packages/cpt_facility/lib/router/component/facility_component_service.dart
  27. 27 0
      packages/cpt_facility/lib/router/component/facility_component_service.g.dart
  28. 21 0
      packages/cpt_facility/lib/router/page/facility_page_router.dart
  29. 39 0
      packages/cpt_facility/lib/router/page/facility_page_router.gr.dart
  30. 33 0
      packages/cpt_form/lib/modules/form/page/form_page.dart
  31. 14 0
      packages/cpt_form/lib/modules/form/vm/form_view_model.dart
  32. 26 0
      packages/cpt_form/lib/modules/form/vm/form_view_model.g.dart
  33. 0 0
      packages/cpt_form/lib/modules/form_export.dart
  34. 24 0
      packages/cpt_form/lib/router/component/form_component_service.dart
  35. 26 0
      packages/cpt_form/lib/router/component/form_component_service.g.dart
  36. 21 0
      packages/cpt_form/lib/router/page/form_page_router.dart
  37. 39 0
      packages/cpt_form/lib/router/page/form_page_router.gr.dart
  38. 44 8
      packages/cpt_main/lib/modules/home/page/home_page.dart
  39. 1 1
      packages/cpt_main/lib/router/page/main_page_router.dart
  40. 33 0
      packages/cpt_notice_board/lib/modules/notice_board/page/notice_board_page.dart
  41. 14 0
      packages/cpt_notice_board/lib/modules/notice_board/vm/notice_board_view_model.dart
  42. 27 0
      packages/cpt_notice_board/lib/modules/notice_board/vm/notice_board_view_model.g.dart
  43. 0 0
      packages/cpt_notice_board/lib/modules/notice_board_export.dart
  44. 24 0
      packages/cpt_notice_board/lib/router/component/notice_board_component_service.dart
  45. 28 0
      packages/cpt_notice_board/lib/router/component/notice_board_component_service.g.dart
  46. 21 0
      packages/cpt_notice_board/lib/router/page/notice_board_page_router.dart
  47. 39 0
      packages/cpt_notice_board/lib/router/page/notice_board_page_router.gr.dart
  48. 33 0
      packages/cpt_payment/lib/modules/payment/page/payment_page.dart
  49. 14 0
      packages/cpt_payment/lib/modules/payment/vm/payment_view_model.dart
  50. 26 0
      packages/cpt_payment/lib/modules/payment/vm/payment_view_model.g.dart
  51. 0 0
      packages/cpt_payment/lib/modules/payment_export.dart
  52. 25 0
      packages/cpt_payment/lib/router/component/payment_component_service.dart
  53. 27 0
      packages/cpt_payment/lib/router/component/payment_component_service.g.dart
  54. 21 0
      packages/cpt_payment/lib/router/page/payment_page_router.dart
  55. 39 0
      packages/cpt_payment/lib/router/page/payment_page_router.gr.dart
  56. 1 1
      packages/cpt_profile/lib/router/component/profile_component_service_impl.dart
  57. 1 1
      packages/cpt_profile/lib/router/page/profile_page_router.dart
  58. 33 0
      packages/cpt_property/lib/modules/property/page/property_page.dart
  59. 14 0
      packages/cpt_property/lib/modules/property/vm/property_view_model.dart
  60. 26 0
      packages/cpt_property/lib/modules/property/vm/property_view_model.g.dart
  61. 0 0
      packages/cpt_property/lib/modules/property_export.dart
  62. 25 0
      packages/cpt_property/lib/router/component/property_component_service.dart
  63. 27 0
      packages/cpt_property/lib/router/component/property_component_service.g.dart
  64. 21 0
      packages/cpt_property/lib/router/page/property_page_router.dart
  65. 39 0
      packages/cpt_property/lib/router/page/property_page_router.gr.dart
  66. 33 0
      packages/cpt_rewards/lib/modules/rewards/page/rewards_page.dart
  67. 14 0
      packages/cpt_rewards/lib/modules/rewards/vm/rewards_view_model.dart
  68. 26 0
      packages/cpt_rewards/lib/modules/rewards/vm/rewards_view_model.g.dart
  69. 0 0
      packages/cpt_rewards/lib/modules/rewards_export.dart
  70. 25 0
      packages/cpt_rewards/lib/router/component/rewards_component_service.dart
  71. 27 0
      packages/cpt_rewards/lib/router/component/rewards_component_service.g.dart
  72. 21 0
      packages/cpt_rewards/lib/router/page/rewards_page_router.dart
  73. 39 0
      packages/cpt_rewards/lib/router/page/rewards_page_router.gr.dart
  74. 33 0
      packages/cpt_services/lib/modules/services/page/services_page.dart
  75. 14 0
      packages/cpt_services/lib/modules/services/vm/services_view_model.dart
  76. 26 0
      packages/cpt_services/lib/modules/services/vm/services_view_model.g.dart
  77. 0 0
      packages/cpt_services/lib/modules/services_export.dart
  78. 25 0
      packages/cpt_services/lib/router/component/services_component_service.dart
  79. 27 0
      packages/cpt_services/lib/router/component/services_component_service.g.dart
  80. 21 0
      packages/cpt_services/lib/router/page/services_page_router.dart
  81. 39 0
      packages/cpt_services/lib/router/page/services_page_router.gr.dart
  82. 5 1
      packages/cs_domain/pubspec_overrides.yaml
  83. 3 1
      packages/cs_plugin_platform/pubspec_overrides.yaml
  84. 0 4
      packages/cs_router/lib/componentRouter/auth_service.dart
  85. 80 8
      packages/cs_router/lib/componentRouter/component_service_manager.dart
  86. 24 0
      packages/cs_router/lib/path/router_path.dart
  87. 3 1
      packages/cs_widgets/pubspec_overrides.yaml

+ 1 - 1
app/android/app/src/main/AndroidManifest.xml

@@ -42,7 +42,7 @@
         android:name="android.app.src.main.kotlin.com.hongyegroup.property_management.MyApplication"
         android:allowBackup="false"
         android:icon="@mipmap/ic_launcher"
-        android:label="Hongye物业管理"
+        android:label="物业管理"
         android:networkSecurityConfig="@xml/network_security_config"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:usesCleartextTraffic="true">

+ 31 - 8
app/lib/main.dart

@@ -4,6 +4,7 @@ import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:cs_resources/theme/theme_notifier.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
+import 'package:flutter_hooks/flutter_hooks.dart';
 import 'package:flutter_localizations/flutter_localizations.dart';
 import 'package:hooks_riverpod/hooks_riverpod.dart';
 import 'package:initializer/app_initializer.dart';
@@ -13,6 +14,7 @@ import 'package:plugin_basic/provider/global_provider_container.dart';
 import 'package:router/componentRouter/component_service_manager.dart';
 import 'package:cpt_profile/router/component/profile_service_provider.dart';
 import 'package:plugin_basic/obs/my_navigator_observer.dart';
+import 'package:shared/utils/log_utils.dart';
 import 'package:widgets/dialog/custom_toast_widget.dart';
 import 'package:widgets/dialog/custom_error_widget.dart';
 import 'package:widgets/dialog/custom_failure_widget.dart';
@@ -22,6 +24,15 @@ import 'package:widgets/widget_export.dart';
 import 'package:cs_resources/theme/theme_config.dart';
 import 'router/page/app_page_router.dart';
 import 'router/component/app_service_provider.dart';
+import 'package:cpt_auth/router/component/auth_component_service.dart';
+import 'package:cpt_community/router/component/community_component_service.dart';
+import 'package:cpt_facility/router/component/facility_component_service.dart';
+import 'package:cpt_form/router/component/form_component_service.dart';
+import 'package:cpt_notice_board/router/component/notice_board_component_service.dart';
+import 'package:cpt_payment/router/component/payment_component_service.dart';
+import 'package:cpt_property/router/component/property_component_service.dart';
+import 'package:cpt_rewards/router/component/rewards_component_service.dart';
+import 'package:cpt_services/router/component/services_component_service.dart';
 
 void main() async {
   //交给初始化构造器去统一初始化
@@ -30,7 +41,16 @@ void main() async {
   //组件路由的注入
   final serviceManager = ComponentServiceManager()
     ..addServiceProvider(mainServiceProvider)
+    ..addServiceProvider(authServiceProvider)
     ..addServiceProvider(appServiceProvider)
+    ..addServiceProvider(communityServiceProvider)
+    ..addServiceProvider(facilityServiceProvider)
+    ..addServiceProvider(formServiceProvider)
+    ..addServiceProvider(noticeBoardServiceProvider)
+    ..addServiceProvider(paymentServiceProvider)
+    ..addServiceProvider(propertyServiceProvider)
+    ..addServiceProvider(rewardsServiceProvider)
+    ..addServiceProvider(servicesServiceProvider)
     ..addServiceProvider(profileServiceProvider);
 
   runApp(ProviderScope(
@@ -97,9 +117,16 @@ class MyApp extends HookConsumerWidget {
   Widget build(BuildContext context, WidgetRef ref) {
     final themeMode = ref.watch(themeProvider);
 
-    WidgetsBinding.instance.addPostFrameCallback((_) {
-      AppConfigService.getInstance().initSize(context);
-    });
+    useEffect(() {
+      // 组件挂载时执行
+      WidgetsBinding.instance.addPostFrameCallback((_) {
+        //控件加载完成时执行
+        AppConfigService.getInstance().initSize(context);
+      });
+      return () {
+        // 组件卸载时执行
+      };
+    }, []);
 
     //设置全局的状态栏文本样式
     SystemChrome.setSystemUIOverlayStyle(ThemeConfig.systemUiOverlayStyleLightThemeWhite);
@@ -111,11 +138,7 @@ class MyApp extends HookConsumerWidget {
         child: MaterialApp.router(
           title: 'PropertyManagementSystem',
           debugShowCheckedModeBanner: true,
-          // theme: ThemeData(
-          //   colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
-          //   useMaterial3: false,
-          // ),
-          // Theme.of(context)
+
           //主题配置
           theme: ThemeData(
             colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),

+ 29 - 0
app/lib/router/page/app_page_router.dart

@@ -4,6 +4,15 @@ import 'package:cpt_profile/router/page/profile_page_router.dart';
 import 'package:flutter/material.dart';
 import 'package:plugin_basic/router/basic_page_router.dart';
 import 'package:router/path/router_path.dart';
+import 'package:cpt_auth/router/page/auth_page_router.dart';
+import 'package:cpt_community/router/page/community_page_router.dart';
+import 'package:cpt_facility/router/page/facility_page_router.dart';
+import 'package:cpt_form/router/page/form_page_router.dart';
+import 'package:cpt_notice_board/router/page/notice_board_page_router.dart';
+import 'package:cpt_payment/router/page/payment_page_router.dart';
+import 'package:cpt_property/router/page/property_page_router.dart';
+import 'package:cpt_rewards/router/page/rewards_page_router.dart';
+import 'package:cpt_services/router/page/services_page_router.dart';
 
 import '../../modules/splash/page/splash_page.dart';
 
@@ -16,7 +25,17 @@ class AppRouter extends _$AppRouter {
         AutoRoute(page: SplashPageRoute.page, initial: true, path: RouterPath.splash),
         // 合并子模块的路由配置
         ...BasicPageRouter().routes,
+        ...AuthPageRouter().routes,
         ...MainPageRouter().routes,
+        ...CommunityPageRouter().routes,
+        ...FacilityPageRouter().routes,
+        ...FormPageRouter().routes,
+        ...NoticeBoardPageRouter().routes,
+        ...PaymentPageRouter().routes,
+        ...PaymentPageRouter().routes,
+        ...PropertyPageRouter().routes,
+        ...RewardsPageRouter().routes,
+        ...ServicesPageRouter().routes,
         ...ProfilePageRouter().routes,
       ];
 
@@ -25,7 +44,17 @@ class AppRouter extends _$AppRouter {
         ...super.pagesMap,
         // 合并子模块的 pagesMap
         ...BasicPageRouter().pagesMap,
+        ...AuthPageRouter().pagesMap,
         ...MainPageRouter().pagesMap,
+        ...CommunityPageRouter().pagesMap,
+        ...FacilityPageRouter().pagesMap,
+        ...FacilityPageRouter().pagesMap,
+        ...FormPageRouter().pagesMap,
+        ...NoticeBoardPageRouter().pagesMap,
+        ...PaymentPageRouter().pagesMap,
+        ...PropertyPageRouter().pagesMap,
+        ...RewardsPageRouter().pagesMap,
+        ...ServicesPageRouter().pagesMap,
         ...ProfilePageRouter().pagesMap,
       };
 }

+ 44 - 0
melos.yaml

@@ -43,6 +43,50 @@ scripts:
       dependsOn:
         - build_runner
 
+  build_runner_auth:
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_auth" && dart run build_runner build
+    description: Run `dart run build_runner build` in auth module
+
+  build_runner_community:
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_community" && dart run build_runner build
+    description: Run `dart run build_runner build` in community module
+
+  build_runner_facility:
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_facility" && dart run build_runner build
+    description: Run `dart run build_runner build` in facility module
+
+  build_runner_form:
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_form" && dart run build_runner build
+    description: Run `dart run build_runner build` in form module
+
+  build_runner_main:
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_main" && dart run build_runner build
+    description: Run `dart run build_runner build` in main module
+
+  build_runner_notice_board:
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_notice_board" && dart run build_runner build
+    description: Run `dart run build_runner build` in notice_board module
+
+  build_runner_payment:
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_payment" && dart run build_runner build
+    description: Run `dart run build_runner build` in payment module
+
+  build_runner_profile:
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_profile" && dart run build_runner build
+    description: Run `dart run build_runner build` in profile module
+
+  build_runner_property:
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_property" && dart run build_runner build
+    description: Run `dart run build_runner build` in property module
+
+  build_runner_rewards:
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_rewards" && dart run build_runner build
+    description: Run `dart run build_runner build` in rewards module
+
+  build_runner_services:
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_services" && dart run build_runner build
+    description: Run `dart run build_runner build` in services module
+
   clean_all:
     run: melos exec -- "flutter clean"
     description: Run `flutter clean` in all packages

+ 0 - 0
packages/cpt_auth/lib/modules/auth_export.dart


+ 34 - 0
packages/cpt_auth/lib/modules/auth_login/page/Profile_edit_page.dart

@@ -0,0 +1,34 @@
+
+import 'package:flutter/material.dart';
+import 'package:auto_route/auto_route.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+
+import '../../../router/page/auth_page_router.dart';
+import '../vm/auth_login_view_model.dart';
+
+@RoutePage()
+class AuthLoginPage extends HookConsumerWidget {
+  const AuthLoginPage({Key? key}) : super(key: key);
+
+  //启动当前页面
+  static void startInstance({BuildContext? context}) {
+    if (context != null) {
+      context.router.push(const AuthLoginPageRoute());
+    } else {
+      appRouter.push(const AuthLoginPageRoute());
+    }
+  }
+
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final _viewModel = ref.read(authLoginViewModelProvider.notifier);
+
+    return Scaffold(
+      appBar: AppBar(title: Text("登录")),
+      body: Center(
+        child: Text("用户登录页面"),
+      ),
+    );
+  }
+}

+ 14 - 0
packages/cpt_auth/lib/modules/auth_login/vm/auth_login_view_model.dart

@@ -0,0 +1,14 @@
+
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+part 'auth_login_view_model.g.dart';
+
+@riverpod
+class AuthLoginViewModel extends _$AuthLoginViewModel {
+
+  @override
+  void build(){
+
+  }
+
+}

+ 27 - 0
packages/cpt_auth/lib/modules/auth_login/vm/auth_login_view_model.g.dart

@@ -0,0 +1,27 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'auth_login_view_model.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$authLoginViewModelHash() =>
+    r'10a37f5f6fead251c1df197123d10ce07fe0594c';
+
+/// See also [AuthLoginViewModel].
+@ProviderFor(AuthLoginViewModel)
+final authLoginViewModelProvider =
+    AutoDisposeNotifierProvider<AuthLoginViewModel, void>.internal(
+  AuthLoginViewModel.new,
+  name: r'authLoginViewModelProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$authLoginViewModelHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+typedef _$AuthLoginViewModel = AutoDisposeNotifier<void>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 31 - 0
packages/cpt_auth/lib/router/component/auth_component_service.dart

@@ -0,0 +1,31 @@
+/*
+ * Auth 组件的组件路由
+ */
+import 'package:flutter/cupertino.dart';
+import 'package:router/componentRouter/auth_service.dart';
+import 'package:flutter/material.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+import '../../modules/auth_login/page/Profile_edit_page.dart';
+
+part 'auth_component_service.g.dart';
+
+@Riverpod(keepAlive: true)
+AuthService authService(Ref ref) {
+  return AuthComponentService();
+}
+
+class AuthComponentService extends AuthService {
+
+  @override
+  void startLoginPage() {
+    AuthLoginPage.startInstance();
+  }
+
+  @override
+  void startResetPasswordPage() {
+
+  }
+
+}

+ 26 - 0
packages/cpt_auth/lib/router/component/auth_component_service.g.dart

@@ -0,0 +1,26 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'auth_component_service.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$authServiceHash() => r'b4b18b8fa2925aa18560ce342d3eeb9021367610';
+
+/// See also [authService].
+@ProviderFor(authService)
+final authServiceProvider = Provider<AuthService>.internal(
+  authService,
+  name: r'authServiceProvider',
+  debugGetCreateSourceHash:
+      const bool.fromEnvironment('dart.vm.product') ? null : _$authServiceHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+@Deprecated('Will be removed in 3.0. Use Ref instead')
+// ignore: unused_element
+typedef AuthServiceRef = ProviderRef<AuthService>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 21 - 0
packages/cpt_auth/lib/router/page/auth_page_router.dart

@@ -0,0 +1,21 @@
+import 'package:auto_route/auto_route.dart';
+import 'package:flutter/material.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+import 'package:router/path/router_path.dart';
+
+import '../../modules/auth_login/page/Profile_edit_page.dart';
+
+
+part 'auth_page_router.gr.dart';
+
+/*\
+ * 全局的通用页面的路由
+ */
+@AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')
+class AuthPageRouter extends _$AuthPageRouter {
+  @override
+  List<AutoRoute> get routes => [
+
+    CustomRoute(page: AuthLoginPageRoute.page, path: RouterPath.authLogin, transitionsBuilder: applySlideTransition),
+  ];
+}

+ 39 - 0
packages/cpt_auth/lib/router/page/auth_page_router.gr.dart

@@ -0,0 +1,39 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+// **************************************************************************
+// AutoRouterGenerator
+// **************************************************************************
+
+// ignore_for_file: type=lint
+// coverage:ignore-file
+
+part of 'auth_page_router.dart';
+
+abstract class _$AuthPageRouter extends RootStackRouter {
+  // ignore: unused_element
+  _$AuthPageRouter({super.navigatorKey});
+
+  @override
+  final Map<String, PageFactory> pagesMap = {
+    AuthLoginPageRoute.name: (routeData) {
+      return AutoRoutePage<dynamic>(
+        routeData: routeData,
+        child: const AuthLoginPage(),
+      );
+    }
+  };
+}
+
+/// generated route for
+/// [AuthLoginPage]
+class AuthLoginPageRoute extends PageRouteInfo<void> {
+  const AuthLoginPageRoute({List<PageRouteInfo>? children})
+      : super(
+          AuthLoginPageRoute.name,
+          initialChildren: children,
+        );
+
+  static const String name = 'AuthLoginPageRoute';
+
+  static const PageInfo<void> page = PageInfo<void>(name);
+}

+ 0 - 1
packages/cpt_community/lib/modules/community.dart

@@ -1 +0,0 @@
-

+ 34 - 0
packages/cpt_community/lib/modules/community/page/community_page.dart

@@ -0,0 +1,34 @@
+
+import 'package:flutter/material.dart';
+import 'package:auto_route/auto_route.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+
+import '../../../router/page/community_page_router.dart';
+import '../vm/community_view_model.dart';
+
+@RoutePage()
+class CommunityPage extends HookConsumerWidget {
+  const CommunityPage({Key? key}) : super(key: key);
+
+  //启动当前页面
+  static void startInstance({BuildContext? context}) {
+    if (context != null) {
+      context.router.push(const CommunityPageRoute());
+    } else {
+      appRouter.push(const CommunityPageRoute());
+    }
+  }
+
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final _viewModel = ref.read(communityViewModelProvider.notifier);
+
+    return Scaffold(
+      appBar: AppBar(title: Text("社区")),
+      body: Center(
+        child: Text("社区主页面"),
+      ),
+    );
+  }
+}

+ 14 - 0
packages/cpt_community/lib/modules/community/vm/community_view_model.dart

@@ -0,0 +1,14 @@
+
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+part 'community_view_model.g.dart';
+
+@riverpod
+class CommunityViewModel extends _$CommunityViewModel {
+
+  @override
+  void build(){
+
+  }
+
+}

+ 27 - 0
packages/cpt_community/lib/modules/community/vm/community_view_model.g.dart

@@ -0,0 +1,27 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'community_view_model.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$communityViewModelHash() =>
+    r'3902087cb4011dabd629a95c51d23b3081dd5f80';
+
+/// See also [CommunityViewModel].
+@ProviderFor(CommunityViewModel)
+final communityViewModelProvider =
+    AutoDisposeNotifierProvider<CommunityViewModel, void>.internal(
+  CommunityViewModel.new,
+  name: r'communityViewModelProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$communityViewModelHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+typedef _$CommunityViewModel = AutoDisposeNotifier<void>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 0 - 0
packages/cpt_community/lib/modules/community_export.dart


+ 25 - 0
packages/cpt_community/lib/router/component/community_component_service.dart

@@ -0,0 +1,25 @@
+/*
+ * Community 组件的组件路由
+ */
+import 'package:flutter/cupertino.dart';
+import 'package:router/componentRouter/community_service.dart';
+import 'package:flutter/material.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+import '../../modules/community/page/community_page.dart';
+
+part 'community_component_service.g.dart';
+
+@Riverpod(keepAlive: true)
+CommunityService communityService(Ref ref) {
+  return CommunityComponentService();
+}
+
+class CommunityComponentService extends CommunityService {
+  @override
+  void startCommunityPage() {
+    CommunityPage.startInstance();
+  }
+
+}

+ 27 - 0
packages/cpt_community/lib/router/component/community_component_service.g.dart

@@ -0,0 +1,27 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'community_component_service.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$communityServiceHash() => r'a6cc472d2dd254e0848c2c1c8f7bf3590af4391b';
+
+/// See also [communityService].
+@ProviderFor(communityService)
+final communityServiceProvider = Provider<CommunityService>.internal(
+  communityService,
+  name: r'communityServiceProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$communityServiceHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+@Deprecated('Will be removed in 3.0. Use Ref instead')
+// ignore: unused_element
+typedef CommunityServiceRef = ProviderRef<CommunityService>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 21 - 0
packages/cpt_community/lib/router/page/community_page_router.dart

@@ -0,0 +1,21 @@
+import 'package:auto_route/auto_route.dart';
+import 'package:flutter/material.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+import 'package:router/path/router_path.dart';
+
+import '../../modules/community/page/community_page.dart';
+
+
+part 'community_page_router.gr.dart';
+
+/*\
+ * Community组件的路由
+ */
+@AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')
+class CommunityPageRouter extends _$CommunityPageRouter {
+  @override
+  List<AutoRoute> get routes => [
+
+    CustomRoute(page: CommunityPageRoute.page, path: RouterPath.community, transitionsBuilder: applySlideTransition),
+  ];
+}

+ 39 - 0
packages/cpt_community/lib/router/page/community_page_router.gr.dart

@@ -0,0 +1,39 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+// **************************************************************************
+// AutoRouterGenerator
+// **************************************************************************
+
+// ignore_for_file: type=lint
+// coverage:ignore-file
+
+part of 'community_page_router.dart';
+
+abstract class _$CommunityPageRouter extends RootStackRouter {
+  // ignore: unused_element
+  _$CommunityPageRouter({super.navigatorKey});
+
+  @override
+  final Map<String, PageFactory> pagesMap = {
+    CommunityPageRoute.name: (routeData) {
+      return AutoRoutePage<dynamic>(
+        routeData: routeData,
+        child: const CommunityPage(),
+      );
+    }
+  };
+}
+
+/// generated route for
+/// [CommunityPage]
+class CommunityPageRoute extends PageRouteInfo<void> {
+  const CommunityPageRoute({List<PageRouteInfo>? children})
+      : super(
+          CommunityPageRoute.name,
+          initialChildren: children,
+        );
+
+  static const String name = 'CommunityPageRoute';
+
+  static const PageInfo<void> page = PageInfo<void>(name);
+}

+ 34 - 0
packages/cpt_facility/lib/modules/facility/page/facility_page.dart

@@ -0,0 +1,34 @@
+
+import 'package:flutter/material.dart';
+import 'package:auto_route/auto_route.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+
+import '../../../router/page/facility_page_router.dart';
+import '../../facility/vm/facility_view_model.dart';
+
+@RoutePage()
+class FacilityPage extends HookConsumerWidget {
+  const FacilityPage({Key? key}) : super(key: key);
+
+  //启动当前页面
+  static void startInstance({BuildContext? context}) {
+    if (context != null) {
+      context.router.push(const FacilityPageRoute());
+    } else {
+      appRouter.push(const FacilityPageRoute());
+    }
+  }
+
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final _viewModel = ref.read(facilityViewModelProvider.notifier);
+
+    return Scaffold(
+      appBar: AppBar(title: Text("设施")),
+      body: Center(
+        child: Text("设施的主页面"),
+      ),
+    );
+  }
+}

+ 14 - 0
packages/cpt_facility/lib/modules/facility/vm/facility_view_model.dart

@@ -0,0 +1,14 @@
+
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+part 'facility_view_model.g.dart';
+
+@riverpod
+class FacilityViewModel extends _$FacilityViewModel {
+
+  @override
+  void build(){
+
+  }
+
+}

+ 26 - 0
packages/cpt_facility/lib/modules/facility/vm/facility_view_model.g.dart

@@ -0,0 +1,26 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'facility_view_model.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$facilityViewModelHash() => r'7a22c383d2913000687099a0c6934c6fd4156b89';
+
+/// See also [FacilityViewModel].
+@ProviderFor(FacilityViewModel)
+final facilityViewModelProvider =
+    AutoDisposeNotifierProvider<FacilityViewModel, void>.internal(
+  FacilityViewModel.new,
+  name: r'facilityViewModelProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$facilityViewModelHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+typedef _$FacilityViewModel = AutoDisposeNotifier<void>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 0 - 0
packages/cpt_facility/lib/modules/facility_export.dart


+ 24 - 0
packages/cpt_facility/lib/router/component/facility_component_service.dart

@@ -0,0 +1,24 @@
+/*
+ * Community 组件的组件路由
+ */
+import 'package:flutter/cupertino.dart';
+import 'package:router/componentRouter/facility_service.dart';
+import 'package:flutter/material.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+import '../../modules/facility/page/facility_page.dart';
+
+part 'facility_component_service.g.dart';
+
+@Riverpod(keepAlive: true)
+FacilityService facilityService(Ref ref) {
+  return FacilityComponentService();
+}
+
+class FacilityComponentService extends FacilityService {
+  @override
+  void startFacilityPage() {
+    FacilityPage.startInstance();
+  }
+}

+ 27 - 0
packages/cpt_facility/lib/router/component/facility_component_service.g.dart

@@ -0,0 +1,27 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'facility_component_service.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$facilityServiceHash() => r'a2071523cea6db9048809700459632570455b04a';
+
+/// See also [facilityService].
+@ProviderFor(facilityService)
+final facilityServiceProvider = Provider<FacilityService>.internal(
+  facilityService,
+  name: r'facilityServiceProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$facilityServiceHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+@Deprecated('Will be removed in 3.0. Use Ref instead')
+// ignore: unused_element
+typedef FacilityServiceRef = ProviderRef<FacilityService>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 21 - 0
packages/cpt_facility/lib/router/page/facility_page_router.dart

@@ -0,0 +1,21 @@
+import 'package:auto_route/auto_route.dart';
+import 'package:flutter/material.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+import 'package:router/path/router_path.dart';
+
+import '../../modules/facility/page/facility_page.dart';
+
+
+part 'facility_page_router.gr.dart';
+
+/*\
+ * Facility模块的路由
+ */
+@AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')
+class FacilityPageRouter extends _$FacilityPageRouter {
+  @override
+  List<AutoRoute> get routes => [
+
+    CustomRoute(page: FacilityPageRoute.page, path: RouterPath.facility, transitionsBuilder: applySlideTransition),
+  ];
+}

+ 39 - 0
packages/cpt_facility/lib/router/page/facility_page_router.gr.dart

@@ -0,0 +1,39 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+// **************************************************************************
+// AutoRouterGenerator
+// **************************************************************************
+
+// ignore_for_file: type=lint
+// coverage:ignore-file
+
+part of 'facility_page_router.dart';
+
+abstract class _$FacilityPageRouter extends RootStackRouter {
+  // ignore: unused_element
+  _$FacilityPageRouter({super.navigatorKey});
+
+  @override
+  final Map<String, PageFactory> pagesMap = {
+    FacilityPageRoute.name: (routeData) {
+      return AutoRoutePage<dynamic>(
+        routeData: routeData,
+        child: const FacilityPage(),
+      );
+    }
+  };
+}
+
+/// generated route for
+/// [FacilityPage]
+class FacilityPageRoute extends PageRouteInfo<void> {
+  const FacilityPageRoute({List<PageRouteInfo>? children})
+      : super(
+          FacilityPageRoute.name,
+          initialChildren: children,
+        );
+
+  static const String name = 'FacilityPageRoute';
+
+  static const PageInfo<void> page = PageInfo<void>(name);
+}

+ 33 - 0
packages/cpt_form/lib/modules/form/page/form_page.dart

@@ -0,0 +1,33 @@
+import 'package:flutter/material.dart';
+import 'package:auto_route/auto_route.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+
+import '../../../router/page/form_page_router.dart';
+import '../../form/vm/form_view_model.dart';
+
+@RoutePage()
+class FormPage extends HookConsumerWidget {
+  const FormPage({Key? key}) : super(key: key);
+
+  //启动当前页面
+  static void startInstance({BuildContext? context}) {
+    if (context != null) {
+      context.router.push(const FormPageRoute());
+    } else {
+      appRouter.push(const FormPageRoute());
+    }
+  }
+
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final _viewModel = ref.read(formViewModelProvider.notifier);
+
+    return Scaffold(
+      appBar: AppBar(title: Text("表单")),
+      body: Center(
+        child: Text("表单的主页面"),
+      ),
+    );
+  }
+}

+ 14 - 0
packages/cpt_form/lib/modules/form/vm/form_view_model.dart

@@ -0,0 +1,14 @@
+
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+part 'form_view_model.g.dart';
+
+@riverpod
+class FormViewModel extends _$FormViewModel {
+
+  @override
+  void build(){
+
+  }
+
+}

+ 26 - 0
packages/cpt_form/lib/modules/form/vm/form_view_model.g.dart

@@ -0,0 +1,26 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'form_view_model.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$formViewModelHash() => r'a69136cad5608bd822d90addb0f841119a59bd72';
+
+/// See also [FormViewModel].
+@ProviderFor(FormViewModel)
+final formViewModelProvider =
+    AutoDisposeNotifierProvider<FormViewModel, void>.internal(
+  FormViewModel.new,
+  name: r'formViewModelProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$formViewModelHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+typedef _$FormViewModel = AutoDisposeNotifier<void>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 0 - 0
packages/cpt_form/lib/modules/form_export.dart


+ 24 - 0
packages/cpt_form/lib/router/component/form_component_service.dart

@@ -0,0 +1,24 @@
+/*
+ * Community 组件的组件路由
+ */
+import 'package:flutter/cupertino.dart';
+import 'package:router/componentRouter/form_service.dart';
+import 'package:flutter/material.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+import '../../modules/form/page/form_page.dart';
+
+part 'form_component_service.g.dart';
+
+@Riverpod(keepAlive: true)
+FormService formService(Ref ref) {
+  return FormComponentService();
+}
+
+class FormComponentService extends FormService {
+  @override
+  void startFormPage() {
+    FormPage.startInstance();
+  }
+}

+ 26 - 0
packages/cpt_form/lib/router/component/form_component_service.g.dart

@@ -0,0 +1,26 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'form_component_service.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$formServiceHash() => r'c0525ee02f4d7cfdd8cf757229c886b126edb4dd';
+
+/// See also [formService].
+@ProviderFor(formService)
+final formServiceProvider = Provider<FormService>.internal(
+  formService,
+  name: r'formServiceProvider',
+  debugGetCreateSourceHash:
+      const bool.fromEnvironment('dart.vm.product') ? null : _$formServiceHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+@Deprecated('Will be removed in 3.0. Use Ref instead')
+// ignore: unused_element
+typedef FormServiceRef = ProviderRef<FormService>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 21 - 0
packages/cpt_form/lib/router/page/form_page_router.dart

@@ -0,0 +1,21 @@
+import 'package:auto_route/auto_route.dart';
+import 'package:flutter/material.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+import 'package:router/path/router_path.dart';
+
+import '../../modules/form/page/form_page.dart';
+
+
+part 'form_page_router.gr.dart';
+
+/*\
+ * Form模块的路由
+ */
+@AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')
+class FormPageRouter extends _$FormPageRouter {
+  @override
+  List<AutoRoute> get routes => [
+
+    CustomRoute(page: FormPageRoute.page, path: RouterPath.form, transitionsBuilder: applySlideTransition),
+  ];
+}

+ 39 - 0
packages/cpt_form/lib/router/page/form_page_router.gr.dart

@@ -0,0 +1,39 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+// **************************************************************************
+// AutoRouterGenerator
+// **************************************************************************
+
+// ignore_for_file: type=lint
+// coverage:ignore-file
+
+part of 'form_page_router.dart';
+
+abstract class _$FormPageRouter extends RootStackRouter {
+  // ignore: unused_element
+  _$FormPageRouter({super.navigatorKey});
+
+  @override
+  final Map<String, PageFactory> pagesMap = {
+    FormPageRoute.name: (routeData) {
+      return AutoRoutePage<dynamic>(
+        routeData: routeData,
+        child: const FormPage(),
+      );
+    }
+  };
+}
+
+/// generated route for
+/// [FormPage]
+class FormPageRoute extends PageRouteInfo<void> {
+  const FormPageRoute({List<PageRouteInfo>? children})
+      : super(
+          FormPageRoute.name,
+          initialChildren: children,
+        );
+
+  static const String name = 'FormPageRoute';
+
+  static const PageInfo<void> page = PageInfo<void>(name);
+}

+ 44 - 8
packages/cpt_main/lib/modules/home/page/home_page.dart

@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
 import 'package:flutter/src/widgets/framework.dart';
 import 'package:hooks_riverpod/hooks_riverpod.dart';
 import 'package:auto_route/auto_route.dart';
+import 'package:router/componentRouter/component_service_manager.dart';
 import 'package:widgets/ext/ex_widget.dart';
 
 @RoutePage()
@@ -21,11 +22,15 @@ class HomePage extends HookConsumerWidget {
               mainAxisAlignment: MainAxisAlignment.spaceAround,
               children: [
                 ElevatedButton(
-                  onPressed: () {},
+                  onPressed: () {
+                    ComponentServiceManager().paymentService.startPaymentPage();
+                  },
                   child: Text(S.of(context).payment),  //国际化中英文适配
                 ),
                 ElevatedButton(
-                  onPressed: () {},
+                  onPressed: () {
+                    ComponentServiceManager().rewardsService.startRewardsPage();
+                  },
                   child: Text(S.of(context).rewards),
                 ),
                 ElevatedButton(
@@ -38,15 +43,21 @@ class HomePage extends HookConsumerWidget {
               mainAxisAlignment: MainAxisAlignment.spaceAround,
               children: [
                 ElevatedButton(
-                  onPressed: () {},
+                  onPressed: () {
+                    ComponentServiceManager().facilityService.startFacilityPage();
+                  },
                   child: Text(S.of(context).facility),
                 ),
                 ElevatedButton(
-                  onPressed: () {},
+                  onPressed: () {
+                    ComponentServiceManager().formService.startFormPage();
+                  },
                   child: Text(S.of(context).form),
                 ),
                 ElevatedButton(
-                  onPressed: () {},
+                  onPressed: () {
+                    ComponentServiceManager().noticeBoardService.startNoticeBoardPage();
+                  },
                   child: Text(S.of(context).notice_board),
                 ),
               ],
@@ -55,19 +66,44 @@ class HomePage extends HookConsumerWidget {
               mainAxisAlignment: MainAxisAlignment.spaceAround,
               children: [
                 ElevatedButton(
-                  onPressed: () {},
+                  onPressed: () {
+                    ComponentServiceManager().propertyService.startPropertyPage();
+                  },
                   child: Text('Property'),
                 ),
                 ElevatedButton(
-                  onPressed: () {},
+                  onPressed: () {
+                    ComponentServiceManager().servicesService.startServicePage();
+                  },
                   child: Text('Service'),
                 ),
                 ElevatedButton(
-                  onPressed: () {},
+                  onPressed: () {
+                    ComponentServiceManager().communityService.startCommunityPage();
+                  },
                   child: Text('Community'),
                 ),
               ],
             ).marginOnly(top: 10),
+            Row(
+              mainAxisAlignment: MainAxisAlignment.spaceAround,
+              children: [
+                ElevatedButton(
+                  onPressed: () {
+                    ComponentServiceManager().authService.startLoginPage();
+                  },
+                  child: Text('Login'),
+                ),
+                ElevatedButton(
+                  onPressed: () {},
+                  child: Text('Forgot'),
+                ),
+                ElevatedButton(
+                  onPressed: () {},
+                  child: Text('Setting'),
+                ),
+              ],
+            ).marginOnly(top: 10),
           ],
         ),
       ),

+ 1 - 1
packages/cpt_main/lib/router/page/main_page_router.dart

@@ -14,7 +14,7 @@ import '../../modules/visitor/page/visitor_page.dart';
 part 'main_page_router.gr.dart';
 
 /*\
- * 全局的通用页面的路由
+ * Main模块的路由
  */
 @AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')
 class MainPageRouter extends _$MainPageRouter {

+ 33 - 0
packages/cpt_notice_board/lib/modules/notice_board/page/notice_board_page.dart

@@ -0,0 +1,33 @@
+import 'package:flutter/material.dart';
+import 'package:auto_route/auto_route.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+
+import '../../../router/page/notice_board_page_router.dart';
+import '../../notice_board/vm/notice_board_view_model.dart';
+
+@RoutePage()
+class NoticeBoardPage extends HookConsumerWidget {
+  const NoticeBoardPage({Key? key}) : super(key: key);
+
+  //启动当前页面
+  static void startInstance({BuildContext? context}) {
+    if (context != null) {
+      context.router.push(const NoticeBoardPageRoute());
+    } else {
+      appRouter.push(const NoticeBoardPageRoute());
+    }
+  }
+
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final _viewModel = ref.read(noticeBoardViewModelProvider.notifier);
+
+    return Scaffold(
+      appBar: AppBar(title: Text("消息板")),
+      body: Center(
+        child: Text("消息板的主页面"),
+      ),
+    );
+  }
+}

+ 14 - 0
packages/cpt_notice_board/lib/modules/notice_board/vm/notice_board_view_model.dart

@@ -0,0 +1,14 @@
+
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+part 'notice_board_view_model.g.dart';
+
+@riverpod
+class NoticeBoardViewModel extends _$NoticeBoardViewModel {
+
+  @override
+  void build(){
+
+  }
+
+}

+ 27 - 0
packages/cpt_notice_board/lib/modules/notice_board/vm/notice_board_view_model.g.dart

@@ -0,0 +1,27 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'notice_board_view_model.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$noticeBoardViewModelHash() =>
+    r'ef467d39ec1baea3c118dbb21e348acb2d219e83';
+
+/// See also [NoticeBoardViewModel].
+@ProviderFor(NoticeBoardViewModel)
+final noticeBoardViewModelProvider =
+    AutoDisposeNotifierProvider<NoticeBoardViewModel, void>.internal(
+  NoticeBoardViewModel.new,
+  name: r'noticeBoardViewModelProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$noticeBoardViewModelHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+typedef _$NoticeBoardViewModel = AutoDisposeNotifier<void>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 0 - 0
packages/cpt_notice_board/lib/modules/notice_board_export.dart


+ 24 - 0
packages/cpt_notice_board/lib/router/component/notice_board_component_service.dart

@@ -0,0 +1,24 @@
+/*
+ * NoticeBoard 组件的组件路由
+ */
+import 'package:flutter/cupertino.dart';
+import 'package:router/componentRouter/notice_board_service.dart';
+import 'package:flutter/material.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+import '../../modules/notice_board/page/notice_board_page.dart';
+
+part 'notice_board_component_service.g.dart';
+
+@Riverpod(keepAlive: true)
+NoticeBoardService noticeBoardService(Ref ref) {
+  return NoticeBoardComponentService();
+}
+
+class NoticeBoardComponentService extends NoticeBoardService {
+  @override
+  void startNoticeBoardPage() {
+    NoticeBoardPage.startInstance();
+  }
+}

+ 28 - 0
packages/cpt_notice_board/lib/router/component/notice_board_component_service.g.dart

@@ -0,0 +1,28 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'notice_board_component_service.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$noticeBoardServiceHash() =>
+    r'16a49fe491a43293ad89165e9f13ea397779bccd';
+
+/// See also [noticeBoardService].
+@ProviderFor(noticeBoardService)
+final noticeBoardServiceProvider = Provider<NoticeBoardService>.internal(
+  noticeBoardService,
+  name: r'noticeBoardServiceProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$noticeBoardServiceHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+@Deprecated('Will be removed in 3.0. Use Ref instead')
+// ignore: unused_element
+typedef NoticeBoardServiceRef = ProviderRef<NoticeBoardService>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 21 - 0
packages/cpt_notice_board/lib/router/page/notice_board_page_router.dart

@@ -0,0 +1,21 @@
+import 'package:auto_route/auto_route.dart';
+import 'package:flutter/material.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+import 'package:router/path/router_path.dart';
+
+import '../../modules/notice_board/page/notice_board_page.dart';
+
+
+part 'notice_board_page_router.gr.dart';
+
+/*\
+ * NoticeBoard 模块的路由
+ */
+@AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')
+class NoticeBoardPageRouter extends _$NoticeBoardPageRouter {
+  @override
+  List<AutoRoute> get routes => [
+
+    CustomRoute(page: NoticeBoardPageRoute.page, path: RouterPath.noticeBoard, transitionsBuilder: applySlideTransition),
+  ];
+}

+ 39 - 0
packages/cpt_notice_board/lib/router/page/notice_board_page_router.gr.dart

@@ -0,0 +1,39 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+// **************************************************************************
+// AutoRouterGenerator
+// **************************************************************************
+
+// ignore_for_file: type=lint
+// coverage:ignore-file
+
+part of 'notice_board_page_router.dart';
+
+abstract class _$NoticeBoardPageRouter extends RootStackRouter {
+  // ignore: unused_element
+  _$NoticeBoardPageRouter({super.navigatorKey});
+
+  @override
+  final Map<String, PageFactory> pagesMap = {
+    NoticeBoardPageRoute.name: (routeData) {
+      return AutoRoutePage<dynamic>(
+        routeData: routeData,
+        child: const NoticeBoardPage(),
+      );
+    }
+  };
+}
+
+/// generated route for
+/// [NoticeBoardPage]
+class NoticeBoardPageRoute extends PageRouteInfo<void> {
+  const NoticeBoardPageRoute({List<PageRouteInfo>? children})
+      : super(
+          NoticeBoardPageRoute.name,
+          initialChildren: children,
+        );
+
+  static const String name = 'NoticeBoardPageRoute';
+
+  static const PageInfo<void> page = PageInfo<void>(name);
+}

+ 33 - 0
packages/cpt_payment/lib/modules/payment/page/payment_page.dart

@@ -0,0 +1,33 @@
+import 'package:flutter/material.dart';
+import 'package:auto_route/auto_route.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+
+import '../../../router/page/payment_page_router.dart';
+import '../../payment/vm/payment_view_model.dart';
+
+@RoutePage()
+class PaymentPage extends HookConsumerWidget {
+  const PaymentPage({Key? key}) : super(key: key);
+
+  //启动当前页面
+  static void startInstance({BuildContext? context}) {
+    if (context != null) {
+      context.router.push(const PaymentPageRoute());
+    } else {
+      appRouter.push(const PaymentPageRoute());
+    }
+  }
+
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final _viewModel = ref.read(paymentViewModelProvider.notifier);
+
+    return Scaffold(
+      appBar: AppBar(title: Text("支付")),
+      body: Center(
+        child: Text("支付的主页面"),
+      ),
+    );
+  }
+}

+ 14 - 0
packages/cpt_payment/lib/modules/payment/vm/payment_view_model.dart

@@ -0,0 +1,14 @@
+
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+part 'payment_view_model.g.dart';
+
+@riverpod
+class PaymentViewModel extends _$PaymentViewModel {
+
+  @override
+  void build(){
+
+  }
+
+}

+ 26 - 0
packages/cpt_payment/lib/modules/payment/vm/payment_view_model.g.dart

@@ -0,0 +1,26 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'payment_view_model.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$paymentViewModelHash() => r'd7676e7e39bd82fadc0c83dcd226c747210d83e9';
+
+/// See also [PaymentViewModel].
+@ProviderFor(PaymentViewModel)
+final paymentViewModelProvider =
+    AutoDisposeNotifierProvider<PaymentViewModel, void>.internal(
+  PaymentViewModel.new,
+  name: r'paymentViewModelProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$paymentViewModelHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+typedef _$PaymentViewModel = AutoDisposeNotifier<void>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 0 - 0
packages/cpt_payment/lib/modules/payment_export.dart


+ 25 - 0
packages/cpt_payment/lib/router/component/payment_component_service.dart

@@ -0,0 +1,25 @@
+/*
+ * Community 组件的组件路由
+ */
+import 'package:flutter/cupertino.dart';
+import 'package:router/componentRouter/payment_service.dart';
+import 'package:flutter/material.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+import '../../modules/payment/page/payment_page.dart';
+
+part 'payment_component_service.g.dart';
+
+@Riverpod(keepAlive: true)
+PaymentService paymentService(Ref ref) {
+  return PaymentComponentService();
+}
+
+class PaymentComponentService extends PaymentService {
+
+  @override
+  void startPaymentPage() {
+    PaymentPage.startInstance();
+  }
+}

+ 27 - 0
packages/cpt_payment/lib/router/component/payment_component_service.g.dart

@@ -0,0 +1,27 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'payment_component_service.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$paymentServiceHash() => r'27be45bf68bcd8ddb8c2adb34ea74019c716a15d';
+
+/// See also [paymentService].
+@ProviderFor(paymentService)
+final paymentServiceProvider = Provider<PaymentService>.internal(
+  paymentService,
+  name: r'paymentServiceProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$paymentServiceHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+@Deprecated('Will be removed in 3.0. Use Ref instead')
+// ignore: unused_element
+typedef PaymentServiceRef = ProviderRef<PaymentService>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 21 - 0
packages/cpt_payment/lib/router/page/payment_page_router.dart

@@ -0,0 +1,21 @@
+import 'package:auto_route/auto_route.dart';
+import 'package:flutter/material.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+import 'package:router/path/router_path.dart';
+
+import '../../modules/payment/page/payment_page.dart';
+
+
+part 'payment_page_router.gr.dart';
+
+/*\
+ * Property 模块的路由
+ */
+@AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')
+class PaymentPageRouter extends _$PaymentPageRouter {
+  @override
+  List<AutoRoute> get routes => [
+
+    CustomRoute(page: PaymentPageRoute.page, path: RouterPath.payment, transitionsBuilder: applySlideTransition),
+  ];
+}

+ 39 - 0
packages/cpt_payment/lib/router/page/payment_page_router.gr.dart

@@ -0,0 +1,39 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+// **************************************************************************
+// AutoRouterGenerator
+// **************************************************************************
+
+// ignore_for_file: type=lint
+// coverage:ignore-file
+
+part of 'payment_page_router.dart';
+
+abstract class _$PaymentPageRouter extends RootStackRouter {
+  // ignore: unused_element
+  _$PaymentPageRouter({super.navigatorKey});
+
+  @override
+  final Map<String, PageFactory> pagesMap = {
+    PaymentPageRoute.name: (routeData) {
+      return AutoRoutePage<dynamic>(
+        routeData: routeData,
+        child: const PaymentPage(),
+      );
+    }
+  };
+}
+
+/// generated route for
+/// [PaymentPage]
+class PaymentPageRoute extends PageRouteInfo<void> {
+  const PaymentPageRoute({List<PageRouteInfo>? children})
+      : super(
+          PaymentPageRoute.name,
+          initialChildren: children,
+        );
+
+  static const String name = 'PaymentPageRoute';
+
+  static const PageInfo<void> page = PageInfo<void>(name);
+}

+ 1 - 1
packages/cpt_profile/lib/router/component/profile_component_service_impl.dart

@@ -1,5 +1,5 @@
 /*
- * Main 组件的组件路由
+ * Profile 组件的组件路由
  */
 import 'package:flutter/cupertino.dart';
 import 'package:router/componentRouter/profile_service.dart';

+ 1 - 1
packages/cpt_profile/lib/router/page/profile_page_router.dart

@@ -9,7 +9,7 @@ import '../../modules/profile_edit/page/Profile_edit_page.dart';
 part 'profile_page_router.gr.dart';
 
 /*\
- * 全局的通用页面的路由
+ * Profile模块路由
  */
 @AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')
 class ProfilePageRouter extends _$ProfilePageRouter {

+ 33 - 0
packages/cpt_property/lib/modules/property/page/property_page.dart

@@ -0,0 +1,33 @@
+import 'package:flutter/material.dart';
+import 'package:auto_route/auto_route.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+
+import '../../../router/page/property_page_router.dart';
+import '../vm/property_view_model.dart';
+
+@RoutePage()
+class PropertyPage extends HookConsumerWidget {
+  const PropertyPage({Key? key}) : super(key: key);
+
+  //启动当前页面
+  static void startInstance({BuildContext? context}) {
+    if (context != null) {
+      context.router.push(const PropertyPageRoute());
+    } else {
+      appRouter.push(const PropertyPageRoute());
+    }
+  }
+
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final _viewModel = ref.read(propertyViewModelProvider.notifier);
+
+    return Scaffold(
+      appBar: AppBar(title: Text("资产")),
+      body: Center(
+        child: Text("房屋资产的主页面"),
+      ),
+    );
+  }
+}

+ 14 - 0
packages/cpt_property/lib/modules/property/vm/property_view_model.dart

@@ -0,0 +1,14 @@
+
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+part 'property_view_model.g.dart';
+
+@riverpod
+class PropertyViewModel extends _$PropertyViewModel {
+
+  @override
+  void build(){
+
+  }
+
+}

+ 26 - 0
packages/cpt_property/lib/modules/property/vm/property_view_model.g.dart

@@ -0,0 +1,26 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'property_view_model.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$propertyViewModelHash() => r'5b26fb8c848e6e1bc2527fd4ec1799929f095866';
+
+/// See also [PropertyViewModel].
+@ProviderFor(PropertyViewModel)
+final propertyViewModelProvider =
+    AutoDisposeNotifierProvider<PropertyViewModel, void>.internal(
+  PropertyViewModel.new,
+  name: r'propertyViewModelProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$propertyViewModelHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+typedef _$PropertyViewModel = AutoDisposeNotifier<void>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 0 - 0
packages/cpt_property/lib/modules/property_export.dart


+ 25 - 0
packages/cpt_property/lib/router/component/property_component_service.dart

@@ -0,0 +1,25 @@
+/*
+ * Property 组件的组件路由
+ */
+import 'package:flutter/cupertino.dart';
+import 'package:router/componentRouter/property_service.dart';
+import 'package:flutter/material.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+import '../../modules/property/page/property_page.dart';
+
+part 'property_component_service.g.dart';
+
+@Riverpod(keepAlive: true)
+PropertyService propertyService(Ref ref) {
+  return PropertyComponentService();
+}
+
+class PropertyComponentService extends PropertyService {
+
+  @override
+  void startPropertyPage() {
+    PropertyPage.startInstance();
+  }
+}

+ 27 - 0
packages/cpt_property/lib/router/component/property_component_service.g.dart

@@ -0,0 +1,27 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'property_component_service.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$propertyServiceHash() => r'6af87f1851a20ecbb0718149cb074338aec9c326';
+
+/// See also [propertyService].
+@ProviderFor(propertyService)
+final propertyServiceProvider = Provider<PropertyService>.internal(
+  propertyService,
+  name: r'propertyServiceProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$propertyServiceHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+@Deprecated('Will be removed in 3.0. Use Ref instead')
+// ignore: unused_element
+typedef PropertyServiceRef = ProviderRef<PropertyService>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 21 - 0
packages/cpt_property/lib/router/page/property_page_router.dart

@@ -0,0 +1,21 @@
+import 'package:auto_route/auto_route.dart';
+import 'package:flutter/material.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+import 'package:router/path/router_path.dart';
+
+import '../../modules/property/page/property_page.dart';
+
+
+part 'property_page_router.gr.dart';
+
+/*\
+ * Property 模块的路由
+ */
+@AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')
+class PropertyPageRouter extends _$PropertyPageRouter {
+  @override
+  List<AutoRoute> get routes => [
+
+    CustomRoute(page: PropertyPageRoute.page, path: RouterPath.property, transitionsBuilder: applySlideTransition),
+  ];
+}

+ 39 - 0
packages/cpt_property/lib/router/page/property_page_router.gr.dart

@@ -0,0 +1,39 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+// **************************************************************************
+// AutoRouterGenerator
+// **************************************************************************
+
+// ignore_for_file: type=lint
+// coverage:ignore-file
+
+part of 'property_page_router.dart';
+
+abstract class _$PropertyPageRouter extends RootStackRouter {
+  // ignore: unused_element
+  _$PropertyPageRouter({super.navigatorKey});
+
+  @override
+  final Map<String, PageFactory> pagesMap = {
+    PropertyPageRoute.name: (routeData) {
+      return AutoRoutePage<dynamic>(
+        routeData: routeData,
+        child: const PropertyPage(),
+      );
+    }
+  };
+}
+
+/// generated route for
+/// [PropertyPage]
+class PropertyPageRoute extends PageRouteInfo<void> {
+  const PropertyPageRoute({List<PageRouteInfo>? children})
+      : super(
+          PropertyPageRoute.name,
+          initialChildren: children,
+        );
+
+  static const String name = 'PropertyPageRoute';
+
+  static const PageInfo<void> page = PageInfo<void>(name);
+}

+ 33 - 0
packages/cpt_rewards/lib/modules/rewards/page/rewards_page.dart

@@ -0,0 +1,33 @@
+import 'package:flutter/material.dart';
+import 'package:auto_route/auto_route.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+
+import '../../../router/page/rewards_page_router.dart';
+import '../../rewards/vm/rewards_view_model.dart';
+
+@RoutePage()
+class RewardsPage extends HookConsumerWidget {
+  const RewardsPage({Key? key}) : super(key: key);
+
+  //启动当前页面
+  static void startInstance({BuildContext? context}) {
+    if (context != null) {
+      context.router.push(const RewardsPageRoute());
+    } else {
+      appRouter.push(const RewardsPageRoute());
+    }
+  }
+
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final _viewModel = ref.read(rewardsViewModelProvider.notifier);
+
+    return Scaffold(
+      appBar: AppBar(title: Text("奖励")),
+      body: Center(
+        child: Text("奖励的主页面"),
+      ),
+    );
+  }
+}

+ 14 - 0
packages/cpt_rewards/lib/modules/rewards/vm/rewards_view_model.dart

@@ -0,0 +1,14 @@
+
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+part 'rewards_view_model.g.dart';
+
+@riverpod
+class RewardsViewModel extends _$RewardsViewModel {
+
+  @override
+  void build(){
+
+  }
+
+}

+ 26 - 0
packages/cpt_rewards/lib/modules/rewards/vm/rewards_view_model.g.dart

@@ -0,0 +1,26 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'rewards_view_model.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$rewardsViewModelHash() => r'c8caf7fff2300901e7242dc7fa38ec975280fe3a';
+
+/// See also [RewardsViewModel].
+@ProviderFor(RewardsViewModel)
+final rewardsViewModelProvider =
+    AutoDisposeNotifierProvider<RewardsViewModel, void>.internal(
+  RewardsViewModel.new,
+  name: r'rewardsViewModelProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$rewardsViewModelHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+typedef _$RewardsViewModel = AutoDisposeNotifier<void>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 0 - 0
packages/cpt_rewards/lib/modules/rewards_export.dart


+ 25 - 0
packages/cpt_rewards/lib/router/component/rewards_component_service.dart

@@ -0,0 +1,25 @@
+/*
+ * rewards 组件的组件路由
+ */
+import 'package:flutter/cupertino.dart';
+import 'package:router/componentRouter/rewards_service.dart';
+import 'package:flutter/material.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+import '../../modules/rewards/page/rewards_page.dart';
+
+part 'rewards_component_service.g.dart';
+
+@Riverpod(keepAlive: true)
+RewardsService rewardsService(Ref ref) {
+  return RewardsComponentService();
+}
+
+class RewardsComponentService extends RewardsService {
+  @override
+  void startRewardsPage() {
+    RewardsPage.startInstance();
+  }
+
+}

+ 27 - 0
packages/cpt_rewards/lib/router/component/rewards_component_service.g.dart

@@ -0,0 +1,27 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'rewards_component_service.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$rewardsServiceHash() => r'e4627820a76d2e08cf2eb51ab0d0a35c97df84db';
+
+/// See also [rewardsService].
+@ProviderFor(rewardsService)
+final rewardsServiceProvider = Provider<RewardsService>.internal(
+  rewardsService,
+  name: r'rewardsServiceProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$rewardsServiceHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+@Deprecated('Will be removed in 3.0. Use Ref instead')
+// ignore: unused_element
+typedef RewardsServiceRef = ProviderRef<RewardsService>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 21 - 0
packages/cpt_rewards/lib/router/page/rewards_page_router.dart

@@ -0,0 +1,21 @@
+import 'package:auto_route/auto_route.dart';
+import 'package:flutter/material.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+import 'package:router/path/router_path.dart';
+
+import '../../modules/rewards/page/rewards_page.dart';
+
+
+part 'rewards_page_router.gr.dart';
+
+/*\
+ * rewards 模块的路由
+ */
+@AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')
+class RewardsPageRouter extends _$RewardsPageRouter {
+  @override
+  List<AutoRoute> get routes => [
+
+    CustomRoute(page: RewardsPageRoute.page, path: RouterPath.rewards, transitionsBuilder: applySlideTransition),
+  ];
+}

+ 39 - 0
packages/cpt_rewards/lib/router/page/rewards_page_router.gr.dart

@@ -0,0 +1,39 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+// **************************************************************************
+// AutoRouterGenerator
+// **************************************************************************
+
+// ignore_for_file: type=lint
+// coverage:ignore-file
+
+part of 'rewards_page_router.dart';
+
+abstract class _$RewardsPageRouter extends RootStackRouter {
+  // ignore: unused_element
+  _$RewardsPageRouter({super.navigatorKey});
+
+  @override
+  final Map<String, PageFactory> pagesMap = {
+    RewardsPageRoute.name: (routeData) {
+      return AutoRoutePage<dynamic>(
+        routeData: routeData,
+        child: const RewardsPage(),
+      );
+    }
+  };
+}
+
+/// generated route for
+/// [RewardsPage]
+class RewardsPageRoute extends PageRouteInfo<void> {
+  const RewardsPageRoute({List<PageRouteInfo>? children})
+      : super(
+          RewardsPageRoute.name,
+          initialChildren: children,
+        );
+
+  static const String name = 'RewardsPageRoute';
+
+  static const PageInfo<void> page = PageInfo<void>(name);
+}

+ 33 - 0
packages/cpt_services/lib/modules/services/page/services_page.dart

@@ -0,0 +1,33 @@
+import 'package:flutter/material.dart';
+import 'package:auto_route/auto_route.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+
+import '../../../router/page/services_page_router.dart';
+import '../../services/vm/services_view_model.dart';
+
+@RoutePage()
+class ServicesPage extends HookConsumerWidget {
+  const ServicesPage({Key? key}) : super(key: key);
+
+  //启动当前页面
+  static void startInstance({BuildContext? context}) {
+    if (context != null) {
+      context.router.push(const ServicesPageRoute());
+    } else {
+      appRouter.push(const ServicesPageRoute());
+    }
+  }
+
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final _viewModel = ref.read(servicesViewModelProvider.notifier);
+
+    return Scaffold(
+      appBar: AppBar(title: Text("广告服务")),
+      body: Center(
+        child: Text("广告服务的主页面"),
+      ),
+    );
+  }
+}

+ 14 - 0
packages/cpt_services/lib/modules/services/vm/services_view_model.dart

@@ -0,0 +1,14 @@
+
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+part 'services_view_model.g.dart';
+
+@riverpod
+class ServicesViewModel extends _$ServicesViewModel {
+
+  @override
+  void build(){
+
+  }
+
+}

+ 26 - 0
packages/cpt_services/lib/modules/services/vm/services_view_model.g.dart

@@ -0,0 +1,26 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'services_view_model.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$servicesViewModelHash() => r'f2f28efe8edb9b152be0a1a4de4563d8d50cee29';
+
+/// See also [ServicesViewModel].
+@ProviderFor(ServicesViewModel)
+final servicesViewModelProvider =
+    AutoDisposeNotifierProvider<ServicesViewModel, void>.internal(
+  ServicesViewModel.new,
+  name: r'servicesViewModelProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$servicesViewModelHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+typedef _$ServicesViewModel = AutoDisposeNotifier<void>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 0 - 0
packages/cpt_services/lib/modules/services_export.dart


+ 25 - 0
packages/cpt_services/lib/router/component/services_component_service.dart

@@ -0,0 +1,25 @@
+/*
+ * Community 组件的组件路由
+ */
+import 'package:flutter/cupertino.dart';
+import 'package:router/componentRouter/service_service.dart';
+import 'package:flutter/material.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+import '../../modules/services/page/services_page.dart';
+
+part 'services_component_service.g.dart';
+
+@Riverpod(keepAlive: true)
+ServiceService servicesService(Ref ref) {
+  return ServicesComponentService();
+}
+
+class ServicesComponentService extends ServiceService {
+
+  @override
+  void startServicePage() {
+    ServicesPage.startInstance();
+  }
+}

+ 27 - 0
packages/cpt_services/lib/router/component/services_component_service.g.dart

@@ -0,0 +1,27 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'services_component_service.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$servicesServiceHash() => r'a971c4164ae9658dea497912a5d9e799c319cfd3';
+
+/// See also [servicesService].
+@ProviderFor(servicesService)
+final servicesServiceProvider = Provider<ServiceService>.internal(
+  servicesService,
+  name: r'servicesServiceProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$servicesServiceHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+@Deprecated('Will be removed in 3.0. Use Ref instead')
+// ignore: unused_element
+typedef ServicesServiceRef = ProviderRef<ServiceService>;
+// ignore_for_file: type=lint
+// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 21 - 0
packages/cpt_services/lib/router/page/services_page_router.dart

@@ -0,0 +1,21 @@
+import 'package:auto_route/auto_route.dart';
+import 'package:flutter/material.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+import 'package:router/path/router_path.dart';
+
+import '../../modules/services/page/services_page.dart';
+
+
+part 'services_page_router.gr.dart';
+
+/*\
+ * Form模块的路由
+ */
+@AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')
+class ServicesPageRouter extends _$ServicesPageRouter {
+  @override
+  List<AutoRoute> get routes => [
+
+    CustomRoute(page: ServicesPageRoute.page, path: RouterPath.services, transitionsBuilder: applySlideTransition),
+  ];
+}

+ 39 - 0
packages/cpt_services/lib/router/page/services_page_router.gr.dart

@@ -0,0 +1,39 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+// **************************************************************************
+// AutoRouterGenerator
+// **************************************************************************
+
+// ignore_for_file: type=lint
+// coverage:ignore-file
+
+part of 'services_page_router.dart';
+
+abstract class _$ServicesPageRouter extends RootStackRouter {
+  // ignore: unused_element
+  _$ServicesPageRouter({super.navigatorKey});
+
+  @override
+  final Map<String, PageFactory> pagesMap = {
+    ServicesPageRoute.name: (routeData) {
+      return AutoRoutePage<dynamic>(
+        routeData: routeData,
+        child: const ServicesPage(),
+      );
+    }
+  };
+}
+
+/// generated route for
+/// [ServicesPage]
+class ServicesPageRoute extends PageRouteInfo<void> {
+  const ServicesPageRoute({List<PageRouteInfo>? children})
+      : super(
+          ServicesPageRoute.name,
+          initialChildren: children,
+        );
+
+  static const String name = 'ServicesPageRoute';
+
+  static const PageInfo<void> page = PageInfo<void>(name);
+}

+ 5 - 1
packages/cs_domain/pubspec_overrides.yaml

@@ -1,9 +1,13 @@
-# melos_managed_dependency_overrides: cs_resources,plugin_platform,shared,widgets
+# melos_managed_dependency_overrides: cs_resources,plugin_platform,shared,widgets,plugin_basic,router
 dependency_overrides:
   cs_resources:
     path: ../cs_resources
+  plugin_basic:
+    path: ../cs_plugin_basic
   plugin_platform:
     path: ../cs_plugin_platform
+  router:
+    path: ../cs_router
   shared:
     path: ../cs_shared
   widgets:

+ 3 - 1
packages/cs_plugin_platform/pubspec_overrides.yaml

@@ -1,7 +1,9 @@
-# melos_managed_dependency_overrides: cs_resources,shared,widgets
+# melos_managed_dependency_overrides: cs_resources,shared,widgets,router
 dependency_overrides:
   cs_resources:
     path: ../cs_resources
+  router:
+    path: ../cs_router
   shared:
     path: ../cs_shared
   widgets:

+ 0 - 4
packages/cs_router/lib/componentRouter/auth_service.dart

@@ -5,10 +5,6 @@ abstract class AuthService {
 
   void startLoginPage();
 
-  void startPopAll2LoginPage();
-
-  void startPopAll2MainPage();
-
   void startResetPasswordPage();
 
 }

+ 80 - 8
packages/cs_router/lib/componentRouter/component_service_manager.dart

@@ -1,9 +1,18 @@
 import 'package:flutter_riverpod/flutter_riverpod.dart';
+import 'package:router/componentRouter/auth_service.dart';
 import 'package:router/componentRouter/profile_service.dart';
+import 'package:router/componentRouter/rewards_service.dart';
 
 import '../ext/router_provider_container.dart';
 import 'app_service.dart';
+import 'community_service.dart';
+import 'facility_service.dart';
+import 'form_service.dart';
 import 'main_service.dart';
+import 'notice_board_service.dart';
+import 'payment_service.dart';
+import 'property_service.dart';
+import 'service_service.dart';
 
 
 class ComponentServiceManager {
@@ -50,13 +59,76 @@ class ComponentServiceManager {
     return routerContainer.read(provider as Provider<ProfileService>);
   }
 
+  AuthService get authService {
+    final provider = _serviceProviders[AuthService];
+    if (provider == null) {
+      throw Exception('Provider for AuthService not found.');
+    }
+    return routerContainer.read(provider as Provider<AuthService>);
+  }
+
+  CommunityService get communityService {
+    final provider = _serviceProviders[CommunityService];
+    if (provider == null) {
+      throw Exception('Provider for CommunityService not found.');
+    }
+    return routerContainer.read(provider as Provider<CommunityService>);
+  }
+
+  FacilityService get facilityService {
+    final provider = _serviceProviders[FacilityService];
+    if (provider == null) {
+      throw Exception('Provider for FacilityService not found.');
+    }
+    return routerContainer.read(provider as Provider<FacilityService>);
+  }
+
+  FormService get formService {
+    final provider = _serviceProviders[FormService];
+    if (provider == null) {
+      throw Exception('Provider for FormService not found.');
+    }
+    return routerContainer.read(provider as Provider<FormService>);
+  }
+
+  NoticeBoardService get noticeBoardService {
+    final provider = _serviceProviders[NoticeBoardService];
+    if (provider == null) {
+      throw Exception('Provider for NoticeBoardService not found.');
+    }
+    return routerContainer.read(provider as Provider<NoticeBoardService>);
+  }
+
+  PaymentService get paymentService {
+    final provider = _serviceProviders[PaymentService];
+    if (provider == null) {
+      throw Exception('Provider for PaymentService not found.');
+    }
+    return routerContainer.read(provider as Provider<PaymentService>);
+  }
+
+  PropertyService get propertyService {
+    final provider = _serviceProviders[PropertyService];
+    if (provider == null) {
+      throw Exception('Provider for PropertyService not found.');
+    }
+    return routerContainer.read(provider as Provider<PropertyService>);
+  }
+
+  RewardsService get rewardsService {
+    final provider = _serviceProviders[RewardsService];
+    if (provider == null) {
+      throw Exception('Provider for RewardsService not found.');
+    }
+    return routerContainer.read(provider as Provider<RewardsService>);
+  }
+
+  ServiceService get servicesService {
+    final provider = _serviceProviders[ServiceService];
+    if (provider == null) {
+      throw Exception('Provider for ServiceService not found.');
+    }
+    return routerContainer.read(provider as Provider<ServiceService>);
+  }
 
-// 在这里可以继续添加其他具体的服务获取方法
-// OtherService get otherService {
-//   final provider = _serviceProviders[OtherService];
-//   if (provider == null) {
-//     throw Exception('Provider for OtherService not found.');
-//   }
-//   return routerContainer.read(provider as Provider<OtherService>);
-// }
 }

+ 24 - 0
packages/cs_router/lib/path/router_path.dart

@@ -17,6 +17,30 @@ class RouterPath {
   //用户
   static const profileEdit = '/profile/edit';
 
+  //社区
+  static const community = '/community';
+
+  //设施
+  static const facility = '/facility';
+
+  //表单
+  static const form = '/form';
+
+  //消息板
+  static const noticeBoard = '/notice_board';
+
+  //支付
+  static const payment = '/payment';
+
+  //房屋资产
+  static const property = '/property';
+
+  //奖励
+  static const rewards = '/rewards';
+
+  //服务广告
+  static const services = '/services';
+
   //全局其他
   static const previewImage = '/preview/image'; //预览图片
   static const globalWeb = '/global/web/:isShowAppBar/:initialUrl/:title'; //全局公用的Web页面

+ 3 - 1
packages/cs_widgets/pubspec_overrides.yaml

@@ -1,6 +1,8 @@
-# melos_managed_dependency_overrides: cs_resources,shared
+# melos_managed_dependency_overrides: cs_resources,shared,router
 dependency_overrides:
   cs_resources:
     path: ../cs_resources
+  router:
+    path: ../cs_router
   shared:
     path: ../cs_shared