Bladeren bron

设置页面

liukai 2 weken geleden
bovenliggende
commit
0535edee31
23 gewijzigde bestanden met toevoegingen van 496 en 33 verwijderingen
  1. 9 9
      melos.yaml
  2. 3 1
      packages/cpt_main/lib/modules/home/page/home_page.dart
  3. 1 1
      packages/cpt_profile/lib/modules/profile_edit/page/Profile_edit_page.dart
  4. 0 0
      packages/cpt_profile/lib/modules/profile_edit/profile_edit_view_model.dart
  5. 0 0
      packages/cpt_profile/lib/modules/profile_edit/profile_edit_view_model.g.dart
  6. 90 0
      packages/cpt_profile/lib/modules/setting/setting_page.dart
  7. 15 0
      packages/cpt_profile/lib/modules/setting/setting_state.dart
  8. 17 0
      packages/cpt_profile/lib/modules/setting/setting_view_model.dart
  9. 26 0
      packages/cpt_profile/lib/modules/setting/setting_view_model.g.dart
  10. 18 1
      packages/cpt_profile/lib/router/component/profile_component_service_impl.dart
  11. 3 1
      packages/cpt_profile/lib/router/page/profile_page_router.dart
  12. 21 1
      packages/cpt_profile/lib/router/page/profile_page_router.gr.dart
  13. 25 2
      packages/cs_resources/lib/generated/intl/messages_en.dart
  14. 20 2
      packages/cs_resources/lib/generated/intl/messages_zh_CN.dart
  15. 20 2
      packages/cs_resources/lib/generated/intl/messages_zh_HK.dart
  16. 140 0
      packages/cs_resources/lib/generated/l10n.dart
  17. 14 0
      packages/cs_resources/lib/l10n/intl_en.arb
  18. 14 0
      packages/cs_resources/lib/l10n/intl_zh_CN.arb
  19. 14 0
      packages/cs_resources/lib/l10n/intl_zh_HK.arb
  20. 12 1
      packages/cs_resources/lib/theme/app_colors_theme.dart
  21. 10 0
      packages/cs_router/lib/componentRouter/profile_service.dart
  22. 7 1
      packages/cs_router/lib/path/router_path.dart
  23. 17 11
      packages/cs_widgets/lib/shatter/setting_item_container.dart

+ 9 - 9
melos.yaml

@@ -48,31 +48,31 @@ scripts:
     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
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_community" && dart run build_runner build --delete-conflicting-outputs
     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
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_facility" && dart run build_runner build --delete-conflicting-outputs
     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
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_form" && dart run build_runner build --delete-conflicting-outputs
     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
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_main" && dart run build_runner build --delete-conflicting-outputs
     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
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_notice_board" && dart run build_runner build --delete-conflicting-outputs
     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
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_payment" && dart run build_runner build --delete-conflicting-outputs
     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
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_profile" && dart run build_runner build --delete-conflicting-outputs
     description: Run `dart run build_runner build` in profile module
 
   build_runner_property:
@@ -84,11 +84,11 @@ scripts:
     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
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_rewards" && dart run build_runner build --delete-conflicting-outputs
     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
+    run: cd "$MELOS_ROOT_PATH/packages/cpt_services" && dart run build_runner build --delete-conflicting-outputs
     description: Run `dart run build_runner build` in services module
 
   clean_all:

+ 3 - 1
packages/cpt_main/lib/modules/home/page/home_page.dart

@@ -101,7 +101,9 @@ class HomePage extends HookConsumerWidget {
                   child: Text('Forgot'),
                 ),
                 ElevatedButton(
-                  onPressed: () {},
+                  onPressed: () {
+                    ComponentServiceManager().profileService.startSettingPage();
+                  },
                   child: Text('Setting'),
                 ),
               ],

+ 1 - 1
packages/cpt_profile/lib/modules/profile_edit/page/Profile_edit_page.dart

@@ -1,4 +1,4 @@
-import 'package:cpt_profile/modules/profile_edit/vm/profile_edit_view_model.dart';
+import 'package:cpt_profile/modules/profile_edit/profile_edit_view_model.dart';
 import 'package:cpt_profile/router/page/profile_page_router.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';

packages/cpt_profile/lib/modules/profile_edit/vm/profile_edit_view_model.dart → packages/cpt_profile/lib/modules/profile_edit/profile_edit_view_model.dart


packages/cpt_profile/lib/modules/profile_edit/vm/profile_edit_view_model.g.dart → packages/cpt_profile/lib/modules/profile_edit/profile_edit_view_model.g.dart


+ 90 - 0
packages/cpt_profile/lib/modules/setting/setting_page.dart

@@ -0,0 +1,90 @@
+import 'package:cpt_profile/modules/setting/setting_view_model.dart';
+import 'package:cpt_profile/router/page/profile_page_router.dart';
+import 'package:cs_resources/generated/l10n.dart';
+import 'package:cs_resources/theme/app_colors_theme.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:auto_route/auto_route.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:plugin_basic/provider/app_config/app_config_service.dart';
+import 'package:router/ext/auto_router_extensions.dart';
+import 'package:widgets/my_appbar.dart';
+import 'package:widgets/my_text_view.dart';
+import 'package:widgets/shatter/setting_item_container.dart';
+
+@RoutePage()
+class SettingPage extends HookConsumerWidget {
+  const SettingPage({Key? key}) : super(key: key);
+
+  //启动当前页面
+  static void startInstance({BuildContext? context}) {
+    if (context != null) {
+      context.router.push(const SettingPageRoute());
+    } else {
+      appRouter.push(const SettingPageRoute());
+    }
+  }
+
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final viewModel = ref.watch(settingViewModelProvider.notifier);
+    final state = ref.watch(settingViewModelProvider);
+
+    return Scaffold(
+      appBar: MyAppBar.appBar(context, S.current.settings, backgroundColor: context.appColors.whiteBG),
+      backgroundColor: context.appColors.backgroundDark,
+      body: SingleChildScrollView(
+        scrollDirection: Axis.vertical,
+        physics: const BouncingScrollPhysics(),
+        child: Column(
+          mainAxisSize: MainAxisSize.max,
+          crossAxisAlignment: CrossAxisAlignment.center,
+          children: [
+            const SizedBox(height: 10),
+
+            //允许通知
+            SettingItemContainer(
+              title: S.current.enable_notification,
+              rightWidget: CupertinoSwitch(
+                activeColor: context.appColors.textPrimary,
+                value: state.enbaleNofitication,
+                onChanged: (value) {
+                  viewModel.changeEnableNotification(value);
+                },
+              ),
+            ),
+
+            //修改手机号码
+            SettingItemContainer(title: S.current.change_mobile_phone),
+
+            //重置密码
+            SettingItemContainer(title: S.current.reset_password),
+
+            //隐私协议
+            SettingItemContainer(title: S.current.privacy_policy),
+
+            //服务条款
+            SettingItemContainer(title: S.current.terms_conditions),
+
+            //删除账号
+            SettingItemContainer(title: S.current.account_deactivation),
+
+            //评价我们
+            SettingItemContainer(title: S.current.rate_us),
+
+            //版本号
+            SettingItemContainer(
+              title: S.current.version_no,
+              rightWidget: MyTextView(
+                AppConfigService.getState().version,
+                textColor: context.appColors.textPrimary,
+                fontSize: 15,
+                isFontMedium: true,
+              ),
+            ),
+          ],
+        ),
+      ),
+    );
+  }
+}

+ 15 - 0
packages/cpt_profile/lib/modules/setting/setting_state.dart

@@ -0,0 +1,15 @@
+class SettingState {
+  final bool enbaleNofitication;  //是否允许通知
+
+  const SettingState({
+    this.enbaleNofitication = true,
+  });
+
+  SettingState copyWith({
+    bool? enbaleNofitication,
+  }) {
+    return SettingState(
+      enbaleNofitication: enbaleNofitication ?? this.enbaleNofitication,
+    );
+  }
+}

+ 17 - 0
packages/cpt_profile/lib/modules/setting/setting_view_model.dart

@@ -0,0 +1,17 @@
+import 'package:cpt_profile/modules/setting/setting_state.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+
+part 'setting_view_model.g.dart';
+
+@riverpod
+class SettingViewModel extends _$SettingViewModel {
+  @override
+  SettingState build() {
+    return SettingState();
+  }
+
+  void changeEnableNotification(bool value) {
+    state = state.copyWith(enbaleNofitication: value);
+  }
+
+}

+ 26 - 0
packages/cpt_profile/lib/modules/setting/setting_view_model.g.dart

@@ -0,0 +1,26 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'setting_view_model.dart';
+
+// **************************************************************************
+// RiverpodGenerator
+// **************************************************************************
+
+String _$settingViewModelHash() => r'19cfe63eaf670fb5b02c9870a16a210815321d9f';
+
+/// See also [SettingViewModel].
+@ProviderFor(SettingViewModel)
+final settingViewModelProvider =
+    AutoDisposeNotifierProvider<SettingViewModel, SettingState>.internal(
+  SettingViewModel.new,
+  name: r'settingViewModelProvider',
+  debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
+      ? null
+      : _$settingViewModelHash,
+  dependencies: null,
+  allTransitiveDependencies: null,
+);
+
+typedef _$SettingViewModel = AutoDisposeNotifier<SettingState>;
+// 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

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

@@ -1,10 +1,11 @@
 /*
  * Profile 组件的组件路由
  */
+import 'package:cpt_profile/modules/setting/setting_page.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:router/componentRouter/profile_service.dart';
 
-import '../../modules/profile_edit/page/Profile_edit_page.dart';
+import '../../modules/profile_edit/Profile_edit_page.dart';
 
 class ProfileComponentServiceImpl extends ProfileService {
   @override
@@ -12,4 +13,20 @@ class ProfileComponentServiceImpl extends ProfileService {
     ProfileEditPage.startInstance(context: context);
   }
 
+  @override
+  void startMyEstatePage({BuildContext? context}) {}
+
+  @override
+  void startMyFollowPage({BuildContext? context}) {}
+
+  @override
+  void startMyHouseHoldPage({BuildContext? context}) {}
+
+  @override
+  void startMyPostPage({BuildContext? context}) {}
+
+  @override
+  void startSettingPage({BuildContext? context}) {
+    SettingPage.startInstance(context: context);
+  }
 }

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

@@ -3,7 +3,8 @@ import 'package:flutter/material.dart';
 import 'package:router/ext/auto_router_extensions.dart';
 import 'package:router/path/router_path.dart';
 
-import '../../modules/profile_edit/page/Profile_edit_page.dart';
+import '../../modules/profile_edit/Profile_edit_page.dart';
+import '../../modules/setting/setting_page.dart';
 
 
 part 'profile_page_router.gr.dart';
@@ -17,5 +18,6 @@ class ProfilePageRouter extends _$ProfilePageRouter {
   List<AutoRoute> get routes => [
 
     CustomRoute(page: ProfileEditPageRoute.page, path: RouterPath.profileEdit, transitionsBuilder: applySlideTransition),
+    CustomRoute(page: SettingPageRoute.page, path: RouterPath.settings, transitionsBuilder: applySlideTransition),
   ];
 }

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

@@ -20,7 +20,13 @@ abstract class _$ProfilePageRouter extends RootStackRouter {
         routeData: routeData,
         child: const ProfileEditPage(),
       );
-    }
+    },
+    SettingPageRoute.name: (routeData) {
+      return AutoRoutePage<dynamic>(
+        routeData: routeData,
+        child: const SettingPage(),
+      );
+    },
   };
 }
 
@@ -37,3 +43,17 @@ class ProfileEditPageRoute extends PageRouteInfo<void> {
 
   static const PageInfo<void> page = PageInfo<void>(name);
 }
+
+/// generated route for
+/// [SettingPage]
+class SettingPageRoute extends PageRouteInfo<void> {
+  const SettingPageRoute({List<PageRouteInfo>? children})
+      : super(
+          SettingPageRoute.name,
+          initialChildren: children,
+        );
+
+  static const String name = 'SettingPageRoute';
+
+  static const PageInfo<void> page = PageInfo<void>(name);
+}

+ 25 - 2
packages/cs_resources/lib/generated/intl/messages_en.dart

@@ -20,10 +20,17 @@ typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
 class MessageLookup extends MessageLookupByLibrary {
   String get localeName => 'en';
 
-  static String m0(name) => "Welcome ${name}";
+  static String m0(count) => "Followers(${count})";
+
+  static String m1(count) => "Following(${count})";
+
+  static String m2(name) => "Welcome ${name}";
 
   final messages = _notInlinedMessages(_notInlinedMessages);
   static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
+        "Logout": MessageLookupByLibrary.simpleMessage("Logout"),
+        "account_deactivation":
+            MessageLookupByLibrary.simpleMessage("Account Deactivation"),
         "agree_to": MessageLookupByLibrary.simpleMessage("Agree to"),
         "block": MessageLookupByLibrary.simpleMessage("Block"),
         "block_desc": MessageLookupByLibrary.simpleMessage(
@@ -32,6 +39,8 @@ class MessageLookup extends MessageLookupByLibrary {
             "123 Example Road #08-08 Country 123456"),
         "block_example_desc": MessageLookupByLibrary.simpleMessage(
             "123 is the block number #08-08 is the unit number"),
+        "change_mobile_phone":
+            MessageLookupByLibrary.simpleMessage("Change Mobile Phone"),
         "confirm_password":
             MessageLookupByLibrary.simpleMessage("Confirm Password"),
         "create_new_yy_home_account":
@@ -39,12 +48,17 @@ class MessageLookup extends MessageLookupByLibrary {
         "did_not_receive":
             MessageLookupByLibrary.simpleMessage("Did Not Receive?"),
         "email": MessageLookupByLibrary.simpleMessage("Email"),
+        "enable_notification":
+            MessageLookupByLibrary.simpleMessage("Enable Notification"),
+        "estate": MessageLookupByLibrary.simpleMessage("Estate"),
         "estate_name_desc": MessageLookupByLibrary.simpleMessage(
             "Tell us the name of the estateor building you are applying to"),
         "estate_or_building_name":
             MessageLookupByLibrary.simpleMessage("Estate or Building Name?"),
         "facility": MessageLookupByLibrary.simpleMessage("Facility"),
         "first_name": MessageLookupByLibrary.simpleMessage("First Name"),
+        "followers": m0,
+        "following": m1,
         "forgot_password":
             MessageLookupByLibrary.simpleMessage("Forgot Password?"),
         "forgot_text": MessageLookupByLibrary.simpleMessage(
@@ -53,9 +67,11 @@ class MessageLookup extends MessageLookupByLibrary {
         "get_code": MessageLookupByLibrary.simpleMessage("Get Code"),
         "get_started":
             MessageLookupByLibrary.simpleMessage("let\'s get started"),
+        "household": MessageLookupByLibrary.simpleMessage("Household"),
         "last_name": MessageLookupByLibrary.simpleMessage("Last Name"),
         "login": MessageLookupByLibrary.simpleMessage("Log In"),
         "mobile_phone": MessageLookupByLibrary.simpleMessage("Mobile Phone"),
+        "my_post": MessageLookupByLibrary.simpleMessage("My Posts"),
         "next": MessageLookupByLibrary.simpleMessage("Next"),
         "notice_board": MessageLookupByLibrary.simpleMessage("Notice Board"),
         "notification": MessageLookupByLibrary.simpleMessage("Notification"),
@@ -78,10 +94,14 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("8 Digits Alphanumeric"),
         "payment": MessageLookupByLibrary.simpleMessage("Payment"),
         "phone_email": MessageLookupByLibrary.simpleMessage("Phone/Email"),
+        "privacy_policy":
+            MessageLookupByLibrary.simpleMessage("Privacy Policy"),
+        "rate_us": MessageLookupByLibrary.simpleMessage("Rate Us"),
         "resend_code": MessageLookupByLibrary.simpleMessage("Resend Code"),
         "reset_password":
             MessageLookupByLibrary.simpleMessage("Reset Password"),
         "rewards": MessageLookupByLibrary.simpleMessage("Rewards"),
+        "settings": MessageLookupByLibrary.simpleMessage("Settings"),
         "sign_up_success_txt1": MessageLookupByLibrary.simpleMessage(
             "You have successfully created an YY Home account"),
         "sign_up_success_txt2": MessageLookupByLibrary.simpleMessage(
@@ -99,6 +119,8 @@ class MessageLookup extends MessageLookupByLibrary {
             "I am the tenant of the company that rented the unit"),
         "tenants_desc4": MessageLookupByLibrary.simpleMessage(
             "The Management will verify your application accordingly"),
+        "terms_conditions":
+            MessageLookupByLibrary.simpleMessage("Terms & Conditions"),
         "terms_of_service":
             MessageLookupByLibrary.simpleMessage("Terms of Service"),
         "tries_left": MessageLookupByLibrary.simpleMessage("Tries Left"),
@@ -115,7 +137,8 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("Upload Documents"),
         "verification_code":
             MessageLookupByLibrary.simpleMessage("Verification Code"),
-        "welcome_name": m0,
+        "version_no": MessageLookupByLibrary.simpleMessage("Version No."),
+        "welcome_name": m2,
         "who_are_owners":
             MessageLookupByLibrary.simpleMessage("Who are owners?"),
         "who_are_tenants":

+ 20 - 2
packages/cs_resources/lib/generated/intl/messages_zh_CN.dart

@@ -20,10 +20,16 @@ typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
 class MessageLookup extends MessageLookupByLibrary {
   String get localeName => 'zh_CN';
 
-  static String m0(name) => "欢迎你 ${name}";
+  static String m0(count) => "粉丝(${count})";
+
+  static String m1(count) => "关注(${count})";
+
+  static String m2(name) => "欢迎你 ${name}";
 
   final messages = _notInlinedMessages(_notInlinedMessages);
   static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
+        "Logout": MessageLookupByLibrary.simpleMessage("退出登录"),
+        "account_deactivation": MessageLookupByLibrary.simpleMessage("删除账号"),
         "agree_to": MessageLookupByLibrary.simpleMessage("同意"),
         "block": MessageLookupByLibrary.simpleMessage("街区"),
         "block_desc": MessageLookupByLibrary.simpleMessage("街区是指单位官方邮编街道号"),
@@ -31,25 +37,32 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("123 示例路 #08-08 国家 123456"),
         "block_example_desc":
             MessageLookupByLibrary.simpleMessage("123 是街区地址邮编 #08-08 是单元号码"),
+        "change_mobile_phone": MessageLookupByLibrary.simpleMessage("修改手机号码"),
         "confirm_password": MessageLookupByLibrary.simpleMessage("确认密码"),
         "create_new_yy_home_account":
             MessageLookupByLibrary.simpleMessage("创建新的 YY Home 账户"),
         "did_not_receive": MessageLookupByLibrary.simpleMessage("没有收到验证码?"),
         "email": MessageLookupByLibrary.simpleMessage("邮箱"),
+        "enable_notification": MessageLookupByLibrary.simpleMessage("允许通知"),
+        "estate": MessageLookupByLibrary.simpleMessage("房产"),
         "estate_name_desc":
             MessageLookupByLibrary.simpleMessage("告诉我们您申请的公寓楼的名称"),
         "estate_or_building_name":
             MessageLookupByLibrary.simpleMessage("房产或建筑名称?"),
         "facility": MessageLookupByLibrary.simpleMessage("设施"),
         "first_name": MessageLookupByLibrary.simpleMessage("名"),
+        "followers": m0,
+        "following": m1,
         "forgot_password": MessageLookupByLibrary.simpleMessage("忘记密码?"),
         "forgot_text": MessageLookupByLibrary.simpleMessage("请输入您的邮箱和手机号码"),
         "form": MessageLookupByLibrary.simpleMessage("表单"),
         "get_code": MessageLookupByLibrary.simpleMessage("获取验证码"),
         "get_started": MessageLookupByLibrary.simpleMessage("让我们开始吧"),
+        "household": MessageLookupByLibrary.simpleMessage("家庭"),
         "last_name": MessageLookupByLibrary.simpleMessage("姓"),
         "login": MessageLookupByLibrary.simpleMessage("登录"),
         "mobile_phone": MessageLookupByLibrary.simpleMessage("手机号码"),
+        "my_post": MessageLookupByLibrary.simpleMessage("我的发布"),
         "next": MessageLookupByLibrary.simpleMessage("下一步"),
         "notice_board": MessageLookupByLibrary.simpleMessage("消息板"),
         "notification": MessageLookupByLibrary.simpleMessage("通知"),
@@ -66,9 +79,12 @@ class MessageLookup extends MessageLookupByLibrary {
         "password_format": MessageLookupByLibrary.simpleMessage("8位数字或字母"),
         "payment": MessageLookupByLibrary.simpleMessage("支付"),
         "phone_email": MessageLookupByLibrary.simpleMessage("电话或邮箱"),
+        "privacy_policy": MessageLookupByLibrary.simpleMessage("隐私协议"),
+        "rate_us": MessageLookupByLibrary.simpleMessage("评价我们"),
         "resend_code": MessageLookupByLibrary.simpleMessage("重新发送"),
         "reset_password": MessageLookupByLibrary.simpleMessage("重置密码"),
         "rewards": MessageLookupByLibrary.simpleMessage("奖励"),
+        "settings": MessageLookupByLibrary.simpleMessage("设置"),
         "sign_up_success_txt1":
             MessageLookupByLibrary.simpleMessage("您已成功创建 YYHome 的帐户"),
         "sign_up_success_txt2":
@@ -82,6 +98,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "tenants_desc2": MessageLookupByLibrary.simpleMessage("我和指定的租户住在同一个家庭"),
         "tenants_desc3": MessageLookupByLibrary.simpleMessage("我是租用该单元的公司的租户"),
         "tenants_desc4": MessageLookupByLibrary.simpleMessage("管理员将相应地验证您的申请"),
+        "terms_conditions": MessageLookupByLibrary.simpleMessage("服务条款"),
         "terms_of_service": MessageLookupByLibrary.simpleMessage("服务条款"),
         "tries_left": MessageLookupByLibrary.simpleMessage("次尝试机会"),
         "type_here": MessageLookupByLibrary.simpleMessage("在此输入"),
@@ -95,7 +112,8 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("(2)租赁协议印花税收据"),
         "upload_documents": MessageLookupByLibrary.simpleMessage("上传文档"),
         "verification_code": MessageLookupByLibrary.simpleMessage("验证码"),
-        "welcome_name": m0,
+        "version_no": MessageLookupByLibrary.simpleMessage("版本号."),
+        "welcome_name": m2,
         "who_are_owners": MessageLookupByLibrary.simpleMessage("怎样才算业主?"),
         "who_are_tenants": MessageLookupByLibrary.simpleMessage("怎样才算租户?"),
         "you_have": MessageLookupByLibrary.simpleMessage("你还有"),

+ 20 - 2
packages/cs_resources/lib/generated/intl/messages_zh_HK.dart

@@ -20,10 +20,16 @@ typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
 class MessageLookup extends MessageLookupByLibrary {
   String get localeName => 'zh_HK';
 
-  static String m0(name) => "欢迎你 ${name}";
+  static String m0(count) => "粉丝(${count})";
+
+  static String m1(count) => "关注(${count})";
+
+  static String m2(name) => "欢迎你 ${name}";
 
   final messages = _notInlinedMessages(_notInlinedMessages);
   static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
+        "Logout": MessageLookupByLibrary.simpleMessage("退出登录"),
+        "account_deactivation": MessageLookupByLibrary.simpleMessage("删除账号"),
         "agree_to": MessageLookupByLibrary.simpleMessage("同意"),
         "block": MessageLookupByLibrary.simpleMessage("街区"),
         "block_desc": MessageLookupByLibrary.simpleMessage("街区是指单位官方邮编街道号"),
@@ -31,25 +37,32 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("123 示例路 #08-08 国家 123456"),
         "block_example_desc":
             MessageLookupByLibrary.simpleMessage("123 是街区地址邮编 #08-08 是单元号码"),
+        "change_mobile_phone": MessageLookupByLibrary.simpleMessage("修改手机号码"),
         "confirm_password": MessageLookupByLibrary.simpleMessage("确认密码"),
         "create_new_yy_home_account":
             MessageLookupByLibrary.simpleMessage("创建新的 YY Home 账户"),
         "did_not_receive": MessageLookupByLibrary.simpleMessage("没有收到验证码?"),
         "email": MessageLookupByLibrary.simpleMessage("邮箱"),
+        "enable_notification": MessageLookupByLibrary.simpleMessage("允许通知"),
+        "estate": MessageLookupByLibrary.simpleMessage("房产"),
         "estate_name_desc":
             MessageLookupByLibrary.simpleMessage("告诉我们您申请的公寓楼的名称"),
         "estate_or_building_name":
             MessageLookupByLibrary.simpleMessage("房产或建筑名称?"),
         "facility": MessageLookupByLibrary.simpleMessage("設施"),
         "first_name": MessageLookupByLibrary.simpleMessage("名"),
+        "followers": m0,
+        "following": m1,
         "forgot_password": MessageLookupByLibrary.simpleMessage("忘记密码?"),
         "forgot_text": MessageLookupByLibrary.simpleMessage("请输入您的邮箱和手机号码"),
         "form": MessageLookupByLibrary.simpleMessage("表單"),
         "get_code": MessageLookupByLibrary.simpleMessage("获取验证码"),
         "get_started": MessageLookupByLibrary.simpleMessage("让我们开始吧"),
+        "household": MessageLookupByLibrary.simpleMessage("家庭"),
         "last_name": MessageLookupByLibrary.simpleMessage("姓"),
         "login": MessageLookupByLibrary.simpleMessage("登录"),
         "mobile_phone": MessageLookupByLibrary.simpleMessage("手机号码"),
+        "my_post": MessageLookupByLibrary.simpleMessage("我的发布"),
         "next": MessageLookupByLibrary.simpleMessage("下一步"),
         "notice_board": MessageLookupByLibrary.simpleMessage("通知板"),
         "notification": MessageLookupByLibrary.simpleMessage("通知"),
@@ -58,9 +71,12 @@ class MessageLookup extends MessageLookupByLibrary {
         "password_format": MessageLookupByLibrary.simpleMessage("8位数字或字母"),
         "payment": MessageLookupByLibrary.simpleMessage("支付"),
         "phone_email": MessageLookupByLibrary.simpleMessage("电话或邮箱"),
+        "privacy_policy": MessageLookupByLibrary.simpleMessage("隐私协议"),
+        "rate_us": MessageLookupByLibrary.simpleMessage("评价我们"),
         "resend_code": MessageLookupByLibrary.simpleMessage("重新发送"),
         "reset_password": MessageLookupByLibrary.simpleMessage("重置密码"),
         "rewards": MessageLookupByLibrary.simpleMessage("獎勵"),
+        "settings": MessageLookupByLibrary.simpleMessage("设置"),
         "sign_up_success_txt1":
             MessageLookupByLibrary.simpleMessage("您已成功创建 YYHome 的帐户"),
         "sign_up_success_txt2":
@@ -69,6 +85,7 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("现在,让我们把你和你的社区关联起来"),
         "sign_up_verify_txt":
             MessageLookupByLibrary.simpleMessage("我们已经向您发送了短信验证码,请在下面输入"),
+        "terms_conditions": MessageLookupByLibrary.simpleMessage("服务条款"),
         "terms_of_service": MessageLookupByLibrary.simpleMessage("服务条款"),
         "tries_left": MessageLookupByLibrary.simpleMessage("次尝试机会"),
         "type_here": MessageLookupByLibrary.simpleMessage("在此输入"),
@@ -82,7 +99,8 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("(2)租赁协议印花税收据"),
         "upload_documents": MessageLookupByLibrary.simpleMessage("上传文档"),
         "verification_code": MessageLookupByLibrary.simpleMessage("验证码"),
-        "welcome_name": m0,
+        "version_no": MessageLookupByLibrary.simpleMessage("版本号."),
+        "welcome_name": m2,
         "you_have": MessageLookupByLibrary.simpleMessage("你还有"),
         "yy_home_accounts": MessageLookupByLibrary.simpleMessage("YY Home 账户")
       };

+ 140 - 0
packages/cs_resources/lib/generated/l10n.dart

@@ -670,6 +670,146 @@ class S {
     );
   }
 
+  /// `Following({count})`
+  String following(Object count) {
+    return Intl.message(
+      'Following($count)',
+      name: 'following',
+      desc: '',
+      args: [count],
+    );
+  }
+
+  /// `Followers({count})`
+  String followers(Object count) {
+    return Intl.message(
+      'Followers($count)',
+      name: 'followers',
+      desc: '',
+      args: [count],
+    );
+  }
+
+  /// `My Posts`
+  String get my_post {
+    return Intl.message(
+      'My Posts',
+      name: 'my_post',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Household`
+  String get household {
+    return Intl.message(
+      'Household',
+      name: 'household',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Estate`
+  String get estate {
+    return Intl.message(
+      'Estate',
+      name: 'estate',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Settings`
+  String get settings {
+    return Intl.message(
+      'Settings',
+      name: 'settings',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Enable Notification`
+  String get enable_notification {
+    return Intl.message(
+      'Enable Notification',
+      name: 'enable_notification',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Change Mobile Phone`
+  String get change_mobile_phone {
+    return Intl.message(
+      'Change Mobile Phone',
+      name: 'change_mobile_phone',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Privacy Policy`
+  String get privacy_policy {
+    return Intl.message(
+      'Privacy Policy',
+      name: 'privacy_policy',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Terms & Conditions`
+  String get terms_conditions {
+    return Intl.message(
+      'Terms & Conditions',
+      name: 'terms_conditions',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Account Deactivation`
+  String get account_deactivation {
+    return Intl.message(
+      'Account Deactivation',
+      name: 'account_deactivation',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Rate Us`
+  String get rate_us {
+    return Intl.message(
+      'Rate Us',
+      name: 'rate_us',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Version No.`
+  String get version_no {
+    return Intl.message(
+      'Version No.',
+      name: 'version_no',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Logout`
+  String get Logout {
+    return Intl.message(
+      'Logout',
+      name: 'Logout',
+      desc: '',
+      args: [],
+    );
+  }
+
   /// `Other`
   String get other {
     return Intl.message(

+ 14 - 0
packages/cs_resources/lib/l10n/intl_en.arb

@@ -61,5 +61,19 @@
   "upload_doc_desc1": "(1)A valid tenancy agreement showing your name,unit numper,tenancy expiration date and a list of occupants (if applicable)",
   "upload_doc_desc2": "(2)Tenancy Agreement Stamp Duty receipt",
   "upload": "Upload",
+  "following": "Following({count})",
+  "followers": "Followers({count})",
+  "my_post": "My Posts",
+  "household": "Household",
+  "estate": "Estate",
+  "settings": "Settings",
+  "enable_notification": "Enable Notification",
+  "change_mobile_phone": "Change Mobile Phone",
+  "privacy_policy": "Privacy Policy",
+  "terms_conditions": "Terms & Conditions",
+  "account_deactivation": "Account Deactivation",
+  "rate_us": "Rate Us",
+  "version_no": "Version No.",
+  "Logout": "Logout",
   "other": "Other"
 }

+ 14 - 0
packages/cs_resources/lib/l10n/intl_zh_CN.arb

@@ -61,5 +61,19 @@
   "upload_doc_desc1": "(1)一份有效的租赁协议,显示您的姓名、单位编号、租赁到期日期和居住者名单(如果适用)",
   "upload_doc_desc2": "(2)租赁协议印花税收据",
   "upload": "上传",
+  "following": "关注({count})",
+  "followers": "粉丝({count})",
+  "my_post": "我的发布",
+  "household": "家庭",
+  "estate": "房产",
+  "settings": "设置",
+  "enable_notification": "允许通知",
+  "change_mobile_phone": "修改手机号码",
+  "privacy_policy": "隐私协议",
+  "terms_conditions": "服务条款",
+  "account_deactivation": "删除账号",
+  "rate_us": "评价我们",
+  "version_no": "版本号.",
+  "Logout": "退出登录",
   "other": "其他"
 }

+ 14 - 0
packages/cs_resources/lib/l10n/intl_zh_HK.arb

@@ -47,5 +47,19 @@
   "upload_doc_desc1": "(1)一份有效的租赁协议,显示您的姓名、单位编号、租赁到期日期和居住者名单(如果适用)",
   "upload_doc_desc2": "(2)租赁协议印花税收据",
   "upload": "上传",
+  "following": "关注({count})",
+  "followers": "粉丝({count})",
+  "my_post": "我的发布",
+  "household": "家庭",
+  "estate": "房产",
+  "settings": "设置",
+  "enable_notification": "允许通知",
+  "change_mobile_phone": "修改手机号码",
+  "privacy_policy": "隐私协议",
+  "terms_conditions": "服务条款",
+  "account_deactivation": "删除账号",
+  "rate_us": "评价我们",
+  "version_no": "版本号.",
+  "Logout": "退出登录",
   "other": "其他"
 }

+ 12 - 1
packages/cs_resources/lib/theme/app_colors_theme.dart

@@ -22,6 +22,7 @@ class AppColorsTheme extends ThemeExtension<AppColorsTheme> {
   static const _color333333 = Color(0xFF333333);
   static const _colorF3F3F3 = Color(0xFFF3F3F3);
   static const _color999999 = Color(0xFF999999);
+  static const _colorF2F3F6 = Color(0xFFF2F3F6);
 
   //暗色主题的一些自定义颜色值
   static const _darkBlackBg = Color(0xFF0F0F0F);
@@ -31,7 +32,8 @@ class AppColorsTheme extends ThemeExtension<AppColorsTheme> {
   static const _darkBlackItemDivider = Color(0xFF3B3B3F);
 
   // 页面中真正使用到的颜色名称
-  final Color backgroundDefault; //页面背景颜色
+  final Color backgroundDefault; //页面背景颜色(偏白)
+  final Color backgroundDark; //页面背景颜色(蓝灰蓝)
   final Color btnBgDefault; //按钮背景颜色
   final Color searchFiledBorder; //搜索框的边框颜色
   final Color authFiledHint; //输入框默认的提示文本颜色
@@ -47,10 +49,12 @@ class AppColorsTheme extends ThemeExtension<AppColorsTheme> {
   final Color tabTextUnSelectedPrimary; //Tab的未选中主题色文本
   final Color imgGrayBg; //灰色的图片底色背景
   final Color textDarkGray999; //文本深灰色
+  final Color whiteBG; //按钮的白色色背景
 
   // 私有的构造函数
   const AppColorsTheme._internal({
     required this.backgroundDefault,
+    required this.backgroundDark,
     required this.btnBgDefault,
     required this.searchFiledBorder,
     required this.authFiledHint,
@@ -66,12 +70,14 @@ class AppColorsTheme extends ThemeExtension<AppColorsTheme> {
     required this.tabTextUnSelectedPrimary,
     required this.imgGrayBg,
     required this.textDarkGray999,
+    required this.whiteBG,
   });
 
   // 浅色主题工厂方法
   factory AppColorsTheme.light() {
     return const AppColorsTheme._internal(
       backgroundDefault: _colorFCFCFC,
+      backgroundDark: _colorF2F3F6,
       btnBgDefault: _colorPrimary,
       searchFiledBorder: _colorD7DBE7,
       authFiledHint: _colorBDBDBD,
@@ -87,6 +93,7 @@ class AppColorsTheme extends ThemeExtension<AppColorsTheme> {
       tabTextUnSelectedPrimary: _color333333,
       imgGrayBg: _colorF3F3F3,
       textDarkGray999: _color999999,
+      whiteBG: Colors.white,
     );
   }
 
@@ -94,6 +101,7 @@ class AppColorsTheme extends ThemeExtension<AppColorsTheme> {
   factory AppColorsTheme.dark() {
     return const AppColorsTheme._internal(
       backgroundDefault: _darkBlackBg,
+      backgroundDark: _darkBlackBg,
       btnBgDefault: _darkBlackItem,
       searchFiledBorder: _darkBlackItem,
       authFiledHint: _colorD7DBE7,
@@ -109,6 +117,7 @@ class AppColorsTheme extends ThemeExtension<AppColorsTheme> {
       tabTextUnSelectedPrimary: Colors.white,
       imgGrayBg: _darkBlackItem,
       textDarkGray999: Colors.white,
+      whiteBG: _darkBlackItem,
     );
   }
 
@@ -125,6 +134,7 @@ class AppColorsTheme extends ThemeExtension<AppColorsTheme> {
     if (other is! AppColorsTheme) return this;
     return AppColorsTheme._internal(
       backgroundDefault: Color.lerp(backgroundDefault, other.backgroundDefault, t)!,
+      backgroundDark: Color.lerp(backgroundDark, other.backgroundDark, t)!,
       btnBgDefault: Color.lerp(btnBgDefault, other.btnBgDefault, t)!,
       searchFiledBorder: Color.lerp(searchFiledBorder, other.searchFiledBorder, t)!,
       authFiledHint: Color.lerp(authFiledHint, other.authFiledHint, t)!,
@@ -140,6 +150,7 @@ class AppColorsTheme extends ThemeExtension<AppColorsTheme> {
       tabTextUnSelectedPrimary: Color.lerp(tabTextUnSelectedPrimary, other.tabTextUnSelectedPrimary, t)!,
       imgGrayBg: Color.lerp(imgGrayBg, other.imgGrayBg, t)!,
       textDarkGray999: Color.lerp(textDarkGray999, other.textDarkGray999, t)!,
+      whiteBG: Color.lerp(whiteBG, other.whiteBG, t)!,
     );
   }
 }

+ 10 - 0
packages/cs_router/lib/componentRouter/profile_service.dart

@@ -8,4 +8,14 @@ abstract class ProfileService {
 
   void startEditProfilePage({BuildContext? context});
 
+  void startMyPostPage({BuildContext? context});
+
+  void startMyFollowPage({BuildContext? context});
+
+  void startMyHouseHoldPage({BuildContext? context});
+
+  void startMyEstatePage({BuildContext? context});
+
+  void startSettingPage({BuildContext? context});
+
 }

+ 7 - 1
packages/cs_router/lib/path/router_path.dart

@@ -19,11 +19,17 @@ class RouterPath {
 
   //首页
   static const main = '/main';
-  static const settings = '/settings';
   static const notification = '/notification';
+  static const settings = '/settings';
+  static const settingsChangeMobile = '/settings/change/mobile';
+  static const settingsResetPassword = '/settings/reset/psd';
 
   //用户
   static const profileEdit = '/profile/edit';
+  static const profileEstate = '/profile/estate';
+  static const profileHousehold = '/profile/household';
+  static const profileMyFollow = '/profile/my/follow';
+  static const profileMyPost = '/profile/my/post';
 
   //社区
   static const community = '/community';

+ 17 - 11
packages/cs_widgets/lib/shatter/setting_item_container.dart

@@ -1,5 +1,6 @@
 import 'package:cs_resources/constants/color_constants.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/my_load_image.dart';
@@ -9,10 +10,12 @@ import 'package:widgets/my_text_view.dart';
  * 设置页面的Item容器,左侧图标,中间文本,右侧箭头
  */
 class SettingItemContainer extends StatelessWidget {
-  final String iconPath;
+  final String? iconPath;
   final String title;
+  final bool isShowMoreIcon;
+  final Widget? rightWidget;
 
-  SettingItemContainer({required this.iconPath, required this.title});
+  SettingItemContainer({this.iconPath, this.isShowMoreIcon = true, required this.title, this.rightWidget});
 
   @override
   Widget build(BuildContext context) {
@@ -20,26 +23,29 @@ class SettingItemContainer extends StatelessWidget {
       width: double.infinity,
       height: 60,
       margin: const EdgeInsets.symmetric(vertical: 5, horizontal: 15),
-      padding: const EdgeInsets.symmetric(vertical: 0, horizontal: 16.5),
+      padding: const EdgeInsets.symmetric(vertical: 0, horizontal: 19),
       decoration: BoxDecoration(
-        color: const Color(0xFF4DCFF6).withOpacity(0.2), // 设置背景颜色和不透明度
-        borderRadius: BorderRadius.circular(5.0), // 设置圆角
+        color: context.appColors.whiteBG, // 设置背景颜色和不透明度
+        borderRadius: BorderRadius.circular(10.0), // 设置圆角
       ),
       child: Row(
         mainAxisSize: MainAxisSize.max,
         mainAxisAlignment: MainAxisAlignment.start,
         crossAxisAlignment: CrossAxisAlignment.center,
         children: [
-          MyAssetImage(iconPath, width: 30.2, height: 30.2),
+          iconPath == null ? const SizedBox() : MyAssetImage(iconPath!, width: 30.2, height: 30.2).marginOnly(right: 11),
           MyTextView(
             title,
-            isFontRegular: true,
-            fontSize: 14,
-            marginLeft: 11,
+            isFontMedium: true,
+            fontSize: 15,
             marginRight: 11,
-            textColor: ColorConstants.textGrayAECAE5,
+            textColor: context.appColors.textBlack,
           ).expanded(),
-          const MyAssetImage(Assets.baseLibItemMoreIcon, width: 7.5, height: 13.5),
+          isShowMoreIcon
+              ? rightWidget == null
+                  ?  const MyAssetImage(Assets.baseLibItemMoreIcon, width: 7.5, height: 13.5, color: Color(0XFF28394A))
+                  : rightWidget!
+              :  const SizedBox(),
         ],
       ),
     );