Browse Source

现有的模块基本抽取国际化文本的key出来。大致已完成

liukai 3 days ago
parent
commit
e7c502108e
100 changed files with 1199 additions and 1825 deletions
  1. 3 2
      app/lib/main.dart
  2. 64 63
      packages/cpt_community/lib/components/garage_card.dart
  3. 46 44
      packages/cpt_community/lib/components/newsfeed_card_footer.dart
  4. 3 2
      packages/cpt_community/lib/modules/community/community_page.dart
  5. 29 27
      packages/cpt_community/lib/modules/community/community_state.dart
  6. 8 35
      packages/cpt_community/lib/modules/community/community_vm.dart
  7. 2 1
      packages/cpt_community/lib/modules/community/following/following_page.dart
  8. 2 1
      packages/cpt_community/lib/modules/community/foryou/foryou_page.dart
  9. 2 1
      packages/cpt_community/lib/modules/community/news/news_page.dart
  10. 6 7
      packages/cpt_community/lib/modules/community/newsfeed_detail/newsfeed_detail_page.dart
  11. 2 1
      packages/cpt_community/lib/modules/community/newsfeed_detail/newsfeed_detail_state.dart
  12. 3 2
      packages/cpt_community/lib/modules/community/newsfeed_detail/newsfeed_detail_vm.dart
  13. 2 2
      packages/cpt_community/lib/modules/community/newsfeed_post/newsfeed_post_page.dart
  14. 2 1
      packages/cpt_community/lib/modules/community/newsfeed_post/newsfeed_post_vm.dart
  15. 3 2
      packages/cpt_community/lib/modules/garage/garagesale_detail/garagesale_detail_page.dart
  16. 2 1
      packages/cpt_community/lib/modules/garage/garagesale_detail/garagesale_detail_vm.dart
  17. 7 7
      packages/cpt_community/lib/modules/garage/garagesale_post/garagesale_post_page.dart
  18. 1 0
      packages/cpt_community/lib/modules/garage/garagesale_post/garagesale_post_state.dart
  19. 2 1
      packages/cpt_community/lib/modules/my_following/components/item_following.dart
  20. 2 1
      packages/cpt_community/lib/modules/my_following/my_follow/my_follow_page.dart
  21. 2 1
      packages/cpt_community/lib/modules/my_following/my_follower/my_follower_page.dart
  22. 3 2
      packages/cpt_community/lib/modules/my_following/my_following_page.dart
  23. 1 1
      packages/cpt_community/lib/modules/my_following/my_following_tabs.dart
  24. 4 2
      packages/cpt_community/lib/modules/my_following/tabs_data.dart
  25. 2 1
      packages/cpt_community/lib/modules/my_posts/my_posts_page.dart
  26. 4 3
      packages/cpt_community/lib/modules/my_posts/my_posts_vm.dart
  27. 3 2
      packages/cpt_notice_board/lib/modules/documents/page/documents_page.dart
  28. 4 3
      packages/cpt_notice_board/lib/modules/documents_list/page/documents_list_page.dart
  29. 2 1
      packages/cpt_notice_board/lib/modules/notice_board/page/notice_board_page.dart
  30. 4 3
      packages/cpt_notice_board/lib/modules/notice_board/vm/notice_board_view_model.dart
  31. 1 1
      packages/cpt_notice_board/lib/router/page/notice_board_page_router.dart
  32. 2 1
      packages/cpt_payment/lib/modules/choose_card/choose_card_view_model.dart
  33. 2 1
      packages/cpt_payment/lib/modules/payment/manage/manage_view_model.dart
  34. 2 1
      packages/cpt_profile/lib/modules/setting/setting_view_model.dart
  35. 13 13
      packages/cpt_property/lib/modules/ioan/property_ioan_page.dart
  36. 31 71
      packages/cpt_property/lib/modules/ioan/property_ioan_vm.dart
  37. 1 1
      packages/cpt_property/lib/modules/news/page/property_news_page.dart
  38. 2 2
      packages/cpt_property/lib/modules/news_detail/property_news_detail_page.dart
  39. 2 1
      packages/cpt_property/lib/modules/property/page/property_page.dart
  40. 5 4
      packages/cpt_property/lib/modules/property/page/property_page_state.dart
  41. 2 1
      packages/cpt_property/lib/modules/rent/page/property_rent_page.dart
  42. 169 336
      packages/cpt_rewards/lib/modules/rewards/rewards_page.dart
  43. 1 1
      packages/cpt_rewards/lib/modules/rewards/rewards_repository.dart
  44. 5 3
      packages/cpt_rewards/lib/modules/rewards/rewards_state.dart
  45. 8 15
      packages/cpt_rewards/lib/modules/rewards/rewards_vm.dart
  46. 2 1
      packages/cpt_rewards/lib/modules/rewards_address/rewards_address_page.dart
  47. 6 5
      packages/cpt_rewards/lib/modules/rewards_code/rewards_code_page.dart
  48. 3 3
      packages/cpt_rewards/lib/modules/rewards_confirm/dialog/account_deactivation_dialog.dart
  49. 9 8
      packages/cpt_rewards/lib/modules/rewards_confirm/rewards_confirm_page.dart
  50. 14 13
      packages/cpt_rewards/lib/modules/rewards_detail/rewards_detail_page.dart
  51. 2 1
      packages/cpt_rewards/lib/modules/rewards_history/rewards_history_page.dart
  52. 3 2
      packages/cpt_rewards/lib/modules/rewards_history/rewards_history_vm.dart
  53. 108 195
      packages/cpt_rewards/lib/modules/rewards_home/rewards_home_page.dart
  54. 8 7
      packages/cpt_rewards/lib/modules/rewards_my/rewards_my_active/rewards_my_active_page.dart
  55. 7 6
      packages/cpt_rewards/lib/modules/rewards_my/rewards_my_expired/rewards_my_expired_page.dart
  56. 2 1
      packages/cpt_rewards/lib/modules/rewards_my/rewards_my_page.dart
  57. 15 37
      packages/cpt_rewards/lib/modules/rewards_my/rewards_my_used/rewards_my_used_page.dart
  58. 4 3
      packages/cpt_rewards/lib/modules/rewards_my/rewards_my_vm.dart
  59. 9 8
      packages/cpt_rewards/lib/modules/rewards_redeem/rewards_redeem_page.dart
  60. 42 96
      packages/cpt_rewards/lib/modules/rewards_search/rewards_search_page.dart
  61. 7 6
      packages/cpt_rewards/lib/modules/rewards_successful/rewards_successful_page.dart
  62. 13 12
      packages/cpt_rewards/lib/modules/rewards_transaction/rewards_transaction_page.dart
  63. 2 1
      packages/cpt_services/lib/components/chooseAirConditionTitle.dart
  64. 18 20
      packages/cpt_services/lib/components/chooseHouseCleanContent.dart
  65. 2 1
      packages/cpt_services/lib/components/chooseHouseCleanTitle.dart
  66. 2 1
      packages/cpt_services/lib/components/chooseVisitTimeBottomFooter.dart
  67. 4 3
      packages/cpt_services/lib/components/chooseVisitTimeContent.dart
  68. 2 1
      packages/cpt_services/lib/components/chooseVisitTimeTitle.dart
  69. 4 3
      packages/cpt_services/lib/components/status_card_item.dart
  70. 14 12
      packages/cpt_services/lib/constants_services.dart
  71. 7 23
      packages/cpt_services/lib/modules/services/clean_order_cancel_success/clean_order_cancel_success_page.dart
  72. 4 3
      packages/cpt_services/lib/modules/services/clean_order_detail/cancelOrderDialogContent.dart
  73. 8 8
      packages/cpt_services/lib/modules/services/clean_order_detail/clean_order_detail_page.dart
  74. 4 3
      packages/cpt_services/lib/modules/services/clean_order_detail/clean_order_detail_vm.dart
  75. 3 2
      packages/cpt_services/lib/modules/services/homeService/home_service_page.dart
  76. 1 1
      packages/cpt_services/lib/modules/services/inProgress/in_progress_page.dart
  77. 1 1
      packages/cpt_services/lib/modules/services/repair/repair_page.dart
  78. 4 3
      packages/cpt_services/lib/modules/services/repair/repair_state.dart
  79. 2 1
      packages/cpt_services/lib/modules/services/repair_homeService/home_service_page.dart
  80. 7 7
      packages/cpt_services/lib/modules/services/service_clean_detail/service_clean_detail_page.dart
  81. 3 2
      packages/cpt_services/lib/modules/services/service_clean_detail/service_clean_detail_vm.dart
  82. 10 8
      packages/cpt_services/lib/modules/services/service_evaluate_create/service_evaluate_create_page.dart
  83. 47 50
      packages/cpt_services/lib/modules/services/service_evaluate_create_success/evaluate_create_success_page.dart
  84. 2 1
      packages/cpt_services/lib/modules/services/service_evaluate_list/service_evaluate_list_page.dart
  85. 9 9
      packages/cpt_services/lib/modules/services/service_order_confirm/service_order_confirm_page.dart
  86. 3 2
      packages/cpt_services/lib/modules/services/service_order_confirm/service_order_confirm_vm.dart
  87. 10 9
      packages/cpt_services/lib/modules/services/service_pay_success/service_pay_success_page.dart
  88. 3 2
      packages/cpt_services/lib/modules/services/service_repair_detail/service_repair_detail_page.dart
  89. 8 7
      packages/cpt_services/lib/modules/services/service_repair_detail/service_repair_detail_vm.dart
  90. 2 1
      packages/cpt_services/lib/modules/services/services_main_page.dart
  91. 1 1
      packages/cpt_services/lib/modules/services/services_page.dart
  92. 4 3
      packages/cpt_services/lib/modules/services/services_state.dart
  93. 36 35
      packages/cs_domain/lib/entity/rewards_index_entity.dart
  94. 207 429
      packages/cs_domain/lib/generated/json/base/json_convert_content.dart
  95. 14 31
      packages/cs_domain/lib/generated/json/facility_book_entity.g.dart
  96. 2 4
      packages/cs_domain/lib/generated/json/facility_index_entity.g.dart
  97. 20 40
      packages/cs_domain/lib/generated/json/facility_page_entity.g.dart
  98. 6 14
      packages/cs_domain/lib/generated/json/feedback_detail_entity.g.dart
  99. 3 7
      packages/cs_domain/lib/generated/json/feedback_list_entity.g.dart
  100. 0 0
      packages/cs_domain/lib/generated/json/form_content_entity.g.dart

+ 3 - 2
app/lib/main.dart

@@ -56,8 +56,8 @@ void main() async {
     ..addServiceProvider(servicesServiceProvider)
     ..addServiceProvider(profileServiceProvider);
 
-  runApp(ProviderScope(
-    parent: globalContainer,
+  runApp(UncontrolledProviderScope(
+    container: globalContainer,
     child: MyApp(),
   ));
 }
@@ -143,6 +143,7 @@ class MyApp extends HookConsumerWidget {
       });
       return () {
         // 组件卸载时执行
+        globalContainer.dispose();
       };
     }, []);
 

+ 64 - 63
packages/cpt_community/lib/components/garage_card.dart

@@ -24,7 +24,6 @@ import '../modules/garage/for_sale/for_sale_vm.dart';
 // 'publish_time': 'June 17,2016 at 7:23 p.m.',
 // 'publisher_avator': Assets.communityCamera,'
 
-
 // 定义一个 使用场景的 枚举
 enum GarageCardUseType {
   // 默认
@@ -33,6 +32,7 @@ enum GarageCardUseType {
   myPostsForSale,
   myPostsForRent,
 }
+
 class GarageCard extends StatelessWidget {
   GarageCardUseType? useType;
   Map<String, dynamic> itemObj;
@@ -53,19 +53,18 @@ class GarageCard extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    List? card_resources = itemObj.getValue<List>("resources", [])?? [];
-    String card_img = card_resources.length>0? card_resources[0]:"";
+    List? card_resources = itemObj.getValue<List>("resources", []) ?? [];
+    String card_img = card_resources.length > 0 ? card_resources[0] : "";
     String card_title = itemObj.getValue("title", "");
     int card_price = itemObj.getValue("price", "");
     String card_created_at = itemObj.getValue("created_at", "");
-    Map<String, dynamic>? card_account = itemObj.getValue<Map<String,dynamic>>("account", null);
-    String card_avatar = card_account?['avatar']?? "";
-    String card_publish_name = card_account?['name']?? "";
+    Map<String, dynamic>? card_account = itemObj.getValue<Map<String, dynamic>>("account", null);
+    String card_avatar = card_account?['avatar'] ?? "";
+    String card_publish_name = card_account?['name'] ?? "";
     bool card_liked = itemObj.getValue("liked", false);
     int card_likes_count = itemObj.getValue("likes_count", 0);
-    return SizedBox(
-      height: cardHeight!,
-      child: Column(
+    return Column(
+        mainAxisSize: MainAxisSize.max,
         children: [
           // 图片
           Row(
@@ -74,7 +73,10 @@ class GarageCard extends StatelessWidget {
             children: [
               Expanded(
                 child: ClipRRect(
-                  borderRadius: const BorderRadius.only(topLeft: Radius.circular(8), topRight: Radius.circular(8),),
+                  borderRadius: const BorderRadius.only(
+                    topLeft: Radius.circular(8),
+                    topRight: Radius.circular(8),
+                  ),
                   child: MyLoadImage(
                     card_img,
                     width: 166.5,
@@ -86,9 +88,10 @@ class GarageCard extends StatelessWidget {
               ),
             ],
           ),
+
           // 标题
           Padding(
-            padding: const EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10),
+            padding: const EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 5),
             child: Row(
               mainAxisAlignment: MainAxisAlignment.center,
               children: [
@@ -106,9 +109,10 @@ class GarageCard extends StatelessWidget {
               ],
             ),
           ),
+
           // 价格 及 收藏
           Padding(
-            padding: const EdgeInsets.only(left: 10, right: 10,top: 0, bottom: 0),
+            padding: const EdgeInsets.only(left: 10, right: 10, top: 0, bottom: 0),
             child: Row(
               mainAxisAlignment: MainAxisAlignment.spaceAround,
               crossAxisAlignment: CrossAxisAlignment.center,
@@ -126,21 +130,23 @@ class GarageCard extends StatelessWidget {
                 ),
                 // 动态的 收藏数
                 CollectionWidget(
-                    collectionNum: card_likes_count,
-                    isCollection: card_liked,
-                    onClickColleciotn: onClickColleciotn,
+                  collectionNum: card_likes_count,
+                  isCollection: card_liked,
+                  onClickColleciotn: onClickColleciotn,
                 ),
               ],
             ),
           ),
+
           // 发布人信息
           Expanded(
             child: Padding(
-              padding: EdgeInsets.only(left: (useType == GarageCardUseType.forSale || useType == GarageCardUseType.forRent)?10:0, right: 10, bottom: 10.5),
-              child: Row(
-                mainAxisAlignment: MainAxisAlignment.spaceAround,
-                crossAxisAlignment: CrossAxisAlignment.center,
-                children: [
+                padding: EdgeInsets.only(
+                  left: (useType == GarageCardUseType.forSale || useType == GarageCardUseType.forRent) ? 10 : 0,
+                  right: 10,
+                  bottom: (useType == GarageCardUseType.forSale || useType == GarageCardUseType.forRent) ? 10.5 :0,
+                ),
+                child: Row(mainAxisAlignment: MainAxisAlignment.spaceAround, crossAxisAlignment: CrossAxisAlignment.center, children: [
                   if (useType == GarageCardUseType.forSale || useType == GarageCardUseType.forRent)
                     MyLoadImage(
                       card_avatar,
@@ -151,11 +157,11 @@ class GarageCard extends StatelessWidget {
                   else
                     const SizedBox.shrink(),
                   Expanded(
-                    child: Column(
-                      mainAxisAlignment: MainAxisAlignment.center,
-                      crossAxisAlignment: CrossAxisAlignment.start,
-                      mainAxisSize: MainAxisSize.min,
-                      children: [
+                      child: Column(
+                          mainAxisAlignment: MainAxisAlignment.center,
+                          crossAxisAlignment: CrossAxisAlignment.start,
+                          mainAxisSize: MainAxisSize.min,
+                          children: [
                         if (useType == GarageCardUseType.forSale || useType == GarageCardUseType.forRent)
                           MyTextView(
                             card_publish_name,
@@ -175,51 +181,46 @@ class GarageCard extends StatelessWidget {
                           isTextEllipsis: true,
                           textAlign: TextAlign.start,
                           marginLeft: 13,
-                          marginTop: 5,
+                          marginTop: 2.5,
+                          marginBottom: 2.5,
                           fontSize: 10,
                           textColor: context.appColors.textBlack,
                           isFontRegular: true,
                         ),
-                      ]
-                    )
-                  ),
-                ]
-              )
-            ),
+                      ])),
+                ])),
           )
         ],
-      ),
-    );
+      ).constrained(height: cardHeight);
+
   }
 }
 
-
-
 class CollectionWidget extends HookConsumerWidget {
   int collectionNum = 0;
   bool isCollection = false;
   final Function(dynamic)? onClickColleciotn;
+
   CollectionWidget({
     Key? key,
     required this.collectionNum,
     required this.isCollection,
     this.onClickColleciotn,
   }) : super(key: key);
+
   @override
   Widget build(BuildContext context, WidgetRef ref) {
     final collectionNumState = useState(collectionNum);
     final isCollectionState = useState(isCollection);
     return Container(
-      width: 60,
-      height: 30,
-      alignment: Alignment.center,
-      // decoration: BoxDecoration(
-      //   color: ColorUtils.string2Color('#E5E5E5'),
-      //   borderRadius: BorderRadius.circular(15),
-      // ),
-      child: Row(
-        mainAxisAlignment: MainAxisAlignment.center,
-        children: [
+        width: 60,
+        height: 30,
+        alignment: Alignment.center,
+        // decoration: BoxDecoration(
+        //   color: ColorUtils.string2Color('#E5E5E5'),
+        //   borderRadius: BorderRadius.circular(15),
+        // ),
+        child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
           MyTextView(
             '${collectionNumState.value}',
             textColor: context.appColors.textBlack,
@@ -228,26 +229,26 @@ class CollectionWidget extends HookConsumerWidget {
             marginRight: 7,
           ),
           MyLoadImage(
-            isCollectionState.value? Assets.communityLikeActive: Assets.communityLike,
+            isCollectionState.value ? Assets.communityLikeActive : Assets.communityLike,
             width: 14.1,
             height: 14,
           )
         ]
-        // 点击 收餐/取消收藏
-    ).onTap(() async{
-        // Log.d("点击了收藏按钮  ${isCollectionState.value}");
-        // ToastEngine.show("点击了收藏按钮 ${isCollectionState.value}");
-        final result = await onClickColleciotn?.call(isCollectionState.value);
-        if(result !=null && result){
-          isCollectionState.value = !isCollectionState.value;
-          collectionNumState.value = (collectionNumState.value + (isCollectionState.value? 1: -1))<0? 0: (collectionNumState.value + (isCollectionState.value? 1: -1));
-          if(isCollectionState.value){
-            // ToastEngine.show("Collect Success");
-          }else {
-            // ToastEngine.show("Cancel Collect Success");
+            // 点击 收餐/取消收藏
+            ).onTap(() async {
+          // Log.d("点击了收藏按钮  ${isCollectionState.value}");
+          // ToastEngine.show("点击了收藏按钮 ${isCollectionState.value}");
+          final result = await onClickColleciotn?.call(isCollectionState.value);
+          if (result != null && result) {
+            isCollectionState.value = !isCollectionState.value;
+            collectionNumState.value =
+                (collectionNumState.value + (isCollectionState.value ? 1 : -1)) < 0 ? 0 : (collectionNumState.value + (isCollectionState.value ? 1 : -1));
+            if (isCollectionState.value) {
+              // ToastEngine.show("Collect Success");
+            } else {
+              // ToastEngine.show("Cancel Collect Success");
+            }
           }
-        }
-      })
-    );
+        }));
   }
-}
+}

+ 46 - 44
packages/cpt_community/lib/components/newsfeed_card_footer.dart

@@ -1,5 +1,6 @@
 import 'package:cpt_community/components/newfeed_card_header.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/widgets.dart';
 import 'package:flutter_hooks/flutter_hooks.dart';
@@ -11,7 +12,6 @@ import 'package:widgets/my_load_image.dart';
 import 'package:widgets/my_text_view.dart';
 import 'package:widgets/my_like_button.dart';
 
-
 import '../modules/community/community_page.dart';
 
 // 'id':1,
@@ -35,7 +35,7 @@ class NewsFeedCardFooter extends HookConsumerWidget {
 
   NewsFeedCardFooter({
     Key? key,
-     GlobalKey<MyLikeButtonState>? likeButtonKey,
+    GlobalKey<MyLikeButtonState>? likeButtonKey,
     required this.isLike,
     this.onLike,
     this.likes_count = 0,
@@ -43,24 +43,20 @@ class NewsFeedCardFooter extends HookConsumerWidget {
     this.onComment,
     this.onShare,
     this.showShare = false,
-  })
-  : likeButtonKey = likeButtonKey ?? GlobalKey<MyLikeButtonState>(),
-         super(key: key);
+  })  : likeButtonKey = likeButtonKey ?? GlobalKey<MyLikeButtonState>(),
+        super(key: key);
 
   @override
   Widget build(BuildContext context, WidgetRef ref) {
-    final _isLike =useState(isLike);
-    final _likes_count =useState(likes_count);
-    final _comments_count =useState(comments_count);
+    final _isLike = useState(isLike);
+    final _likes_count = useState(likes_count);
+    final _comments_count = useState(comments_count);
 
     return Container(
-      height: 40,
-      width: double.infinity,
-      // padding: const EdgeInsets.symmetric(horizontal: 16),
-      child: Row(
-        mainAxisAlignment: MainAxisAlignment.spaceBetween,
-        crossAxisAlignment: CrossAxisAlignment.center,
-        children: [
+        height: 40,
+        width: double.infinity,
+        // padding: const EdgeInsets.symmetric(horizontal: 16),
+        child: Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [
           Expanded(
             child: Container(
               padding: const EdgeInsets.all(10),
@@ -78,7 +74,7 @@ class NewsFeedCardFooter extends HookConsumerWidget {
                   ),
                   // 动态的
                   MyTextView(
-                    'Like (${_likes_count.value})',
+                    S.current.like_count(_likes_count.value?.toString() ?? "0"),
                     textColor: ColorUtils.string2Color('#767676'),
                     fontSize: 14,
                     isFontRegular: true,
@@ -87,7 +83,7 @@ class NewsFeedCardFooter extends HookConsumerWidget {
                   )
                 ],
               ),
-            ).onTap((){
+            ).onTap(() {
               final state = likeButtonKey.currentState;
               state?.triggerTap();
             }),
@@ -98,9 +94,13 @@ class NewsFeedCardFooter extends HookConsumerWidget {
               child: Row(
                 mainAxisAlignment: MainAxisAlignment.center,
                 children: [
-                  const MyAssetImage(Assets.communityComments, width: 16,height: 16,),
+                  const MyAssetImage(
+                    Assets.communityComments,
+                    width: 16,
+                    height: 16,
+                  ),
                   MyTextView(
-                    'Comments ($comments_count)',
+                    S.current.comment_count(comments_count?.toString() ?? "0"),
                     textColor: ColorUtils.string2Color('#767676'),
                     fontSize: 14,
                     isFontRegular: true,
@@ -109,37 +109,39 @@ class NewsFeedCardFooter extends HookConsumerWidget {
                   ),
                 ],
               ),
-            ).onTap((){
+            ).onTap(() {
               // Log.d("点击了comments   ${tabsRouterKey.currentState?.controller?.activeIndex}");
               // tabsRouterKey.currentState?.controller?.setActiveIndex(2);
               onComment?.call();
             }),
           ),
-          if(showShare)
+          if (showShare)
             Expanded(
               child: Container(
-              padding: const EdgeInsets.all(8),
-              child: Row(
-                mainAxisAlignment: MainAxisAlignment.center,
-                children: [
-                  const MyAssetImage(Assets.communityShare, width: 16,height: 16,),
-                  MyTextView(
-                    'Share',
-                    textColor: ColorUtils.string2Color('#767676'),
-                    fontSize: 14,
-                    isFontRegular: true,
-                    textAlign: TextAlign.left,
-                    marginLeft: 8,
-                  ),
-                ],
-              ),
-                        ).onTap((){
-              Log.d("点击了share");
-              onShare?.call();
-                        }),
+                padding: const EdgeInsets.all(8),
+                child: Row(
+                  mainAxisAlignment: MainAxisAlignment.center,
+                  children: [
+                    const MyAssetImage(
+                      Assets.communityShare,
+                      width: 16,
+                      height: 16,
+                    ),
+                    MyTextView(
+                      S.current.share,
+                      textColor: ColorUtils.string2Color('#767676'),
+                      fontSize: 14,
+                      isFontRegular: true,
+                      textAlign: TextAlign.left,
+                      marginLeft: 8,
+                    ),
+                  ],
+                ),
+              ).onTap(() {
+                Log.d("点击了share");
+                onShare?.call();
+              }),
             ),
-        ]
-      )
-    );
+        ]));
   }
-}
+}

+ 3 - 2
packages/cpt_community/lib/modules/community/community_page.dart

@@ -1,5 +1,6 @@
 
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/rendering.dart';
@@ -324,7 +325,7 @@ class CommunityPage extends HookConsumerWidget with WidgetsBindingObserver {
               ),
               Expanded(
                 child: MyTextView(
-                  "What’s on your mind?",
+                  S.current.what_on_your_mind,
                   textColor: context.appColors.textBlack,
                   fontSize: 15,
                   marginLeft: 15,
@@ -365,7 +366,7 @@ class CommunityPage extends HookConsumerWidget with WidgetsBindingObserver {
               ),
               Expanded(
                 child: MyTextView(
-                  "Sell Item",
+                  S.current.sell_item,
                   textColor: context.appColors.textBlack,
                   fontSize: 15,
                   marginLeft: 15,

+ 29 - 27
packages/cpt_community/lib/modules/community/community_state.dart

@@ -1,20 +1,19 @@
 import 'package:cpt_community/modules/community/community_page.dart';
 import 'package:cs_resources/generated/assets.dart';
-
+import 'package:cs_resources/generated/l10n.dart';
 
 class CommunityVmState {
   List<Map<String, dynamic>>? topSectionsData;
   List<String>? newsFeedTabsList;
   List<String>? garageSaleTabsList;
   List<Map<String, dynamic>>? garageCategoryList = []; // garageCategoryList
-  int currentCategoryIdx = 0;   // 0: news feed, 1: garage sale
+  int currentCategoryIdx = 0; // 0: news feed, 1: garage sale
   int currentPageViewIdx = 0;
   int lastNewsfeedTabIdx = 0; // 上一次newsfeed 的 tabIdx
   int lastGarageTabIdx = 0; // 上一次garagesale 的 tabIdx
   dynamic? tabsRouter;
   dynamic? pageController;
 
-
   CommunityVmState({
     List<Map<String, dynamic>>? topSectionsData,
     required this.currentPageViewIdx,
@@ -26,29 +25,32 @@ class CommunityVmState {
     List<Map<String, dynamic>>? garageCategoryList,
     this.tabsRouter,
     this.pageController,
-  }) : topSectionsData = topSectionsData?? [
-    {
-      "title": "News Feed",
-      "icon": Assets.communityNews,
-    },
-    {
-      "title": "Garage Sale",
-      "icon": Assets.communityGarageSale,
-    },
-  ],
-        currentCategoryIdx = currentCategoryIdx?? 0,
-        lastGarageTabIdx = lastGarageTabIdx?? 0,
-        lastNewsfeedTabIdx = lastNewsfeedTabIdx?? 0,
-  newsFeedTabsList = newsFeedTabsList?? [
-    "News",
-    "Following",
-
-    "For You",
-  ],
-  garageSaleTabsList = garageSaleTabsList?? [
-    "For Sale",
-    "For Rent",
-  ], garageCategoryList = garageCategoryList?? [];
+  })  : topSectionsData = topSectionsData ??
+            [
+              {
+                "title": S.current.news_feed,
+                "icon": Assets.communityNews,
+              },
+              {
+                "title": S.current.garage_sale,
+                "icon": Assets.communityGarageSale,
+              },
+            ],
+        currentCategoryIdx = currentCategoryIdx ?? 0,
+        lastGarageTabIdx = lastGarageTabIdx ?? 0,
+        lastNewsfeedTabIdx = lastNewsfeedTabIdx ?? 0,
+        newsFeedTabsList = newsFeedTabsList ??
+            [
+              S.current.newsfeed_news,
+              S.current.newsfeed_following,
+              S.current.for_you,
+            ],
+        garageSaleTabsList = garageSaleTabsList ??
+            [
+              S.current.for_sale,
+              S.current.for_rent,
+            ],
+        garageCategoryList = garageCategoryList ?? [];
 
   CommunityVmState copyWith({
     List<Map<String, dynamic>>? topSectionsData,
@@ -75,4 +77,4 @@ class CommunityVmState {
       pageController: pageController ?? this.pageController,
     );
   }
-}
+}

+ 8 - 35
packages/cpt_community/lib/modules/community/community_vm.dart

@@ -6,6 +6,7 @@ import 'package:cpt_community/respository/common_garage.dart';
 import 'package:cpt_community/respository/common_newsfeed.dart';
 import 'package:cpt_community/router/page/community_page_router.dart';
 import 'package:cs_resources/generated/assets.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';
@@ -55,13 +56,13 @@ class CommunityVm extends _$CommunityVm {
 
   CommunityVmState initState() {
     List<String> newsFeedTabsList = [
-      "News",
-      "Following",
-      "For You",
+      S.current.newsfeed_news,
+      S.current.newsfeed_following,
+      S.current.for_you,
     ];
     List<String> garageSaleTabsList = [
-      "For Sale",
-      "For Rent",
+      S.current.for_sale,
+      S.current.for_rent,
     ];
 
     List<String> COMMUNITY_TABS_LIST = [...newsFeedTabsList];
@@ -211,34 +212,6 @@ class CommunityVm extends _$CommunityVm {
   // 获取garage sale 分类选项
   Future<List<Map<String, dynamic>>> getGarageSaleCategoryOptions() async{
     List<Map<String, dynamic>> garageCategoryList = [
-      // {
-      //   'id': '1',
-      //   'name': 'Kids',
-      // },
-      // {
-      //   'id': '2',
-      //   'name': 'Homeware',
-      // },
-      // {
-      //   'id': '3',
-      //   'name': 'Fashion',
-      // },
-      // {
-      //   'id': '4',
-      //   'name': 'Electronics',
-      // },
-      // {
-      //   'id': '5',
-      //   'name': 'Sports',
-      // },
-      // {
-      //   'id': '6',
-      //   'name': 'Furniture',
-      // },
-      // {
-      //   'id': '7',
-      //   'name': 'Others',
-      // },
     ];
     // 获取分类列表
     try {
@@ -287,12 +260,12 @@ class CommunityVm extends _$CommunityVm {
         position: DialogPosition.center,
         widget: AppCustomDialog(
           message: '',
-          title: 'Choose a Category',
+          title: S.current.choose_category,
           dialogWidth: MediaQuery.of(context).size.width * 0.8,
           // contentBoxMaxHeight: 350,
           // contentBoxMinHeight: 300,
           isShowConfirmBtn: garageCategoryList!.length > 0 ? true: false,
-          confirmTxt: "Ok",
+          confirmTxt: S.current.confirm,
           messageBuilder: (BuildContext context){
             return Container(
               color: context.appColors.textWhite,

+ 2 - 1
packages/cpt_community/lib/modules/community/following/following_page.dart

@@ -1,3 +1,4 @@
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/rendering.dart';
@@ -181,7 +182,7 @@ class FollowingPage extends HookConsumerWidget {
                   //   borderRadius: BorderRadius.circular(5),
                   // ),
                   child: MyButton(
-                    text: '+Follow',
+                    text: S.current.to_follow,
                     textColor: Colors.white,
                     backgroundColor: ColorUtils.string2Color('#4161D0'),
                     radius: 8,

+ 2 - 1
packages/cpt_community/lib/modules/community/foryou/foryou_page.dart

@@ -1,3 +1,4 @@
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/rendering.dart';
@@ -188,7 +189,7 @@ class ForyouPage extends HookConsumerWidget {
                   //   borderRadius: BorderRadius.circular(5),
                   // ),
                   child: MyButton(
-                    text: '+Follow',
+                    text: S.current.to_follow,
                     textColor: Colors.white,
                     backgroundColor: ColorUtils.string2Color('#4161D0'),
                     radius: 8,

+ 2 - 1
packages/cpt_community/lib/modules/community/news/news_page.dart

@@ -1,4 +1,5 @@
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -198,7 +199,7 @@ class NewsPage extends HookConsumerWidget {
                     builder: (context) {
                       final isFollowedState = useState<bool>(card_followed);
                       return MyButton(
-                        text: isFollowedState.value ? 'Followed': '+Follow',
+                        text: isFollowedState.value ? S.current.followed:S.current.to_follow,
                         textColor: isFollowedState.value ?  context.appColors.disEnableGray: context.appColors.textWhite,
                         disabledTextColor: context.appColors.disEnableGray,
                         backgroundColor: isFollowedState.value ? Colors.transparent : ColorUtils.string2Color('#4161D0'),

+ 6 - 7
packages/cpt_community/lib/modules/community/newsfeed_detail/newsfeed_detail_page.dart

@@ -1,5 +1,6 @@
 import 'package:cpt_community/router/page/community_page_router.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/newsfeed_detail_entity.dart';
 import 'package:flutter/material.dart';
@@ -66,7 +67,7 @@ class NewsfeedDetailPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "News Feed Detail",
+        S.current.news_feed_detail,
         backgroundColor: context.appColors.backgroundWhite,
       ),
       backgroundColor: ColorUtils.string2Color("#F2F3F6"),
@@ -189,7 +190,7 @@ class NewsfeedDetailPage extends HookConsumerWidget {
                   builder: (context) {
                     final isFollowedState = useState<bool>(card_followed);
                     return MyButton(
-                      text: isFollowedState.value ? 'Followed': '+Follow',
+                      text: isFollowedState.value ?  S.current.followed:S.current.to_follow,
                       textColor: isFollowedState.value ?  context.appColors.disEnableGray: context.appColors.textWhite,
                       disabledTextColor: context.appColors.disEnableGray,
                       backgroundColor: isFollowedState.value ? Colors.transparent : ColorUtils.string2Color('#4161D0'),
@@ -251,9 +252,7 @@ class NewsfeedDetailPage extends HookConsumerWidget {
                       padding: const EdgeInsets.only(left: 15, right: 15,top: 14,bottom: 14),
                       child: Row(
                         children: [
-                          MyTextView('Comments', textColor: ColorUtils.string2Color("#2956B7"), fontSize: 15, isFontLight: true,),
-                          const SizedBox(width: 5,),
-                          MyTextView('(${commentCount})', textColor: ColorUtils.string2Color("#2956B7"), fontSize: 15, isFontLight: true,),
+                          MyTextView(S.current.comment_count(commentCount),  textColor: ColorUtils.string2Color("#2956B7"), fontSize: 15, isFontLight: true,),
                         ]
                       )
                     )
@@ -469,7 +468,7 @@ class NewsfeedDetailPage extends HookConsumerWidget {
                               const SizedBox(width: 10,),
 
                               MyTextView(
-                                "Like",
+                                S.current.like,
                                 textColor: context.appColors.whiteBG,
                                 fontSize: 14,
                                 isFontRegular: true,
@@ -500,7 +499,7 @@ class NewsfeedDetailPage extends HookConsumerWidget {
                               ),
                               const SizedBox(width: 10,),
                               MyTextView(
-                                "Comment",
+                                S.current.comment,
                                 textColor: context.appColors.whiteBG,
                                 fontSize: 14,
                                 isFontRegular: true,

+ 2 - 1
packages/cpt_community/lib/modules/community/newsfeed_detail/newsfeed_detail_state.dart

@@ -1,3 +1,4 @@
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:domain/entity/newsfeed_detail_entity.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:widgets/load_state_layout.dart';
@@ -23,7 +24,7 @@ class NewsfeedDetailState {
         commentFieldInfo = commentFieldInfo ?? {
     'value': '',
     'controller': TextEditingController(),
-    'hintText': 'Please enter your comment',
+    'hintText': S.current.enter_comment,
     'focusNode': FocusNode(),
     'obsecure': false,
   },

+ 3 - 2
packages/cpt_community/lib/modules/community/newsfeed_detail/newsfeed_detail_vm.dart

@@ -4,6 +4,7 @@ import 'package:cpt_community/modules/community/foryou/foryou_vm.dart';
 import 'package:cpt_community/modules/my_posts/my_posts_newsfeed/my_posts_newsfeed_vm.dart';
 import 'package:cpt_community/respository/common_newsfeed.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/newsfeed_detail_entity.dart';
 import 'package:flutter/cupertino.dart';
@@ -267,13 +268,13 @@ class NewsfeedDetailVm extends _$NewsfeedDetailVm {
   handlerCommentClick(BuildContext context, int newsfeedId, int to_user_id, String to_user_name, bool isReply ) async{
     Log.d("点击了评论按钮 newsfeedId:  $newsfeedId  to_user_id:  $to_user_id  to_user_name:  $to_user_name  isReply:  $isReply ");
 
-    String hintText = 'Please enter your comment';
+    String hintText = S.current.enter_comment;
     if(isReply){
       hintText = 'Reply to $to_user_name: ';
       // 修改对话框的 提示文字
     }else {
       to_user_id = 0; // 评论对象ID(默认传0)
-      String hintText = 'Please enter your comment';
+      String hintText = S.current.enter_comment;
     }
     state = state.copyWith(commentFieldInfo: {
       'value': '',

+ 2 - 2
packages/cpt_community/lib/modules/community/newsfeed_post/newsfeed_post_page.dart

@@ -39,7 +39,7 @@ class NewsfeedPostPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Create Post",
+        S.current.create_post,
         backgroundColor: context.appColors.backgroundWhite,
       ),
       backgroundColor: ColorUtils.string2Color("#F2F3F6"),
@@ -102,7 +102,7 @@ class NewsfeedPostPage extends HookConsumerWidget {
                   children: [
                     Expanded(
                       child: MyButton(
-                        text: "Submit",
+                        text: S.current.submit,
                         radius: 0,
                         minHeight: 50,
                         backgroundColor: context.appColors.textPrimary,

+ 2 - 1
packages/cpt_community/lib/modules/community/newsfeed_post/newsfeed_post_vm.dart

@@ -1,6 +1,7 @@
 
 import 'package:cpt_community/respository/common_newsfeed.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:plugin_basic/constants/app_constant.dart';
 import 'package:plugin_basic/provider/user_config/user_config_service.dart';
@@ -31,7 +32,7 @@ class NewsfeedPostVm extends _$NewsfeedPostVm {
           'mind': {
             'value': '',
             'controller': TextEditingController(),
-            'hintText': 'What\'s on your mind?',
+            'hintText': S.current.what_on_your_mind,
             'focusNode': FocusNode(),
             'obsecure': false,
           }

+ 3 - 2
packages/cpt_community/lib/modules/garage/garagesale_detail/garagesale_detail_page.dart

@@ -1,6 +1,7 @@
 import 'package:cpt_community/modules/garage/garagesale_detail/garagesale_detail_vm.dart';
 import 'package:cpt_community/router/page/community_page_router.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/garage_sale_rent_detail_entity.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
@@ -44,7 +45,7 @@ class GaragesaleDetailPage extends HookConsumerWidget {
   Widget build(BuildContext context, WidgetRef ref) {
     final state = ref.watch(garagesaleDetailVmProvider);
     final vm = ref.read(garagesaleDetailVmProvider.notifier);
-    final String pageTitle = (type == 'forSale' || type == 'mineForSale') ? 'For Sale' :'For Rent';
+    final String pageTitle = (type == 'forSale' || type == 'mineForSale') ? S.current.for_sale :S.current.for_rent;
     GlobalKey _likeButtonKey = GlobalKey<MyLikeButtonState>();
 
     GarageSaleRentDetailEntity? detailInfo = state.datas?? null;
@@ -72,7 +73,7 @@ class GaragesaleDetailPage extends HookConsumerWidget {
         actions: [
           type=='mineForSale'||type=='mineForRent'?Center(
             child: MyTextView(
-              'Delete',
+              S.current.delete,
               textColor: context.appColors.redDefault,
               fontSize: 16,
               isFontMedium: true,

+ 2 - 1
packages/cpt_community/lib/modules/garage/garagesale_detail/garagesale_detail_vm.dart

@@ -2,6 +2,7 @@ import 'package:cpt_community/modules/garage/for_rent/for_rent_vm.dart';
 import 'package:cpt_community/modules/garage/garagesale_post/garagesale_post_vm.dart';
 import 'package:cpt_community/respository/common_garage.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:domain/entity/garage_sale_rent_detail_entity.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:plugin_basic/basic_export.dart';
@@ -123,7 +124,7 @@ class GaragesaleDetailVm extends _$GaragesaleDetailVm {
   Future deleteMyGarageData(BuildContext? context, int id) async {
     DialogEngine.show(
       widget: AppDefaultDialog(
-        message: "Are you sure you want to delete?",
+        message: S.current.sure_del,
         confirmAction: () async {
           try {
             Map<String, dynamic> params = {

+ 7 - 7
packages/cpt_community/lib/modules/garage/garagesale_post/garagesale_post_page.dart

@@ -44,7 +44,7 @@ class GaragesalePostPage extends HookConsumerWidget {
     final state = ref.watch(garagesalePostVmProvider);
 
     useEffect((){
-      WidgetsBinding.instance!.addPostFrameCallback((_) {
+      WidgetsBinding.instance.addPostFrameCallback((_) {
         vm.initData(
             type:type
         );
@@ -55,7 +55,7 @@ class GaragesalePostPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        (type==1 || type==2)?"Post New Item":"Edit",
+        (type==1 || type==2) ? S.current.post_new_item : S.current.edit,
         backgroundColor: context.appColors.backgroundWhite,
       ),
       backgroundColor: Colors.white,
@@ -85,7 +85,7 @@ class GaragesalePostPage extends HookConsumerWidget {
                                   crossAxisAlignment: CrossAxisAlignment.start,
                                   children: [
                                     FormRequireText(
-                                      text: "Title",
+                                      text: S.current.title,
                                       textColor: context.appColors.textBlack,
                                       fontSize: 17,
                                     ).marginOnly(bottom: 14.5),
@@ -112,7 +112,7 @@ class GaragesalePostPage extends HookConsumerWidget {
                                   crossAxisAlignment: CrossAxisAlignment.start,
                                   children: [
                                     FormRequireText(
-                                      text: "Contact Information",
+                                      text: S.current.contact_information,
                                       textColor: context.appColors.textBlack,
                                       fontSize: 17,
                                     ).marginOnly(bottom: 14.5),
@@ -152,7 +152,7 @@ class GaragesalePostPage extends HookConsumerWidget {
                                   crossAxisAlignment: CrossAxisAlignment.start,
                                   children: [
                                     FormRequireText(
-                                      text: "Price(\$)",
+                                      text: "${S.current.price}(\$)",
                                       textColor: context.appColors.textBlack,
                                       fontSize: 17,
                                     ).marginOnly(bottom: 14.5),
@@ -179,7 +179,7 @@ class GaragesalePostPage extends HookConsumerWidget {
                                 crossAxisAlignment: CrossAxisAlignment.start,
                                 children: [
                                   FormRequireText(
-                                    text: "Description",
+                                    text: S.current.description,
                                     textColor: context.appColors.textBlack,
                                     fontSize: 17,
                                   ).marginOnly(bottom: 14.5),
@@ -206,7 +206,7 @@ class GaragesalePostPage extends HookConsumerWidget {
                   children: [
                     Expanded(
                       child: MyButton(
-                        text: "Submit",
+                        text: S.current.submit,
                         radius: 0,
                         minHeight: 50,
                         backgroundColor: context.appColors.textPrimary,

+ 1 - 0
packages/cpt_community/lib/modules/garage/garagesale_post/garagesale_post_state.dart

@@ -1,3 +1,4 @@
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/cupertino.dart';
 
 class GaragesalePostPageState {

+ 2 - 1
packages/cpt_community/lib/modules/my_following/components/item_following.dart

@@ -1,6 +1,7 @@
 import 'package:cpt_community/components/comments_dialog.dart';
 import 'package:cpt_community/modules/my_following/my_follow/my_follow_vm.dart';
 import 'package:cpt_community/modules/my_following/my_follower/my_follower_vm.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';
@@ -65,7 +66,7 @@ class MyFollowingListItem extends StatelessWidget {
                 builder: (context, ref, child) {
                   final isFollow = useState<bool>(true);
                   return  MyButton(
-                    text: isFollow.value? 'Followed':'+Follow',
+                    text: isFollow.value? S.current.followed : S.current.to_follow,
                     onPressed: () async{
                       final vm = ref.read(itemFollowingVmProvider.notifier);
                       // todo 调用接口 然后更新状态

+ 2 - 1
packages/cpt_community/lib/modules/my_following/my_follow/my_follow_page.dart

@@ -1,4 +1,5 @@
 import 'package:cpt_community/modules/my_following/my_following_vm.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/rendering.dart';
@@ -125,7 +126,7 @@ class MyFollowPage extends HookConsumerWidget {
                             return Padding(
                               padding: const EdgeInsets.only(top: 10, bottom: 10, left: 10),
                               child: SearchAppBar(
-                                hintText: 'Search',
+                                hintText: S.current.search,
                                 onChanged: (String value){
                                   vm.handlerSearchChange(value);
                                 },

+ 2 - 1
packages/cpt_community/lib/modules/my_following/my_follower/my_follower_page.dart

@@ -1,4 +1,5 @@
 import 'package:cpt_community/modules/my_following/my_following_vm.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/rendering.dart';
@@ -125,7 +126,7 @@ class MyFollowerPage extends HookConsumerWidget {
                             return Padding(
                               padding: const EdgeInsets.only(top: 10, bottom: 10, left: 10),
                               child: SearchAppBar(
-                                hintText: 'Search',
+                                hintText: S.current.search,
                                 onChanged: (String value){
                                   vm.handlerSearchChange(value);
                                 },

+ 3 - 2
packages/cpt_community/lib/modules/my_following/my_following_page.dart

@@ -2,6 +2,7 @@
 import 'package:cpt_community/components/newsfeed_card_content.dart';
 import 'package:cpt_community/components/newsfeed_card_footer.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -85,13 +86,13 @@ class MyFollowingPage extends HookConsumerWidget {
       if(state.currentPageViewIdx == 0){
         return  state.followPageIsSearchBarStatus!? MyAppBar.searchAppBar(context, backgroundColor: context.appColors.backgroundWhite): MyAppBar.appBar(
           context,
-          state.currentPageViewIdx == 0 ? "My Follow" : "My Follower",
+          state.currentPageViewIdx == 0 ? S.current.my_follow : S.current.my_follower,
           backgroundColor: context.appColors.backgroundWhite,
         );
       }else {
         return state.followerPageIsSearchBarStatus!? MyAppBar.searchAppBar(context, backgroundColor: context.appColors.backgroundWhite): MyAppBar.appBar(
           context,
-          state.currentPageViewIdx == 0 ? "My Follow" : "My Follower",
+          state.currentPageViewIdx == 0 ? S.current.my_follow : S.current.my_follower,
           backgroundColor: context.appColors.backgroundWhite,
         );
       }

+ 1 - 1
packages/cpt_community/lib/modules/my_following/my_following_tabs.dart

@@ -15,7 +15,7 @@ import '../community/community_vm.dart';
 import 'my_following_vm.dart';
 
 class MyFollowingTabs extends HookConsumerWidget {
-  List tabsList;
+  List<String> tabsList;
   Widget? Function(BuildContext)? tabItemBuilder;
   dynamic? tabsRouter;
   void Function(int)? onClickAction;

+ 4 - 2
packages/cpt_community/lib/modules/my_following/tabs_data.dart

@@ -1,4 +1,6 @@
+import 'package:cs_resources/generated/l10n.dart';
+
 Map<String, dynamic> tabsNamesData = {
-  'Follow': 'Follow',
-  'Follower': 'Follower',
+  'Follow': S.current.follow,
+  'Follower': S.current.follower,
 };

+ 2 - 1
packages/cpt_community/lib/modules/my_posts/my_posts_page.dart

@@ -1,5 +1,6 @@
 import 'package:cpt_community/modules/my_posts/my_posts_vm.dart';
 import 'package:cpt_community/router/page/community_page_router.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -56,7 +57,7 @@ class MyPostsPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "My Posts",
+        S.current.my_post,
         backgroundColor: context.appColors.backgroundWhite,
       ),
       backgroundColor: context.appColors.backgroundDefault,

+ 4 - 3
packages/cpt_community/lib/modules/my_posts/my_posts_vm.dart

@@ -1,4 +1,5 @@
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:plugin_platform/engine/toast/toast_engine.dart';
 import 'package:riverpod_annotation/riverpod_annotation.dart';
@@ -34,17 +35,17 @@ class MyPostsVm extends _$MyPostsVm {
         tabsList: [
           {
             'code': 'newsFeed',
-            'title': 'News Feed',
+            'title': S.current.news_feed,
             'publish_num': 0,
           },
           {
             'code': 'forSale',
-            'title': 'For Sale',
+            'title': S.current.for_sale,
             'publish_num': 0,
           },
           {
             'code': 'forRent',
-            'title': 'For Rent',
+            'title': S.current.for_rent,
             'publish_num': 0,
           },
         ]

+ 3 - 2
packages/cpt_notice_board/lib/modules/documents/page/documents_page.dart

@@ -1,4 +1,5 @@
 import 'package:cpt_notice_board/modules/notice_board/page/notice_board_page.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter_hooks/flutter_hooks.dart';
@@ -68,8 +69,8 @@ class DocumentsPage extends HookConsumerWidget {
             ), // 边框
           ),
         ),
-        child: const Text(
-          'Open Folder',
+        child:  Text(
+          S.current.open_folder,
           style: const TextStyle(
             color: Colors.white,
           ),

+ 4 - 3
packages/cpt_notice_board/lib/modules/documents_list/page/documents_list_page.dart

@@ -1,4 +1,5 @@
 import 'package:cpt_notice_board/modules/notice_board/page/notice_board_page.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -71,8 +72,8 @@ class DocumentsListPage extends HookConsumerWidget {
             ), // 边框
           ),
         ),
-        child: const Text(
-          'Open Folder',
+        child: Text(
+          S.current.open_folder,
           style: const TextStyle(
             color: Colors.white,
           ),
@@ -149,7 +150,7 @@ class DocumentsListPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Documents",
+        S.current.documents,
         backgroundColor: context.appColors.backgroundWhite,
       ),
       body: Container(

+ 2 - 1
packages/cpt_notice_board/lib/modules/notice_board/page/notice_board_page.dart

@@ -1,3 +1,4 @@
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -103,7 +104,7 @@ class NoticeBoardPage extends HookConsumerWidget {
     return Scaffold(
         appBar: MyAppBar.appBar(
           context,
-          "Notice Board",
+          S.current.notice_board,
           backgroundColor: context.appColors.backgroundWhite,
         ),
         body: AutoTabsRouter.pageView(

+ 4 - 3
packages/cpt_notice_board/lib/modules/notice_board/vm/notice_board_view_model.dart

@@ -15,6 +15,7 @@
 
 
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:plugin_platform/engine/toast/toast_engine.dart';
 import 'package:riverpod_annotation/riverpod_annotation.dart';
@@ -37,19 +38,19 @@ class NoticeBoardVmState {
     this.curIdx = 0,
   }) : topSectionsData = topSectionsData?? [
     {
-      "title": "Announcement",
+      "title": S.current.announcement,
       "icon": Assets.noticeBoardAnnouncementIcon,
       "pageStartInstanceFn": AnnounPage.startInstance,
       "page": const AnnounPage(),
     },
     {
-      "title": "Event",
+      "title": S.current.event,
       "icon": Assets.noticeBoardEventIcon,
       "pageStartInstanceFn": EventPage.startInstance,
       "page": const EventPage(),
     },
     {
-      "title": "Documents",
+      "title": S.current.documents,
       "icon": Assets.noticeBoardDocumentsIcon,
       "pageStartInstanceFn": DocumentsPage.startInstance,
       "page": const DocumentsPage(),

+ 1 - 1
packages/cpt_notice_board/lib/router/page/notice_board_page_router.dart

@@ -13,7 +13,7 @@ import '../../modules/documents_list/page/documents_list_page.dart';
 
 part 'notice_board_page_router.gr.dart';
 
-/*\
+/*
  * NoticeBoard 模块的路由
  */
 @AutoRouterConfig(replaceInRouteName: 'Page|Screen,PageRoute')

+ 2 - 1
packages/cpt_payment/lib/modules/choose_card/choose_card_view_model.dart

@@ -1,4 +1,5 @@
 import 'package:cpt_payment/modules/add_card/add_card_page.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:plugin_platform/engine/dialog/dialog_engine.dart';
 import 'package:plugin_platform/engine/toast/toast_engine.dart';
 import 'package:riverpod_annotation/riverpod_annotation.dart';
@@ -154,7 +155,7 @@ class ChooseCardViewModel extends _$ChooseCardViewModel {
   void showDeleteDialog(int index) {
     DialogEngine.show(
         widget: AppDefaultDialog(
-      message: "Are you sure you want to delete this Card?",
+      message: S.current.sure_del_card,
       confirmAction: () {
         ToastEngine.show("点击了确定");
       },

+ 2 - 1
packages/cpt_payment/lib/modules/payment/manage/manage_view_model.dart

@@ -1,3 +1,4 @@
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:plugin_platform/engine/dialog/dialog_engine.dart';
 import 'package:plugin_platform/engine/toast/toast_engine.dart';
 import 'package:riverpod_annotation/riverpod_annotation.dart';
@@ -155,7 +156,7 @@ class ManageViewModel extends _$ManageViewModel {
   void showDeleteDialog(int index) {
     DialogEngine.show(
         widget: AppDefaultDialog(
-      message: "Are you sure you want to delete this Card?",
+      message: S.current.sure_del_card,
       confirmAction: () {
         ToastEngine.show("点击了确定");
       },

+ 2 - 1
packages/cpt_profile/lib/modules/setting/setting_view_model.dart

@@ -2,6 +2,7 @@ import 'package:cpt_profile/modules/change_mobile/change_mobile_page.dart';
 import 'package:cpt_profile/modules/reset_password/reset_password_page.dart';
 import 'package:cpt_profile/modules/setting/dialog/account_deactivation_dialog.dart';
 import 'package:cpt_profile/modules/setting/setting_state.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:plugin_basic/constants/app_constant.dart';
 import 'package:plugin_basic/provider/user_config/user_config_service.dart';
 import 'package:plugin_platform/engine/dialog/dialog_engine.dart';
@@ -38,7 +39,7 @@ class SettingViewModel extends _$SettingViewModel {
   void doLogout() {
     DialogEngine.show(
         widget: AppDefaultDialog(
-      message: "Are you sure you want to logout?",
+      message: S.current.logout_alert,
       confirmAction: () {
         //清除用户登录信息
         UserConfigService.getInstance().handleLogoutParams();

+ 13 - 13
packages/cpt_property/lib/modules/ioan/property_ioan_page.dart

@@ -1,4 +1,5 @@
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -40,7 +41,7 @@ class PropertyIoanPage extends HookConsumerWidget {
           textAlign: TextAlign.center,
         ),
         MyTextView(
-          "Find the best home loan for you",
+          S.current.find_best_loan,
           textColor: context.appColors.textBlack,
           fontSize: 16,
           isFontRegular: true,
@@ -61,7 +62,7 @@ class PropertyIoanPage extends HookConsumerWidget {
           child: Column(
             children: [
               MyTextView(
-                "YY Home exclusive rates:",
+                S.current.exclusive_rates,
                 textColor: ColorUtils.string2Color('#FEFEFE'),
                 fontSize: 15,
                 boxWidth: 237,
@@ -90,7 +91,7 @@ class PropertyIoanPage extends HookConsumerWidget {
                               fontSize: 30,
                             ),
                             MyTextView(
-                              "Lowest Floating Rate",
+                              S.current.lowest_floating_rate,
                               textColor: ColorUtils.string2Color('#FEFEFE'),
                               fontSize: 14,
                               textAlign: TextAlign.center,
@@ -114,7 +115,7 @@ class PropertyIoanPage extends HookConsumerWidget {
                                 fontSize: 30,
                               ),
                               MyTextView(
-                                "Lowest Floating Rate",
+                                S.current.lowest_floating_rate,
                                 textColor: ColorUtils.string2Color('#FEFEFE'),
                                 fontSize: 14,
                                 textAlign: TextAlign.center,
@@ -129,7 +130,7 @@ class PropertyIoanPage extends HookConsumerWidget {
           ),
         ),
         MyTextView(
-          "Check out what others are offering:",
+          S.current.other_offering,
           textColor: ColorUtils.string2Color('#FEFEFE'),
           fontSize: 15,
           boxWidth: double.infinity,
@@ -158,20 +159,19 @@ class PropertyIoanPage extends HookConsumerWidget {
                   crossAxisAlignment: CrossAxisAlignment.start,
                   children: [
                     Row(
-                      mainAxisAlignment: MainAxisAlignment.center,
+                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                       children: [
                         MyTextView(
-                          "Floating",
+                          S.current.floating_rate,
                           textColor: context.appColors.textBlack,
                           fontSize: 14,
                           textAlign: TextAlign.center,
                         ),
                         MyTextView(
-                          "Fixed",
+                          S.current.fixed_rate,
                           textColor: context.appColors.textBlack,
                           fontSize: 14,
                           textAlign: TextAlign.center,
-                          marginLeft: 50.5,
                         ),
                       ],
                     ),
@@ -261,7 +261,7 @@ class PropertyIoanPage extends HookConsumerWidget {
     return Column(
         children: [
           MyTextView(
-            "The right advice to help you choose the best package in the market!",
+            S.current.choose_best_package,
             textColor: context.appColors.textBlack,
             fontSize: 18,
             isFontMedium: true,
@@ -270,7 +270,7 @@ class PropertyIoanPage extends HookConsumerWidget {
             textAlign: TextAlign.center,
           ),
           MyTextView(
-            "-No Hidden Fees, We Are Out ToHelp You!-Interest Savings With Lowest RatesGuarantee-One-Stop Access to All The BanksPackages",
+            S.current.text_no_hidden_fees,
             textColor: context.appColors.textBlack,
             fontSize: 15,
             textAlign: TextAlign.center,
@@ -287,7 +287,7 @@ class PropertyIoanPage extends HookConsumerWidget {
       child: Column(
         children: [
           MyTextView(
-           "What do we offer?",
+           S.current.what_do_we_offer,
             textColor: context.appColors.textBlack,
             fontSize: 18,
             isFontMedium: true,
@@ -334,7 +334,7 @@ class PropertyIoanPage extends HookConsumerWidget {
       crossAxisAlignment: CrossAxisAlignment.center,
       children: [
         MyTextView(
-          "Our Partners",
+          S.current.our_partners,
           textColor: context.appColors.textBlack,
           fontSize: 18,
           isFontMedium: true,

+ 31 - 71
packages/cpt_property/lib/modules/ioan/property_ioan_vm.dart

@@ -1,5 +1,5 @@
-
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:plugin_platform/engine/dialog/dialog_engine.dart';
@@ -21,69 +21,38 @@ class PropertyIoanVm extends _$PropertyIoanVm {
 
   // Refresh 控制器
   final EasyRefreshController refreshController = EasyRefreshController(
-    controlFinishRefresh: true,  //允许刷新
-    controlFinishLoad: true,   //允许加载
+    controlFinishRefresh: true, //允许刷新
+    controlFinishLoad: true, //允许加载
   );
 
-
   PropertyIoanState initState() {
     return PropertyIoanState(
-        lowestFloatingRate: "3.79%",
-        lowestFixedRate: "2.48%",
-        othersOfferingPic: "",
-        othersOfferingInfoList: [
-          {
-            "floating": "3.08%",
-            "fixed": "3.79%",
-          },
-          {
-            "floating": "3.08%",
-            "fixed": "3.79%",
-          }
-        ],
-        offerTextInfoList: [
-            {
-              "title": "New HomeLoans",
-              "icon": Assets.propertyNewHomeLoans,
-              "iconWidth": 46.0,
-              "iconHeight": 42.5
-            },
-            {
-              "title": "Refinancing",
-              "icon": Assets.propertyRefinancing,
-              "iconWidth": 37.0,
-              "iconHeight": 41.5
-            },
-            {
-              "title": "Home EquityLoans",
-              "icon": Assets.propertyHomeEquityLoans,
-              "iconWidth": 41.5,
-              "iconHeight": 42.5
-            },
-            {
-              "title": "ConveyancingLawyer",
-              "icon": Assets.propertyConveyancingLawyer,
-              "iconWidth": 42.0,
-              "iconHeight": 42.0
-            },
-            {
-              "title": "Approval in Principle",
-              "icon": Assets.propertyApproval,
-              "iconWidth": 41.0,
-              "iconHeight": 39.0
-            },
-            {
-              "title": "OverseasHome Loan",
-              "icon": Assets.propertyOverseasHomeLoan,
-              "iconWidth": 36.0,
-              "iconHeight": 39.0
-            }
-        ]
+      lowestFloatingRate: "3.79%",
+      lowestFixedRate: "2.48%",
+      othersOfferingPic: "",
+      othersOfferingInfoList: [
+        {
+          "floating": "3.08%",
+          "fixed": "3.79%",
+        },
+        {
+          "floating": "3.08%",
+          "fixed": "3.79%",
+        }
+      ],
+      offerTextInfoList: [
+        {"title": S.current.new_homeLoans, "icon": Assets.propertyNewHomeLoans, "iconWidth": 46.0, "iconHeight": 42.5},
+        {"title": S.current.refinancing, "icon": Assets.propertyRefinancing, "iconWidth": 37.0, "iconHeight": 41.5},
+        {"title": S.current.home_equity_loans, "icon": Assets.propertyHomeEquityLoans, "iconWidth": 41.5, "iconHeight": 42.5},
+        {"title": S.current.conveyancing_lawyer, "icon": Assets.propertyConveyancingLawyer, "iconWidth": 42.0, "iconHeight": 42.0},
+        {"title": S.current.approval_in_principle, "icon": Assets.propertyApproval, "iconWidth": 41.0, "iconHeight": 39.0},
+        {"title": S.current.overseas_home_loan, "icon": Assets.propertyOverseasHomeLoan, "iconWidth": 36.0, "iconHeight": 39.0}
+      ],
     );
   }
 
   @override
-  PropertyIoanState build(){
+  PropertyIoanState build() {
     // 引入数据仓库
     // propertyIoanRepository = ref.read(propertyIoanRepositoryProvider);
     // 初始化状态
@@ -94,10 +63,7 @@ class PropertyIoanVm extends _$PropertyIoanVm {
 
   //刷新页面状态
   void changeLoadingState(LoadState loadState, String? errorMsg) {
-    state = state.copyWith(
-        loadingState: loadState,
-        errorMessage: errorMsg
-    );
+    state = state.copyWith(loadingState: loadState, errorMessage: errorMsg);
   }
 
   // 重试请求
@@ -112,7 +78,6 @@ class PropertyIoanVm extends _$PropertyIoanVm {
     featchData();
   }
 
-
   Future featchData() async {
     await Future.delayed(const Duration(milliseconds: 1500));
     //更新展示的状态
@@ -121,12 +86,12 @@ class PropertyIoanVm extends _$PropertyIoanVm {
     _needShowPlaceholder = false;
   }
 
-  requestQuoteConfirmAction(){
+  requestQuoteConfirmAction() {
     Log.d("点击了确定");
     DialogEngine.dismiss(tag: "requestQuote");
   }
 
-  requestQuoteCancelAction(){
+  requestQuoteCancelAction() {
     Log.d("点击了取消");
   }
 
@@ -141,11 +106,8 @@ class PropertyIoanVm extends _$PropertyIoanVm {
         cancelAction: requestQuoteCancelAction,
         messageBuilder: (context) {
           return Container(
-            padding: const EdgeInsets.only(left: 15,right: 15),
-            child: Column(
-              mainAxisAlignment: MainAxisAlignment.start,
-              crossAxisAlignment: CrossAxisAlignment.start,
-              children: [
+              padding: const EdgeInsets.only(left: 15, right: 15),
+              child: Column(mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [
                 MyTextView(
                   "Submit Request?",
                   textColor: context.appColors.textBlack,
@@ -168,9 +130,7 @@ class PropertyIoanVm extends _$PropertyIoanVm {
                   // maxLines: 5,
                   marginTop: 15,
                 ),
-              ]
-            )
-          );
+              ]));
         },
       ),
     );

+ 1 - 1
packages/cpt_property/lib/modules/news/page/property_news_page.dart

@@ -121,7 +121,7 @@ class PropertyNewsPage extends HookConsumerWidget {
                   children: [
                     Expanded(
                       child: MyTextView(
-                        Utils.getTimeAgo(item['created_at']),
+                        Utils.getTimeAgo(item['created_at'], format: "dd MMM yyyy 'at' hh:mm a"),
                         maxLines: 1, // 设置最大行数为1
                         isTextEllipsis: true, // 超出部分用省略号表示
                         fontSize: 12,

+ 2 - 2
packages/cpt_property/lib/modules/news_detail/property_news_detail_page.dart

@@ -60,7 +60,7 @@ class PropertyNewsDetailPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "News Detail",
+        S.current.news_detail,
         backgroundColor: context.appColors.backgroundWhite,
       ),
       backgroundColor: context.appColors.whiteBG,
@@ -132,7 +132,7 @@ class PropertyNewsDetailPage extends HookConsumerWidget {
               width: SizeConfig().screenWidth,
               height: 190,
               fit: BoxFit.cover,
-            ) : SizedBox.shrink(),
+            ) : const SizedBox.shrink(),
           // 内容
           // MyTextView(
           //   content,

+ 2 - 1
packages/cpt_property/lib/modules/property/page/property_page.dart

@@ -1,4 +1,5 @@
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -115,7 +116,7 @@ class PropertyPage extends HookConsumerWidget {
     return Scaffold(
         appBar: MyAppBar.appBar(
           context,
-          "Property",
+          S.current.property,
           backgroundColor: context.appColors.backgroundWhite,
           actions: [
              state.currentPageViewIdx == 1? MyAssetImage(

+ 5 - 4
packages/cpt_property/lib/modules/property/page/property_page_state.dart

@@ -1,4 +1,5 @@
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 
 import '../../ioan/property_ioan_page.dart';
 import '../../news/page/property_news_page.dart';
@@ -14,25 +15,25 @@ class PropertyVmState {
     this.currentPageViewIdx = 0,
   }) : topSectionsData = topSectionsData?? [
     {
-      "title": "Ioan",
+      "title": S.current.ioan,
       "icon": Assets.propertyIoan,
       "pageStartInstanceFn": PropertyIoanPage.startInstance,
       "page": const PropertyIoanPage(),
     },
     {
-      "title": "News",
+      "title": S.current.news,
       "icon": Assets.propertyNews,
       "pageStartInstanceFn": PropertyNewsPage.startInstance,
       "page": const PropertyNewsPage(),
     },
     {
-      "title": "Sale",
+      "title": S.current.sale,
       "icon": Assets.propertySale,
       "pageStartInstanceFn": PropertySalePage.startInstance,
       "page": const PropertySalePage(),
     },
     {
-      "title": "Rent",
+      "title": S.current.rent,
       "icon": Assets.propertyRent,
       "pageStartInstanceFn": PropertyRentPage.startInstance,
       "page": const PropertyRentPage(),

+ 2 - 1
packages/cpt_property/lib/modules/rent/page/property_rent_page.dart

@@ -1,4 +1,5 @@
 import 'package:cpt_property/modules/property/page/property_page.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -75,7 +76,7 @@ class PropertyRentPage extends HookConsumerWidget {
                 isFontMedium: true,
               ),
               MyTextView(
-                'per month',
+                S.current.per_month,
                 fontSize: 12,
               ),
             ],

+ 169 - 336
packages/cpt_rewards/lib/modules/rewards/rewards_page.dart

@@ -7,6 +7,7 @@ import 'package:cpt_rewards/modules/rewards_home/rewards_home_page.dart';
 import 'package:cpt_rewards/modules/rewards_list/rewards_list_page.dart';
 import 'package:cpt_rewards/modules/rewards_my/rewards_my_page.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:cs_resources/theme/theme_config.dart';
 import 'package:domain/entity/rewards_index_entity.dart';
@@ -44,8 +45,80 @@ class RewardsPage extends HookConsumerWidget {
     }
   }
 
-  Widget _buildTop(BuildContext context, WidgetRef ref, _vm, list) {
-    int points = list.points ?? 0;
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final _vm = ref.read(rewardsVmProvider.notifier);
+    final state = ref.watch(rewardsVmProvider);
+    RewardsIndexEntity? list = state.list;
+
+    useEffect(() {
+      // 组件挂载时执行 - 执行接口请求
+      Future.microtask(() => _vm.initPageData());
+      return () {
+        // 组件卸载时执行
+        Log.d("property_news_page 组件卸载时执行");
+      };
+    }, []);
+
+    return Scaffold(
+      appBar: MyAppBar.appBar(context, S.current.daily_login,
+          backIconPath: Assets.rewardsRewardsBack,
+          backIconWidth: 32.0,
+          backIconHeight: 32.0,
+          titleColor: Colors.white,
+          titleDarkColor: Colors.white,
+          showBackButton: true,
+          backgroundColor: context.appColors.btnBgDefault,
+          systemUiOverlayStyle: MediaQuery.of(context).platformBrightness == Brightness.dark
+              ? ThemeConfig.systemUiOverlayStyleDarkTheme
+              : ThemeConfig.systemUiOverlayStyleLightThemeWhite,
+          actions: [
+            const MyAssetImage(
+              Assets.rewardsRewardsIconWen,
+              width: 20,
+              height: 20,
+            ).marginOnly(right: 15).onTap(() {
+              // 去详情
+              // _vm.launchURL(url);
+              GlobalWebPage.startInstance(context: context, title: S.current.how_do_i_earn_points, url: 'https://yyjobs.sg/terms/PointsRules.html');
+            })
+          ]),
+      body: Column(children: [
+        Expanded(
+          child: LoadStateLayout(
+            state: state.loadingState,
+            errorMessage: state.errorMessage,
+            errorRetry: () {
+              _vm.retryRequest();
+            },
+            successWidget: SingleChildScrollView(
+                scrollDirection: Axis.vertical,
+                physics: const BouncingScrollPhysics(),
+                clipBehavior: Clip.none,
+                child: Column(
+                  children: [
+                    _buildTop(context, ref, _vm, list),
+                    Container(
+                      transform: Matrix4.translationValues(0.0, -45.0, 0.0),
+                      child: Column(
+                        children: [
+                          _buildSearch(context, ref, _vm, list),
+                          _buildSwiper(context, ref, _vm, list),
+                          list?.points != 0 ? _buildList(context, ref, _vm, list) : const SizedBox.shrink(),
+                          _buildHistory(context, ref, _vm, list),
+                        ],
+                      ), // 使用负数margin
+                    ).paddingOnly(left: 15, right: 15),
+                  ],
+                )),
+          ),
+        ),
+      ]).backgroundColor(ColorUtils.string2Color('#F2F3F6')),
+    );
+  }
+
+  Widget _buildTop(BuildContext context, WidgetRef ref, _vm, RewardsIndexEntity? list) {
+    int points = list?.points ?? 0;
     return Container(
         decoration: BoxDecoration(
           border: Border(
@@ -63,54 +136,14 @@ class RewardsPage extends HookConsumerWidget {
         child: Column(
           crossAxisAlignment: CrossAxisAlignment.start,
           children: [
+
             Row(
               crossAxisAlignment: CrossAxisAlignment.center,
               mainAxisAlignment: MainAxisAlignment.spaceBetween,
               children: [
-                const MyAssetImage(
-                  Assets.rewardsRewardsBack,
-                  width: 44,
-                  height: 44,
-                ).onTap(() {
-                  // backCallback
-                  Navigator.pop(context);
-                }),
-                const Text(
-                  'Daily Login',
-                  style: TextStyle(
-                      fontSize: 18.0,
-                      color: Colors.white,
-                      fontWeight: FontWeight.w500), // 设置字体大小
-                ),
-                const MyAssetImage(
-                  Assets.rewardsRewardsIconWen,
-                  width: 20,
-                  height: 20,
-                ).onTap(() {
-                  // 去详情
-                  // _vm.launchURL(url);
-                  GlobalWebPage.startInstance(
-                      context: context, title: 'How Do I Earn Points?', url: 'https://yyjobs.sg/terms/PointsRules.html');
-                })
-              ],
-            ),
-            // const Text(
-            //   '1526 Available Points',
-            //   style: TextStyle(
-            //       fontSize: 18.0,
-            //       color: Colors.white,
-            //       fontWeight: FontWeight.w500), // 设置字体大小
-            // ).paddingOnly(left: 10, top: 20, bottom: 18),
-            Row(
-              crossAxisAlignment: CrossAxisAlignment.center,
-              mainAxisAlignment: MainAxisAlignment.spaceBetween,
-              children: [
-                const Text(
-                  'Available Points',
-                  style: TextStyle(
-                      fontSize: 17.0,
-                      color: Colors.white,
-                      fontWeight: FontWeight.w500), // 设置字体大小
+                 Text(
+                  S.current.available_points,
+                  style: const TextStyle(fontSize: 17.0, color: Colors.white, fontWeight: FontWeight.w500), // 设置字体大小
                 ),
                 Container(
                   decoration: BoxDecoration(
@@ -126,16 +159,13 @@ class RewardsPage extends HookConsumerWidget {
                       ).marginOnly(right: 5),
                       Text(
                         '$points',
-                        style: const TextStyle(
-                            fontSize: 15.0,
-                            color: Colors.white,
-                            fontWeight: FontWeight.w400), // 设置字体大小
+                        style: const TextStyle(fontSize: 15.0, color: Colors.white, fontWeight: FontWeight.w400), // 设置字体大小
                       ),
                     ],
                   ).paddingOnly(left: 10, top: 7, bottom: 7, right: 10),
                 ),
               ],
-            ).paddingOnly(left: 10, top: 20, bottom: 18),
+            ).paddingOnly(left: 10, top: 0, bottom: 18),
           ],
         )
             .paddingOnly(top: 15, left: 5, right: 15, bottom: 0)
@@ -143,43 +173,32 @@ class RewardsPage extends HookConsumerWidget {
             .backgroundColor(ColorUtils.string2Color('#4161D0')));
   }
 
-  Widget _buildSearch(BuildContext context, WidgetRef ref, _vm, list) {
+  Widget _buildSearch(BuildContext context, WidgetRef ref, _vm, RewardsIndexEntity? list) {
     final dateFormat = DateFormat('yyyy-MM-dd');
     final now = DateFormat('yyyy-MM-dd').format(DateTime.now());
     // final date = list.continuous.currentWeekCheckin[0] ?? now;
     final date = now;
-    final date0 = DateFormat('MM-dd')
-        .format(dateFormat.parse(date).subtract(const Duration(days: 1)));
-    final date1 = DateFormat('MM-dd')
-        .format(dateFormat.parse(date).add(const Duration(days: 1)));
-    final date2 = DateFormat('MM-dd')
-        .format(dateFormat.parse(date).add(const Duration(days: 2)));
-    final date3 = DateFormat('MM-dd')
-        .format(dateFormat.parse(date).add(const Duration(days: 3)));
-    final date4 = DateFormat('MM-dd')
-        .format(dateFormat.parse(date).add(const Duration(days: 4)));
-    final date5 = DateFormat('MM-dd')
-        .format(dateFormat.parse(date).add(const Duration(days: 5)));
+    final date0 = DateFormat('MM-dd').format(dateFormat.parse(date).subtract(const Duration(days: 1)));
+    final date1 = DateFormat('MM-dd').format(dateFormat.parse(date).add(const Duration(days: 1)));
+    final date2 = DateFormat('MM-dd').format(dateFormat.parse(date).add(const Duration(days: 2)));
+    final date3 = DateFormat('MM-dd').format(dateFormat.parse(date).add(const Duration(days: 3)));
+    final date4 = DateFormat('MM-dd').format(dateFormat.parse(date).add(const Duration(days: 4)));
+    final date5 = DateFormat('MM-dd').format(dateFormat.parse(date).add(const Duration(days: 5)));
     // final nextDate = date.add(Duration(days: 1));
     return Container(
       width: MediaQuery.of(context).size.width - 30,
       decoration: BoxDecoration(
         color: Colors.white,
         borderRadius: BorderRadius.circular(10),
-        boxShadow: const [
-          BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
-        ],
+        boxShadow: const [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
       ),
       child: Column(
         crossAxisAlignment: CrossAxisAlignment.start,
         mainAxisAlignment: MainAxisAlignment.center,
         children: [
           Text(
-            'Continuous Login 8 Day',
-            style: TextStyle(
-                fontSize: 15.0,
-                color: ColorUtils.string2Color('#000000'),
-                fontWeight: FontWeight.w500), // 设置字体大小
+            S.current.continuous_login_8_day,
+            style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
           ),
           Flex(
             direction: Axis.horizontal,
@@ -190,8 +209,7 @@ class RewardsPage extends HookConsumerWidget {
                   decoration: BoxDecoration(
                     color: ColorUtils.string2Color('#F2F3F6'),
                     borderRadius: BorderRadius.circular(10),
-                    border: Border.all(
-                        color: ColorUtils.string2Color('#4161D0'), width: 1),
+                    border: Border.all(color: ColorUtils.string2Color('#4161D0'), width: 1),
                   ),
                   height: 78,
                   child: Column(
@@ -200,10 +218,7 @@ class RewardsPage extends HookConsumerWidget {
                     children: [
                       Text(
                         '$date0',
-                        style: TextStyle(
-                            fontSize: 13.0,
-                            color: ColorUtils.string2Color('#4161D0'),
-                            fontWeight: FontWeight.w400), // 设置字体大小
+                        style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w400), // 设置字体大小
                       ),
                       const MyAssetImage(
                         Assets.rewardsRewardsIconJb,
@@ -212,10 +227,7 @@ class RewardsPage extends HookConsumerWidget {
                       ),
                       Text(
                         '+2',
-                        style: TextStyle(
-                            fontSize: 15.0,
-                            color: ColorUtils.string2Color('#4161D0'),
-                            fontWeight: FontWeight.w500), // 设置字体大小
+                        style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
                       ),
                     ],
                   ),
@@ -228,8 +240,7 @@ class RewardsPage extends HookConsumerWidget {
                   decoration: BoxDecoration(
                     color: ColorUtils.string2Color('#4161D0'),
                     borderRadius: BorderRadius.circular(10),
-                    border: Border.all(
-                        color: ColorUtils.string2Color('#4161D0'), width: 1),
+                    border: Border.all(color: ColorUtils.string2Color('#4161D0'), width: 1),
                   ),
                   height: 78,
                   child: Column(
@@ -238,10 +249,7 @@ class RewardsPage extends HookConsumerWidget {
                     children: [
                       Text(
                         'Today',
-                        style: TextStyle(
-                            fontSize: 13.0,
-                            color: ColorUtils.string2Color('#ffffff'),
-                            fontWeight: FontWeight.w400), // 设置字体大小
+                        style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#ffffff'), fontWeight: FontWeight.w400), // 设置字体大小
                       ),
                       const MyAssetImage(
                         Assets.rewardsRewardsIconJb,
@@ -250,10 +258,7 @@ class RewardsPage extends HookConsumerWidget {
                       ),
                       Text(
                         '+2',
-                        style: TextStyle(
-                            fontSize: 15.0,
-                            color: ColorUtils.string2Color('#ffffff'),
-                            fontWeight: FontWeight.w500), // 设置字体大小
+                        style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#ffffff'), fontWeight: FontWeight.w500), // 设置字体大小
                       ),
                     ],
                   ),
@@ -266,8 +271,7 @@ class RewardsPage extends HookConsumerWidget {
                   decoration: BoxDecoration(
                     color: ColorUtils.string2Color('#F2F3F6'),
                     borderRadius: BorderRadius.circular(10),
-                    border: Border.all(
-                        color: ColorUtils.string2Color('#F2F3F6'), width: 1),
+                    border: Border.all(color: ColorUtils.string2Color('#F2F3F6'), width: 1),
                   ),
                   height: 78,
                   child: Column(
@@ -276,10 +280,7 @@ class RewardsPage extends HookConsumerWidget {
                     children: [
                       Text(
                         '$date1',
-                        style: TextStyle(
-                            fontSize: 13.0,
-                            color: ColorUtils.string2Color('#000000'),
-                            fontWeight: FontWeight.w400), // 设置字体大小
+                        style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w400), // 设置字体大小
                       ),
                       const MyAssetImage(
                         Assets.rewardsRewardsIconJb,
@@ -288,10 +289,7 @@ class RewardsPage extends HookConsumerWidget {
                       ),
                       Text(
                         '+2',
-                        style: TextStyle(
-                            fontSize: 15.0,
-                            color: ColorUtils.string2Color('#000000'),
-                            fontWeight: FontWeight.w500), // 设置字体大小
+                        style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
                       ),
                     ],
                   ),
@@ -304,8 +302,7 @@ class RewardsPage extends HookConsumerWidget {
                   decoration: BoxDecoration(
                     color: ColorUtils.string2Color('#F2F3F6'),
                     borderRadius: BorderRadius.circular(10),
-                    border: Border.all(
-                        color: ColorUtils.string2Color('#F2F3F6'), width: 1),
+                    border: Border.all(color: ColorUtils.string2Color('#F2F3F6'), width: 1),
                   ),
                   height: 78,
                   child: Column(
@@ -314,10 +311,7 @@ class RewardsPage extends HookConsumerWidget {
                     children: [
                       Text(
                         '$date2',
-                        style: TextStyle(
-                            fontSize: 13.0,
-                            color: ColorUtils.string2Color('#000000'),
-                            fontWeight: FontWeight.w400), // 设置字体大小
+                        style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w400), // 设置字体大小
                       ),
                       const MyAssetImage(
                         Assets.rewardsRewardsIconJb,
@@ -326,10 +320,7 @@ class RewardsPage extends HookConsumerWidget {
                       ),
                       Text(
                         '+2',
-                        style: TextStyle(
-                            fontSize: 15.0,
-                            color: ColorUtils.string2Color('#000000'),
-                            fontWeight: FontWeight.w500), // 设置字体大小
+                        style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
                       ),
                     ],
                   ),
@@ -346,8 +337,7 @@ class RewardsPage extends HookConsumerWidget {
                   decoration: BoxDecoration(
                     color: ColorUtils.string2Color('#F2F3F6'),
                     borderRadius: BorderRadius.circular(10),
-                    border: Border.all(
-                        color: ColorUtils.string2Color('#F2F3F6'), width: 1),
+                    border: Border.all(color: ColorUtils.string2Color('#F2F3F6'), width: 1),
                   ),
                   height: 78,
                   child: Column(
@@ -356,10 +346,7 @@ class RewardsPage extends HookConsumerWidget {
                     children: [
                       Text(
                         '$date3',
-                        style: TextStyle(
-                            fontSize: 13.0,
-                            color: ColorUtils.string2Color('#000000'),
-                            fontWeight: FontWeight.w400), // 设置字体大小
+                        style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w400), // 设置字体大小
                       ),
                       const MyAssetImage(
                         Assets.rewardsRewardsIconJb,
@@ -368,10 +355,7 @@ class RewardsPage extends HookConsumerWidget {
                       ),
                       Text(
                         '+2',
-                        style: TextStyle(
-                            fontSize: 15.0,
-                            color: ColorUtils.string2Color('#000000'),
-                            fontWeight: FontWeight.w500), // 设置字体大小
+                        style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
                       ),
                     ],
                   ),
@@ -384,8 +368,7 @@ class RewardsPage extends HookConsumerWidget {
                   decoration: BoxDecoration(
                     color: ColorUtils.string2Color('#F2F3F6'),
                     borderRadius: BorderRadius.circular(10),
-                    border: Border.all(
-                        color: ColorUtils.string2Color('#F2F3F6'), width: 1),
+                    border: Border.all(color: ColorUtils.string2Color('#F2F3F6'), width: 1),
                   ),
                   height: 78,
                   child: Column(
@@ -394,10 +377,7 @@ class RewardsPage extends HookConsumerWidget {
                     children: [
                       Text(
                         '$date4',
-                        style: TextStyle(
-                            fontSize: 13.0,
-                            color: ColorUtils.string2Color('#000000'),
-                            fontWeight: FontWeight.w400), // 设置字体大小
+                        style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w400), // 设置字体大小
                       ),
                       const MyAssetImage(
                         Assets.rewardsRewardsIconJb,
@@ -406,10 +386,7 @@ class RewardsPage extends HookConsumerWidget {
                       ),
                       Text(
                         '+2',
-                        style: TextStyle(
-                            fontSize: 15.0,
-                            color: ColorUtils.string2Color('#000000'),
-                            fontWeight: FontWeight.w500), // 设置字体大小
+                        style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
                       ),
                     ],
                   ),
@@ -422,8 +399,7 @@ class RewardsPage extends HookConsumerWidget {
                   decoration: BoxDecoration(
                     color: ColorUtils.string2Color('#F2F3F6'),
                     borderRadius: BorderRadius.circular(10),
-                    border: Border.all(
-                        color: ColorUtils.string2Color('#F2F3F6'), width: 1),
+                    border: Border.all(color: ColorUtils.string2Color('#F2F3F6'), width: 1),
                   ),
                   height: 78,
                   child: Row(
@@ -436,17 +412,11 @@ class RewardsPage extends HookConsumerWidget {
                         children: [
                           Text(
                             '$date5',
-                            style: TextStyle(
-                                fontSize: 13.0,
-                                color: ColorUtils.string2Color('#000000'),
-                                fontWeight: FontWeight.w400), // 设置字体大小
+                            style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w400), // 设置字体大小
                           ),
                           Text(
                             '+ More',
-                            style: TextStyle(
-                                fontSize: 12.0,
-                                color: ColorUtils.string2Color('#000000'),
-                                fontWeight: FontWeight.w500), // 设置字体大小
+                            style: TextStyle(fontSize: 12.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
                           ),
                         ],
                       ),
@@ -466,42 +436,33 @@ class RewardsPage extends HookConsumerWidget {
     );
   }
 
-  Widget _buildSwiper(BuildContext context, WidgetRef ref, _vm, list) {
-    int points = list.points ?? 0;
+  Widget _buildSwiper(BuildContext context, WidgetRef ref, _vm, RewardsIndexEntity? list) {
+    int points = list?.points ?? 0;
     return Container(
       // color: Colors.white,
       height: 55,
       decoration: BoxDecoration(
         color: Colors.white,
         borderRadius: BorderRadius.circular(10),
-        boxShadow: const [
-          BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
-        ],
+        boxShadow: const [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
       ),
       child: Row(
         crossAxisAlignment: CrossAxisAlignment.center,
         mainAxisAlignment: MainAxisAlignment.spaceBetween,
         children: [
           Text(
-            'How To Get Rewards?',
-            style: TextStyle(
-                fontSize: 15.0,
-                color: ColorUtils.string2Color('#000000'),
-                fontWeight: FontWeight.w500), // 设置字体大小
+            S.current.how_to_get_rewards,
+            style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
           ),
           Container(
-            padding:
-                const EdgeInsets.only(top: 10, bottom: 10, left: 17, right: 17),
+            padding: const EdgeInsets.only(top: 10, bottom: 10, left: 17, right: 17),
             decoration: BoxDecoration(
               color: ColorUtils.string2Color('#4161D0'),
               borderRadius: BorderRadius.circular(5),
             ),
             child: Text(
-              'Rewards',
-              style: TextStyle(
-                  fontSize: 14.0,
-                  color: ColorUtils.string2Color('#ffffff'),
-                  fontWeight: FontWeight.w400), // 设置字体大小
+              S.current.rewards,
+              style: TextStyle(fontSize: 14.0, color: ColorUtils.string2Color('#ffffff'), fontWeight: FontWeight.w400), // 设置字体大小
             ).onTap(() {
               RewardsHomePage.startInstance(points: points);
             }),
@@ -511,24 +472,21 @@ class RewardsPage extends HookConsumerWidget {
     ).marginOnly(top: 12, bottom: 12);
   }
 
-  Widget _buildList(BuildContext context, WidgetRef ref, _vm, list) {
-    bool newsFeed = list.tasks.newsFeedPost;
-    int giveLikes = list.tasks.give10Likes;
+  Widget _buildList(BuildContext context, WidgetRef ref, _vm, RewardsIndexEntity? list) {
+    bool newsFeed = list?.tasks?.newsFeedPost ?? false;
+    int giveLikes = list?.tasks?.give10Likes ?? 0;
     return Container(
       decoration: BoxDecoration(
         color: Colors.white,
         borderRadius: BorderRadius.circular(10),
-        boxShadow: const [
-          BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
-        ],
+        boxShadow: const [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
       ),
       child: Column(
         crossAxisAlignment: CrossAxisAlignment.center,
         mainAxisAlignment: MainAxisAlignment.center,
         children: [
           Container(
-            padding:
-                const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
+            padding: const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
             decoration: BoxDecoration(
                 border: Border(
                     bottom: BorderSide(
@@ -542,8 +500,7 @@ class RewardsPage extends HookConsumerWidget {
                 Row(
                   children: [
                     Container(
-                      padding: const EdgeInsets.only(
-                          top: 10, bottom: 10, left: 17, right: 17),
+                      padding: const EdgeInsets.only(top: 10, bottom: 10, left: 17, right: 17),
                       decoration: BoxDecoration(
                         color: ColorUtils.string2Color('#f2f3f6'),
                         borderRadius: BorderRadius.circular(5),
@@ -559,20 +516,14 @@ class RewardsPage extends HookConsumerWidget {
                       mainAxisAlignment: MainAxisAlignment.center,
                       children: [
                         Text(
-                          'Daily Login',
-                          style: TextStyle(
-                              fontSize: 15.0,
-                              color: ColorUtils.string2Color('#000000'),
-                              fontWeight: FontWeight.w500), // 设置字体大小
+                          S.current.daily_login,
+                          style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
                         ).marginOnly(bottom: 6),
                         Row(
                           children: [
                             Text(
                               '+2',
-                              style: TextStyle(
-                                  fontSize: 15.0,
-                                  color: ColorUtils.string2Color('#4161D0'),
-                                  fontWeight: FontWeight.w500), // 设置字体大小
+                              style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
                             ),
                             const MyAssetImage(
                               Assets.rewardsRewardsIconJb,
@@ -591,16 +542,12 @@ class RewardsPage extends HookConsumerWidget {
                   decoration: BoxDecoration(
                     color: ColorUtils.string2Color('#ffffff'),
                     borderRadius: BorderRadius.circular(5),
-                    border: Border.all(
-                        color: ColorUtils.string2Color('#4161D0'), width: 1),
+                    border: Border.all(color: ColorUtils.string2Color('#4161D0'), width: 1),
                   ),
                   child: Center(
                     child: Text(
-                      'Check In',
-                      style: TextStyle(
-                          fontSize: 14.0,
-                          color: ColorUtils.string2Color('#4161D0'),
-                          fontWeight: FontWeight.w400), // 设置字体大小
+                      S.current.check_in,
+                      style: TextStyle(fontSize: 14.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w400), // 设置字体大小
                     ),
                   ),
                 ),
@@ -608,8 +555,7 @@ class RewardsPage extends HookConsumerWidget {
             ),
           ),
           Container(
-            padding:
-                const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
+            padding: const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
             decoration: BoxDecoration(
                 border: Border(
                     bottom: BorderSide(
@@ -623,8 +569,7 @@ class RewardsPage extends HookConsumerWidget {
                 Row(
                   children: [
                     Container(
-                      padding: const EdgeInsets.only(
-                          top: 10, bottom: 10, left: 17, right: 17),
+                      padding: const EdgeInsets.only(top: 10, bottom: 10, left: 17, right: 17),
                       decoration: BoxDecoration(
                         color: ColorUtils.string2Color('#f2f3f6'),
                         borderRadius: BorderRadius.circular(5),
@@ -640,20 +585,14 @@ class RewardsPage extends HookConsumerWidget {
                       mainAxisAlignment: MainAxisAlignment.center,
                       children: [
                         Text(
-                          'News Feed Post',
-                          style: TextStyle(
-                              fontSize: 15.0,
-                              color: ColorUtils.string2Color('#000000'),
-                              fontWeight: FontWeight.w500), // 设置字体大小
+                          S.current.news_feed_post,
+                          style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
                         ).marginOnly(bottom: 6),
                         Row(
                           children: [
                             Text(
                               '+2',
-                              style: TextStyle(
-                                  fontSize: 15.0,
-                                  color: ColorUtils.string2Color('#4161D0'),
-                                  fontWeight: FontWeight.w500), // 设置字体大小
+                              style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
                             ),
                             const MyAssetImage(
                               Assets.rewardsRewardsIconJb,
@@ -672,16 +611,12 @@ class RewardsPage extends HookConsumerWidget {
                   decoration: BoxDecoration(
                     color: ColorUtils.string2Color('#ffffff'),
                     borderRadius: BorderRadius.circular(5),
-                    border: Border.all(
-                        color: ColorUtils.string2Color('#4161D0'), width: 1),
+                    border: Border.all(color: ColorUtils.string2Color('#4161D0'), width: 1),
                   ),
                   child: Center(
                     child: Text(
-                      newsFeed == true ? 'Completed' : 'incomplete',
-                      style: TextStyle(
-                          fontSize: 14.0,
-                          color: ColorUtils.string2Color('#4161D0'),
-                          fontWeight: FontWeight.w400), // 设置字体大小
+                      newsFeed == true ? S.current.completed : S.current.incomplete,
+                      style: TextStyle(fontSize: 14.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w400), // 设置字体大小
                     ),
                   ),
                 ),
@@ -689,8 +624,7 @@ class RewardsPage extends HookConsumerWidget {
             ),
           ),
           Container(
-            padding:
-                const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
+            padding: const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
             decoration: BoxDecoration(
                 border: Border(
                     bottom: BorderSide(
@@ -704,8 +638,7 @@ class RewardsPage extends HookConsumerWidget {
                 Row(
                   children: [
                     Container(
-                      padding: const EdgeInsets.only(
-                          top: 10, bottom: 10, left: 17, right: 17),
+                      padding: const EdgeInsets.only(top: 10, bottom: 10, left: 17, right: 17),
                       decoration: BoxDecoration(
                         color: ColorUtils.string2Color('#f2f3f6'),
                         borderRadius: BorderRadius.circular(5),
@@ -721,20 +654,14 @@ class RewardsPage extends HookConsumerWidget {
                       mainAxisAlignment: MainAxisAlignment.center,
                       children: [
                         Text(
-                          'Give 10 Likes',
-                          style: TextStyle(
-                              fontSize: 15.0,
-                              color: ColorUtils.string2Color('#000000'),
-                              fontWeight: FontWeight.w500), // 设置字体大小
+                          S.current.give_10_likes,
+                          style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
                         ).marginOnly(bottom: 6),
                         Row(
                           children: [
                             Text(
                               '+2',
-                              style: TextStyle(
-                                  fontSize: 15.0,
-                                  color: ColorUtils.string2Color('#4161D0'),
-                                  fontWeight: FontWeight.w500), // 设置字体大小
+                              style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
                             ),
                             const MyAssetImage(
                               Assets.rewardsRewardsIconJb,
@@ -753,16 +680,12 @@ class RewardsPage extends HookConsumerWidget {
                   decoration: BoxDecoration(
                     color: ColorUtils.string2Color('#ffffff'),
                     borderRadius: BorderRadius.circular(5),
-                    border: Border.all(
-                        color: ColorUtils.string2Color('#4161D0'), width: 1),
+                    border: Border.all(color: ColorUtils.string2Color('#4161D0'), width: 1),
                   ),
                   child: Center(
                     child: Text(
-                      giveLikes == 10 ? 'Completed' : '$giveLikes/10',
-                      style: TextStyle(
-                          fontSize: 14.0,
-                          color: ColorUtils.string2Color('#4161D0'),
-                          fontWeight: FontWeight.w400), // 设置字体大小
+                      giveLikes == 10 ? S.current.completed : '$giveLikes/10',
+                      style: TextStyle(fontSize: 14.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w400), // 设置字体大小
                     ),
                   ),
                 ),
@@ -774,49 +697,38 @@ class RewardsPage extends HookConsumerWidget {
     ).marginOnly(bottom: 12);
   }
 
-  Widget _buildHistory(BuildContext context, WidgetRef ref, _vm, list) {
-    List latest = list.latest;
+  Widget _buildHistory(BuildContext context, WidgetRef ref, _vm, RewardsIndexEntity? list) {
+    List latest = list?.latest ?? [];
+    Log.d("list是空吗? $list  最近的信息:$latest");
     return Container(
-      decoration: BoxDecoration( 
+      decoration: BoxDecoration(
         color: Colors.white,
         borderRadius: BorderRadius.circular(10),
-        boxShadow: const [
-          BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
-        ],
+        boxShadow: const [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
       ),
       child: Column(
         crossAxisAlignment: CrossAxisAlignment.center,
         mainAxisAlignment: MainAxisAlignment.center,
         children: [
-          Row(
-              crossAxisAlignment: CrossAxisAlignment.center,
-              mainAxisAlignment: MainAxisAlignment.spaceBetween,
-              children: [
-                Text(
-                  'Points History',
-                  style: TextStyle(
-                      fontSize: 15.0,
-                      color: ColorUtils.string2Color('#000000'),
-                      fontWeight: FontWeight.w500), // 设置字体大小
-                ),
-                Text(
-                  'More >',
-                  style: TextStyle(
-                      fontSize: 15.0,
-                      color: ColorUtils.string2Color('#4161D0'),
-                      fontWeight: FontWeight.w500), // 设置字体大小
-                ).onTap(() {
-                  RewardsHistoryPage.startInstance();
-                })
-              ]).paddingOnly(left: 15, right: 15, top: 15, bottom: 5),
+          Row(crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
+            Text(
+              S.current.points_history,
+              style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
+            ),
+            Text(
+              S.current.more_arrow,
+              style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
+            ).onTap(() {
+              RewardsHistoryPage.startInstance();
+            })
+          ]).paddingOnly(left: 15, right: 15, top: 15, bottom: 5),
           Column(
               crossAxisAlignment: CrossAxisAlignment.center,
               mainAxisAlignment: MainAxisAlignment.center,
               children: List.generate(latest.length, (index) {
                 int point = latest[index]['point'];
                 return Container(
-                  padding: const EdgeInsets.only(
-                      top: 15, bottom: 15, left: 15, right: 15),
+                  padding: const EdgeInsets.only(top: 15, bottom: 15, left: 15, right: 15),
                   decoration: BoxDecoration(
                       border: Border(
                           bottom: BorderSide(
@@ -833,26 +745,17 @@ class RewardsPage extends HookConsumerWidget {
                         children: [
                           Text(
                             latest[index]['short_description'],
-                            style: TextStyle(
-                                fontSize: 15.0,
-                                color: ColorUtils.string2Color('#000000'),
-                                fontWeight: FontWeight.w500), // 设置字体大小
+                            style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500), // 设置字体大小
                           ).marginOnly(bottom: 6),
                           Text(
                             latest[index]['created_at'],
-                            style: TextStyle(
-                                fontSize: 13.0,
-                                color: ColorUtils.string2Color('#808DAF'),
-                                fontWeight: FontWeight.w400), // 设置字体大小
+                            style: TextStyle(fontSize: 13.0, color: ColorUtils.string2Color('#808DAF'), fontWeight: FontWeight.w400), // 设置字体大小
                           ),
                         ],
                       ),
                       Text(
                         "$point",
-                        style: TextStyle(
-                            fontSize: 20.0,
-                            color: ColorUtils.string2Color('#FDB429'),
-                            fontWeight: FontWeight.w500), // 设置字体大小
+                        style: TextStyle(fontSize: 20.0, color: ColorUtils.string2Color('#FDB429'), fontWeight: FontWeight.w500), // 设置字体大小
                       ),
                     ],
                   ),
@@ -862,74 +765,4 @@ class RewardsPage extends HookConsumerWidget {
       ),
     ).marginOnly(bottom: 12);
   }
-
-  @override
-  Widget build(BuildContext context, WidgetRef ref) {
-    final _vm = ref.read(rewardsVmProvider.notifier);
-    final state = ref.watch(rewardsVmProvider);
-    RewardsIndexEntity? list = state.list;
-    useEffect(() {
-      // 组件挂载时执行 - 执行接口请求
-      Future.microtask(() => _vm.initPageData());
-      return () {
-        // 组件卸载时执行
-        Log.d("property_news_page 组件卸载时执行");
-      };
-    }, []);
-    // SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
-    //   statusBarColor: ColorUtils.string2Color('#4161D0'), // 设置状态栏颜色为蓝色
-    //   statusBarIconBrightness: Brightness.light, // 设置状态栏图标为亮色(例如白色)
-    //   statusBarBrightness: Brightness.dark, // 设置状态栏亮度为暗色(通常与状态栏颜色相反)
-    // ));
-    return MaterialApp(
-      home: Scaffold(
-        body: AnnotatedRegion<SystemUiOverlayStyle>(
-          value: SystemUiOverlayStyle(
-            statusBarColor: ColorUtils.string2Color('#4161D0'), // 绿色状态栏颜色
-            statusBarIconBrightness: Brightness.light, // 暗色图标(例如黑色)
-          ),
-          child:Scaffold(
-      // appBar: MyAppBar.appBar(
-      //   context,
-      //   "",
-      //   showBackButton: false,
-      //   backgroundColor: context.appColors.btnBgDefault,
-      // ),
-      body: Column(children: [
-        Expanded(
-          child: LoadStateLayout(
-            state: state.loadingState,
-            errorMessage: state.errorMessage,
-            errorRetry: () {
-              _vm.retryRequest();
-            },
-            successWidget: SingleChildScrollView(
-                scrollDirection: Axis.vertical,
-                physics: const BouncingScrollPhysics(),
-                clipBehavior: Clip.none,
-                child: Column(
-                  children: [
-                    _buildTop(context, ref, _vm, list)
-                        .paddingOnly(top: MediaQuery.of(context).padding.top),
-                    Container(
-                      transform: Matrix4.translationValues(0.0, -45.0, 0.0),
-                      child: Column(
-                        children: [
-                          _buildSearch(context, ref, _vm, list),
-                          _buildSwiper(context, ref, _vm, list),
-                          list?.points != 0
-                              ? _buildList(context, ref, _vm, list)
-                              : const SizedBox.shrink(),
-                          _buildHistory(context, ref, _vm, list),
-                        ],
-                      ), // 使用负数margin
-                    ).paddingOnly(left: 15, right: 15),
-                  ],
-                )),
-          ),
-        ),
-      ]).backgroundColor(ColorUtils.string2Color('#F2F3F6')),
-    )
-        )));
-  }
 }

+ 1 - 1
packages/cpt_rewards/lib/modules/rewards/rewards_repository.dart

@@ -28,7 +28,7 @@ class RewardsRepository {
 
   RewardsRepository({required this.dioEngine});
 
-  Future<HttpResult<Object>> fetchPropertyNewsList(
+  Future<HttpResult<RewardsIndexEntity>> fetchPropertyNewsList(
     Map<String, dynamic>? data, {
     CancelToken? cancelToken,
   }) async {

+ 5 - 3
packages/cpt_rewards/lib/modules/rewards/rewards_state.dart

@@ -3,6 +3,8 @@
 import 'dart:convert';
 
 import 'package:domain/entity/rewards_index_entity.dart';
+import 'package:domain/entity/visitor_page_entity.dart';
+import 'package:shared/utils/log_utils.dart';
 import 'package:widgets/load_state_layout.dart';
 
 class RewardsState {
@@ -14,8 +16,8 @@ class RewardsState {
   RewardsState({
     this.loadingState = LoadState.State_Loading,
     String? errorMessage,
-    RewardsIndexEntity? list
-  }) : list = list ?? RewardsIndexEntity();
+    this.list,
+  });
 
   RewardsState copyWith({
     LoadState? loadingState,
@@ -40,4 +42,4 @@ class RewardsState {
       list: map['list'] as RewardsIndexEntity,
     );
   }
-}
+}

+ 8 - 15
packages/cpt_rewards/lib/modules/rewards/rewards_vm.dart

@@ -19,8 +19,9 @@ class RewardsVm extends _$RewardsVm {
   // Refresh 控制器
   final EasyRefreshController refreshController = EasyRefreshController(
     controlFinishRefresh: true, //允许刷新
-    controlFinishLoad: true, //允许加载
+    controlFinishLoad: false, //允许加载
   );
+
   RewardsState initState() {
     return RewardsState(
       list: RewardsIndexEntity()
@@ -44,10 +45,10 @@ class RewardsVm extends _$RewardsVm {
   }
 
   // 上拉加载
-  Future onLoadData() async {
-    Log.d("----property_news_vm-----initListData");
-    getListData();
-  }
+  // Future onLoadData() async {
+  //   Log.d("----property_news_vm-----initListData");
+  //   getListData();
+  // }
 
 // 去新闻详情页
   void goNewsDetail(String item) {
@@ -61,11 +62,6 @@ class RewardsVm extends _$RewardsVm {
     getListData();
   }
 
-  //刷新页面状态
-  void changeLoadingState(LoadState loadState, String? errorMsg) {
-    state = state.copyWith(loadingState: loadState, errorMessage: errorMsg);
-  }
-
   // 获取list 列表数据
   void getListData<T>() async {
     Log.d("加载listData数据---------------start-----");
@@ -77,13 +73,10 @@ class RewardsVm extends _$RewardsVm {
       Log.d("请求完成结果------${result.data}");
       //校验成功失败
       if (result.isSuccess) {
-        state = state.copyWith(
-          list: result.data as RewardsIndexEntity,
-        );
-        changeLoadingState(LoadState.State_Success, null);
+        state = state.copyWith(list: result.data, loadingState: LoadState.State_Success);
       } else {
         String errorMessage = result.errorMsg!;
-        changeLoadingState(LoadState.State_Error, errorMessage);
+        state = state.copyWith(list: null, loadingState: LoadState.State_Error,errorMessage: errorMessage);
         ToastEngine.show(result.errorMsg ?? "Network Load Error");
       }
     } catch (e) {

+ 2 - 1
packages/cpt_rewards/lib/modules/rewards_address/rewards_address_page.dart

@@ -1,3 +1,4 @@
+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';
@@ -138,7 +139,7 @@ class RewardsAddressPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Redeem Deal At",
+        S.current.redeem_deal_at,
         backgroundColor: context.appColors.whiteBG,
       ),
       body: Container(

+ 6 - 5
packages/cpt_rewards/lib/modules/rewards_code/rewards_code_page.dart

@@ -1,3 +1,4 @@
+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';
@@ -40,18 +41,18 @@ class RewardsCodePage extends HookConsumerWidget {
           crossAxisAlignment: CrossAxisAlignment.center,
           mainAxisAlignment: MainAxisAlignment.center,
           children: [
-            const Center(
+             Center(
               child: Text(
-                'SHOW THE VERIFICATION CODE TO YOUR MERCHANT',
+                S.current.show_verification_cap,
                 textAlign: TextAlign.center,
-                style: TextStyle(
+                style: const TextStyle(
                     fontSize: 20.0,
                     color: Colors.black,
                     fontWeight: FontWeight.w500),
               ),
             ),
             Text(
-              'VERIFICATION CODE',
+              S.current.verification_code_cap,
               style: TextStyle(
                   fontSize: 18.0,
                   color: ColorUtils.string2Color('#54638C'),
@@ -109,7 +110,7 @@ class RewardsCodePage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Verification Code",
+        S.current.verification_code,
         backgroundColor: context.appColors.whiteBG,
       ),
       body: Container(

+ 3 - 3
packages/cpt_rewards/lib/modules/rewards_confirm/dialog/account_deactivation_dialog.dart

@@ -26,7 +26,7 @@ class AccountDeactivationDialog extends HookConsumerWidget {
       children: [
         Text(
           textAlign: TextAlign.center,
-          'Are you sure to spend $amount points to redeem goods?',
+          S.current.sure_redeem_goods(amount),
           style: const TextStyle(
               fontSize: 19.0, color: Colors.black, fontWeight: FontWeight.w500),
         ).paddingOnly(left: 40, right: 40)
@@ -55,7 +55,7 @@ class AccountDeactivationDialog extends HookConsumerWidget {
             children: [
               const SizedBox(width: 45),
               MyTextView(
-                'Points payment',
+                S.current.points_payment,
                 fontSize: 18,
                 textAlign: TextAlign.center,
                 isFontMedium: true,
@@ -96,7 +96,7 @@ class AccountDeactivationDialog extends HookConsumerWidget {
                           _vm.rewardBuy();
                         },
                         child: MyTextView(
-                          'Pay Now',
+                          S.current.pay_now,
                           fontSize: 16,
                           paddingTop: 13,
                           paddingBottom: 13,

+ 9 - 8
packages/cpt_rewards/lib/modules/rewards_confirm/rewards_confirm_page.dart

@@ -1,3 +1,4 @@
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/rewards_detail_entity.dart';
 import 'package:flutter/cupertino.dart';
@@ -38,7 +39,7 @@ class RewardsConfirmPage extends HookConsumerWidget {
     }
   }
 
-  // listitem
+  // list item
   Widget _buildSaleItem(BuildContext context, WidgetRef ref, _vm, detailInfo) {
     String title = detailInfo!.title ?? "";
     List? resources = detailInfo!.resources ?? [];
@@ -115,7 +116,7 @@ class RewardsConfirmPage extends HookConsumerWidget {
                     height: 25,
                   ).marginOnly(right: 5),
                   Text(
-                    'Redeem Deal At',
+                    S.current.redeem_deal_at,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -175,7 +176,7 @@ class RewardsConfirmPage extends HookConsumerWidget {
                     height: 15,
                   ).marginOnly(right: 10),
                   Text(
-                    'Redeem From',
+                    S.current.redeem_from,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -228,7 +229,7 @@ class RewardsConfirmPage extends HookConsumerWidget {
                 crossAxisAlignment: CrossAxisAlignment.center,
                 children: [
                   Text(
-                    'Quantity:',
+                    "${S.current.quantity}:",
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#333333'),
@@ -266,7 +267,7 @@ class RewardsConfirmPage extends HookConsumerWidget {
                 crossAxisAlignment: CrossAxisAlignment.center,
                 children: [
                   Text(
-                    'Points:',
+                    '${S.current.points}:',
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#333333'),
@@ -300,7 +301,7 @@ class RewardsConfirmPage extends HookConsumerWidget {
                 crossAxisAlignment: CrossAxisAlignment.center,
                 children: [
                   Text(
-                    'Amount:',
+                    '${S.current.amount}:',
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#333333'),
@@ -342,7 +343,7 @@ class RewardsConfirmPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Confirm Details",
+        S.current.confirm_details,
         backgroundColor: context.appColors.whiteBG,
       ),
       body: LoadStateLayout(
@@ -389,7 +390,7 @@ class RewardsConfirmPage extends HookConsumerWidget {
                           crossAxisAlignment: CrossAxisAlignment.center,
                           children: [
                             MyTextView(
-                              "Redeem",
+                              S.current.redeem,
                               fontSize: 16,
                               textColor: Colors.white,
                               isFontMedium: true,

+ 14 - 13
packages/cpt_rewards/lib/modules/rewards_detail/rewards_detail_page.dart

@@ -1,4 +1,5 @@
 import 'package:cpt_rewards/modules/rewards_confirm/rewards_confirm_page.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/rewards_detail_entity.dart';
 import 'package:flutter/cupertino.dart';
@@ -90,7 +91,7 @@ class RewardsDetailPage extends HookConsumerWidget {
                     Text(
                       maxLines: 1, // 设置最大行数为2
                       overflow: TextOverflow.ellipsis, // 超出部分用省略号表示
-                      'Pulished Date: $createdAt',
+                      '${S.current.published_date}: $createdAt',
                       style: TextStyle(
                           fontSize: 13.0,
                           color: ColorUtils.string2Color('#808DAF'),
@@ -116,9 +117,9 @@ class RewardsDetailPage extends HookConsumerWidget {
                               color: ColorUtils.string2Color('#808DAF'),
                               fontWeight: FontWeight.w400),
                         ).marginOnly(left: 5, right: 5),
-                        const Text(
-                          'Points',
-                          style: TextStyle(
+                         Text(
+                          S.current.points,
+                          style: const TextStyle(
                               fontSize: 13.0,
                               color: Colors.black,
                               fontWeight: FontWeight.w400),
@@ -181,8 +182,8 @@ class RewardsDetailPage extends HookConsumerWidget {
                                   maxLines: 1, // 设置最大行数为2
                                   overflow: TextOverflow.ellipsis, // 超出部分用省略号表示
                                   reservation
-                                      ? 'Reservation required'
-                                      : 'No Reservation Required',
+                                      ? S.current.reservation_required
+                                      : S.current.no_reservation_required,
                                   style: TextStyle(
                                       fontSize: 14.0,
                                       color: ColorUtils.string2Color('#808DAF'),
@@ -226,7 +227,7 @@ class RewardsDetailPage extends HookConsumerWidget {
                     height: 25,
                   ).marginOnly(right: 10),
                   Text(
-                    'Redeem Deal At',
+                    S.current.redeem_deal_at,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -387,7 +388,7 @@ class RewardsDetailPage extends HookConsumerWidget {
                     height: 25,
                   ).marginOnly(right: 10),
                   Text(
-                    'Redemption Notice',
+                    S.current.redemption_notice,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -441,7 +442,7 @@ class RewardsDetailPage extends HookConsumerWidget {
                     height: 25,
                   ).marginOnly(right: 10),
                   Text(
-                    'Redemption Instructions',
+                    S.current.redemption_instructions,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -453,7 +454,7 @@ class RewardsDetailPage extends HookConsumerWidget {
                 crossAxisAlignment: CrossAxisAlignment.start,
                 children: [
                   Text(
-                    'Reservation not required.Present your YY Circle Voucher (it’s under “Me”tab)At the outlet.',
+                    S.current.redemption_reservation_txt,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#54638C'),
@@ -497,7 +498,7 @@ class RewardsDetailPage extends HookConsumerWidget {
                     height: 25,
                   ).marginOnly(right: 10),
                   Text(
-                    'Redeemable On',
+                    S.current.redeemable_on,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -544,7 +545,7 @@ class RewardsDetailPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Detail",
+        S.current.detail,
         backgroundColor: context.appColors.whiteBG,
       ),
       body: LoadStateLayout(
@@ -594,7 +595,7 @@ class RewardsDetailPage extends HookConsumerWidget {
                           crossAxisAlignment: CrossAxisAlignment.center,
                           children: [
                             MyTextView(
-                              "Redeem",
+                              S.current.redeem,
                               fontSize: 16,
                               textColor: Colors.white,
                               isFontMedium: true,

+ 2 - 1
packages/cpt_rewards/lib/modules/rewards_history/rewards_history_page.dart

@@ -1,3 +1,4 @@
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 // ignore: depend_on_referenced_packages
@@ -100,7 +101,7 @@ class RewardsHistoryPage extends HookConsumerWidget {
     return Scaffold(
         appBar: MyAppBar.appBar(
           context,
-          "Points History",
+          S.current.points_history,
           backgroundColor: context.appColors.whiteBG,
         ),
         body: AutoTabsRouter.pageView(

+ 3 - 2
packages/cpt_rewards/lib/modules/rewards_history/rewards_history_vm.dart

@@ -1,5 +1,6 @@
 
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:plugin_platform/engine/toast/toast_engine.dart';
 import 'package:riverpod_annotation/riverpod_annotation.dart';
@@ -20,13 +21,13 @@ class RewardsHistoryVmState {
     this.curIdx = 0,
   }) : topSectionsData = topSectionsData?? [
     {
-      "title": "Earned Points",
+      "title": S.current.earned_points,
       "icon": Assets.propertyIoan,
       "pageStartInstanceFn": RewardsHistoryEarnedPage.startInstance,
       "page": const RewardsHistoryEarnedPage(),
     },
     {
-      "title": "Spent Points",
+      "title": S.current.spent_points,
       "icon": Assets.propertyNews,
       "pageStartInstanceFn": RewardsHistorySpentPage.startInstance,
       "page": const RewardsHistorySpentPage(),

+ 108 - 195
packages/cpt_rewards/lib/modules/rewards_home/rewards_home_page.dart

@@ -5,6 +5,9 @@ import 'package:cpt_rewards/modules/rewards_list/rewards_list_page.dart';
 import 'package:cpt_rewards/modules/rewards_my/rewards_my_page.dart';
 import 'package:cpt_rewards/modules/rewards_search/rewards_search_page.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
+import 'package:cs_resources/theme/app_colors_theme.dart';
+import 'package:cs_resources/theme/theme_config.dart';
 import 'package:domain/entity/rewards_category_entity.dart';
 import 'package:domain/entity/rewards_home_entity.dart';
 import 'package:flutter/material.dart';
@@ -18,6 +21,7 @@ import 'package:shared/utils/color_utils.dart';
 import 'package:shared/utils/log_utils.dart';
 import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/load_state_layout.dart';
+import 'package:widgets/my_appbar.dart';
 import 'package:widgets/my_load_image.dart';
 
 import '../../../router/page/rewards_page_router.dart';
@@ -26,8 +30,8 @@ import './rewards_home_vm.dart';
 @RoutePage()
 class RewardsHomePage extends HookConsumerWidget {
   final int? points;
-  const RewardsHomePage({Key? key, @PathParam('points') required this.points})
-      : super(key: key);
+
+  const RewardsHomePage({Key? key, @PathParam('points') required this.points}) : super(key: key);
 
   //启动当前页面
   static void startInstance({
@@ -61,25 +65,15 @@ class RewardsHomePage extends HookConsumerWidget {
         child: Column(
           crossAxisAlignment: CrossAxisAlignment.start,
           children: [
-            const MyAssetImage(
-              Assets.rewardsRewardsBack,
-              width: 44,
-              height: 44,
-            ).onTap(() {
-              // backCallback
-              Navigator.pop(context);
-            }),
+
             Row(
               crossAxisAlignment: CrossAxisAlignment.center,
               mainAxisAlignment: MainAxisAlignment.center,
               children: [
                 Text(
-                  '$point Available Points',
-                  style: const TextStyle(
-                      fontSize: 18.0,
-                      color: Colors.white,
-                      fontWeight: FontWeight.w500), // 设置字体大小
-                ).paddingOnly(left: 10, top: 20, bottom: 13),
+                  '$point ${S.current.available_points}',
+                  style: const TextStyle(fontSize: 18.0, color: Colors.white, fontWeight: FontWeight.w500), // 设置字体大小
+                ).paddingOnly(left: 10, top: 0, bottom: 13),
               ],
             ),
             Row(
@@ -91,15 +85,10 @@ class RewardsHomePage extends HookConsumerWidget {
                     border: Border.all(color: Colors.white, width: 1), // 边框
                     borderRadius: BorderRadius.circular(8), // 圆角
                   ),
-                  child: const Text(
-                    'My Rewards',
-                    style: TextStyle(
-                        fontSize: 15.0,
-                        color: Colors.white,
-                        fontWeight: FontWeight.w400), // 设置字体大小
-                  )
-                      .paddingOnly(left: 10, top: 7, bottom: 7, right: 10)
-                      .onTap(() {
+                  child:  Text(
+                    S.current.my_rewards,
+                    style: const TextStyle(fontSize: 15.0, color: Colors.white, fontWeight: FontWeight.w400), // 设置字体大小
+                  ).paddingOnly(left: 10, top: 7, bottom: 7, right: 10).onTap(() {
                     RewardsMyPage.startInstance();
                   }),
                 ),
@@ -133,7 +122,7 @@ class RewardsHomePage extends HookConsumerWidget {
             ).paddingOnly(left: 10)
           ],
         )
-            .paddingOnly(top: 15, left: 5, right: 15, bottom: 8)
+            .paddingOnly(top: 8, left: 5, right: 15, bottom: 8)
             .border(bottom: 0, color: ColorUtils.string2Color('#4161D0'))
             .backgroundColor(ColorUtils.string2Color('#4161D0')));
   }
@@ -141,7 +130,7 @@ class RewardsHomePage extends HookConsumerWidget {
   Widget _buildSearch(BuildContext context, WidgetRef ref, _vm) {
     // List itemsList = _vm.state.list.toList();
     return Container(
-      width: MediaQuery.of(context).size.width-30,
+      width: MediaQuery.of(context).size.width - 30,
       height: 50,
       decoration: BoxDecoration(
         color: Colors.white,
@@ -152,11 +141,8 @@ class RewardsHomePage extends HookConsumerWidget {
         mainAxisAlignment: MainAxisAlignment.spaceBetween,
         children: [
           Text(
-            'Search',
-            style: TextStyle(
-                fontSize: 15.0,
-                color: ColorUtils.string2Color('#C7CDE3'),
-                fontWeight: FontWeight.w500), // 设置字体大小
+            S.current.search,
+            style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#C7CDE3'), fontWeight: FontWeight.w500), // 设置字体大小
           ),
           const MyAssetImage(
             Assets.rewardsRewardsIndexSearch,
@@ -186,9 +172,7 @@ class RewardsHomePage extends HookConsumerWidget {
           bottomLeft: Radius.circular(10.0),
           bottomRight: Radius.circular(0.0),
         ),
-        boxShadow: [
-          BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
-        ],
+        boxShadow: [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
       ),
       child: ClipRect(
           child: SingleChildScrollView(
@@ -211,10 +195,7 @@ class RewardsHomePage extends HookConsumerWidget {
                 ),
                 Text(
                   item['name']!,
-                  style: TextStyle(
-                      fontSize: 14.0,
-                      color: ColorUtils.string2Color('#000001'),
-                      fontWeight: FontWeight.w600), // 设置字体大小
+                  style: TextStyle(fontSize: 14.0, color: ColorUtils.string2Color('#000001'), fontWeight: FontWeight.w600), // 设置字体大小
                 ),
               ],
             ).marginOnly(right: 5).onTap(() {
@@ -237,17 +218,11 @@ class RewardsHomePage extends HookConsumerWidget {
                   children: [
                     Text(
                       list?['name'] ?? '',
-                      style: TextStyle(
-                          fontSize: 17.0,
-                          color: ColorUtils.string2Color('#000001'),
-                          fontWeight: FontWeight.w500), // 设置字体大小
+                      style: TextStyle(fontSize: 17.0, color: ColorUtils.string2Color('#000001'), fontWeight: FontWeight.w500), // 设置字体大小
                     ),
                     Text(
-                      'See All',
-                      style: TextStyle(
-                          fontSize: 17.0,
-                          color: ColorUtils.string2Color('#4161D0'),
-                          fontWeight: FontWeight.w500), // 设置字体大小
+                      S.current.see_all,
+                      style: TextStyle(fontSize: 17.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
                     ).onTap(() {
                       RewardsListPage.startInstance();
                     }),
@@ -263,19 +238,11 @@ class RewardsHomePage extends HookConsumerWidget {
                           height: 155,
                           decoration: const BoxDecoration(
                             color: Colors.white,
-                            borderRadius:
-                                BorderRadius.all(Radius.circular(6.0)),
-                            boxShadow: [
-                              BoxShadow(
-                                  color: Color.fromRGBO(184, 191, 217, 0.3),
-                                  blurRadius: 6)
-                            ],
+                            borderRadius: BorderRadius.all(Radius.circular(6.0)),
+                            boxShadow: [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
                           ),
                           child: ClipRRect(
-                              borderRadius:
-                                  const BorderRadius.all(Radius.circular(6.0)),
-                              child: _buildItem(context, ref, _vm, hg,
-                                  list['rewards'][index])));
+                              borderRadius: const BorderRadius.all(Radius.circular(6.0)), child: _buildItem(context, ref, _vm, hg, list['rewards'][index])));
                     }))
               ],
             ),
@@ -292,18 +259,12 @@ class RewardsHomePage extends HookConsumerWidget {
             mainAxisAlignment: MainAxisAlignment.spaceBetween,
             children: [
               Text(
-                'Hottest',
-                style: TextStyle(
-                    fontSize: 17.0,
-                    color: ColorUtils.string2Color('#000001'),
-                    fontWeight: FontWeight.w500), // 设置字体大小
+                S.current.hottest,
+                style: TextStyle(fontSize: 17.0, color: ColorUtils.string2Color('#000001'), fontWeight: FontWeight.w500), // 设置字体大小
               ),
               Text(
-                'See All',
-                style: TextStyle(
-                    fontSize: 17.0,
-                    color: ColorUtils.string2Color('#4161D0'),
-                    fontWeight: FontWeight.w500), // 设置字体大小
+                S.current.see_all,
+                style: TextStyle(fontSize: 17.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
               ).onTap(() {
                 RewardsListPage.startInstance();
               }),
@@ -320,11 +281,7 @@ class RewardsHomePage extends HookConsumerWidget {
                     decoration: const BoxDecoration(
                       color: Colors.white,
                       borderRadius: BorderRadius.all(Radius.circular(6.0)),
-                      boxShadow: [
-                        BoxShadow(
-                            color: Color.fromRGBO(184, 191, 217, 0.3),
-                            blurRadius: 6)
-                      ],
+                      boxShadow: [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
                     ),
                     child: _buildItem(context, ref, _vm, hg, {}));
               }))
@@ -353,19 +310,13 @@ class RewardsHomePage extends HookConsumerWidget {
               maxLines: 1, // 设置最大行数为2
               overflow: TextOverflow.ellipsis, // 超出部分用省略号表示
               item?['name'] ?? '',
-              style: const TextStyle(
-                  fontSize: 15.0,
-                  color: Colors.black,
-                  fontWeight: FontWeight.w500),
+              style: const TextStyle(fontSize: 15.0, color: Colors.black, fontWeight: FontWeight.w500),
             ).marginOnly(bottom: 5),
             Row(
               children: [
                 Text(
                   '$point',
-                  style: const TextStyle(
-                      fontSize: 18.0,
-                      color: Colors.black,
-                      fontWeight: FontWeight.w500),
+                  style: const TextStyle(fontSize: 18.0, color: Colors.black, fontWeight: FontWeight.w500),
                 ),
                 Text(
                   '$originalPoint',
@@ -377,12 +328,9 @@ class RewardsHomePage extends HookConsumerWidget {
                       color: ColorUtils.string2Color('#808DAF'),
                       fontWeight: FontWeight.w400),
                 ).marginOnly(left: 5, right: 5),
-                const Text(
-                  'Points',
-                  style: TextStyle(
-                      fontSize: 13.0,
-                      color: Colors.black,
-                      fontWeight: FontWeight.w400),
+                 Text(
+                  S.current.points,
+                  style: const TextStyle(fontSize: 13.0, color: Colors.black, fontWeight: FontWeight.w400),
                 ),
               ],
             )
@@ -405,17 +353,11 @@ class RewardsHomePage extends HookConsumerWidget {
                   children: [
                     Text(
                       list?['name'] ?? '',
-                      style: TextStyle(
-                          fontSize: 17.0,
-                          color: ColorUtils.string2Color('#000001'),
-                          fontWeight: FontWeight.w500), // 设置字体大小
+                      style: TextStyle(fontSize: 17.0, color: ColorUtils.string2Color('#000001'), fontWeight: FontWeight.w500), // 设置字体大小
                     ),
                     Text(
-                      'See All',
-                      style: TextStyle(
-                          fontSize: 17.0,
-                          color: ColorUtils.string2Color('#4161D0'),
-                          fontWeight: FontWeight.w500), // 设置字体大小
+                      S.current.see_all,
+                      style: TextStyle(fontSize: 17.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
                     ).onTap(() {
                       RewardsListPage.startInstance();
                     }),
@@ -431,19 +373,11 @@ class RewardsHomePage extends HookConsumerWidget {
                           height: 155,
                           decoration: const BoxDecoration(
                             color: Colors.white,
-                            borderRadius:
-                                BorderRadius.all(Radius.circular(6.0)),
-                            boxShadow: [
-                              BoxShadow(
-                                  color: Color.fromRGBO(184, 191, 217, 0.3),
-                                  blurRadius: 6)
-                            ],
+                            borderRadius: BorderRadius.all(Radius.circular(6.0)),
+                            boxShadow: [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
                           ),
                           child: ClipRRect(
-                              borderRadius:
-                                  const BorderRadius.all(Radius.circular(6.0)),
-                              child: _buildItem(context, ref, _vm, hg,
-                                  list['rewards'][index])));
+                              borderRadius: const BorderRadius.all(Radius.circular(6.0)), child: _buildItem(context, ref, _vm, hg, list['rewards'][index])));
                     }))
               ],
             ),
@@ -461,18 +395,12 @@ class RewardsHomePage extends HookConsumerWidget {
                   mainAxisAlignment: MainAxisAlignment.spaceBetween,
                   children: [
                     Text(
-                      'Best Offers in Singapore',
-                      style: TextStyle(
-                          fontSize: 17.0,
-                          color: ColorUtils.string2Color('#000001'),
-                          fontWeight: FontWeight.w500), // 设置字体大小
+                      S.current.best_offers_in_singapore,
+                      style: TextStyle(fontSize: 17.0, color: ColorUtils.string2Color('#000001'), fontWeight: FontWeight.w500), // 设置字体大小
                     ),
                     Text(
-                      'See All',
-                      style: TextStyle(
-                          fontSize: 17.0,
-                          color: ColorUtils.string2Color('#4161D0'),
-                          fontWeight: FontWeight.w500), // 设置字体大小
+                      S.current.see_all,
+                      style: TextStyle(fontSize: 17.0, color: ColorUtils.string2Color('#4161D0'), fontWeight: FontWeight.w500), // 设置字体大小
                     ),
                   ],
                 ).marginOnly(bottom: 15),
@@ -486,19 +414,11 @@ class RewardsHomePage extends HookConsumerWidget {
                               height: 220,
                               decoration: const BoxDecoration(
                                 color: Colors.white,
-                                borderRadius:
-                                    BorderRadius.all(Radius.circular(6.0)),
-                                boxShadow: [
-                                  BoxShadow(
-                                      color: Color.fromRGBO(184, 191, 217, 0.3),
-                                      blurRadius: 6)
-                                ],
+                                borderRadius: BorderRadius.all(Radius.circular(6.0)),
+                                boxShadow: [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
                               ),
                               child: ClipRRect(
-                                  borderRadius: const BorderRadius.all(
-                                      Radius.circular(6.0)),
-                                  child: _buildItem(context, ref, _vm, hg,
-                                      list['rewards'][index])))
+                                  borderRadius: const BorderRadius.all(Radius.circular(6.0)), child: _buildItem(context, ref, _vm, hg, list['rewards'][index])))
                           .marginOnly(bottom: 13);
                     }))
               ],
@@ -519,37 +439,38 @@ class RewardsHomePage extends HookConsumerWidget {
         Log.d("property_news_page 组件卸载时执行");
       };
     }, []);
-    return MaterialApp(
-        home: Scaffold(
-            body: AnnotatedRegion<SystemUiOverlayStyle>(
-                value: SystemUiOverlayStyle(
-                  statusBarColor: ColorUtils.string2Color('#4161D0'), // 绿色状态栏颜色
-                  statusBarIconBrightness: Brightness.light, // 暗色图标(例如黑色)
-                ),
-                child: Scaffold(
-                  // appBar: AppBar(title: Text("奖励")),
-                  body: Column(children: [
-                    Expanded(
-                        child: LoadStateLayout(
-                      state: state.loadingState,
-                      errorMessage: state.errorMessage,
-                      errorRetry: () {
-                        _vm.retryRequest();
-                      },
-                      successWidget: SingleChildScrollView(
-                          scrollDirection: Axis.vertical,
-                          physics: const BouncingScrollPhysics(),
-                          clipBehavior: Clip.none,
-                          child: state.list.length > 0
-                              ? Column(
-                                  children: [
-                                    Stack(
-                                      clipBehavior:Clip.none,
-                                      children: <Widget>[
-                                      _buildTop(context, ref, _vm).paddingOnly(
-                                          top: MediaQuery.of(context)
-                                              .padding
-                                              .top),
+    return Scaffold(
+      appBar: MyAppBar.appBar(
+        context,
+        "",
+        backIconPath: Assets.rewardsRewardsBack,
+        backIconWidth: 32.0,
+        backIconHeight: 32.0,
+        titleColor: Colors.white,
+        titleDarkColor: Colors.white,
+        showBackButton: true,
+        backgroundColor: context.appColors.btnBgDefault,
+        systemUiOverlayStyle: MediaQuery.of(context).platformBrightness == Brightness.dark
+            ? ThemeConfig.systemUiOverlayStyleDarkTheme
+            : ThemeConfig.systemUiOverlayStyleLightThemeWhite,
+      ),
+      body: Column(children: [
+        Expanded(
+            child: LoadStateLayout(
+          state: state.loadingState,
+          errorMessage: state.errorMessage,
+          errorRetry: () {
+            _vm.retryRequest();
+          },
+          successWidget: SingleChildScrollView(
+              scrollDirection: Axis.vertical,
+              physics: const BouncingScrollPhysics(),
+              clipBehavior: Clip.none,
+              child: state.list.length > 0
+                  ? Column(
+                      children: [
+                        Stack(clipBehavior: Clip.none, children: <Widget>[
+                          _buildTop(context, ref, _vm),
 //                                               GestureDetector(
 //                                                   onTap: () {
 //                                                     print('第二个元素被点击'); // 这个会被触发。
@@ -557,40 +478,32 @@ class RewardsHomePage extends HookConsumerWidget {
 //                                                   child:Container(
 // transform:Matrix4.translationValues(0.0,210.0,0.0),child: _buildSearch(context,ref,_vm)//使用负数
 // ).paddingOnly(left:15,right:15))
-                                      // Container(
-                                      //   // transform: Matrix4.translationValues(0.0, -25.0, 0.0),
-                                      //   child: _buildSearch(context, ref, _vm), // 使用负数margin
-                                      // ).paddingOnly(left: 15, right: 15),
-                                      Positioned(
-                                        // 通过 Positioned 来确保它在红色容器的上方。
-                                        left: 0, // 根据需要调整位置。
-                                        bottom: -12, // 根据需要调整位置。
-                                        child: GestureDetector(
-                                          onTap: () {
-                                            RewardsSearchPage
-                                                    .startInstance();
-                                          },
-                                          child:
-                                              _buildSearch(context, ref, _vm),
-                                        ).paddingOnly(left: 15, right: 15),
-                                      ),
-                                    ]).paddingOnly(bottom: 42),
-                                    _buildSwiper(context, ref, _vm),
-                                    _buildRecommend(
-                                            context, ref, _vm, state.list![0])
-                                        .marginOnly(bottom: 15),
-                                    // _buildHottest(context, ref, _vm).marginOnly(bottom: 15),
-                                    _buildFood(
-                                            context, ref, _vm, state.list![2])
-                                        .marginOnly(bottom: 15),
-                                    _buildBest(
-                                            context, ref, _vm, state.list![1])
-                                        .marginOnly(bottom: 15),
-                                  ],
-                                )
-                              : const Column()),
-                    )),
-                  ]).backgroundColor(ColorUtils.string2Color('#F2F3F6')),
-                ))));
+                          // Container(
+                          //   // transform: Matrix4.translationValues(0.0, -25.0, 0.0),
+                          //   child: _buildSearch(context, ref, _vm), // 使用负数margin
+                          // ).paddingOnly(left: 15, right: 15),
+                          Positioned(
+                            // 通过 Positioned 来确保它在红色容器的上方。
+                            left: 0, // 根据需要调整位置。
+                            bottom: -12, // 根据需要调整位置。
+                            child: GestureDetector(
+                              onTap: () {
+                                RewardsSearchPage.startInstance();
+                              },
+                              child: _buildSearch(context, ref, _vm),
+                            ).paddingOnly(left: 15, right: 15),
+                          ),
+                        ]).paddingOnly(bottom: 42),
+                        _buildSwiper(context, ref, _vm),
+                        _buildRecommend(context, ref, _vm, state.list![0]).marginOnly(bottom: 15),
+                        // _buildHottest(context, ref, _vm).marginOnly(bottom: 15),
+                        _buildFood(context, ref, _vm, state.list![2]).marginOnly(bottom: 15),
+                        _buildBest(context, ref, _vm, state.list![1]).marginOnly(bottom: 15),
+                      ],
+                    )
+                  : const Column()),
+        )),
+      ]).backgroundColor(ColorUtils.string2Color('#F2F3F6')),
+    );
   }
 }

+ 8 - 7
packages/cpt_rewards/lib/modules/rewards_my/rewards_my_active/rewards_my_active_page.dart

@@ -1,5 +1,6 @@
 import 'package:cpt_rewards/modules/rewards_code/rewards_code_page.dart';
 import 'package:cpt_rewards/modules/rewards_redeem/rewards_redeem_page.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter_hooks/flutter_hooks.dart';
@@ -72,9 +73,9 @@ class RewardsMyActivePage extends HookConsumerWidget {
                       color: ColorUtils.string2Color('#000000'),
                       fontWeight: FontWeight.w400),
                 ).marginOnly(left: 5, right: 5),
-                const Text(
-                  'Points',
-                  style: TextStyle(
+                 Text(
+                  S.current.points,
+                  style: const TextStyle(
                       fontSize: 13.0,
                       color: Colors.black,
                       fontWeight: FontWeight.w400),
@@ -91,9 +92,9 @@ class RewardsMyActivePage extends HookConsumerWidget {
                       width: 15,
                       height: 15,
                     ),
-                    const Text(
-                      'Redeem From:',
-                      style: TextStyle(
+                     Text(
+                      '${S.current.redeem_from}:',
+                      style: const TextStyle(
                           fontSize: 13.0,
                           color: Colors.black,
                           fontWeight: FontWeight.w400),
@@ -119,7 +120,7 @@ class RewardsMyActivePage extends HookConsumerWidget {
                     child: Container(
                         alignment: Alignment.center,
                         child: Text(
-                          'Redeem Now',
+                          S.current.redeem_now,
                           style: TextStyle(
                               fontSize: 15.0,
                               color: ColorUtils.string2Color('#FFFFFF'),

+ 7 - 6
packages/cpt_rewards/lib/modules/rewards_my/rewards_my_expired/rewards_my_expired_page.dart

@@ -1,4 +1,5 @@
 import 'package:cpt_rewards/modules/rewards_transaction/rewards_transaction_page.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter_hooks/flutter_hooks.dart';
@@ -70,9 +71,9 @@ class RewardsMyExpiredPage extends HookConsumerWidget {
                       color: ColorUtils.string2Color('#000000'),
                       fontWeight: FontWeight.w400),
                 ).marginOnly(left: 5, right: 5),
-                const Text(
-                  'Points',
-                  style: TextStyle(
+                 Text(
+                  S.current.points,
+                  style: const TextStyle(
                       fontSize: 13.0,
                       color: Colors.black,
                       fontWeight: FontWeight.w400),
@@ -89,9 +90,9 @@ class RewardsMyExpiredPage extends HookConsumerWidget {
                       width: 15,
                       height: 15,
                     ),
-                    const Text(
-                      'Redeem From:',
-                      style: TextStyle(
+                     Text(
+                      '${S.current.redeem_from}:',
+                      style: const TextStyle(
                           fontSize: 13.0,
                           color: Colors.black,
                           fontWeight: FontWeight.w400),

+ 2 - 1
packages/cpt_rewards/lib/modules/rewards_my/rewards_my_page.dart

@@ -1,3 +1,4 @@
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 // ignore: depend_on_referenced_packages
@@ -100,7 +101,7 @@ class RewardsMyPage extends HookConsumerWidget {
     return Scaffold(
         appBar: MyAppBar.appBar(
           context,
-          "My Rewards",
+          S.current.my_rewards,
           backgroundColor: context.appColors.whiteBG,
         ),
         body: AutoTabsRouter.pageView(

+ 15 - 37
packages/cpt_rewards/lib/modules/rewards_my/rewards_my_used/rewards_my_used_page.dart

@@ -1,4 +1,5 @@
 import 'package:cpt_rewards/modules/rewards_transaction/rewards_transaction_page.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter_hooks/flutter_hooks.dart';
@@ -47,19 +48,13 @@ class RewardsMyUsedPage extends HookConsumerWidget {
               maxLines: 1, // 设置最大行数为2
               overflow: TextOverflow.ellipsis, // 超出部分用省略号表示
               title,
-              style: const TextStyle(
-                  fontSize: 16.0,
-                  color: Colors.black,
-                  fontWeight: FontWeight.w500),
+              style: const TextStyle(fontSize: 16.0, color: Colors.black, fontWeight: FontWeight.w500),
             ),
             Row(
               children: [
                 Text(
                   '$point',
-                  style: const TextStyle(
-                      fontSize: 19.0,
-                      color: Colors.black,
-                      fontWeight: FontWeight.w500),
+                  style: const TextStyle(fontSize: 19.0, color: Colors.black, fontWeight: FontWeight.w500),
                 ),
                 Text(
                   '$originalPoint',
@@ -71,12 +66,9 @@ class RewardsMyUsedPage extends HookConsumerWidget {
                       color: ColorUtils.string2Color('#000000'),
                       fontWeight: FontWeight.w400),
                 ).marginOnly(left: 5, right: 5),
-                const Text(
-                  'Points',
-                  style: TextStyle(
-                      fontSize: 13.0,
-                      color: Colors.black,
-                      fontWeight: FontWeight.w400),
+                Text(
+                  S.current.points,
+                  style: const TextStyle(fontSize: 13.0, color: Colors.black, fontWeight: FontWeight.w400),
                 ),
               ],
             ),
@@ -90,21 +82,15 @@ class RewardsMyUsedPage extends HookConsumerWidget {
                       width: 15,
                       height: 15,
                     ),
-                    const Text(
-                      'Redeem From:',
-                      style: TextStyle(
-                          fontSize: 13.0,
-                          color: Colors.black,
-                          fontWeight: FontWeight.w400),
+                    Text(
+                      '${S.current.redeem_from}:',
+                      style: const TextStyle(fontSize: 13.0, color: Colors.black, fontWeight: FontWeight.w400),
                     ).marginOnly(left: 6)
                   ],
                 ),
                 Text(
                   '$redeemedDate',
-                  style: const TextStyle(
-                      fontSize: 13.0,
-                      color: Colors.black,
-                      fontWeight: FontWeight.w400),
+                  style: const TextStyle(fontSize: 13.0, color: Colors.black, fontWeight: FontWeight.w400),
                 )
               ],
             ),
@@ -116,11 +102,8 @@ class RewardsMyUsedPage extends HookConsumerWidget {
                   height: 15,
                 ),
                 Text(
-                  'Redeemed at: $usedAt',
-                  style: const TextStyle(
-                      fontSize: 13.0,
-                      color: Colors.black,
-                      fontWeight: FontWeight.w400),
+                  '${S.current.redeem_deal_at}: $usedAt',
+                  style: const TextStyle(fontSize: 13.0, color: Colors.black, fontWeight: FontWeight.w400),
                 ).marginOnly(left: 6)
               ],
             ).paddingOnly(left: 6),
@@ -134,11 +117,8 @@ class RewardsMyUsedPage extends HookConsumerWidget {
                     child: Container(
                         alignment: Alignment.center,
                         child: Text(
-                          'View',
-                          style: TextStyle(
-                              fontSize: 15.0,
-                              color: ColorUtils.string2Color('#FFFFFF'),
-                              fontWeight: FontWeight.w500),
+                          S.current.view,
+                          style: TextStyle(fontSize: 15.0, color: ColorUtils.string2Color('#FFFFFF'), fontWeight: FontWeight.w500),
                         )))).marginOnly(top: 10, bottom: 5).onTap(() {
               RewardsTransactionPage.startInstance();
             }),
@@ -162,9 +142,7 @@ class RewardsMyUsedPage extends HookConsumerWidget {
       decoration: const BoxDecoration(
         color: Colors.white,
         borderRadius: BorderRadius.all(Radius.circular(6.0)),
-        boxShadow: [
-          BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
-        ],
+        boxShadow: [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
       ),
       child: Column(
         children: [

+ 4 - 3
packages/cpt_rewards/lib/modules/rewards_my/rewards_my_vm.dart

@@ -1,5 +1,6 @@
 
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:plugin_platform/engine/toast/toast_engine.dart';
 import 'package:riverpod_annotation/riverpod_annotation.dart';
@@ -21,19 +22,19 @@ class RewardsMyVmState {
     this.curIdx = 0,
   }) : topSectionsData = topSectionsData?? [
     {
-      "title": "Active",
+      "title": S.current.facility_active,
       "icon": Assets.propertyIoan,
       "pageStartInstanceFn": RewardsMyActivePage.startInstance,
       "page": const RewardsMyActivePage(),
     },
     {
-      "title": "Expired",
+      "title": S.current.expired,
       "icon": Assets.propertyNews,
       "pageStartInstanceFn": RewardsMyExpiredPage.startInstance,
       "page": const RewardsMyExpiredPage(),
     },
     {
-      "title": "Used",
+      "title": S.current.used,
       "icon": Assets.propertySale,
       "pageStartInstanceFn": RewardsMyUsedPage.startInstance,
       "page": const RewardsMyUsedPage(),

+ 9 - 8
packages/cpt_rewards/lib/modules/rewards_redeem/rewards_redeem_page.dart

@@ -1,3 +1,4 @@
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/rewards_active_detail_entity.dart';
 import 'package:domain/entity/rewards_my_detail_entity.dart';
@@ -103,9 +104,9 @@ class RewardsRedeemPage extends HookConsumerWidget {
                               color: ColorUtils.string2Color('#808DAF'),
                               fontWeight: FontWeight.w400),
                         ).marginOnly(left: 5, right: 5),
-                        const Text(
-                          'Points',
-                          style: TextStyle(
+                         Text(
+                          S.current.points,
+                          style: const TextStyle(
                               fontSize: 13.0,
                               color: Colors.black,
                               fontWeight: FontWeight.w400),
@@ -148,7 +149,7 @@ class RewardsRedeemPage extends HookConsumerWidget {
                     height: 25,
                   ).marginOnly(right: 10),
                   Text(
-                    'Redeem Date',
+                    S.current.redeem_date,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -205,7 +206,7 @@ class RewardsRedeemPage extends HookConsumerWidget {
                     height: 25,
                   ).marginOnly(right: 10),
                   Text(
-                    'Redeem From',
+                    S.current.redeem_from,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -260,7 +261,7 @@ class RewardsRedeemPage extends HookConsumerWidget {
                   ).marginOnly(right: 12),
                   Expanded(
                     child: Text(
-                      'You’ve redeemed the following promotion.',
+                      S.current.have_redeemed_promotion,
                       style: TextStyle(
                           fontSize: 15.0,
                           color: ColorUtils.string2Color('#4161D0'),
@@ -291,7 +292,7 @@ class RewardsRedeemPage extends HookConsumerWidget {
               height: 54,
             ),
             Text(
-              'Congratulations!',
+              '${S.current.congratulations}!',
               style: TextStyle(
                   fontSize: 18.0,
                   color: ColorUtils.string2Color('#4161D0'),
@@ -317,7 +318,7 @@ class RewardsRedeemPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Payment Successful",
+        S.current.payment_successful,
         backgroundColor: context.appColors.whiteBG,
       ),
       body: detailInfo?.createdAt != ''

+ 42 - 96
packages/cpt_rewards/lib/modules/rewards_search/rewards_search_page.dart

@@ -1,4 +1,5 @@
 import 'package:cpt_rewards/modules/rewards_detail/rewards_detail_page.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:cs_resources/theme/theme_config.dart';
 import 'package:domain/entity/rewards_search_entity.dart';
@@ -52,19 +53,13 @@ class RewardsSearchPage extends HookConsumerWidget {
               maxLines: 1, // 设置最大行数为2
               overflow: TextOverflow.ellipsis, // 超出部分用省略号表示
               item?['name'] ?? '',
-              style: const TextStyle(
-                  fontSize: 16.0,
-                  color: Colors.black,
-                  fontWeight: FontWeight.w500),
+              style: const TextStyle(fontSize: 16.0, color: Colors.black, fontWeight: FontWeight.w500),
             ).marginOnly(bottom: 5, top: 10),
             Row(
               children: [
                 Text(
                   '$point',
-                  style: const TextStyle(
-                      fontSize: 19.0,
-                      color: Colors.black,
-                      fontWeight: FontWeight.w500),
+                  style: const TextStyle(fontSize: 19.0, color: Colors.black, fontWeight: FontWeight.w500),
                 ),
                 Text(
                   '$originalPoint',
@@ -76,12 +71,9 @@ class RewardsSearchPage extends HookConsumerWidget {
                       color: ColorUtils.string2Color('#000000'),
                       fontWeight: FontWeight.w400),
                 ).marginOnly(left: 5, right: 5),
-                const Text(
-                  'Points',
-                  style: TextStyle(
-                      fontSize: 13.0,
-                      color: Colors.black,
-                      fontWeight: FontWeight.w400),
+                Text(
+                  S.current.points,
+                  style: const TextStyle(fontSize: 13.0, color: Colors.black, fontWeight: FontWeight.w400),
                 ),
               ],
             ),
@@ -99,9 +91,7 @@ class RewardsSearchPage extends HookConsumerWidget {
       decoration: const BoxDecoration(
         color: Colors.white,
         borderRadius: BorderRadius.all(Radius.circular(6.0)),
-        boxShadow: [
-          BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
-        ],
+        boxShadow: [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
       ),
       child: Column(
         children: [
@@ -113,8 +103,7 @@ class RewardsSearchPage extends HookConsumerWidget {
               crossAxisAlignment: CrossAxisAlignment.start,
               mainAxisAlignment: MainAxisAlignment.start,
               children: [
-                _buildItemLeftSection(context, ref, item, _vm)
-                    .marginOnly(bottom: 5),
+                _buildItemLeftSection(context, ref, item, _vm).marginOnly(bottom: 5),
               ],
             ).paddingOnly(left: 20, right: 20),
           ).constrained(
@@ -134,15 +123,9 @@ class RewardsSearchPage extends HookConsumerWidget {
       crossAxisAlignment: CrossAxisAlignment.start,
       mainAxisAlignment: MainAxisAlignment.start,
       children: [
-        recent.length > 0
-            ? _buildSearchRecent(context, ref, _vm, recent)
-            : Container(),
-        trending.length > 0
-            ? _buildSearchTrending(context, ref, _vm, trending)
-            : Container(),
-        rewards.length > 0
-            ? _buildSearchRecently(context, ref, _vm, rewards)
-            : Container(),
+        recent.length > 0 ? _buildSearchRecent(context, ref, _vm, recent) : Container(),
+        trending.length > 0 ? _buildSearchTrending(context, ref, _vm, trending) : Container(),
+        rewards.length > 0 ? _buildSearchRecently(context, ref, _vm, rewards) : Container(),
       ],
     );
   }
@@ -155,11 +138,8 @@ class RewardsSearchPage extends HookConsumerWidget {
       mainAxisAlignment: MainAxisAlignment.start,
       children: [
         Text(
-          'Recent Searches',
-          style: TextStyle(
-              fontSize: 16.0,
-              color: ColorUtils.string2Color('#000000'),
-              fontWeight: FontWeight.w500),
+          S.current.recent_searches,
+          style: TextStyle(fontSize: 16.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500),
         ).marginOnly(bottom: 20),
         Wrap(
             direction: Axis.horizontal, // 水平方向排列
@@ -172,8 +152,7 @@ class RewardsSearchPage extends HookConsumerWidget {
     ).marginOnly(bottom: 20);
   }
 
-  Widget _buildSearchRecentItem(
-      BuildContext context, WidgetRef ref, _vm, recent) {
+  Widget _buildSearchRecentItem(BuildContext context, WidgetRef ref, _vm, recent) {
     return Container(
       decoration: const BoxDecoration(
         color: Colors.white,
@@ -182,10 +161,7 @@ class RewardsSearchPage extends HookConsumerWidget {
       padding: const EdgeInsets.all(10),
       child: Text(
         recent,
-        style: TextStyle(
-            fontSize: 14.0,
-            color: ColorUtils.string2Color('#969696'),
-            fontWeight: FontWeight.w400),
+        style: TextStyle(fontSize: 14.0, color: ColorUtils.string2Color('#969696'), fontWeight: FontWeight.w400),
       ),
     ).onTap(() {
       _vm.searchIn(recent);
@@ -193,34 +169,28 @@ class RewardsSearchPage extends HookConsumerWidget {
   }
 
   // Trending
-  Widget _buildSearchTrending(
-      BuildContext context, WidgetRef ref, _vm, trending) {
+  Widget _buildSearchTrending(BuildContext context, WidgetRef ref, _vm, trending) {
     // List itemsList = _vm.state.list.toList();
     return Column(
       crossAxisAlignment: CrossAxisAlignment.start,
       mainAxisAlignment: MainAxisAlignment.start,
       children: [
         Text(
-          'Trending Searches',
-          style: TextStyle(
-              fontSize: 16.0,
-              color: ColorUtils.string2Color('#000000'),
-              fontWeight: FontWeight.w500),
+          S.current.trending_searches,
+          style: TextStyle(fontSize: 16.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500),
         ).marginOnly(bottom: 20),
         Wrap(
             direction: Axis.horizontal, // 水平方向排列
             spacing: 10.0, // 子组件之间的间距
             runSpacing: 15.0, // 子组件行与行之间的间距
             children: List.generate(trending.length, (index) {
-              return _buildSearchTrendingItem(
-                  context, ref, _vm, trending[index]);
+              return _buildSearchTrendingItem(context, ref, _vm, trending[index]);
             }))
       ],
     ).marginOnly(bottom: 20);
   }
 
-  Widget _buildSearchTrendingItem(
-      BuildContext context, WidgetRef ref, _vm, trending) {
+  Widget _buildSearchTrendingItem(BuildContext context, WidgetRef ref, _vm, trending) {
     return Container(
       decoration: const BoxDecoration(
         color: Colors.white,
@@ -237,10 +207,7 @@ class RewardsSearchPage extends HookConsumerWidget {
           ).marginOnly(right: 5),
           Text(
             trending,
-            style: TextStyle(
-                fontSize: 14.0,
-                color: ColorUtils.string2Color('#969696'),
-                fontWeight: FontWeight.w400),
+            style: TextStyle(fontSize: 14.0, color: ColorUtils.string2Color('#969696'), fontWeight: FontWeight.w400),
           ),
         ],
       ),
@@ -250,19 +217,15 @@ class RewardsSearchPage extends HookConsumerWidget {
   }
 
   // Recently
-  Widget _buildSearchRecently(
-      BuildContext context, WidgetRef ref, _vm, rewards) {
+  Widget _buildSearchRecently(BuildContext context, WidgetRef ref, _vm, rewards) {
     // List itemsList = _vm.state.list.toList();
     return Column(
       crossAxisAlignment: CrossAxisAlignment.start,
       mainAxisAlignment: MainAxisAlignment.start,
       children: [
         Text(
-          'Recently viewed',
-          style: TextStyle(
-              fontSize: 16.0,
-              color: ColorUtils.string2Color('#000000'),
-              fontWeight: FontWeight.w500),
+          S.current.recently_viewed,
+          style: TextStyle(fontSize: 16.0, color: ColorUtils.string2Color('#000000'), fontWeight: FontWeight.w500),
         ).marginOnly(bottom: 18),
         Column(
             crossAxisAlignment: CrossAxisAlignment.center,
@@ -286,9 +249,7 @@ class RewardsSearchPage extends HookConsumerWidget {
         decoration: const BoxDecoration(
           color: Colors.white,
           borderRadius: BorderRadius.all(Radius.circular(6.0)),
-          boxShadow: [
-            BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)
-          ],
+          boxShadow: [BoxShadow(color: Color.fromRGBO(184, 191, 217, 0.3), blurRadius: 6)],
         ),
         child: Column(
           children: [
@@ -304,19 +265,13 @@ class RewardsSearchPage extends HookConsumerWidget {
                   maxLines: 1, // 设置最大行数为2
                   overflow: TextOverflow.ellipsis, // 超出部分用省略号表示
                   item.name ?? '',
-                  style: const TextStyle(
-                      fontSize: 15.0,
-                      color: Colors.black,
-                      fontWeight: FontWeight.w500),
+                  style: const TextStyle(fontSize: 15.0, color: Colors.black, fontWeight: FontWeight.w500),
                 ).marginOnly(bottom: 5, top: 10),
                 Row(
                   children: [
                     Text(
                       '$point',
-                      style: const TextStyle(
-                          fontSize: 18.0,
-                          color: Colors.black,
-                          fontWeight: FontWeight.w500),
+                      style: const TextStyle(fontSize: 18.0, color: Colors.black, fontWeight: FontWeight.w500),
                     ),
                     Text(
                       '$originalPoint',
@@ -328,12 +283,9 @@ class RewardsSearchPage extends HookConsumerWidget {
                           color: ColorUtils.string2Color('#808DAF'),
                           fontWeight: FontWeight.w400),
                     ).marginOnly(left: 5, right: 5),
-                    const Text(
-                      'Points',
-                      style: TextStyle(
-                          fontSize: 13.0,
-                          color: Colors.black,
-                          fontWeight: FontWeight.w400),
+                    Text(
+                      S.current.points,
+                      style: const TextStyle(fontSize: 13.0, color: Colors.black, fontWeight: FontWeight.w400),
                     ),
                   ],
                 )
@@ -371,11 +323,7 @@ class RewardsSearchPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.searchAppBar(context, onSearch: (value) {
         _vm.searchIn(value);
-      },
-          value: state.keyword,
-          backgroundColor: Colors.white,
-          systemUiOverlayStyle:
-              ThemeConfig.systemUiOverlayStyleLightThemeBlack),
+      }, value: state.keyword, backgroundColor: Colors.white, systemUiOverlayStyle: ThemeConfig.systemUiOverlayStyleLightThemeBlack),
       body: searchIs
           ? LoadStateLayout(
               state: state.loadingState,
@@ -390,8 +338,7 @@ class RewardsSearchPage extends HookConsumerWidget {
                 child: Container(
                     width: MediaQuery.of(context).size.width,
                     color: ColorUtils.string2Color('#F2F3F6'),
-                    padding:
-                        const EdgeInsets.only(top: 20, left: 15, right: 15),
+                    padding: const EdgeInsets.only(top: 20, left: 15, right: 15),
                     child: _buildSearchOf(context, ref, _vm, detailInfo)),
               ))
           : Container(
@@ -411,17 +358,16 @@ class RewardsSearchPage extends HookConsumerWidget {
                         _vm.onRefresh();
                       },
                       child: Container(
-                          color: ColorUtils.string2Color('#F2F3F6'),
-                          padding: const EdgeInsets.only(top: 15),
-                          child: LoadStateLayout(
-                              state: state.loadingState,
-                              errorMessage: state.errorMessage,
-                              errorRetry: () {
-                                _vm.retryRequest();
-                              },
-                              successSliverWidget: [
-                                _buildSaleList(context, ref, _vm)
-                              ])),
+                        color: ColorUtils.string2Color('#F2F3F6'),
+                        padding: const EdgeInsets.only(top: 15),
+                        child: LoadStateLayout(
+                            state: state.loadingState,
+                            errorMessage: state.errorMessage,
+                            errorRetry: () {
+                              _vm.retryRequest();
+                            },
+                            successSliverWidget: [_buildSaleList(context, ref, _vm)]),
+                      ),
                     ),
                   )
                 ],

+ 7 - 6
packages/cpt_rewards/lib/modules/rewards_successful/rewards_successful_page.dart

@@ -1,5 +1,6 @@
 import 'package:cpt_rewards/modules/rewards_address/rewards_address_page.dart';
 import 'package:cpt_rewards/modules/rewards_my/rewards_my_page.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/rewards_buy_entity.dart';
 import 'package:domain/entity/rewards_detail_entity.dart';
@@ -138,7 +139,7 @@ class RewardsSuccessfulPage extends HookConsumerWidget {
                     height: 25,
                   ).marginOnly(right: 5),
                   Text(
-                    'Redeem Deal At',
+                    S.current.redeem_deal_at,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -196,7 +197,7 @@ class RewardsSuccessfulPage extends HookConsumerWidget {
                     height: 15,
                   ).marginOnly(right: 10),
                   Text(
-                    'Redeem From',
+                    S.current.redeem_from,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -245,7 +246,7 @@ class RewardsSuccessfulPage extends HookConsumerWidget {
                 crossAxisAlignment: CrossAxisAlignment.center,
                 children: [
                   Text(
-                    'Date & Time:',
+                    '${S.current.date_time}:',
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#333333'),
@@ -310,7 +311,7 @@ class RewardsSuccessfulPage extends HookConsumerWidget {
               height: 54,
             ),
             Text(
-              'You Have Paid Points',
+              S.current.you_have_paid_points,
               style: TextStyle(
                   fontSize: 18.0,
                   color: ColorUtils.string2Color('#4161D0'),
@@ -335,7 +336,7 @@ class RewardsSuccessfulPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Payment Successful",
+        S.current.payment_successful,
         backgroundColor: context.appColors.whiteBG,
       ),
       body: Column(
@@ -377,7 +378,7 @@ class RewardsSuccessfulPage extends HookConsumerWidget {
                       crossAxisAlignment: CrossAxisAlignment.center,
                       children: [
                         MyTextView(
-                          "Check My Rewards",
+                          S.current.check_my_rewards,
                           fontSize: 16,
                           textColor: Colors.white,
                           isFontMedium: true,

+ 13 - 12
packages/cpt_rewards/lib/modules/rewards_transaction/rewards_transaction_page.dart

@@ -1,3 +1,4 @@
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/rewards_detail_entity.dart';
 import 'package:domain/entity/rewards_my_detail_entity.dart';
@@ -105,9 +106,9 @@ class RewardsTransactionPage extends HookConsumerWidget {
                               color: ColorUtils.string2Color('#808DAF'),
                               fontWeight: FontWeight.w400),
                         ).marginOnly(left: 5, right: 5),
-                        const Text(
-                          'Points',
-                          style: TextStyle(
+                         Text(
+                          S.current.points,
+                          style: const TextStyle(
                               fontSize: 13.0,
                               color: Colors.black,
                               fontWeight: FontWeight.w400),
@@ -174,7 +175,7 @@ class RewardsTransactionPage extends HookConsumerWidget {
                         height: 25,
                       ).marginOnly(right: 15),
                       Text(
-                        'Verification Code',
+                        S.current.verification_code,
                         style: TextStyle(
                             fontSize: 15.0,
                             color: ColorUtils.string2Color('#000000'),
@@ -221,7 +222,7 @@ class RewardsTransactionPage extends HookConsumerWidget {
                 children: [
                   Expanded(
                     child: Text(
-                      'If you have any issue when redeem the voucher,please contact 6604 6896',
+                      S.current.issue_contact_phone,
                       style: TextStyle(
                           fontSize: 15.0,
                           color: ColorUtils.string2Color('#000000'),
@@ -271,7 +272,7 @@ class RewardsTransactionPage extends HookConsumerWidget {
                     height: 25,
                   ).marginOnly(right: 10),
                   Text(
-                    'Transaction Details',
+                    S.current.transaction_details,
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -284,7 +285,7 @@ class RewardsTransactionPage extends HookConsumerWidget {
                 crossAxisAlignment: CrossAxisAlignment.center,
                 children: [
                   Text(
-                    'Purchase Mobile No :',
+                    '${S.current.purchase_mobile_no} :',
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -308,7 +309,7 @@ class RewardsTransactionPage extends HookConsumerWidget {
                 crossAxisAlignment: CrossAxisAlignment.center,
                 children: [
                   Text(
-                    'Purchase Date :',
+                    '${S.current.purchase_date} :',
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -333,7 +334,7 @@ class RewardsTransactionPage extends HookConsumerWidget {
                       crossAxisAlignment: CrossAxisAlignment.center,
                       children: [
                         Text(
-                          'Redeemed Date :',
+                          '${S.current.redeemed_date} :',
                           style: TextStyle(
                               fontSize: 15.0,
                               color: ColorUtils.string2Color('#000000'),
@@ -358,7 +359,7 @@ class RewardsTransactionPage extends HookConsumerWidget {
                 crossAxisAlignment: CrossAxisAlignment.center,
                 children: [
                   Text(
-                    'Quantity :',
+                    '${S.current.quantity} :',
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#000000'),
@@ -382,7 +383,7 @@ class RewardsTransactionPage extends HookConsumerWidget {
                 crossAxisAlignment: CrossAxisAlignment.center,
                 children: [
                   Text(
-                    'Points:',
+                    '${S.current.points} :',
                     style: TextStyle(
                         fontSize: 15.0,
                         color: ColorUtils.string2Color('#333333'),
@@ -435,7 +436,7 @@ class RewardsTransactionPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "My Rewards Details",
+        S.current.my_rewards_details,
         backgroundColor: context.appColors.whiteBG,
       ),
       body: detailInfo?.createdAt != ''

+ 2 - 1
packages/cpt_services/lib/components/chooseAirConditionTitle.dart

@@ -1,5 +1,6 @@
 
 import 'package:cpt_services/modules/services/service_clean_detail/service_clean_detail_vm.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -49,7 +50,7 @@ class ChooseAirConditionTitle extends HookConsumerWidget {
             child: Column(
               children: [
                 MyTextView(
-                  "Select Air Conditioner",
+                  S.current.select_air_conditioner,
                   textColor: context.appColors.textBlack,
                   textAlign: TextAlign.left,
                   isFontBold: true,

+ 18 - 20
packages/cpt_services/lib/components/chooseHouseCleanContent.dart

@@ -75,8 +75,8 @@ class ChooseHouseCleanContent extends HookConsumerWidget {
     // final isDisable = useState<bool>(disabled);
 
     return Container(
-      padding: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10),
-      margin: EdgeInsets.only(left: 15, right: 15, top: 0, bottom: 0),
+      padding: const EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10),
+      margin: const EdgeInsets.only(left: 15, right: 15, top: 0, bottom: 0),
       color: ColorUtils.string2Color('#F8F8F8'),
       child: Column(
         children: [
@@ -115,24 +115,22 @@ class ChooseHouseCleanContent extends HookConsumerWidget {
               //   fontSize: 19,
               //   fontWeight: FontWeight.w500,
               // )
-              Container(
-                child: MyButton(
-                  text: '\$$price',
-                  onPressed: (){
-                    if(!isDisable){
-                      vm.handlerChangeItemChecked(context, index);
-                    }
-                  },
-                  minWidth: 80,
-                  minHeight: 40,
-                  fontSize: 19,
-                  fontWeight: FontWeight.w500,
-                  enable: !isDisable,
-                  textColor:  !isChecked? context.appColors.textPrimary : context.appColors.textWhite,
-                  backgroundColor: !isChecked ? context.appColors.textWhite : context.appColors.textPrimary,
-                  disabledBackgroundColor: context.appColors.disEnableGray,
-                  disabledTextColor: context.appColors.textWhite,
-                ),
+              MyButton(
+                text: '\$$price',
+                onPressed: (){
+                  if(!isDisable){
+                    vm.handlerChangeItemChecked(context, index);
+                  }
+                },
+                minWidth: 80,
+                minHeight: 40,
+                fontSize: 19,
+                fontWeight: FontWeight.w500,
+                enable: !isDisable,
+                textColor:  !isChecked? context.appColors.textPrimary : context.appColors.textWhite,
+                backgroundColor: !isChecked ? context.appColors.textWhite : context.appColors.textPrimary,
+                disabledBackgroundColor: context.appColors.disEnableGray,
+                disabledTextColor: context.appColors.textWhite,
               ),
             ],
           ),

+ 2 - 1
packages/cpt_services/lib/components/chooseHouseCleanTitle.dart

@@ -4,6 +4,7 @@ import 'package:cpt_services/components/chooseVisitTimeContent_vm.dart';
 import 'package:cpt_services/components/chooseVisitTimeTitle_vm.dart';
 import 'package:cpt_services/modules/services/service_clean_detail/service_clean_detail_vm.dart';
 import 'package:cpt_services/modules/services/service_order_confirm/service_order_confirm_vm.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -42,7 +43,7 @@ class ChooseHouseCleanTitle extends HookConsumerWidget {
             child: Column(
               children: [
                 MyTextView(
-                  "Select House Clean",
+                 S.current.select_house_clean,
                   textColor: context.appColors.textBlack,
                   textAlign: TextAlign.left,
                   isFontBold: true,

+ 2 - 1
packages/cpt_services/lib/components/chooseVisitTimeBottomFooter.dart

@@ -2,6 +2,7 @@
 import 'package:cpt_services/components/chooseVisitTimeBottomFooter_vm.dart';
 import 'package:cpt_services/components/chooseVisitTimeContent_vm.dart';
 import 'package:cpt_services/components/status_card_item.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -86,7 +87,7 @@ class ChooseVisitTimeBottomFooter extends HookConsumerWidget {
               color: context.appColors.redDefault,
               child: Center(
                 child: MyTextView(
-                  'Confirm',
+                 S.current.confirm,
                   textColor: context.appColors.textWhite,
                   fontSize: 17,
                   isFontMedium: true,

+ 4 - 3
packages/cpt_services/lib/components/chooseVisitTimeContent.dart

@@ -5,6 +5,7 @@ import 'package:cpt_services/components/chooseVisitTimeBottomFooter_vm.dart';
 import 'package:cpt_services/components/chooseVisitTimeContent_vm.dart';
 import 'package:cpt_services/components/status_card_item.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -164,7 +165,7 @@ class ChooseVisitTimeContent extends HookConsumerWidget {
                 left: 0,
                 top: 0,
                 child: urgent.value? MyTextView(
-                  'Extreme speed',
+                 S.current.extreme_speed,
                   textColor: ColorUtils.string2Color("#DD6800"),
                   fontSize: 8,
                   isFontRegular: true,
@@ -183,7 +184,7 @@ class ChooseVisitTimeContent extends HookConsumerWidget {
                 left: 0,
                 bottom: 0,
                 child: night.value? MyTextView(
-                  'Night',
+                 S.current.night,
                   textColor: ColorUtils.string2Color("#FE4066"),
                   fontSize: 8,
                   isFontRegular: true,
@@ -202,7 +203,7 @@ class ChooseVisitTimeContent extends HookConsumerWidget {
                 right: 0,
                 bottom: 0,
                 child: holiday.value? MyTextView(
-                  'Holiday',
+                  S.current.holiday,
                   textColor: ColorUtils.string2Color("#37d7cc"),
                   fontSize: 8,
                   isFontRegular: true,

+ 2 - 1
packages/cpt_services/lib/components/chooseVisitTimeTitle.dart

@@ -3,6 +3,7 @@ import 'package:cpt_services/components/chooseHouseCleanContent_vm.dart';
 import 'package:cpt_services/components/chooseVisitTimeBottomFooter.dart';
 import 'package:cpt_services/components/chooseVisitTimeTitle_vm.dart';
 import 'package:cpt_services/modules/services/service_clean_detail/service_clean_detail_vm.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -47,7 +48,7 @@ class ChooseVisitTimeTitle extends HookConsumerWidget {
             child: Column(
               children: [
                 MyTextView(
-                  "Please choose a visit time",
+                  S.current.choose_visit_time,
                   textColor: context.appColors.textBlack,
                   textAlign: TextAlign.left,
                   isFontBold: true,

+ 4 - 3
packages/cpt_services/lib/components/status_card_item.dart

@@ -1,5 +1,6 @@
 import 'package:cpt_services/components/status_card_item_vm.dart';
 import 'package:cpt_services/modules/services/homeService/home_service_page.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/garage_sale_history_entity.dart';
 import 'package:flutter/cupertino.dart';
@@ -48,7 +49,7 @@ class StausCardItem extends HookConsumerWidget {
       height: cardHeight,
       alignment: Alignment.center,
       child: Padding(
-        padding: EdgeInsets.only(left: 18.0, right: 18.0, top: 10, bottom: 10.0),
+        padding: const EdgeInsets.only(left: 18.0, right: 18.0, top: 10, bottom: 10.0),
         child: Column(
           crossAxisAlignment: CrossAxisAlignment.start,
           children: [
@@ -121,7 +122,7 @@ class StausCardItem extends HookConsumerWidget {
                   mainAxisAlignment: MainAxisAlignment.spaceBetween,
                   children: [
                     MyTextView(
-                      'Visit Time',
+                      S.current.visit_time,
                       fontSize: 14,
                       maxLines: 1,
                       isFontRegular: true,
@@ -145,7 +146,7 @@ class StausCardItem extends HookConsumerWidget {
                   mainAxisAlignment: MainAxisAlignment.spaceBetween,
                   children: [
                     MyTextView(
-                      'Order Time',
+                      S.current.order_time,
                       fontSize: 14,
                       maxLines: 1,
                       isFontRegular: true,

+ 14 - 12
packages/cpt_services/lib/constants_services.dart

@@ -1,17 +1,19 @@
+import 'package:cs_resources/generated/l10n.dart';
+
 class servicesConstants {
    static Map<String, Map<String, dynamic>> servicesType = {
      "houseCleaning": {
-       "text": "House Cleaning",
+       "text": S.current.house_cleaning,
        "type": "paid",
        'code': "House Cleaning",  // 业务做 标识 字段
      },
      "airConditioner": {
-       "text": "Air Conditioning Cleaning",
+       "text": S.current.air_conditioning_cleaning,
        "type": "paid",
        'code': "Air Conditioning Cleaning", // 业务做 标识 字段
      },
      "repairAirConditioner": {
-       "text": "Maintenance",
+       "text": S.current.maintenance,
        "type": "inquiry",
        'code': "Repair air Conditioner",  // 业务做 标识 字段
      }
@@ -19,22 +21,22 @@ class servicesConstants {
 
    static Map<String, dynamic> servicesStatus = {
      "0": {
-       "text": "Pending",
+       "text": S.current.pending,
        "type": "pending",
        'code': 0,
      },
      "1": {
-       "text": "In Progress",
+       "text": S.current.in_progress,
        "type": "inProgress",
        'code': 1,
      },
      "2": {
-       "text": "completed",
+       "text": S.current.completed,
        "type": "completed",
        'code': 2,
      },
      "3": {
-       "text": "canceled",
+       "text": S.current.canceled,
        "type": "canceled",
        'code': 3,
      }
@@ -63,7 +65,7 @@ class servicesConstants {
 
   static Map<String, dynamic> actionBtn = {
      "0": {
-       "text": "Cancel",
+       "text": S.current.cancel,
        "type": "cancel",
        'code': 0,
        'btnColor': '#FFFE6C00',
@@ -71,7 +73,7 @@ class servicesConstants {
        'btnHeight': 35.0,
      },
      "1": {
-       "text": "Contact Merchant",
+       "text": S.current.contact_merchant,
        "type": "contactMerchant",
        'code': 1,
        'btnColor': '#FF4161D0',
@@ -79,7 +81,7 @@ class servicesConstants {
        'btnHeight': 35.0,
      },
     "2": {
-      "text": "Contact Service Personnel",
+      "text": S.current.contact_service_personnel,
       "type": "contactServicePersonnel",
       'code': 2,
       'btnColor': '#FF01CA48',
@@ -87,7 +89,7 @@ class servicesConstants {
       'btnHeight': 35.0,
     },
     "3": {
-      "text": "Delete",
+      "text": S.current.delete,
       "type": "delete",
       'code': 3,
       'btnColor': '#FFFE4066',
@@ -95,7 +97,7 @@ class servicesConstants {
       'btnHeight': 30.0,
     },
     "4": {
-      "text": "Evaluate",
+      "text": S.current.evaluate,
       "type": "evaluate",
       'code': 4,
       'btnColor': '#FF4161D0',

+ 7 - 23
packages/cpt_services/lib/modules/services/clean_order_cancel_success/clean_order_cancel_success_page.dart

@@ -1,28 +1,16 @@
-import 'package:cs_resources/generated/assets.dart';
-import 'package:domain/entity/garage_sale_rent_entity.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/rendering.dart';
 import 'package:flutter_hooks/flutter_hooks.dart';
 import 'package:hooks_riverpod/hooks_riverpod.dart';
-import 'package:plugin_basic/provider/app_config/app_config_service.dart';
-import 'package:router/componentRouter/component_service_manager.dart';
 import 'package:router/ext/auto_router_extensions.dart';
 import 'package:shared/utils/color_utils.dart';
-import 'package:shared/utils/ext_dart.dart';
-import 'package:shared/utils/log_utils.dart';
-import 'package:shared/utils/screen_util.dart';
-import 'package:widgets/load_state_layout.dart';
 import 'package:widgets/my_button.dart';
-import 'package:widgets/my_load_image.dart';
-import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/my_text_view.dart';
 import 'package:widgets/my_appbar.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
-import 'package:widgets/widget_export.dart';
-
 import '../../../router/page/services_page_router.dart';
-import '../homeService/home_service_page.dart';
 
 @RoutePage()
 class CleanOrderCancelSuccessPage extends HookConsumerWidget {
@@ -39,12 +27,10 @@ class CleanOrderCancelSuccessPage extends HookConsumerWidget {
     }
   }
 
-
   @override
   Widget build(BuildContext context, WidgetRef ref) {
     // final appConfigState = ref.watch(appConfigServiceProvider)
 
-
     useEffect(() {
       // 组件挂载时执行 - 执行接口请求
       // Future.microtask(() => vm.initPageData());
@@ -57,7 +43,7 @@ class CleanOrderCancelSuccessPage extends HookConsumerWidget {
     return Scaffold(
         appBar: MyAppBar.appBar(
           context,
-          "Cancellation of Order",
+          S.current.cancellation_of_order,
           backgroundColor: context.appColors.whiteBG,
         ),
         backgroundColor: ColorUtils.string2Color("#F2F3F6"),
@@ -69,7 +55,7 @@ class CleanOrderCancelSuccessPage extends HookConsumerWidget {
               crossAxisAlignment: CrossAxisAlignment.center,
               children: [
                 MyTextView(
-                  "The cancellation order has been submitted and we will confirm it as soon as possible. Thank you for your support.",
+                  S.current.cancel_order_success,
                   fontSize: 15,
                   isFontRegular: true,
                   boxWidth: 270,
@@ -79,8 +65,8 @@ class CleanOrderCancelSuccessPage extends HookConsumerWidget {
                   marginBottom: 50,
                 ),
                 MyButton(
-                  text: "Back Home",
-                  onPressed: (){
+                  text: S.current.back_home,
+                  onPressed: () {
                     // 回到首页
                     context.router.maybePop();
                   },
@@ -94,8 +80,6 @@ class CleanOrderCancelSuccessPage extends HookConsumerWidget {
               ],
             ),
           ),
-        )
-    );
+        ));
   }
-
-}
+}

+ 4 - 3
packages/cpt_services/lib/modules/services/clean_order_detail/cancelOrderDialogContent.dart

@@ -4,6 +4,7 @@ import 'package:auto_route/src/route/page_route_info.dart';
 import 'package:cpt_services/components/chooseVisitTimeBottomFooter.dart';
 import 'package:cpt_services/modules/services/clean_order_detail/clean_order_detail_vm.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/widgets.dart';
@@ -34,11 +35,11 @@ class CancelOrderDialogContent extends HookConsumerWidget {
         crossAxisAlignment: CrossAxisAlignment.start,
         children: [
           MyTextView(
-            "Reason for canceling the order:",
+            S.current.canceling_reason,
             fontSize: 17,
             isFontBold: true,
           ),
-          Container(
+          SizedBox(
             height: 175,
             child: _buildTextAreaLayout(context, vm, ref, 'reason'),
           ),
@@ -46,7 +47,7 @@ class CancelOrderDialogContent extends HookConsumerWidget {
             mainAxisAlignment: MainAxisAlignment.start,
             children: [
               MyTextView(
-                "Please contact the service provider for confirmation before canceling the order.",
+                S.current.confirm_service_provider,
                 isFontRegular: true,
                 fontSize: 15,
                 maxLines: 9999,

+ 8 - 8
packages/cpt_services/lib/modules/services/clean_order_detail/clean_order_detail_page.dart

@@ -76,7 +76,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Order Details",
+        S.current.order_details,
         backgroundColor: context.appColors.whiteBG,
       ),
       backgroundColor: ColorUtils.string2Color("#F2F3F6"),
@@ -320,7 +320,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
               width: 10,
             ),
             MyTextView(
-              'Service',
+              S.current.service,
               fontSize: 17,
               isFontBold: true,
               textColor: context.appColors.textBlack,
@@ -435,7 +435,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
           width: 10,
         ),
         MyTextView(
-          'Total Amount',
+         S.current.total_amount,
           fontSize: 17,
           isFontBold: true,
           textColor: context.appColors.textBlack,
@@ -470,7 +470,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
               width: 10,
             ),
             MyTextView(
-              'Visit Time',
+             S.current.visit_time,
               fontSize: 17,
               isFontBold: true,
               textColor: context.appColors.textBlack,
@@ -510,7 +510,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
         crossAxisAlignment: CrossAxisAlignment.start,
         children: [
           MyTextView(
-            'CARD',
+            S.current.card_caps,
             fontSize: 17,
             isFontMedium: true,
             textColor: context.appColors.textPrimary,
@@ -542,7 +542,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
                 onPressed: () {
                   ComponentServiceManager().paymentService.startChooseCardPage();
                 },
-                text: 'Change',
+                text: S.current.change,
                 minWidth: 80,
                 minHeight: 30,
                 textColor: context.appColors.textWhite,
@@ -575,7 +575,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
             //   width: 10,
             // ),
             MyTextView(
-              'Remarks Information',
+              S.current.remarks_information,
               fontSize: 17,
               isFontBold: true,
               textColor: context.appColors.textBlack,
@@ -619,7 +619,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
           mainAxisAlignment: MainAxisAlignment.start,
           children: [
             MyTextView(
-              'Service Rules',
+              S.current.service_rules,
               fontSize: 17,
               isFontBold: true,
               textColor: context.appColors.textBlack,

+ 4 - 3
packages/cpt_services/lib/modules/services/clean_order_detail/clean_order_detail_vm.dart

@@ -4,6 +4,7 @@ import 'package:cpt_services/components/chooseVisitTimeContent.dart';
 import 'package:cpt_services/components/chooseVisitTimeContent_vm.dart';
 import 'package:cpt_services/components/chooseVisitTimeTitle.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
 import 'package:domain/entity/newsfeed_detail_entity.dart';
@@ -171,8 +172,8 @@ class CleanOrderDetailVm extends _$CleanOrderDetailVm with DioCancelableMixin {
           dialogWidth: 340.0,
           isShowConfirmBtn: false,
           isShowCancelBtn: false,
-          confirmTxt: "Confirm",
-          title: "Cancellation of Order",
+          confirmTxt: S.current.confirm,
+          title: S.current.cancellation_of_order,
           titleBackgroundColor: context.appColors.textPrimary,
           closeIconColor: context.appColors.textWhite,
           titleTextStyle: TextStyle(
@@ -189,7 +190,7 @@ class CleanOrderDetailVm extends _$CleanOrderDetailVm with DioCancelableMixin {
                   // 提交取消订单
                   submitCancelOrder(context);
                 },
-                text: "Confirm",
+                text: S.current.confirm,
                 minWidth: 305,
                 minHeight: 45,
                 fontSize: 16,

+ 3 - 2
packages/cpt_services/lib/modules/services/homeService/home_service_page.dart

@@ -1,4 +1,5 @@
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
 import 'package:domain/entity/paid_service_entity.dart';
 import 'package:flutter/material.dart';
@@ -177,7 +178,7 @@ class HomeServicePage extends HookConsumerWidget {
           Row(
             children: [
               MyTextView(
-                "Sort",
+                S.current.sort,
                 fontSize: 15,
                 isFontRegular: true,
                 textAlign: TextAlign.center,
@@ -188,7 +189,7 @@ class HomeServicePage extends HookConsumerWidget {
                   Row(
                     children: [
                       sortTitle != null? MyTextView(
-                        "${sortTitle}",
+                        sortTitle,
                         fontSize: 13,
                         isFontRegular: true,
                         textAlign: TextAlign.center,

+ 1 - 1
packages/cpt_services/lib/modules/services/inProgress/in_progress_page.dart

@@ -125,7 +125,7 @@ class InProgressPage extends HookConsumerWidget {
       ),
       child: StausCardItem(
         key: UniqueKey(),
-        cardHeight: 130.0,
+        cardHeight: 135.0,
         item: item,
         onClickCard: (dynamic value) async {
           // Log.d("点击了喜欢按钮  --id:${item['id']}- $collectionValue");

+ 1 - 1
packages/cpt_services/lib/modules/services/repair/repair_page.dart

@@ -224,10 +224,10 @@ class RepairPage extends HookConsumerWidget with WidgetsBindingObserver {
                     type: ClickType.throttle,
                   ),
                 ),
-                SizedBox.fromSize(size: const Size(0, 9)),
                 MyTextView(
                   item['title'],
                   fontSize: 15,
+                  marginTop: 8,
                   textColor: index == currentPageIdx ? ColorUtils.string2Color('#4161D0'): context.appColors.textBlack,
                   textAlign: TextAlign.center,
                   isFontMedium: true,

+ 4 - 3
packages/cpt_services/lib/modules/services/repair/repair_state.dart

@@ -1,4 +1,5 @@
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 
 
 class RepairVmState {
@@ -13,17 +14,17 @@ class RepairVmState {
     this.tabsRouter,
   }) : topSectionsData = topSectionsData?? [
     {
-      "title": "Service",
+      "title": S.current.service,
       "code": "service",
       "icon": Assets.serviceServiceType,
     },
     {
-      "title": "In Progress",
+      "title": S.current.in_progress,
       "code": "inProgress",
       "icon": Assets.serviceInProgress,
     },
     {
-      "title": "History",
+      "title": S.current.history,
       "code": "history",
       "icon": Assets.serviceHistory,
     },

+ 2 - 1
packages/cpt_services/lib/modules/services/repair_homeService/home_service_page.dart

@@ -1,4 +1,5 @@
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
 import 'package:domain/entity/repair_service_entity.dart';
 import 'package:flutter/material.dart';
@@ -180,7 +181,7 @@ class RepairHomeServicePage extends HookConsumerWidget {
           Row(
             children: [
               MyTextView(
-                "Sort",
+                S.current.sort,
                 fontSize: 15,
                 isFontRegular: true,
                 textAlign: TextAlign.center,

+ 7 - 7
packages/cpt_services/lib/modules/services/service_clean_detail/service_clean_detail_page.dart

@@ -1,5 +1,6 @@
 import 'package:cpt_services/components/chooseAirConditionContent.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/paid_service_detail_entity.dart';
 import 'package:flutter/material.dart';
@@ -52,7 +53,6 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
   Widget build(BuildContext context, WidgetRef ref) {
     final state = ref.watch(serviceCleanDetailVmProvider);
     final vm = ref.read(serviceCleanDetailVmProvider.notifier);
-    final String pageTitle = 'Clean Details';
     GlobalKey _likeButtonKey = GlobalKey<MyLikeButtonState>();
 
     PaidServiceDetailEntity? detailInfo = state.datas?? null;
@@ -71,7 +71,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        pageTitle,
+        S.current.clean_detail,
         backgroundColor: context.appColors.backgroundWhite,
       ),
       backgroundColor: context.appColors.backgroundDefault,
@@ -246,7 +246,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
                           ],
                         ),
                         MyTextView(
-                          '$merchantName',
+                          merchantName,
                           textColor: context.appColors.textDarkGray999,
                           fontSize: 12,
                           isFontRegular: true,
@@ -315,7 +315,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
                 crossAxisAlignment: CrossAxisAlignment.center,
                 children: [
                   MyTextView(
-                    "User Reviews",
+                   S.current.user_reviews,
                     textColor: context.appColors.textBlack,
                     fontSize: 17,
                     isFontBold: true,
@@ -325,7 +325,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
                       spacing: 5,
                       children: [
                         MyTextView(
-                          "All",
+                        S.current.all,
                           textColor: context.appColors.textDarkGray999,
                           fontSize: 14,
                           isFontRegular: true,
@@ -442,7 +442,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
                   width: 10,
                 ),
                 MyTextView(
-                  'Service',
+                  S.current.service,
                   fontSize: 17,
                   isFontBold: true,
                   textColor: context.appColors.textBlack,
@@ -565,7 +565,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
               color: context.appColors.redDefault,
               child: Center(
                 child: MyTextView(
-                  'Book Now',
+                 S.current.book_now,
                   textColor: context.appColors.textWhite,
                   fontSize: 17,
                   isFontMedium: true,

+ 3 - 2
packages/cpt_services/lib/modules/services/service_clean_detail/service_clean_detail_vm.dart

@@ -4,6 +4,7 @@ import 'dart:async';
 import 'package:cpt_services/components/chooseAirConditionContent_vm.dart';
 import 'package:cpt_services/components/chooseVisitTimeContent.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/garage_sale_rent_detail_entity.dart';
 import 'package:domain/entity/paid_service_detail_entity.dart';
@@ -360,8 +361,8 @@ class ServiceCleanDetailVm extends _$ServiceCleanDetailVm {
         closeIconColor: context.appColors.textPrimary,
         yesBtnBg: context.appColors.redDefault,
         noBtnBg: context.appColors.grayBgE9,
-        confirmTxt: "Confirm Selection",
-        cancelTxt: "Cancel",
+        confirmTxt:S.current.confirm_selection,
+        cancelTxt: S.current.cancel,
         // yesBtnTextStyle: TextStyle(
         //   color: context.appColors.textWhite,
         //   fontSize: 17,

+ 10 - 8
packages/cpt_services/lib/modules/services/service_evaluate_create/service_evaluate_create_page.dart

@@ -67,8 +67,9 @@ class ServiceEvaluateCreatePage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Evaluate",
+        S.current.evaluate,
         backgroundColor: context.appColors.whiteBG,
+        showBottomDivider:true,
       ),
       backgroundColor: ColorUtils.string2Color("#F2F3F6"),
       body: Column(
@@ -87,11 +88,12 @@ class ServiceEvaluateCreatePage extends HookConsumerWidget {
                                   children: [
                                     // 提示文字
                                     Container(
+                                      width: double.infinity,
+                                      color: context.appColors.whiteBG,
                                       child: MyTextView(
-                                        "Submit feedback or suggestions to encourage us to do better~",
+                                        S.current.submit_feedback_encourage,
                                         textColor: context.appColors.textBlack,
                                         fontSize: 15,
-                                        backgroundColor: context.appColors.whiteBG,
                                         paddingTop: 16,
                                         paddingBottom: 16,
                                         paddingLeft: 10.5,
@@ -108,7 +110,7 @@ class ServiceEvaluateCreatePage extends HookConsumerWidget {
                                         crossAxisAlignment: CrossAxisAlignment.start,
                                         children: [
                                           MyTextView(
-                                            "Score",
+                                            S.current.score,
                                             textColor: context.appColors.textBlack,
                                             fontSize: 17,
                                             isFontBold: true,
@@ -159,7 +161,7 @@ class ServiceEvaluateCreatePage extends HookConsumerWidget {
                                         crossAxisAlignment: CrossAxisAlignment.start,
                                         children: [
                                           FormRequireText(
-                                            text: "Notes",
+                                            text: S.current.notes,
                                             textColor: context.appColors.textBlack,
                                             fontSize: 17,
                                             fontWeight: FontWeight.bold,
@@ -179,13 +181,13 @@ class ServiceEvaluateCreatePage extends HookConsumerWidget {
                                         crossAxisAlignment: CrossAxisAlignment.start,
                                         children: [
                                           FormRequireText(
-                                            text: "Upload Image:",
+                                            text: "${S.current.upload_image}:",
                                             textColor: context.appColors.textBlack,
                                             fontSize: 17,
                                             fontWeight: FontWeight.bold,
                                           ),
                                           MyTextView(
-                                            "(Up to 3 images can be uploaded)",
+                                            S.current.up_3_img,
                                             fontSize: 13,
                                             isFontMedium: true,
                                             textColor: context.appColors.textDarkGray999,
@@ -211,7 +213,7 @@ class ServiceEvaluateCreatePage extends HookConsumerWidget {
                   children: [
                     Expanded(
                       child: MyButton(
-                        text: "Submit",
+                        text: S.current.submit,
                         radius: 0,
                         minHeight: 50,
                         backgroundColor: context.appColors.textPrimary,

+ 47 - 50
packages/cpt_services/lib/modules/services/service_evaluate_create_success/evaluate_create_success_page.dart

@@ -1,4 +1,5 @@
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -33,18 +34,16 @@ class EvaluateCreateSuccessPage extends HookConsumerWidget {
   //启动当前页面
   static void startInstance({BuildContext? context}) {
     if (context != null) {
-      context.router.push( const EvaluateCreateSuccessPageRoute());
+      context.router.push(const EvaluateCreateSuccessPageRoute());
     } else {
       appRouter.push(const EvaluateCreateSuccessPageRoute());
     }
   }
 
-
   @override
   Widget build(BuildContext context, WidgetRef ref) {
     // final appConfigState = ref.watch(appConfigServiceProvider)
 
-
     useEffect(() {
       // 组件挂载时执行 - 执行接口请求
       // Future.microtask(() => vm.initPageData());
@@ -55,52 +54,50 @@ class EvaluateCreateSuccessPage extends HookConsumerWidget {
     }, []);
 
     return Scaffold(
-      appBar: MyAppBar.appBar(
-        context,
-        "Evaluation",
-        backgroundColor: context.appColors.whiteBG,
-      ),
-      backgroundColor: ColorUtils.string2Color("#F2F3F6"),
-      body: Center(
-        child: Container(
-          margin: EdgeInsets.only(top: 50),
-          child: Column(
-            mainAxisAlignment: MainAxisAlignment.start,
-            crossAxisAlignment: CrossAxisAlignment.center,
-            children: [
-              const MyAssetImage(
-                Assets.serviceEvaluateSuccussIcon,
-                width: 78,
-                height: 78,
-              ),
-              MyTextView(
-                "Thank you for your evaluation.",
-                fontSize: 15,
-                isFontRegular: true,
-                boxWidth: 122.5,
-                textAlign: TextAlign.center,
-                textColor: ColorUtils.string2Color('#333333'),
-                marginTop: 17,
-                marginBottom: 50,
-              ),
-              MyButton(
-                text: "Back Home",
-                onPressed: (){
-                  // 回到首页
-                  ComponentServiceManager().mainService.startMainPage();
-                },
-                fontSize: 15,
-                fontWeight: FontWeight.w500,
-                textColor: context.appColors.textWhite,
-                backgroundColor: context.appColors.textPrimary,
-                minHeight: 45,
-                minWidth: 310,
-              )
-            ],
-          ),
+        appBar: MyAppBar.appBar(
+          context,
+          S.current.evaluation,
+          backgroundColor: context.appColors.whiteBG,
         ),
-      )
-    );
+        backgroundColor: ColorUtils.string2Color("#F2F3F6"),
+        body: Center(
+          child: Container(
+            margin: EdgeInsets.only(top: 50),
+            child: Column(
+              mainAxisAlignment: MainAxisAlignment.start,
+              crossAxisAlignment: CrossAxisAlignment.center,
+              children: [
+                const MyAssetImage(
+                  Assets.serviceEvaluateSuccussIcon,
+                  width: 78,
+                  height: 78,
+                ),
+                MyTextView(
+                  S.current.thank_evaluation,
+                  fontSize: 15,
+                  isFontRegular: true,
+                  boxWidth: 122.5,
+                  textAlign: TextAlign.center,
+                  textColor: ColorUtils.string2Color('#333333'),
+                  marginTop: 17,
+                  marginBottom: 50,
+                ),
+                MyButton(
+                  text: S.current.back_home,
+                  onPressed: () {
+                    // 回到首页
+                    ComponentServiceManager().mainService.startMainPage();
+                  },
+                  fontSize: 15,
+                  fontWeight: FontWeight.w500,
+                  textColor: context.appColors.textWhite,
+                  backgroundColor: context.appColors.textPrimary,
+                  minHeight: 45,
+                  minWidth: 310,
+                )
+              ],
+            ),
+          ),
+        ));
   }
-
-}
+}

+ 2 - 1
packages/cpt_services/lib/modules/services/service_evaluate_list/service_evaluate_list_page.dart

@@ -1,4 +1,5 @@
 
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/rendering.dart';
@@ -64,7 +65,7 @@ class ServiceEvaluateListPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "serviceEvaluateList",
+        S.current.service_evaluate_list,
         backgroundColor: context.appColors.whiteBG,
       ),
       backgroundColor: ColorUtils.string2Color("#F2F3F6"),

+ 9 - 9
packages/cpt_services/lib/modules/services/service_order_confirm/service_order_confirm_page.dart

@@ -77,7 +77,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Confirm Order",
+       S.current.confirm_order,
         backgroundColor: context.appColors.whiteBG,
       ),
       backgroundColor: ColorUtils.string2Color("#F2F3F6"),
@@ -323,7 +323,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
               width: 10,
             ),
             MyTextView(
-              'Service',
+              S.current.service,
               fontSize: 17,
               isFontBold: true,
               textColor: context.appColors.textBlack,
@@ -503,7 +503,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
               width: 10,
             ),
             MyTextView(
-              'Visit Time',
+             S.current.visit_time,
               fontSize: 17,
               isFontBold: true,
               textColor: context.appColors.textBlack,
@@ -516,7 +516,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
             mainAxisAlignment: MainAxisAlignment.end,
             children: [
               MyTextView(
-                '$visitTime',
+                visitTime,
                 fontSize: 15,
                 textColor: context.appColors.textDarkGray999,
                 isFontRegular: true,
@@ -543,7 +543,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
         crossAxisAlignment: CrossAxisAlignment.start,
         children: [
           MyTextView(
-            'CARD',
+           S.current.card_caps,
             fontSize: 17,
             isFontMedium: true,
             textColor: context.appColors.textPrimary,
@@ -575,7 +575,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
                 onPressed: (){
                   ComponentServiceManager().paymentService.startChooseCardPage();
                 },
-                text: 'Change',
+                text: S.current.change,
                 minWidth: 80,
                 minHeight: 30,
                 textColor: context.appColors.textWhite,
@@ -608,7 +608,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
             //   width: 10,
             // ),
             MyTextView(
-              'Remarks Information',
+              S.current.remarks_information,
               fontSize: 17,
               isFontBold: true,
               textColor: context.appColors.textBlack,
@@ -705,7 +705,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
           mainAxisAlignment: MainAxisAlignment.start,
           children: [
             MyTextView(
-              'Service Rules',
+             S.current.service_rules,
               fontSize: 17,
               isFontBold: true,
               textColor: context.appColors.textBlack,
@@ -777,7 +777,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
               color: context.appColors.redDefault,
               child: Center(
                 child: MyTextView(
-                  'Pay Now',
+                  S.current.pay_now,
                   textColor: context.appColors.textWhite,
                   fontSize: 17,
                   isFontMedium: true,

+ 3 - 2
packages/cpt_services/lib/modules/services/service_order_confirm/service_order_confirm_vm.dart

@@ -5,6 +5,7 @@ import 'package:cpt_services/components/chooseVisitTimeContent.dart';
 import 'package:cpt_services/components/chooseVisitTimeContent_vm.dart';
 import 'package:cpt_services/components/chooseVisitTimeTitle.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
 import 'package:domain/entity/newsfeed_detail_entity.dart';
@@ -222,8 +223,8 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
           // bottomBtnSectionPadding: EdgeInsets.only(left: 20, right: 20, bottom: 20,top: 20),
           yesBtnBg: context.appColors.redDefault,
           noBtnBg: context.appColors.grayBgE9,
-          confirmTxt: "Confirm",
-          cancelTxt: "Cancel",
+          confirmTxt: S.current.confirm,
+          cancelTxt: S.current.cancel,
           // yesBtnTextStyle: TextStyle(
           //   color: context.appColors.textWhite,
           //   fontSize: 17,

+ 10 - 9
packages/cpt_services/lib/modules/services/service_pay_success/service_pay_success_page.dart

@@ -1,4 +1,5 @@
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/rendering.dart';
@@ -59,7 +60,7 @@ class ServicePaySuccessPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Pay Success",
+        S.current.pay_success,
         backgroundColor: context.appColors.whiteBG,
       ),
       backgroundColor: ColorUtils.string2Color("#F2F3F6"),
@@ -111,7 +112,7 @@ class ServicePaySuccessPage extends HookConsumerWidget {
             ),
           ),
           MyTextView(
-            "Payment Successful",
+            S.current.payment_successful,
             fontSize: 18,
             isFontMedium: true,
             textColor: context.appColors.textPrimary,
@@ -119,7 +120,7 @@ class ServicePaySuccessPage extends HookConsumerWidget {
             marginTop: 13,
           ),
           MyTextView(
-            "Fee Paid",
+            S.current.fee_paid,
             fontSize: 15,
             textColor: context.appColors.textBlack,
             textAlign: TextAlign.center,
@@ -160,7 +161,7 @@ class ServicePaySuccessPage extends HookConsumerWidget {
             crossAxisAlignment: CrossAxisAlignment.center,
             children: [
               MyTextView(
-                "paid on",
+               S.current.paid_on,
                 fontSize: 15,
                 textColor: context.appColors.textBlack,
                 textAlign: TextAlign.center,
@@ -234,7 +235,7 @@ class ServicePaySuccessPage extends HookConsumerWidget {
         crossAxisAlignment: CrossAxisAlignment.start,
         children: [
           MyTextView(
-            'Visit Time',
+            S.current.visit_time,
             fontSize: 16,
             textColor: context.appColors.textBlack,
             textAlign: TextAlign.center,
@@ -300,7 +301,7 @@ class ServicePaySuccessPage extends HookConsumerWidget {
             crossAxisAlignment: CrossAxisAlignment.start,
             children: [
               MyTextView(
-                'Service',
+               S.current.service,
                 fontSize: 16,
                 textColor: context.appColors.textBlack,
                 textAlign: TextAlign.center,
@@ -359,7 +360,7 @@ class ServicePaySuccessPage extends HookConsumerWidget {
             crossAxisAlignment: CrossAxisAlignment.start,
             children: [
               MyTextView(
-                'Address',
+               S.current.address,
                 fontSize: 16,
                 textColor: context.appColors.textBlack,
                 textAlign: TextAlign.center,
@@ -426,7 +427,7 @@ class ServicePaySuccessPage extends HookConsumerWidget {
           Row(
             children: [
               MyTextView(
-                'Payment',
+               S.current.payment,
                 fontSize: 16,
                 textColor: context.appColors.textBlack,
                 textAlign: TextAlign.center,
@@ -459,7 +460,7 @@ class ServicePaySuccessPage extends HookConsumerWidget {
                       mainAxisAlignment: MainAxisAlignment.spaceBetween, // 设置为 spaceBetween
                       children: [
                         MyTextView(
-                          'Total',
+                         S.current.total,
                           fontSize: 14,
                           textColor: context.appColors.textBlack,
                           isFontRegular: true,

+ 3 - 2
packages/cpt_services/lib/modules/services/service_repair_detail/service_repair_detail_page.dart

@@ -1,5 +1,6 @@
 import 'package:cpt_services/modules/services/service_repair_detail/service_repair_detail_state.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/garage_sale_rent_detail_entity.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
@@ -222,7 +223,7 @@ class ServiceRepairDetailPage extends HookConsumerWidget {
                   children: [
                     Center(
                       child: MyButton(
-                        text: "Get A Quote",
+                        text: S.current.get_a_quote,
                         textColor: context.appColors.textWhite,
                         backgroundColor: context.appColors.textPrimary,
                         fontSize: 15,
@@ -236,7 +237,7 @@ class ServiceRepairDetailPage extends HookConsumerWidget {
                     ),
                     Center(
                       child: MyTextView(
-                        'The merchant will contact you as soon as possible. Please keep your phone open',
+                        S.current.merchant_contact_phone,
                         textColor: context.appColors.textBlack,
                         fontSize: 14,
                         isFontRegular: true,

+ 8 - 7
packages/cpt_services/lib/modules/services/service_repair_detail/service_repair_detail_vm.dart

@@ -1,5 +1,6 @@
 import 'package:cpt_services/components/chooseAirConditionContent.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:domain/entity/garage_sale_rent_detail_entity.dart';
 import 'package:domain/entity/service_repair_detail_entity.dart';
@@ -286,8 +287,8 @@ class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
           dialogWidth: 345.0,
           isShowConfirmBtn: false,
           isShowCancelBtn: false,
-          confirmTxt: "Confirm",
-          title: "Confirm Information",
+          confirmTxt: S.current.confirm,
+          title: S.current.confirm_information,
           titleBackgroundColor: context.appColors.textPrimary,
           closeIconColor: context.appColors.textWhite,
           titleTextStyle: TextStyle(
@@ -304,7 +305,7 @@ class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
                   // 提交取消订单
                   submitQuote(context, id);
                 },
-                text: "Confirm",
+                text: S.current.confirm,
                 minWidth: 305,
                 minHeight: 45,
                 fontSize: 16,
@@ -374,19 +375,19 @@ class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
         position: DialogPosition.center,
         widget: AppCustomDialog(
           message: '',
-          title: 'Confirm',
+          title: S.current.confirm,
           dialogWidth: MediaQuery.of(context).size.width * 0.8,
           // contentBoxMaxHeight: 350,
           // contentBoxMinHeight: 300,
           isShowConfirmBtn: true,
-          confirmTxt: "Confirm",
+          confirmTxt: S.current.confirm,
           isShowCancelBtn: false,
           messageBuilder: (BuildContext context) {
             return Container(
                 padding: EdgeInsets.symmetric(horizontal: 30),
                 child: Column(children: [
                   MyTextView(
-                    "We have received your quotation inquiry",
+                    S.current.received_quotation_inquiry,
                     fontSize: 16,
                     isFontMedium: true,
                     textAlign: TextAlign.center,
@@ -396,7 +397,7 @@ class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
                     height: 20,
                   ),
                   MyTextView(
-                    "We will contact you as soon as possible. Please keep your phone open",
+                    S.current.contact_your_phone,
                     fontSize: 16,
                     isFontMedium: true,
                     textAlign: TextAlign.center,

+ 2 - 1
packages/cpt_services/lib/modules/services/services_main_page.dart

@@ -1,6 +1,7 @@
 
 import 'package:cpt_services/modules/services/services_main_vm.dart';
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 import 'package:domain/entity/service_category_entity.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
@@ -60,7 +61,7 @@ class ServicesMainPage extends HookConsumerWidget {
     return Scaffold(
       appBar: MyAppBar.appBar(
         context,
-        "Service",
+        S.current.service,
         backgroundColor: context.appColors.whiteBG,
       ),
       backgroundColor: ColorUtils.string2Color("#F2F3F6"),

+ 1 - 1
packages/cpt_services/lib/modules/services/services_page.dart

@@ -227,10 +227,10 @@ class ServicesPage extends HookConsumerWidget with WidgetsBindingObserver {
                     type: ClickType.throttle,
                   ),
                 ),
-                SizedBox.fromSize(size: const Size(0, 9)),
                 MyTextView(
                   item['title'],
                   fontSize: 15,
+                  marginTop: 8,
                   textColor: index == currentPageIdx ? ColorUtils.string2Color('#4161D0'): context.appColors.textBlack,
                   textAlign: TextAlign.center,
                   isFontMedium: true,

+ 4 - 3
packages/cpt_services/lib/modules/services/services_state.dart

@@ -1,4 +1,5 @@
 import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
 
 
 class ServicesVmState {
@@ -15,17 +16,17 @@ class ServicesVmState {
     this.tabsRouter,
   }) : topSectionsData = topSectionsData?? [
     {
-      "title": "Service",
+      "title": S.current.service,
       "code": "service",
       "icon": Assets.serviceServiceType,
     },
     {
-      "title": "In Progress",
+      "title": S.current.in_progress,
       "code": "inProgress",
       "icon": Assets.serviceInProgress,
     },
     {
-      "title": "History",
+      "title": S.current.history,
       "code": "history",
       "icon": Assets.serviceHistory,
     },

+ 36 - 35
packages/cs_domain/lib/entity/rewards_index_entity.dart

@@ -5,57 +5,58 @@ export 'package:domain/generated/json/rewards_index_entity.g.dart';
 
 @JsonSerializable()
 class RewardsIndexEntity {
-	late int points = 0;
-	late RewardsIndexContinuous continuous;
-	late RewardsIndexTasks tasks;
-	late List<dynamic> latest = [];
+  int points = 0;
+  RewardsIndexContinuous? continuous;
+  RewardsIndexTasks? tasks;
+  List<dynamic> latest = [];
 
-	RewardsIndexEntity();
+  RewardsIndexEntity();
 
-	factory RewardsIndexEntity.fromJson(Map<String, dynamic> json) => $RewardsIndexEntityFromJson(json);
+  factory RewardsIndexEntity.fromJson(Map<String, dynamic> json) => $RewardsIndexEntityFromJson(json);
 
-	Map<String, dynamic> toJson() => $RewardsIndexEntityToJson(this);
+  Map<String, dynamic> toJson() => $RewardsIndexEntityToJson(this);
 
-	@override
-	String toString() {
-		return jsonEncode(this);
-	}
+  @override
+  String toString() {
+    return jsonEncode(this);
+  }
 }
 
 @JsonSerializable()
 class RewardsIndexContinuous {
-	late int count = 0;
-	@JSONField(name: "current_week_checkin")
-	late List<dynamic> currentWeekCheckin = [];
+  int count = 0;
+  @JSONField(name: "current_week_checkin")
+  List<dynamic> currentWeekCheckin = [];
 
-	RewardsIndexContinuous();
+  RewardsIndexContinuous();
 
-	factory RewardsIndexContinuous.fromJson(Map<String, dynamic> json) => $RewardsIndexContinuousFromJson(json);
+  factory RewardsIndexContinuous.fromJson(Map<String, dynamic> json) => $RewardsIndexContinuousFromJson(json);
 
-	Map<String, dynamic> toJson() => $RewardsIndexContinuousToJson(this);
+  Map<String, dynamic> toJson() => $RewardsIndexContinuousToJson(this);
 
-	@override
-	String toString() {
-		return jsonEncode(this);
-	}
+  @override
+  String toString() {
+    return jsonEncode(this);
+  }
 }
+
 @JsonSerializable()
 class RewardsIndexTasks {
-	@JSONField(name: "daily_checkin")
-	late bool dailyCheckin = false;
-	@JSONField(name: "news_feed_post")
-	late bool newsFeedPost = false;
-	@JSONField(name: "give_10_likes")
-	late int give10Likes = 0;
+  @JSONField(name: "daily_checkin")
+  bool dailyCheckin = false;
+  @JSONField(name: "news_feed_post")
+  bool newsFeedPost = false;
+  @JSONField(name: "give_10_likes")
+  int give10Likes = 0;
 
-	RewardsIndexTasks();
+  RewardsIndexTasks();
 
-	factory RewardsIndexTasks.fromJson(Map<String, dynamic> json) => $RewardsIndexTasksFromJson(json);
+  factory RewardsIndexTasks.fromJson(Map<String, dynamic> json) => $RewardsIndexTasksFromJson(json);
 
-	Map<String, dynamic> toJson() => $RewardsIndexTasksToJson(this);
+  Map<String, dynamic> toJson() => $RewardsIndexTasksToJson(this);
 
-	@override
-	String toString() {
-		return jsonEncode(this);
-	}
-}
+  @override
+  String toString() {
+    return jsonEncode(this);
+  }
+}

File diff suppressed because it is too large
+ 207 - 429
packages/cs_domain/lib/generated/json/base/json_convert_content.dart


+ 14 - 31
packages/cs_domain/lib/generated/json/facility_book_entity.g.dart

@@ -7,22 +7,16 @@ FacilityBookEntity $FacilityBookEntityFromJson(Map<String, dynamic> json) {
   if (remainQuota != null) {
     facilityBookEntity.remainQuota = remainQuota;
   }
-  final String? quotaResetOn = jsonConvert.convert<String>(
-      json['quota_reset_on']);
+  final String? quotaResetOn = jsonConvert.convert<String>(json['quota_reset_on']);
   if (quotaResetOn != null) {
     facilityBookEntity.quotaResetOn = quotaResetOn;
   }
-  final FacilityBookFacilityType? facilityType = jsonConvert.convert<
-      FacilityBookFacilityType>(json['facility_type']);
+  final FacilityBookFacilityType? facilityType = jsonConvert.convert<FacilityBookFacilityType>(json['facility_type']);
   if (facilityType != null) {
     facilityBookEntity.facilityType = facilityType;
   }
-  final List<FacilityBookFacilities>? facilities = (json['facilities'] as List<
-      dynamic>?)
-      ?.map(
-          (e) =>
-      jsonConvert.convert<FacilityBookFacilities>(e) as FacilityBookFacilities)
-      .toList();
+  final List<FacilityBookFacilities>? facilities = (json['facilities'] as List<dynamic>?)?.map(
+          (e) => jsonConvert.convert<FacilityBookFacilities>(e) as FacilityBookFacilities).toList();
   if (facilities != null) {
     facilityBookEntity.facilities = facilities;
   }
@@ -53,11 +47,9 @@ extension FacilityBookEntityExtension on FacilityBookEntity {
   }
 }
 
-FacilityBookFacilityType $FacilityBookFacilityTypeFromJson(
-    Map<String, dynamic> json) {
+FacilityBookFacilityType $FacilityBookFacilityTypeFromJson(Map<String, dynamic> json) {
   final FacilityBookFacilityType facilityBookFacilityType = FacilityBookFacilityType();
-  final int? bookAdvanceDays = jsonConvert.convert<int>(
-      json['book_advance_days']);
+  final int? bookAdvanceDays = jsonConvert.convert<int>(json['book_advance_days']);
   if (bookAdvanceDays != null) {
     facilityBookFacilityType.bookAdvanceDays = bookAdvanceDays;
   }
@@ -65,16 +57,14 @@ FacilityBookFacilityType $FacilityBookFacilityTypeFromJson(
   if (quota != null) {
     facilityBookFacilityType.quota = quota;
   }
-  final String? quotaResetType = jsonConvert.convert<String>(
-      json['quota_reset_type']);
+  final String? quotaResetType = jsonConvert.convert<String>(json['quota_reset_type']);
   if (quotaResetType != null) {
     facilityBookFacilityType.quotaResetType = quotaResetType;
   }
   return facilityBookFacilityType;
 }
 
-Map<String, dynamic> $FacilityBookFacilityTypeToJson(
-    FacilityBookFacilityType entity) {
+Map<String, dynamic> $FacilityBookFacilityTypeToJson(FacilityBookFacilityType entity) {
   final Map<String, dynamic> data = <String, dynamic>{};
   data['book_advance_days'] = entity.bookAdvanceDays;
   data['quota'] = entity.quota;
@@ -95,8 +85,7 @@ extension FacilityBookFacilityTypeExtension on FacilityBookFacilityType {
   }
 }
 
-FacilityBookFacilities $FacilityBookFacilitiesFromJson(
-    Map<String, dynamic> json) {
+FacilityBookFacilities $FacilityBookFacilitiesFromJson(Map<String, dynamic> json) {
   final FacilityBookFacilities facilityBookFacilities = FacilityBookFacilities();
   final String? id = jsonConvert.convert<String>(json['id']);
   if (id != null) {
@@ -106,19 +95,15 @@ FacilityBookFacilities $FacilityBookFacilitiesFromJson(
   if (name != null) {
     facilityBookFacilities.name = name;
   }
-  final List<FacilityBookFacilitiesPeriods>? periods = (json['periods'] as List<
-      dynamic>?)?.map(
-          (e) =>
-      jsonConvert.convert<FacilityBookFacilitiesPeriods>(
-          e) as FacilityBookFacilitiesPeriods).toList();
+  final List<FacilityBookFacilitiesPeriods>? periods = (json['periods'] as List<dynamic>?)?.map(
+          (e) => jsonConvert.convert<FacilityBookFacilitiesPeriods>(e) as FacilityBookFacilitiesPeriods).toList();
   if (periods != null) {
     facilityBookFacilities.periods = periods;
   }
   return facilityBookFacilities;
 }
 
-Map<String, dynamic> $FacilityBookFacilitiesToJson(
-    FacilityBookFacilities entity) {
+Map<String, dynamic> $FacilityBookFacilitiesToJson(FacilityBookFacilities entity) {
   final Map<String, dynamic> data = <String, dynamic>{};
   data['id'] = entity.id;
   data['name'] = entity.name;
@@ -139,8 +124,7 @@ extension FacilityBookFacilitiesExtension on FacilityBookFacilities {
   }
 }
 
-FacilityBookFacilitiesPeriods $FacilityBookFacilitiesPeriodsFromJson(
-    Map<String, dynamic> json) {
+FacilityBookFacilitiesPeriods $FacilityBookFacilitiesPeriodsFromJson(Map<String, dynamic> json) {
   final FacilityBookFacilitiesPeriods facilityBookFacilitiesPeriods = FacilityBookFacilitiesPeriods();
   final String? id = jsonConvert.convert<String>(json['id']);
   if (id != null) {
@@ -173,8 +157,7 @@ FacilityBookFacilitiesPeriods $FacilityBookFacilitiesPeriodsFromJson(
   return facilityBookFacilitiesPeriods;
 }
 
-Map<String, dynamic> $FacilityBookFacilitiesPeriodsToJson(
-    FacilityBookFacilitiesPeriods entity) {
+Map<String, dynamic> $FacilityBookFacilitiesPeriodsToJson(FacilityBookFacilitiesPeriods entity) {
   final Map<String, dynamic> data = <String, dynamic>{};
   data['id'] = entity.id;
   data['start'] = entity.start;

+ 2 - 4
packages/cs_domain/lib/generated/json/facility_index_entity.g.dart

@@ -15,10 +15,8 @@ FacilityIndexEntity $FacilityIndexEntityFromJson(Map<String, dynamic> json) {
   if (name != null) {
     facilityIndexEntity.name = name;
   }
-  final List<String>? mapResources = (json['map_resources'] as List<dynamic>?)
-      ?.map(
-          (e) => jsonConvert.convert<String>(e) as String)
-      .toList();
+  final List<String>? mapResources = (json['map_resources'] as List<dynamic>?)?.map(
+          (e) => jsonConvert.convert<String>(e) as String).toList();
   if (mapResources != null) {
     facilityIndexEntity.mapResources = mapResources;
   }

+ 20 - 40
packages/cs_domain/lib/generated/json/facility_page_entity.g.dart

@@ -19,15 +19,12 @@ FacilityPageEntity $FacilityPageEntityFromJson(Map<String, dynamic> json) {
   if (countPage != null) {
     facilityPageEntity.countPage = countPage;
   }
-  final String? totalDeposit = jsonConvert.convert<String>(
-      json['total_deposit']);
+  final String? totalDeposit = jsonConvert.convert<String>(json['total_deposit']);
   if (totalDeposit != null) {
     facilityPageEntity.totalDeposit = totalDeposit;
   }
-  final List<FacilityDetail>? list = (json['list'] as List<dynamic>?)
-      ?.map(
-          (e) => jsonConvert.convert<FacilityDetail>(e) as FacilityDetail)
-      .toList();
+  final List<FacilityDetail>? list = (json['list'] as List<dynamic>?)?.map(
+          (e) => jsonConvert.convert<FacilityDetail>(e) as FacilityDetail).toList();
   if (list != null) {
     facilityPageEntity.list = list;
   }
@@ -66,23 +63,19 @@ extension FacilityPageEntityExtension on FacilityPageEntity {
 
 FacilityDetail $FacilityDetailFromJson(Map<String, dynamic> json) {
   final FacilityDetail facilityDetail = FacilityDetail();
-  final FacilityPageListBooking? booking = jsonConvert.convert<
-      FacilityPageListBooking>(json['booking']);
+  final FacilityPageListBooking? booking = jsonConvert.convert<FacilityPageListBooking>(json['booking']);
   if (booking != null) {
     facilityDetail.booking = booking;
   }
-  final FacilityPageListFacility? facility = jsonConvert.convert<
-      FacilityPageListFacility>(json['facility']);
+  final FacilityPageListFacility? facility = jsonConvert.convert<FacilityPageListFacility>(json['facility']);
   if (facility != null) {
     facilityDetail.facility = facility;
   }
-  final FacilityPageListTimePeriod? timePeriod = jsonConvert.convert<
-      FacilityPageListTimePeriod>(json['time_period']);
+  final FacilityPageListTimePeriod? timePeriod = jsonConvert.convert<FacilityPageListTimePeriod>(json['time_period']);
   if (timePeriod != null) {
     facilityDetail.timePeriod = timePeriod;
   }
-  final FacilityPageListAccount? account = jsonConvert.convert<
-      FacilityPageListAccount>(json['account']);
+  final FacilityPageListAccount? account = jsonConvert.convert<FacilityPageListAccount>(json['account']);
   if (account != null) {
     facilityDetail.account = account;
   }
@@ -113,8 +106,7 @@ extension FacilityDetailExtension on FacilityDetail {
   }
 }
 
-FacilityPageListBooking $FacilityPageListBookingFromJson(
-    Map<String, dynamic> json) {
+FacilityPageListBooking $FacilityPageListBookingFromJson(Map<String, dynamic> json) {
   final FacilityPageListBooking facilityPageListBooking = FacilityPageListBooking();
   final String? id = jsonConvert.convert<String>(json['id']);
   if (id != null) {
@@ -136,21 +128,18 @@ FacilityPageListBooking $FacilityPageListBookingFromJson(
   if (depositPaid != null) {
     facilityPageListBooking.depositPaid = depositPaid;
   }
-  final String? depositRefund = jsonConvert.convert<String>(
-      json['deposit_refund']);
+  final String? depositRefund = jsonConvert.convert<String>(json['deposit_refund']);
   if (depositRefund != null) {
     facilityPageListBooking.depositRefund = depositRefund;
   }
-  final String? depositRefundAt = jsonConvert.convert<String>(
-      json['deposit_refund_at']);
+  final String? depositRefundAt = jsonConvert.convert<String>(json['deposit_refund_at']);
   if (depositRefundAt != null) {
     facilityPageListBooking.depositRefundAt = depositRefundAt;
   }
   return facilityPageListBooking;
 }
 
-Map<String, dynamic> $FacilityPageListBookingToJson(
-    FacilityPageListBooking entity) {
+Map<String, dynamic> $FacilityPageListBookingToJson(FacilityPageListBooking entity) {
   final Map<String, dynamic> data = <String, dynamic>{};
   data['id'] = entity.id;
   data['date'] = entity.date;
@@ -183,8 +172,7 @@ extension FacilityPageListBookingExtension on FacilityPageListBooking {
   }
 }
 
-FacilityPageListFacility $FacilityPageListFacilityFromJson(
-    Map<String, dynamic> json) {
+FacilityPageListFacility $FacilityPageListFacilityFromJson(Map<String, dynamic> json) {
   final FacilityPageListFacility facilityPageListFacility = FacilityPageListFacility();
   final String? id = jsonConvert.convert<String>(json['id']);
   if (id != null) {
@@ -194,16 +182,14 @@ FacilityPageListFacility $FacilityPageListFacilityFromJson(
   if (name != null) {
     facilityPageListFacility.name = name;
   }
-  final FacilityPageListFacilityType? type = jsonConvert.convert<
-      FacilityPageListFacilityType>(json['type']);
+  final FacilityPageListFacilityType? type = jsonConvert.convert<FacilityPageListFacilityType>(json['type']);
   if (type != null) {
     facilityPageListFacility.type = type;
   }
   return facilityPageListFacility;
 }
 
-Map<String, dynamic> $FacilityPageListFacilityToJson(
-    FacilityPageListFacility entity) {
+Map<String, dynamic> $FacilityPageListFacilityToJson(FacilityPageListFacility entity) {
   final Map<String, dynamic> data = <String, dynamic>{};
   data['id'] = entity.id;
   data['name'] = entity.name;
@@ -224,8 +210,7 @@ extension FacilityPageListFacilityExtension on FacilityPageListFacility {
   }
 }
 
-FacilityPageListFacilityType $FacilityPageListFacilityTypeFromJson(
-    Map<String, dynamic> json) {
+FacilityPageListFacilityType $FacilityPageListFacilityTypeFromJson(Map<String, dynamic> json) {
   final FacilityPageListFacilityType facilityPageListFacilityType = FacilityPageListFacilityType();
   final String? id = jsonConvert.convert<String>(json['id']);
   if (id != null) {
@@ -238,8 +223,7 @@ FacilityPageListFacilityType $FacilityPageListFacilityTypeFromJson(
   return facilityPageListFacilityType;
 }
 
-Map<String, dynamic> $FacilityPageListFacilityTypeToJson(
-    FacilityPageListFacilityType entity) {
+Map<String, dynamic> $FacilityPageListFacilityTypeToJson(FacilityPageListFacilityType entity) {
   final Map<String, dynamic> data = <String, dynamic>{};
   data['id'] = entity.id;
   data['name'] = entity.name;
@@ -257,8 +241,7 @@ extension FacilityPageListFacilityTypeExtension on FacilityPageListFacilityType
   }
 }
 
-FacilityPageListTimePeriod $FacilityPageListTimePeriodFromJson(
-    Map<String, dynamic> json) {
+FacilityPageListTimePeriod $FacilityPageListTimePeriodFromJson(Map<String, dynamic> json) {
   final FacilityPageListTimePeriod facilityPageListTimePeriod = FacilityPageListTimePeriod();
   final String? price = jsonConvert.convert<String>(json['price']);
   if (price != null) {
@@ -271,8 +254,7 @@ FacilityPageListTimePeriod $FacilityPageListTimePeriodFromJson(
   return facilityPageListTimePeriod;
 }
 
-Map<String, dynamic> $FacilityPageListTimePeriodToJson(
-    FacilityPageListTimePeriod entity) {
+Map<String, dynamic> $FacilityPageListTimePeriodToJson(FacilityPageListTimePeriod entity) {
   final Map<String, dynamic> data = <String, dynamic>{};
   data['price'] = entity.price;
   data['deposit'] = entity.deposit;
@@ -290,8 +272,7 @@ extension FacilityPageListTimePeriodExtension on FacilityPageListTimePeriod {
   }
 }
 
-FacilityPageListAccount $FacilityPageListAccountFromJson(
-    Map<String, dynamic> json) {
+FacilityPageListAccount $FacilityPageListAccountFromJson(Map<String, dynamic> json) {
   final FacilityPageListAccount facilityPageListAccount = FacilityPageListAccount();
   final String? id = jsonConvert.convert<String>(json['id']);
   if (id != null) {
@@ -304,8 +285,7 @@ FacilityPageListAccount $FacilityPageListAccountFromJson(
   return facilityPageListAccount;
 }
 
-Map<String, dynamic> $FacilityPageListAccountToJson(
-    FacilityPageListAccount entity) {
+Map<String, dynamic> $FacilityPageListAccountToJson(FacilityPageListAccount entity) {
   final Map<String, dynamic> data = <String, dynamic>{};
   data['id'] = entity.id;
   data['name'] = entity.name;

+ 6 - 14
packages/cs_domain/lib/generated/json/feedback_detail_entity.g.dart

@@ -30,17 +30,12 @@ FeedbackDetailEntity $FeedbackDetailEntityFromJson(Map<String, dynamic> json) {
   if (createdAt != null) {
     feedbackDetailEntity.createdAt = createdAt;
   }
-  final IdNameEntity? category = jsonConvert.convert<IdNameEntity>(
-      json['category']);
+  final IdNameEntity? category = jsonConvert.convert<IdNameEntity>(json['category']);
   if (category != null) {
     feedbackDetailEntity.category = category;
   }
-  final List<FeedbackDetailReplies>? replies = (json['replies'] as List<
-      dynamic>?)
-      ?.map(
-          (e) =>
-      jsonConvert.convert<FeedbackDetailReplies>(e) as FeedbackDetailReplies)
-      .toList();
+  final List<FeedbackDetailReplies>? replies = (json['replies'] as List<dynamic>?)?.map(
+          (e) => jsonConvert.convert<FeedbackDetailReplies>(e) as FeedbackDetailReplies).toList();
   if (replies != null) {
     feedbackDetailEntity.replies = replies;
   }
@@ -83,8 +78,7 @@ extension FeedbackDetailEntityExtension on FeedbackDetailEntity {
   }
 }
 
-FeedbackDetailReplies $FeedbackDetailRepliesFromJson(
-    Map<String, dynamic> json) {
+FeedbackDetailReplies $FeedbackDetailRepliesFromJson(Map<String, dynamic> json) {
   final FeedbackDetailReplies feedbackDetailReplies = FeedbackDetailReplies();
   final String? id = jsonConvert.convert<String>(json['id']);
   if (id != null) {
@@ -103,16 +97,14 @@ FeedbackDetailReplies $FeedbackDetailRepliesFromJson(
   if (createdAt != null) {
     feedbackDetailReplies.createdAt = createdAt;
   }
-  final IdNameEntity? accountable = jsonConvert.convert<IdNameEntity>(
-      json['accountable']);
+  final IdNameEntity? accountable = jsonConvert.convert<IdNameEntity>(json['accountable']);
   if (accountable != null) {
     feedbackDetailReplies.accountable = accountable;
   }
   return feedbackDetailReplies;
 }
 
-Map<String, dynamic> $FeedbackDetailRepliesToJson(
-    FeedbackDetailReplies entity) {
+Map<String, dynamic> $FeedbackDetailRepliesToJson(FeedbackDetailReplies entity) {
   final Map<String, dynamic> data = <String, dynamic>{};
   data['id'] = entity.id;
   data['content'] = entity.content;

+ 3 - 7
packages/cs_domain/lib/generated/json/feedback_list_entity.g.dart

@@ -21,11 +21,8 @@ FeedbackListEntity $FeedbackListEntityFromJson(Map<String, dynamic> json) {
   if (limit != null) {
     feedbackListEntity.limit = limit;
   }
-  final List<FeedbackItemEntity>? list = (json['list'] as List<dynamic>?)
-      ?.map(
-          (e) =>
-      jsonConvert.convert<FeedbackItemEntity>(e) as FeedbackItemEntity)
-      .toList();
+  final List<FeedbackItemEntity>? list = (json['list'] as List<dynamic>?)?.map(
+          (e) => jsonConvert.convert<FeedbackItemEntity>(e) as FeedbackItemEntity).toList();
   if (list != null) {
     feedbackListEntity.list = list;
   }
@@ -81,8 +78,7 @@ FeedbackItemEntity $FeedbackItemEntityFromJson(Map<String, dynamic> json) {
   if (createdAt != null) {
     feedbackItemEntity.createdAt = createdAt;
   }
-  final IdNameEntity? category = jsonConvert.convert<IdNameEntity>(
-      json['category']);
+  final IdNameEntity? category = jsonConvert.convert<IdNameEntity>(json['category']);
   if (category != null) {
     feedbackItemEntity.category = category;
   }

+ 0 - 0
packages/cs_domain/lib/generated/json/form_content_entity.g.dart


Some files were not shown because too many files changed in this diff