浏览代码

Merge branch 'dev' of http://git.wmzhubo.com/guadoutech/YYHome into dev

glglove 2 月之前
父节点
当前提交
1f619ed43e
共有 47 个文件被更改,包括 563 次插入940 次删除
  1. 0 18
      packages/cpt_main/lib/modules/visitor/visitor_view_model.dart
  2. 1 1
      packages/cpt_payment/lib/modules/add_card/add_card_view_model.g.dart
  3. 1 1
      packages/cpt_payment/lib/modules/choose_card/choose_card_view_model.g.dart
  4. 0 57
      packages/cpt_payment/lib/modules/payment/condo/active/condo_active_screen.dart
  5. 0 135
      packages/cpt_payment/lib/modules/payment/condo/active/item_condo_active.dart
  6. 0 130
      packages/cpt_payment/lib/modules/payment/condo/history/condo_history_view_model.dart
  7. 0 136
      packages/cpt_payment/lib/modules/payment/condo/history/item_condo_active.dart
  8. 0 31
      packages/cpt_payment/lib/modules/payment/condo/payment/condo_payment_state.dart
  9. 0 130
      packages/cpt_payment/lib/modules/payment/condo/payment/condo_payment_view_model.dart
  10. 0 27
      packages/cpt_payment/lib/modules/payment/condo/payment/condo_payment_view_model.g.dart
  11. 7 8
      packages/cpt_payment/lib/modules/payment/condo/history/condo_history_screen.dart
  12. 4 4
      packages/cpt_payment/lib/modules/payment/condo/active/condo_active_state.dart
  13. 5 6
      packages/cpt_payment/lib/modules/payment/condo/active/condo_active_view_model.dart
  14. 11 11
      packages/cpt_payment/lib/modules/payment/condo/active/condo_active_view_model.g.dart
  15. 2 2
      packages/cpt_payment/lib/modules/payment/condo/history/item_condo_history.dart
  16. 1 1
      packages/cpt_payment/lib/modules/payment/manage/manage_view_model.g.dart
  17. 11 7
      packages/cpt_payment/lib/modules/payment/condo/payment/item_condo_payment.dart
  18. 7 8
      packages/cpt_payment/lib/modules/payment/condo/payment/condo_payment_screen.dart
  19. 7 6
      packages/cpt_payment/lib/modules/payment/condo/history/condo_history_state.dart
  20. 25 0
      packages/cpt_payment/lib/modules/payment/payment/payment_list_types.dart
  21. 109 0
      packages/cpt_payment/lib/modules/payment/payment/payment_list_view_model.dart
  22. 11 11
      packages/cpt_payment/lib/modules/payment/condo/history/condo_history_view_model.g.dart
  23. 29 80
      packages/cpt_payment/lib/modules/payment/payment_page.dart
  24. 1 1
      packages/cpt_payment/lib/modules/payment_confirm/payment_confirm_view_model.g.dart
  25. 1 2
      packages/cpt_payment/lib/modules/payment_info/payment_info_page.dart
  26. 1 1
      packages/cpt_payment/lib/modules/payment_info/payment_info_view_model.g.dart
  27. 6 6
      packages/cpt_payment/lib/router/page/payment_page_router.dart
  28. 27 47
      packages/cpt_payment/lib/router/page/payment_page_router.gr.dart
  29. 5 0
      packages/cs_domain/lib/constants/api_constants.dart
  30. 51 0
      packages/cs_domain/lib/entity/payment_page_entity.dart
  31. 9 0
      packages/cs_domain/lib/generated/json/base/json_convert_content.dart
  32. 121 0
      packages/cs_domain/lib/generated/json/payment_page_entity.g.dart
  33. 0 63
      packages/cs_domain/lib/repository/demo_repository.dart
  34. 54 0
      packages/cs_domain/lib/repository/payment_repository.dart
  35. 9 9
      packages/cs_domain/lib/repository/demo_repository.g.dart
  36. 二进制
      packages/cs_resources/assets/payment/condo_icon.webp
  37. 二进制
      packages/cs_resources/assets/payment/history_icon.webp
  38. 二进制
      packages/cs_resources/assets/payment/info_icon.webp
  39. 二进制
      packages/cs_resources/assets/payment/manage_icon.webp
  40. 二进制
      packages/cs_resources/assets/payment/payment_icon.webp
  41. 二进制
      packages/cs_resources/assets/payment/property_payment_icon.webp
  42. 3 1
      packages/cs_resources/lib/generated/assets.dart
  43. 5 0
      packages/cs_resources/lib/generated/intl/messages_en.dart
  44. 30 0
      packages/cs_resources/lib/generated/l10n.dart
  45. 3 0
      packages/cs_resources/lib/l10n/intl_en.arb
  46. 3 0
      packages/cs_resources/lib/l10n/intl_zh_CN.arb
  47. 3 0
      packages/cs_resources/lib/l10n/intl_zh_HK.arb

+ 0 - 18
packages/cpt_main/lib/modules/visitor/visitor_view_model.dart

@@ -1,9 +1,5 @@
-import 'package:domain/repository/demo_repository.dart';
-import 'package:flutter/material.dart';
-import 'package:plugin_platform/engine/toast/toast_engine.dart';
 import 'package:riverpod_annotation/riverpod_annotation.dart';
 
-import 'package:shared/utils/log_utils.dart';
 
 import 'visitor_state.dart';
 
@@ -11,24 +7,10 @@ part 'visitor_view_model.g.dart';
 
 @riverpod
 class VisitorViewModel extends _$VisitorViewModel {
-  late DemoRepository demoRepository;
 
   @override
   VisitorState build() {
-    demoRepository = ref.read(demoRepositoryProvider);
     return VisitorState();
   }
 
-  /// 获取服务器时间测试
-  void fetchServerTime() async {
-    //请求网络
-    final result = await demoRepository.fetchServerTime("");
-    //校验成功失败
-    if (result.isSuccess) {
-      state = state.copyWith(serverTime: result.data);
-      ToastEngine.show("当前服务器时间戳:${result.data?.timestamps}");
-    } else {
-      ToastEngine.show(result.errorMsg ?? "Network Load Error");
-    }
-  }
 }

+ 1 - 1
packages/cpt_payment/lib/modules/add_card/add_card_view_model.g.dart

@@ -6,7 +6,7 @@ part of 'add_card_view_model.dart';
 // RiverpodGenerator
 // **************************************************************************
 
-String _$addCardViewModelHash() => r'5e7c5e5596a80e95d8dbcc1eb05daa4023684eb9';
+String _$addCardViewModelHash() => r'3d41700a8cb8f07e0f92fc72ffc7718916f00d03';
 
 /// See also [AddCardViewModel].
 @ProviderFor(AddCardViewModel)

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

@@ -7,7 +7,7 @@ part of 'choose_card_view_model.dart';
 // **************************************************************************
 
 String _$chooseCardViewModelHash() =>
-    r'2a690cc283527d4b52eff532a80fb1c9c6a397d8';
+    r'695dfc67ae41a495d3df9ee35782c4dc4e881154';
 
 /// See also [ChooseCardViewModel].
 @ProviderFor(ChooseCardViewModel)

+ 0 - 57
packages/cpt_payment/lib/modules/payment/condo/active/condo_active_screen.dart

@@ -1,57 +0,0 @@
-import 'package:auto_route/auto_route.dart';
-import 'package:flutter/material.dart';
-import 'package:flutter_hooks/flutter_hooks.dart';
-import 'package:hooks_riverpod/hooks_riverpod.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/widget_export.dart';
-
-import 'condo_active_view_model.dart';
-import 'item_condo_active.dart';
-
-@RoutePage()
-class CondoActiveScreen extends HookConsumerWidget {
-  @override
-  Widget build(BuildContext context, WidgetRef ref) {
-    final viewModel = ref.read(condoActiveViewModelProvider.notifier);
-    final state = ref.watch(condoActiveViewModelProvider);
-
-    useEffect(() {
-      // 组件挂载时执行 - 执行接口请求
-      Future.microtask(() => viewModel.fetchList());
-      return () {
-        // 组件卸载时执行
-      };
-    }, []);
-
-    return Container(
-      padding: const EdgeInsets.only(top: 60),
-      width: double.infinity,
-      height: double.infinity,
-      child: EasyRefresh(
-        controller: viewModel.refreshController,
-        onRefresh: viewModel.onRefresh,
-        onLoad: viewModel.loadMore,
-        child: LoadStateLayout(
-          state: state.loadingState,
-          errorMessage: state.errorMessage,
-          errorRetry: () {
-            viewModel.retryRequest();
-          },
-          successSliverWidget: [
-            SliverList(
-                delegate: SliverChildBuilderDelegate(
-                      (context, index) {
-                    return CondoActiveItem(index: index, item: state.datas[index]).onTap(() {
-
-                    });
-                  },
-                  childCount: state.datas.length,
-                ))
-          ],
-        ),
-      ).marginOnly(top: 5, bottom: 5),
-    );
-  }
-}

+ 0 - 135
packages/cpt_payment/lib/modules/payment/condo/active/item_condo_active.dart

@@ -1,135 +0,0 @@
-
-import 'package:cs_resources/generated/l10n.dart';
-import 'package:cs_resources/theme/app_colors_theme.dart';
-import 'package:flutter/material.dart';
-import 'package:widgets/ext/ex_widget.dart';
-import 'package:widgets/my_text_view.dart';
-
-///  Condo的Active的Item
-class CondoActiveItem extends StatelessWidget {
-  final int index;
-  final String item;
-
-  const CondoActiveItem({
-    required this.index,
-    required this.item,
-  });
-
-  @override
-  Widget build(BuildContext context) {
-    return Container(
-      width: double.infinity,
-      margin: const EdgeInsets.only(left: 15, right: 15, top: 5, bottom: 5),
-      padding: const EdgeInsets.only(left: 20, right: 15, top: 18, bottom: 23),
-      decoration: BoxDecoration(
-        color: context.appColors.whiteBG,
-        borderRadius: BorderRadius.circular(6.0), // 圆角
-        boxShadow: [
-          BoxShadow(
-            color: const Color(0xFFB8BFD9).withOpacity(0.3), // 阴影颜色
-            offset: const Offset(0, 3), // 阴影的偏移量
-            blurRadius: 8.0, // 模糊半径
-            spreadRadius: 3.0, // 扩散半径
-          ),
-        ],
-      ),
-      child: Row(
-        mainAxisSize: MainAxisSize.max,
-        crossAxisAlignment: CrossAxisAlignment.start,
-        children: [
-          Column(
-            crossAxisAlignment: CrossAxisAlignment.start,
-            children: [
-              //设施
-              MyTextView(
-                "Lift Padding",
-                fontSize: 16,
-                maxLines: 3,
-                textColor: context.appColors.textBlack,
-                isFontMedium: true,
-              ),
-
-              //预订人
-              MyTextView(
-                S.current.booked_by_someone("Wu Bing Bing"),
-                fontSize: 14,
-                marginTop: 3,
-                textColor: context.appColors.textBlack,
-                isFontRegular: true,
-              ),
-
-              //日期
-              MyTextView(
-                "Tue,24 Oct 2023",
-                fontSize: 14,
-                marginTop: 16,
-                textColor: context.appColors.textBlack,
-                isFontRegular: true,
-              ),
-
-              //时间
-              MyTextView(
-                "05:00 PM-10:00 PM",
-                fontSize: 14,
-                marginBottom: 7,
-                marginTop: 3,
-                textColor: context.appColors.textBlack,
-                isFontRegular: true,
-              ),
-
-              //标签
-              Row(
-                children: [
-                  MyTextView(
-                    "Fee Paid",
-                    textColor: context.appColors.textPrimary,
-                    fontSize: 13,
-                    isFontRegular: true,
-                    backgroundColor: context.appColors.lightPurpleBg,
-                    cornerRadius: 3,
-                    paddingLeft: 7,
-                    marginRight: 6,
-                    paddingRight: 7,
-                    paddingTop: 3,
-                    paddingBottom: 3,
-                  ),
-                  MyTextView(
-                    "Deposit",
-                    textColor: context.appColors.textPrimary,
-                    fontSize: 13,
-                    isFontRegular: true,
-                    backgroundColor: context.appColors.lightPurpleBg,
-                    cornerRadius: 3,
-                    paddingLeft: 7,
-                    marginRight: 6,
-                    paddingRight: 7,
-                    paddingTop: 3,
-                    paddingBottom: 3,
-                  )
-                ],
-              )
-            ],
-          ).expanded(),
-          Column(
-            mainAxisSize: MainAxisSize.min,
-            mainAxisAlignment:MainAxisAlignment.start,
-            crossAxisAlignment: CrossAxisAlignment.start,
-            children: [
-              //查看按钮
-              MyTextView(
-                S.current.view,
-                textColor: Colors.white,
-                backgroundColor: context.appColors.btnBgDefault,
-                cornerRadius: 7,
-                paddingTop: 9,
-                paddingBottom: 9,
-                textAlign: TextAlign.center,
-                boxWidth: 60,
-              )
-            ],
-          )
-        ],
-      ),
-    );
-  }
-}

+ 0 - 130
packages/cpt_payment/lib/modules/payment/condo/history/condo_history_view_model.dart

@@ -1,130 +0,0 @@
-import 'package:riverpod_annotation/riverpod_annotation.dart';
-import 'package:shared/utils/log_utils.dart';
-import 'package:widgets/load_state_layout.dart';
-import 'package:widgets/widget_export.dart';
-
-import 'condo_history_state.dart';
-
-part 'condo_history_view_model.g.dart';
-
-@riverpod
-class CondoHistoryViewModel extends _$CondoHistoryViewModel {
-  var _curPage = 1; //请求参数当前的页面
-  var _needShowPlaceholder = true; //是否展示LoadingView
-
-  // Refresh 控制器
-  final EasyRefreshController refreshController = EasyRefreshController(
-    controlFinishRefresh: true,  //允许刷新
-    controlFinishLoad: true,   //允许加载
-  );
-
-  @override
-  CondoHistoryState build() {
-    return CondoHistoryState(datas: []);
-  }
-
-  //刷新页面状态
-  void changeLoadingState(LoadState loadState, String? errorMsg) {
-    state = state.copyWith(loadingState: loadState, errorMessage: errorMsg);
-  }
-
-  // Refresh 刷新事件
-  Future onRefresh() async {
-    _curPage = 1;
-    fetchList();
-  }
-
-  // Refresh 加载事件
-  Future loadMore() async {
-    _curPage++;
-    fetchList();
-  }
-
-  // 重试请求
-  Future retryRequest() async {
-    _curPage = 1;
-    _needShowPlaceholder = true;
-    fetchList();
-  }
-
-  /// 获取服务器数据
-  Future fetchList() async {
-    if (_needShowPlaceholder) {
-      changeLoadingState(LoadState.State_Loading, null);
-    }
-
-    // 获取 Applied 列表
-    // var listResult = await _jobRepository.fetchJobAppliedList(
-    //   state.jobId,
-    //   state.selectedStatusId,
-    //   state.keyword,
-    //   curPage: _curPage,
-    //   cancelToken: cancelToken,
-    // );
-    //
-    // // 处理数据
-    // if (listResult.isSuccess) {
-    //   handleList(listResult.data?.rows);
-    // } else {
-    //   errorMessage = listResult.errorMsg;
-    //   changeLoadingState(LoadState.State_Error);
-    // }
-
-
-    await Future.delayed(const Duration(milliseconds: 1500));
-
-    final List<String> list = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];
-
-    if (_curPage == 1) {
-      //刷新的方式
-      state = state.copyWith(datas: list);
-      refreshController.finishRefresh();
-
-      //更新展示的状态
-      changeLoadingState(LoadState.State_Success, null);
-    } else {
-      //加载更多
-      final allList = state.datas;
-      allList.addAll(list);
-      state.datas.addAll(list);
-
-      refreshController.finishLoad();
-
-      state = state.copyWith(datas: allList);
-    }
-
-    // 最后赋值
-    _needShowPlaceholder = false;
-  }
-
-// 处理数据与展示的逻辑
-// void handleList(List<JobAppliedListSGRows>? list) {
-//   if (list != null && list.isNotEmpty) {
-//     //有数据,判断是刷新还是加载更多的数据
-//     if (_curPage == 1) {
-//       //刷新的方式
-//       state.datas.clear();
-//       state.datas.addAll(list);
-//       refreshController.finishRefresh();
-//
-//       //更新展示的状态
-//       changeLoadingState(LoadState.State_Success);
-//     } else {
-//       //加载更多
-//       state.datas.addAll(list);
-//       refreshController.finishLoad();
-//       update();
-//     }
-//   } else {
-//     if (_curPage == 1) {
-//       //展示无数据的布局
-//       state.datas.clear();
-//       changeLoadingState(LoadState.State_Empty);
-//       refreshController.finishRefresh();
-//     } else {
-//       //展示加载完成,没有更多数据了
-//       refreshController.finishLoad(IndicatorResult.noMore);
-//     }
-//   }
-// }
-}

+ 0 - 136
packages/cpt_payment/lib/modules/payment/condo/history/item_condo_active.dart

@@ -1,136 +0,0 @@
-
-import 'package:cs_resources/generated/l10n.dart';
-import 'package:cs_resources/theme/app_colors_theme.dart';
-import 'package:flutter/material.dart';
-import 'package:widgets/ext/ex_widget.dart';
-import 'package:widgets/my_text_view.dart';
-
-///  Condo的Active的Item
-class CondoActiveItem extends StatelessWidget {
-  final int index;
-  final String item;
-
-  const CondoActiveItem({
-    required this.index,
-    required this.item,
-  });
-
-  @override
-  Widget build(BuildContext context) {
-    return Container(
-      width: double.infinity,
-      margin: const EdgeInsets.only(left: 15, right: 15, top: 5, bottom: 5),
-      padding: const EdgeInsets.only(left: 20, right: 15, top: 18, bottom: 25),
-      decoration: BoxDecoration(
-        color: context.appColors.whiteBG,
-        borderRadius: BorderRadius.circular(6.0), // 圆角
-      ),
-      child: Row(
-        mainAxisSize: MainAxisSize.max,
-        crossAxisAlignment: CrossAxisAlignment.start,
-        children: [
-          Column(
-            crossAxisAlignment: CrossAxisAlignment.start,
-            children: [
-              //设施
-              MyTextView(
-                "Lift Padding",
-                fontSize: 16,
-                maxLines: 3,
-                textColor: context.appColors.textBlack,
-                isFontMedium: true,
-              ),
-
-              //分类
-              MyTextView(
-                "Booked by YONGLIANG WU",
-                fontSize: 14,
-                marginTop: 3,
-                textColor: context.appColors.textBlack,
-                isFontRegular: true,
-              ),
-
-              //预订人
-              MyTextView(
-                S.current.booked_by_someone("Wu Bing Bing"),
-                fontSize: 14,
-                marginTop: 3,
-                textColor: context.appColors.textBlack,
-                isFontRegular: true,
-              ),
-
-              //日期
-              MyTextView(
-                "Tue,24 Oct 2023",
-                fontSize: 14,
-                marginTop: 16,
-                textColor: context.appColors.textBlack,
-                isFontRegular: true,
-              ),
-
-              //时间
-              MyTextView(
-                "05:00 PM-10:00 PM",
-                fontSize: 14,
-                marginBottom: 7,
-                marginTop: 3,
-                textColor: context.appColors.textBlack,
-                isFontRegular: true,
-              ),
-
-              //标签
-              Row(
-                children: [
-                  MyTextView(
-                    "Fee Paid",
-                    textColor: context.appColors.textPrimary,
-                    fontSize: 13,
-                    isFontRegular: true,
-                    backgroundColor: context.appColors.lightPurpleBg,
-                    cornerRadius: 3,
-                    paddingLeft: 7,
-                    marginRight: 6,
-                    paddingRight: 7,
-                    paddingTop: 3,
-                    paddingBottom: 3,
-                  ),
-                  MyTextView(
-                    "Deposit",
-                    textColor: context.appColors.textPrimary,
-                    fontSize: 13,
-                    isFontRegular: true,
-                    backgroundColor: context.appColors.lightPurpleBg,
-                    cornerRadius: 3,
-                    paddingLeft: 7,
-                    marginRight: 6,
-                    paddingRight: 7,
-                    paddingTop: 3,
-                    paddingBottom: 3,
-                  )
-                ],
-              )
-            ],
-          ).expanded(),
-          Column(
-            mainAxisSize: MainAxisSize.min,
-            mainAxisAlignment:MainAxisAlignment.start,
-            crossAxisAlignment: CrossAxisAlignment.start,
-            children: [
-              //查看按钮
-              MyTextView(
-                S.current.view,
-                textColor: Colors.white,
-                backgroundColor: context.appColors.btnBgDefault,
-                cornerRadius: 7,
-                paddingTop: 9,
-                paddingBottom: 9,
-                textAlign: TextAlign.center,
-                boxWidth: 60,
-              )
-            ],
-          )
-        ],
-      ),
-    );
-  }
-}

+ 0 - 31
packages/cpt_payment/lib/modules/payment/condo/payment/condo_payment_state.dart

@@ -1,31 +0,0 @@
-import 'package:widgets/load_state_layout.dart';
-
-class CondoPaymentState {
-
-  //页面 LoadView 状态的展示
-  LoadState loadingState;
-  String? errorMessage;
-
-  List<String> datas; //页面列表数据
-
-  // ===================================  Begin  ↓  ===================================
-
-  CondoPaymentState({
-    this.loadingState = LoadState.State_Loading,
-    this.errorMessage,
-    required this.datas,
-  });
-
-  CondoPaymentState copyWith({
-    LoadState? loadingState,
-    String? errorMessage,
-    bool? needShowPlaceholder,
-    List<String>? datas,
-  }) {
-    return CondoPaymentState(
-      errorMessage: errorMessage ?? this.errorMessage,
-      loadingState: loadingState ?? this.loadingState,
-      datas: datas ?? this.datas,
-    );
-  }
-}

+ 0 - 130
packages/cpt_payment/lib/modules/payment/condo/payment/condo_payment_view_model.dart

@@ -1,130 +0,0 @@
-import 'package:riverpod_annotation/riverpod_annotation.dart';
-import 'package:shared/utils/log_utils.dart';
-import 'package:widgets/load_state_layout.dart';
-import 'package:widgets/widget_export.dart';
-
-import 'condo_payment_state.dart';
-
-part 'condo_payment_view_model.g.dart';
-
-@riverpod
-class CondoPaymentViewModel extends _$CondoPaymentViewModel{
-  var _curPage = 1; //请求参数当前的页面
-  var _needShowPlaceholder = true; //是否展示LoadingView
-
-  // Refresh 控制器
-  final EasyRefreshController refreshController = EasyRefreshController(
-    controlFinishRefresh: true,  //允许刷新
-    controlFinishLoad: true,   //允许加载
-  );
-
-  @override
-  CondoPaymentState build() {
-    return CondoPaymentState(datas: []);
-  }
-
-  //刷新页面状态
-  void changeLoadingState(LoadState loadState, String? errorMsg) {
-    state = state.copyWith(loadingState: loadState, errorMessage: errorMsg);
-  }
-
-  // Refresh 刷新事件
-  Future onRefresh() async {
-    _curPage = 1;
-    fetchList();
-  }
-
-  // Refresh 加载事件
-  Future loadMore() async {
-    _curPage++;
-    fetchList();
-  }
-
-  // 重试请求
-  Future retryRequest() async {
-    _curPage = 1;
-    _needShowPlaceholder = true;
-    fetchList();
-  }
-
-  /// 获取服务器数据
-  Future fetchList() async {
-    if (_needShowPlaceholder) {
-      changeLoadingState(LoadState.State_Loading, null);
-    }
-
-    // 获取 Applied 列表
-    // var listResult = await _jobRepository.fetchJobAppliedList(
-    //   state.jobId,
-    //   state.selectedStatusId,
-    //   state.keyword,
-    //   curPage: _curPage,
-    //   cancelToken: cancelToken,
-    // );
-    //
-    // // 处理数据
-    // if (listResult.isSuccess) {
-    //   handleList(listResult.data?.rows);
-    // } else {
-    //   errorMessage = listResult.errorMsg;
-    //   changeLoadingState(LoadState.State_Error);
-    // }
-
-
-    await Future.delayed(const Duration(milliseconds: 1500));
-
-    final List<String> list = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];
-
-    if (_curPage == 1) {
-      //刷新的方式
-      state = state.copyWith(datas: list);
-      refreshController.finishRefresh();
-
-      //更新展示的状态
-      changeLoadingState(LoadState.State_Success, null);
-    } else {
-      //加载更多
-      final allList = state.datas;
-      allList.addAll(list);
-      state.datas.addAll(list);
-
-      refreshController.finishLoad();
-
-      state = state.copyWith(datas: allList);
-    }
-
-    // 最后赋值
-    _needShowPlaceholder = false;
-  }
-
-// 处理数据与展示的逻辑
-// void handleList(List<JobAppliedListSGRows>? list) {
-//   if (list != null && list.isNotEmpty) {
-//     //有数据,判断是刷新还是加载更多的数据
-//     if (_curPage == 1) {
-//       //刷新的方式
-//       state.datas.clear();
-//       state.datas.addAll(list);
-//       refreshController.finishRefresh();
-//
-//       //更新展示的状态
-//       changeLoadingState(LoadState.State_Success);
-//     } else {
-//       //加载更多
-//       state.datas.addAll(list);
-//       refreshController.finishLoad();
-//       update();
-//     }
-//   } else {
-//     if (_curPage == 1) {
-//       //展示无数据的布局
-//       state.datas.clear();
-//       changeLoadingState(LoadState.State_Empty);
-//       refreshController.finishRefresh();
-//     } else {
-//       //展示加载完成,没有更多数据了
-//       refreshController.finishLoad(IndicatorResult.noMore);
-//     }
-//   }
-// }
-}

+ 0 - 27
packages/cpt_payment/lib/modules/payment/condo/payment/condo_payment_view_model.g.dart

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

+ 7 - 8
packages/cpt_payment/lib/modules/payment/condo/history/condo_history_screen.dart

@@ -6,15 +6,15 @@ import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/load_state_layout.dart';
 import 'package:widgets/widget_export.dart';
 
-import 'condo_history_view_model.dart';
-import 'item_condo_history.dart';
+import 'history_list_view_model.dart';
+import 'item_history_list.dart';
 
 @RoutePage()
-class CondoHistoryScreen extends HookConsumerWidget {
+class HistoryListScreen extends HookConsumerWidget {
   @override
   Widget build(BuildContext context, WidgetRef ref) {
-    final viewModel = ref.read(condoHistoryViewModelProvider.notifier);
-    final state = ref.watch(condoHistoryViewModelProvider);
+    final viewModel = ref.read(historyListViewModelProvider.notifier);
+    final state = ref.watch(historyListViewModelProvider);
 
     useEffect(() {
       // 组件挂载时执行 - 执行接口请求
@@ -24,8 +24,7 @@ class CondoHistoryScreen extends HookConsumerWidget {
       };
     }, []);
 
-    return Container(
-      padding: const EdgeInsets.only(top: 60),
+    return SizedBox(
       width: double.infinity,
       height: double.infinity,
       child: EasyRefresh(
@@ -42,7 +41,7 @@ class CondoHistoryScreen extends HookConsumerWidget {
             SliverList(
                 delegate: SliverChildBuilderDelegate(
               (context, index) {
-                return CondoHistoryItem(index: index, item: state.datas[index]).onTap(() {});
+                return HistoryListItem(index: index, item: state.datas[index]).onTap(() {});
               },
               childCount: state.datas.length,
             ))

+ 4 - 4
packages/cpt_payment/lib/modules/payment/condo/active/condo_active_state.dart

@@ -1,6 +1,6 @@
 import 'package:widgets/load_state_layout.dart';
 
-class CondoActiveState {
+class HistoryListState {
 
   //页面 LoadView 状态的展示
   LoadState loadingState;
@@ -10,19 +10,19 @@ class CondoActiveState {
 
   // ===================================  Begin  ↓  ===================================
 
-  CondoActiveState({
+  HistoryListState({
     this.loadingState = LoadState.State_Loading,
     this.errorMessage,
     required this.datas,
   });
 
-  CondoActiveState copyWith({
+  HistoryListState copyWith({
     LoadState? loadingState,
     String? errorMessage,
     bool? needShowPlaceholder,
     List<String>? datas,
   }) {
-    return CondoActiveState(
+    return HistoryListState(
       errorMessage: errorMessage ?? this.errorMessage,
       loadingState: loadingState ?? this.loadingState,
       datas: datas ?? this.datas,

+ 5 - 6
packages/cpt_payment/lib/modules/payment/condo/active/condo_active_view_model.dart

@@ -3,12 +3,11 @@ import 'package:shared/utils/log_utils.dart';
 import 'package:widgets/load_state_layout.dart';
 import 'package:widgets/widget_export.dart';
 
-import 'condo_active_state.dart';
-
-part 'condo_active_view_model.g.dart';
+import 'history_list_state.dart';
+part 'history_list_view_model.g.dart';
 
 @riverpod
-class CondoActiveViewModel extends _$CondoActiveViewModel {
+class HistoryListViewModel extends _$HistoryListViewModel {
   var _curPage = 1; //请求参数当前的页面
   var _needShowPlaceholder = true; //是否展示LoadingView
 
@@ -19,8 +18,8 @@ class CondoActiveViewModel extends _$CondoActiveViewModel {
   );
 
   @override
-  CondoActiveState build() {
-    return CondoActiveState(datas: []);
+  HistoryListState build() {
+    return HistoryListState(datas: []);
   }
 
   //刷新页面状态

+ 11 - 11
packages/cpt_payment/lib/modules/payment/condo/active/condo_active_view_model.g.dart

@@ -1,27 +1,27 @@
 // GENERATED CODE - DO NOT MODIFY BY HAND
 
-part of 'condo_active_view_model.dart';
+part of 'history_list_view_model.dart';
 
 // **************************************************************************
 // RiverpodGenerator
 // **************************************************************************
 
-String _$condoActiveViewModelHash() =>
-    r'd77976d1c081c1aabfafe5895b04bc202ec0beb2';
+String _$historyListViewModelHash() =>
+    r'87eda063f8265a39a0f0ec47b4b1c688ed09b8d1';
 
-/// See also [CondoActiveViewModel].
-@ProviderFor(CondoActiveViewModel)
-final condoActiveViewModelProvider = AutoDisposeNotifierProvider<
-    CondoActiveViewModel, CondoActiveState>.internal(
-  CondoActiveViewModel.new,
-  name: r'condoActiveViewModelProvider',
+/// See also [HistoryListViewModel].
+@ProviderFor(HistoryListViewModel)
+final historyListViewModelProvider = AutoDisposeNotifierProvider<
+    HistoryListViewModel, HistoryListState>.internal(
+  HistoryListViewModel.new,
+  name: r'historyListViewModelProvider',
   debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
       ? null
-      : _$condoActiveViewModelHash,
+      : _$historyListViewModelHash,
   dependencies: null,
   allTransitiveDependencies: null,
 );
 
-typedef _$CondoActiveViewModel = AutoDisposeNotifier<CondoActiveState>;
+typedef _$HistoryListViewModel = AutoDisposeNotifier<HistoryListState>;
 // ignore_for_file: type=lint
 // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 2 - 2
packages/cpt_payment/lib/modules/payment/condo/history/item_condo_history.dart

@@ -5,11 +5,11 @@ import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/my_text_view.dart';
 
 ///  Condo的History的Item
-class CondoHistoryItem extends StatelessWidget {
+class HistoryListItem extends StatelessWidget {
   final int index;
   final String item;
 
-  const CondoHistoryItem({
+  const HistoryListItem({
     required this.index,
     required this.item,
   });

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

@@ -6,7 +6,7 @@ part of 'manage_view_model.dart';
 // RiverpodGenerator
 // **************************************************************************
 
-String _$manageViewModelHash() => r'293b21a526990c4b60cd1875304d814dbd719f8e';
+String _$manageViewModelHash() => r'f4c5c44517f9bd9640d429bf8f95209aae685b8a';
 
 /// See also [ManageViewModel].
 @ProviderFor(ManageViewModel)

+ 11 - 7
packages/cpt_payment/lib/modules/payment/condo/payment/item_condo_payment.dart

@@ -1,15 +1,18 @@
 import 'package:cs_resources/theme/app_colors_theme.dart';
+import 'package:domain/entity/payment_page_entity.dart';
 import 'package:flutter/material.dart';
 import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/my_load_image.dart';
 import 'package:widgets/my_text_view.dart';
 
+import 'payment_list_types.dart';
+
 /// Condo Active 的 Item 布局
-class CondoPaymentItem extends StatelessWidget {
+class PaymentListItem extends StatelessWidget {
   final int index;
-  final String item;
+  final PaymentPageList item;
 
-  const CondoPaymentItem({
+  const PaymentListItem({
     required this.index,
     required this.item,
   });
@@ -37,13 +40,14 @@ class CondoPaymentItem extends StatelessWidget {
         mainAxisSize: MainAxisSize.max,
         crossAxisAlignment: CrossAxisAlignment.center,
         children: [
-          MyLoadImage(
-            "https://img0.baidu.com/it/u=2679587808,2501833998&fm=253&fmt=auto&app=120&f=JPEG?w=372&h=400",
-            height: 33,
+          MyAssetImage(
+            PaymentListTypes.iconMap[item.type]?['icon_path'],
+            width: PaymentListTypes.iconMap[item.type]?['width'],
+            height: PaymentListTypes.iconMap[item.type]?['height'],
           ),
 
           MyTextView(
-            "Function Room",
+            PaymentListTypes.iconMap[item.type]?['name'],
             marginLeft: 17,
             fontSize: 16,
             textColor: context.appColors.textBlack,

+ 7 - 8
packages/cpt_payment/lib/modules/payment/condo/payment/condo_payment_screen.dart

@@ -7,15 +7,15 @@ import 'package:shared/utils/log_utils.dart';
 import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/load_state_layout.dart';
 import 'package:widgets/widget_export.dart';
-import 'condo_payment_view_model.dart';
-import 'item_condo_payment.dart';
+import 'payment_list_view_model.dart';
+import 'item_payment_list.dart';
 
 @RoutePage()
-class CondoPaymentScreen extends HookConsumerWidget {
+class PaymentListScreen extends HookConsumerWidget {
   @override
   Widget build(BuildContext context, WidgetRef ref) {
-    final viewModel = ref.read(condoPaymentViewModelProvider.notifier);
-    final state = ref.watch(condoPaymentViewModelProvider);
+    final viewModel = ref.read(paymentListViewModelProvider.notifier);
+    final state = ref.watch(paymentListViewModelProvider);
 
     useEffect(() {
       // 组件挂载时执行 - 执行接口请求
@@ -25,8 +25,7 @@ class CondoPaymentScreen extends HookConsumerWidget {
       };
     }, []);
 
-    return Container(
-      padding: const EdgeInsets.only(top: 60),
+    return SizedBox(
       width: double.infinity,
       height: double.infinity,
       child: EasyRefresh(
@@ -43,7 +42,7 @@ class CondoPaymentScreen extends HookConsumerWidget {
             SliverList(
                 delegate: SliverChildBuilderDelegate(
                       (context, index) {
-                    return CondoPaymentItem(index: index, item: state.datas[index]).onTap(() {
+                    return PaymentListItem(index: index, item: state.datas[index]).onTap(() {
                       //去信息页面
                       PaymentInfoPage.startInstance(context: context);
                     });

+ 7 - 6
packages/cpt_payment/lib/modules/payment/condo/history/condo_history_state.dart

@@ -1,28 +1,29 @@
+import 'package:domain/entity/payment_page_entity.dart';
 import 'package:widgets/load_state_layout.dart';
 
-class CondoHistoryState {
+class PaymentListState {
 
   //页面 LoadView 状态的展示
   LoadState loadingState;
   String? errorMessage;
 
-  List<String> datas; //页面列表数据
+  List<PaymentPageList> datas; //页面列表数据
 
   // ===================================  Begin  ↓  ===================================
 
-  CondoHistoryState({
+  PaymentListState({
     this.loadingState = LoadState.State_Loading,
     this.errorMessage,
     required this.datas,
   });
 
-  CondoHistoryState copyWith({
+  PaymentListState copyWith({
     LoadState? loadingState,
     String? errorMessage,
     bool? needShowPlaceholder,
-    List<String>? datas,
+    List<PaymentPageList>? datas,
   }) {
-    return CondoHistoryState(
+    return PaymentListState(
       errorMessage: errorMessage ?? this.errorMessage,
       loadingState: loadingState ?? this.loadingState,
       datas: datas ?? this.datas,

+ 25 - 0
packages/cpt_payment/lib/modules/payment/payment/payment_list_types.dart

@@ -0,0 +1,25 @@
+
+import 'package:cs_resources/generated/assets.dart';
+import 'package:cs_resources/generated/l10n.dart';
+
+
+class PaymentListTypes {
+  //对应的type类型 对应的icon的图片与宽高
+  static Map<String, Map<String, dynamic>> iconMap = {
+    //物业费
+    'property': {
+      'name': S.current.property_payment,
+      'icon_path': Assets.formCarVehicle,
+      'width': 39.5,
+      'height': 33.5,
+    },
+    //停车费
+    'vehicle': {
+      'name': S.current.parking_fee_payment,
+      'icon_path': Assets.paymentPropertyPaymentIcon,
+      'width': 39.5,
+      'height': 36.0,
+    },
+  };
+
+}

+ 109 - 0
packages/cpt_payment/lib/modules/payment/payment/payment_list_view_model.dart

@@ -0,0 +1,109 @@
+import 'package:domain/entity/payment_page_entity.dart';
+import 'package:domain/repository/payment_repository.dart';
+import 'package:plugin_platform/http/dio/dio_cancelable_mixin.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+import 'package:shared/utils/log_utils.dart';
+import 'package:widgets/load_state_layout.dart';
+import 'package:widgets/widget_export.dart';
+
+import 'payment_list_state.dart';
+
+part 'payment_list_view_model.g.dart';
+
+@riverpod
+class PaymentListViewModel extends _$PaymentListViewModel with DioCancelableMixin{
+  late final PaymentRepository _paymentRepository;
+  var _curPage = 1; //请求参数当前的页面
+  var _needShowPlaceholder = true; //是否展示LoadingView
+
+  // Refresh 控制器
+  final EasyRefreshController refreshController = EasyRefreshController(
+    controlFinishRefresh: true, //允许刷新
+    controlFinishLoad: true, //允许加载
+  );
+
+  @override
+  PaymentListState build() {
+    _paymentRepository = ref.read(paymentRepositoryProvider);
+    final state = PaymentListState(datas: []);
+    registerCancellation();
+    return state;
+  }
+
+  //刷新页面状态
+  void changeLoadingState(LoadState loadState, String? errorMsg) {
+    state = state.copyWith(loadingState: loadState, errorMessage: errorMsg);
+  }
+
+  // Refresh 刷新事件
+  Future onRefresh() async {
+    _curPage = 1;
+    fetchList();
+  }
+
+  // Refresh 加载事件
+  Future loadMore() async {
+    _curPage++;
+    fetchList();
+  }
+
+  // 重试请求
+  Future retryRequest() async {
+    _curPage = 1;
+    _needShowPlaceholder = true;
+    fetchList();
+  }
+
+  /// 获取服务器数据
+  Future fetchList() async {
+    if (_needShowPlaceholder) {
+      changeLoadingState(LoadState.State_Loading, null);
+    }
+
+    // 获取列表
+    var listResult = await _paymentRepository.fetchPaymentList(
+      type: 'pending',
+      curPage: _curPage,
+      cancelToken: cancelToken,
+    );
+
+    // 处理数据
+    if (listResult.isSuccess) {
+      handleList(listResult.data?.list);
+    } else {
+      changeLoadingState(LoadState.State_Error, listResult.errorMsg);
+    }
+
+    // 最后赋值
+    _needShowPlaceholder = false;
+  }
+
+  // 处理数据与展示的逻辑
+  void handleList(List<PaymentPageList>? list) {
+    if (list != null && list.isNotEmpty) {
+      //有数据,判断是刷新还是加载更多的数据
+      if (_curPage == 1) {
+        //刷新的方式
+        state = state.copyWith(datas: list);
+        refreshController.finishRefresh();
+
+        //更新展示的状态
+        changeLoadingState(LoadState.State_Success, null);
+      } else {
+        //加载更多
+        state.datas.addAll(List<PaymentPageList>.from(state.datas)..addAll(list));
+        refreshController.finishLoad();
+      }
+    } else {
+      if (_curPage == 1) {
+        //展示无数据的布局
+        state = state.copyWith(datas: []);
+        changeLoadingState(LoadState.State_Empty, null);
+        refreshController.finishRefresh();
+      } else {
+        //展示加载完成,没有更多数据了
+        refreshController.finishLoad(IndicatorResult.noMore);
+      }
+    }
+  }
+}

+ 11 - 11
packages/cpt_payment/lib/modules/payment/condo/history/condo_history_view_model.g.dart

@@ -1,27 +1,27 @@
 // GENERATED CODE - DO NOT MODIFY BY HAND
 
-part of 'condo_history_view_model.dart';
+part of 'payment_list_view_model.dart';
 
 // **************************************************************************
 // RiverpodGenerator
 // **************************************************************************
 
-String _$condoHistoryViewModelHash() =>
-    r'7ab487088e11c7906117e903b6fcda88f4b5558c';
+String _$paymentListViewModelHash() =>
+    r'640d7c8a8415a9987bb43e592076c0ebc70c0f30';
 
-/// See also [CondoHistoryViewModel].
-@ProviderFor(CondoHistoryViewModel)
-final condoHistoryViewModelProvider = AutoDisposeNotifierProvider<
-    CondoHistoryViewModel, CondoHistoryState>.internal(
-  CondoHistoryViewModel.new,
-  name: r'condoHistoryViewModelProvider',
+/// See also [PaymentListViewModel].
+@ProviderFor(PaymentListViewModel)
+final paymentListViewModelProvider = AutoDisposeNotifierProvider<
+    PaymentListViewModel, PaymentListState>.internal(
+  PaymentListViewModel.new,
+  name: r'paymentListViewModelProvider',
   debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
       ? null
-      : _$condoHistoryViewModelHash,
+      : _$paymentListViewModelHash,
   dependencies: null,
   allTransitiveDependencies: null,
 );
 
-typedef _$CondoHistoryViewModel = AutoDisposeNotifier<CondoHistoryState>;
+typedef _$PaymentListViewModel = AutoDisposeNotifier<PaymentListState>;
 // ignore_for_file: type=lint
 // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

+ 29 - 80
packages/cpt_payment/lib/modules/payment/payment_page.dart

@@ -2,14 +2,11 @@ import 'package:cpt_payment/modules/payment/payment_view_model.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:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/services.dart';
-import 'package:flutter_hooks/flutter_hooks.dart';
 import 'package:hooks_riverpod/hooks_riverpod.dart';
 import 'package:router/ext/auto_router_extensions.dart';
-import 'package:shared/utils/log_utils.dart';
 import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/my_appbar.dart';
 import 'package:widgets/my_load_image.dart';
@@ -33,7 +30,6 @@ class PaymentPage extends HookConsumerWidget {
   @override
   Widget build(BuildContext context, WidgetRef ref) {
     final viewModel = ref.watch(paymentViewModelProvider.notifier);
-    int selectedInnerIndex = 1; // 1-3索引记录当前的值
 
     return Scaffold(
       appBar: MyAppBar.appBar(
@@ -45,21 +41,13 @@ class PaymentPage extends HookConsumerWidget {
       body: AutoTabsRouter.pageView(
         routes: const [
           InfoPageRoute(),
-          CondoPaymentPageRoute(),
-          CondoActivePageRoute(),
-          CondoHistoryPageRoute(),
+          PaymentListPageRoute(),
+          HistoryListPageRoute(),
           ManagePageRoute(),
         ],
         builder: (context, child, pageController) {
           final tabsRouter = AutoTabsRouter.of(context);
 
-          pageController.addListener(() {
-            //监听赋值内部的选中索引
-            if (tabsRouter.activeIndex >= 1 && tabsRouter.activeIndex <= 3) {
-              selectedInnerIndex = tabsRouter.activeIndex;
-            }
-          });
-
           return Column(
             children: [
               Container(
@@ -71,9 +59,9 @@ class PaymentPage extends HookConsumerWidget {
                     _buildTopCategory(
                       context,
                       Assets.paymentInfoIcon,
-                      34,
-                      41,
-                      "Info",
+                      41.0,
+                      41.0,
+                      S.current.info,
                       tabsRouter.activeIndex == 0,
                     ).onTap(
                       () {
@@ -82,69 +70,45 @@ class PaymentPage extends HookConsumerWidget {
                     ),
                     _buildTopCategory(
                       context,
-                      Assets.paymentCondoIcon,
-                      48,
-                      43,
-                      "Condo",
-                      tabsRouter.activeIndex == 1 || tabsRouter.activeIndex == 2 || tabsRouter.activeIndex == 3,
+                      Assets.paymentPaymentIcon,
+                      37.5,
+                      38.0,
+                      S.current.payment,
+                      tabsRouter.activeIndex == 1,
                     ).onTap(
                       () {
-                        tabsRouter.setActiveIndex(selectedInnerIndex);
+                        tabsRouter.setActiveIndex(1);
+                      },
+                    ),
+                    _buildTopCategory(
+                      context,
+                      Assets.paymentHistoryIcon,
+                      38.0,
+                      38.0,
+                      S.current.history,
+                      tabsRouter.activeIndex == 2,
+                    ).onTap(
+                          () {
+                        tabsRouter.setActiveIndex(2);
                       },
                     ),
                     _buildTopCategory(
                       context,
                       Assets.paymentManageIcon,
-                      52,
-                      46.5,
-                      "Manage",
-                      tabsRouter.activeIndex == 4,
+                      42.0,
+                      32.0,
+                      S.current.manage,
+                      tabsRouter.activeIndex == 3,
                     ).onTap(
                       () {
-                        tabsRouter.setActiveIndex(4);
+                        tabsRouter.setActiveIndex(3);
                       },
                     ),
                   ],
                 ),
               ),
               Expanded(
-                child: Stack(
-                  children: [
-                    //真正页面
-                    child,
-
-                    //顶部的子Tab
-                    Visibility(
-                      visible: tabsRouter.activeIndex >= 1 && tabsRouter.activeIndex <= 3,
-                      child: Row(
-                        mainAxisAlignment: MainAxisAlignment.spaceAround,
-                        children: [
-                          _buildInnerTab(
-                            context,
-                            S.current.payment,
-                            tabsRouter.activeIndex == 1,
-                          ).onTap(() {
-                            tabsRouter.setActiveIndex(1);
-                          }),
-                          _buildInnerTab(
-                            context,
-                            S.current.facility_active,
-                            tabsRouter.activeIndex == 2,
-                          ).onTap(() {
-                            tabsRouter.setActiveIndex(2);
-                          }),
-                          _buildInnerTab(
-                            context,
-                            S.current.history,
-                            tabsRouter.activeIndex == 3,
-                          ).onTap(() {
-                            tabsRouter.setActiveIndex(3);
-                          }),
-                        ],
-                      ).marginOnly(top: 14, bottom: 17),
-                    ),
-                  ],
-                ),
+                child: child,
               ),
             ],
           );
@@ -191,19 +155,4 @@ class PaymentPage extends HookConsumerWidget {
     );
   }
 
-  //内部的Tab布局
-  Widget _buildInnerTab(BuildContext context, String title, bool isSelected) {
-    return MyTextView(
-      title,
-      fontSize: 16,
-      isFontMedium: true,
-      textColor: isSelected ? Colors.white : context.appColors.tabTextUnSelectedDefault,
-      backgroundColor: isSelected ? context.appColors.btnBgDefault : Colors.transparent,
-      cornerRadius: 16.5,
-      paddingLeft: 20,
-      paddingRight: 20,
-      paddingTop: 8,
-      paddingBottom: 8,
-    );
-  }
 }

+ 1 - 1
packages/cpt_payment/lib/modules/payment_confirm/payment_confirm_view_model.g.dart

@@ -7,7 +7,7 @@ part of 'payment_confirm_view_model.dart';
 // **************************************************************************
 
 String _$paymentConfirmViewModelHash() =>
-    r'26ef4699c914cade800b8ac812b34acda0988cd2';
+    r'd49571f12210320ab33926074746f9d30710dfbc';
 
 /// See also [PaymentConfirmViewModel].
 @ProviderFor(PaymentConfirmViewModel)

+ 1 - 2
packages/cpt_payment/lib/modules/payment_info/payment_info_page.dart

@@ -1,4 +1,3 @@
-import 'package:cpt_payment/modules/payment/condo/active/condo_active_screen.dart';
 import 'package:cs_resources/generated/assets.dart';
 import 'package:cs_resources/generated/l10n.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
@@ -53,7 +52,7 @@ class PaymentInfoPage extends HookConsumerWidget {
                         children: [
                           const MyAssetImage(Assets.paymentInfoDetails, width: 27, height: 27),
                           MyTextView(
-                            S.current.payment_details,
+                             S.current.payment_details,
                             textColor: context.appColors.textBlack,
                             fontSize: 17,
                             marginLeft: 14,

+ 1 - 1
packages/cpt_payment/lib/modules/payment_info/payment_info_view_model.g.dart

@@ -7,7 +7,7 @@ part of 'payment_info_view_model.dart';
 // **************************************************************************
 
 String _$paymentInfoViewModelHash() =>
-    r'f653c43001ec0c83f0e85f41b0b14919b14a78a5';
+    r'24cf0498be6ba7ed9cff855d084e4376b1db3613';
 
 /// See also [PaymentInfoViewModel].
 @ProviderFor(PaymentInfoViewModel)

+ 6 - 6
packages/cpt_payment/lib/router/page/payment_page_router.dart

@@ -6,14 +6,15 @@ import 'package:router/path/router_path.dart';
 import '../../modules/payment/payment_page.dart';
 import '../../modules/payment/info/info_screen.dart';
 import '../../modules/payment/manage/manage_screen.dart';
-import '../../modules/payment/condo/active/condo_active_screen.dart';
-import '../../modules/payment/condo/history/condo_history_screen.dart';
-import '../../modules/payment/condo/payment/condo_payment_screen.dart';
+import '../../modules/payment/history/history_list_screen.dart';
+import '../../modules/payment/payment/payment_list_screen.dart';
 import '../../modules/payment_info/payment_info_page.dart';
 import '../../modules/payment_confirm/payment_confirm_page.dart';
 import '../../modules/payment_success/payment_success_page.dart';
 import '../../modules/add_card/add_card_page.dart';
 import '../../modules/choose_card/choose_card_page.dart';
+import '../../modules/payment/payment/payment_list_screen.dart';
+import '../../modules/payment/history/history_list_screen.dart';
 
 part 'payment_page_router.gr.dart';
 
@@ -30,9 +31,8 @@ class PaymentPageRouter extends _$PaymentPageRouter {
           transitionsBuilder: applySlideTransition,
           children: [
             AutoRoute(page: InfoPageRoute.page, path: 'info'),
-            AutoRoute(page: CondoPaymentPageRoute.page, path: 'payment'),
-            AutoRoute(page: CondoActivePageRoute.page, path: 'active'),
-            AutoRoute(page: CondoHistoryPageRoute.page, path: 'history'),
+            AutoRoute(page: PaymentListPageRoute.page, path: 'payment'),
+            AutoRoute(page: HistoryListPageRoute.page, path: 'history'),
             AutoRoute(page: ManagePageRoute.page, path: 'manage'),
           ],
         ),

+ 27 - 47
packages/cpt_payment/lib/router/page/payment_page_router.gr.dart

@@ -27,22 +27,10 @@ abstract class _$PaymentPageRouter extends RootStackRouter {
         child: const ChooseCardPage(),
       );
     },
-    CondoActivePageRoute.name: (routeData) {
+    HistoryListPageRoute.name: (routeData) {
       return AutoRoutePage<dynamic>(
         routeData: routeData,
-        child: CondoActiveScreen(),
-      );
-    },
-    CondoHistoryPageRoute.name: (routeData) {
-      return AutoRoutePage<dynamic>(
-        routeData: routeData,
-        child: CondoHistoryScreen(),
-      );
-    },
-    CondoPaymentPageRoute.name: (routeData) {
-      return AutoRoutePage<dynamic>(
-        routeData: routeData,
-        child: CondoPaymentScreen(),
+        child: HistoryListScreen(),
       );
     },
     InfoPageRoute.name: (routeData) {
@@ -69,6 +57,12 @@ abstract class _$PaymentPageRouter extends RootStackRouter {
         child: const PaymentInfoPage(),
       );
     },
+    PaymentListPageRoute.name: (routeData) {
+      return AutoRoutePage<dynamic>(
+        routeData: routeData,
+        child: PaymentListScreen(),
+      );
+    },
     PaymentPageRoute.name: (routeData) {
       return AutoRoutePage<dynamic>(
         routeData: routeData,
@@ -113,43 +107,15 @@ class ChooseCardPageRoute extends PageRouteInfo<void> {
 }
 
 /// generated route for
-/// [CondoActiveScreen]
-class CondoActivePageRoute extends PageRouteInfo<void> {
-  const CondoActivePageRoute({List<PageRouteInfo>? children})
+/// [HistoryListScreen]
+class HistoryListPageRoute extends PageRouteInfo<void> {
+  const HistoryListPageRoute({List<PageRouteInfo>? children})
       : super(
-          CondoActivePageRoute.name,
+          HistoryListPageRoute.name,
           initialChildren: children,
         );
 
-  static const String name = 'CondoActivePageRoute';
-
-  static const PageInfo<void> page = PageInfo<void>(name);
-}
-
-/// generated route for
-/// [CondoHistoryScreen]
-class CondoHistoryPageRoute extends PageRouteInfo<void> {
-  const CondoHistoryPageRoute({List<PageRouteInfo>? children})
-      : super(
-          CondoHistoryPageRoute.name,
-          initialChildren: children,
-        );
-
-  static const String name = 'CondoHistoryPageRoute';
-
-  static const PageInfo<void> page = PageInfo<void>(name);
-}
-
-/// generated route for
-/// [CondoPaymentScreen]
-class CondoPaymentPageRoute extends PageRouteInfo<void> {
-  const CondoPaymentPageRoute({List<PageRouteInfo>? children})
-      : super(
-          CondoPaymentPageRoute.name,
-          initialChildren: children,
-        );
-
-  static const String name = 'CondoPaymentPageRoute';
+  static const String name = 'HistoryListPageRoute';
 
   static const PageInfo<void> page = PageInfo<void>(name);
 }
@@ -211,6 +177,20 @@ class PaymentInfoPageRoute extends PageRouteInfo<void> {
 }
 
 /// generated route for
+/// [PaymentListScreen]
+class PaymentListPageRoute extends PageRouteInfo<void> {
+  const PaymentListPageRoute({List<PageRouteInfo>? children})
+      : super(
+          PaymentListPageRoute.name,
+          initialChildren: children,
+        );
+
+  static const String name = 'PaymentListPageRoute';
+
+  static const PageInfo<void> page = PageInfo<void>(name);
+}
+
+/// generated route for
 /// [PaymentPage]
 class PaymentPageRoute extends PageRouteInfo<void> {
   const PaymentPageRoute({List<PageRouteInfo>? children})

+ 5 - 0
packages/cs_domain/lib/constants/api_constants.dart

@@ -128,6 +128,11 @@ class ApiConstants {
   //获取预约Booking的详情
   static const apiFacilityBookingDetail = "/api/v1/user/facility/booking/detail";
 
+  // =========================== Payment ↓=========================================
+
+  //可支付列表
+  static const apiPaymentList = "/api/v1/user/payment/bill/index";
+
 
   // =========================== 其他 ↓=========================================
 

+ 51 - 0
packages/cs_domain/lib/entity/payment_page_entity.dart

@@ -0,0 +1,51 @@
+import 'package:domain/generated/json/base/json_field.dart';
+import 'package:domain/generated/json/payment_page_entity.g.dart';
+import 'dart:convert';
+export 'package:domain/generated/json/payment_page_entity.g.dart';
+
+@JsonSerializable()
+class PaymentPageEntity {
+  int count = 0;
+  int page = 0;
+  int limit = 0;
+  @JSONField(name: "count_page")
+  int countPage = 0;
+  List<PaymentPageList> list = [];
+
+  PaymentPageEntity();
+
+  factory PaymentPageEntity.fromJson(Map<String, dynamic> json) => $PaymentPageEntityFromJson(json);
+
+  Map<String, dynamic> toJson() => $PaymentPageEntityToJson(this);
+
+  @override
+  String toString() {
+    return jsonEncode(this);
+  }
+}
+
+@JsonSerializable()
+class PaymentPageList {
+  String? id;
+  String? type;
+  @JSONField(name: "start_at")
+  String? startAt;
+  @JSONField(name: "end_at")
+  String? endAt;
+  String? amount;
+  @JSONField(name: "paid_by")
+  dynamic paidBy;
+  @JSONField(name: "created_at")
+  String? createdAt;
+
+  PaymentPageList();
+
+  factory PaymentPageList.fromJson(Map<String, dynamic> json) => $PaymentPageListFromJson(json);
+
+  Map<String, dynamic> toJson() => $PaymentPageListToJson(this);
+
+  @override
+  String toString() {
+    return jsonEncode(this);
+  }
+}

+ 9 - 0
packages/cs_domain/lib/generated/json/base/json_convert_content.dart

@@ -31,6 +31,7 @@ import 'package:domain/entity/newsfeed_news_entity.dart';
 import 'package:domain/entity/notice_board_announ_entity.dart';
 import 'package:domain/entity/notice_board_documents_entity.dart';
 import 'package:domain/entity/notice_board_event_entity.dart';
+import 'package:domain/entity/payment_page_entity.dart';
 import 'package:domain/entity/property_news_entity.dart';
 import 'package:domain/entity/property_sale_rent_entity.dart';
 import 'package:domain/entity/server_time.dart';
@@ -394,6 +395,12 @@ class JsonConvert {
       return data.map<NoticeBoardEventEntity>((Map<String, dynamic> e) =>
           NoticeBoardEventEntity.fromJson(e)).toList() as M;
     }
+    if (<PaymentPageEntity>[] is M) {
+      return data.map<PaymentPageEntity>((Map<String, dynamic> e) => PaymentPageEntity.fromJson(e)).toList() as M;
+    }
+    if (<PaymentPageList>[] is M) {
+      return data.map<PaymentPageList>((Map<String, dynamic> e) => PaymentPageList.fromJson(e)).toList() as M;
+    }
     if (<PropertyNewsEntity>[] is M) {
       return data.map<PropertyNewsEntity>((Map<String, dynamic> e) =>
           PropertyNewsEntity.fromJson(e)).toList() as M;
@@ -538,6 +545,8 @@ class JsonConvertClassCollection {
     (NoticeBoardDocumentsEntity).toString(): NoticeBoardDocumentsEntity
         .fromJson,
     (NoticeBoardEventEntity).toString(): NoticeBoardEventEntity.fromJson,
+    (PaymentPageEntity).toString(): PaymentPageEntity.fromJson,
+    (PaymentPageList).toString(): PaymentPageList.fromJson,
     (PropertyNewsEntity).toString(): PropertyNewsEntity.fromJson,
     (PropertyNewsList).toString(): PropertyNewsList.fromJson,
     (PropertySaleRentEntity).toString(): PropertySaleRentEntity.fromJson,

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

@@ -0,0 +1,121 @@
+import 'package:domain/generated/json/base/json_convert_content.dart';
+import 'package:domain/entity/payment_page_entity.dart';
+
+PaymentPageEntity $PaymentPageEntityFromJson(Map<String, dynamic> json) {
+  final PaymentPageEntity paymentPageEntity = PaymentPageEntity();
+  final int? count = jsonConvert.convert<int>(json['count']);
+  if (count != null) {
+    paymentPageEntity.count = count;
+  }
+  final int? page = jsonConvert.convert<int>(json['page']);
+  if (page != null) {
+    paymentPageEntity.page = page;
+  }
+  final int? limit = jsonConvert.convert<int>(json['limit']);
+  if (limit != null) {
+    paymentPageEntity.limit = limit;
+  }
+  final int? countPage = jsonConvert.convert<int>(json['count_page']);
+  if (countPage != null) {
+    paymentPageEntity.countPage = countPage;
+  }
+  final List<PaymentPageList>? list = (json['list'] as List<dynamic>?)?.map(
+          (e) => jsonConvert.convert<PaymentPageList>(e) as PaymentPageList).toList();
+  if (list != null) {
+    paymentPageEntity.list = list;
+  }
+  return paymentPageEntity;
+}
+
+Map<String, dynamic> $PaymentPageEntityToJson(PaymentPageEntity entity) {
+  final Map<String, dynamic> data = <String, dynamic>{};
+  data['count'] = entity.count;
+  data['page'] = entity.page;
+  data['limit'] = entity.limit;
+  data['count_page'] = entity.countPage;
+  data['list'] = entity.list.map((v) => v.toJson()).toList();
+  return data;
+}
+
+extension PaymentPageEntityExtension on PaymentPageEntity {
+  PaymentPageEntity copyWith({
+    int? count,
+    int? page,
+    int? limit,
+    int? countPage,
+    List<PaymentPageList>? list,
+  }) {
+    return PaymentPageEntity()
+      ..count = count ?? this.count
+      ..page = page ?? this.page
+      ..limit = limit ?? this.limit
+      ..countPage = countPage ?? this.countPage
+      ..list = list ?? this.list;
+  }
+}
+
+PaymentPageList $PaymentPageListFromJson(Map<String, dynamic> json) {
+  final PaymentPageList paymentPageList = PaymentPageList();
+  final String? id = jsonConvert.convert<String>(json['id']);
+  if (id != null) {
+    paymentPageList.id = id;
+  }
+  final String? type = jsonConvert.convert<String>(json['type']);
+  if (type != null) {
+    paymentPageList.type = type;
+  }
+  final String? startAt = jsonConvert.convert<String>(json['start_at']);
+  if (startAt != null) {
+    paymentPageList.startAt = startAt;
+  }
+  final String? endAt = jsonConvert.convert<String>(json['end_at']);
+  if (endAt != null) {
+    paymentPageList.endAt = endAt;
+  }
+  final String? amount = jsonConvert.convert<String>(json['amount']);
+  if (amount != null) {
+    paymentPageList.amount = amount;
+  }
+  final dynamic paidBy = json['paid_by'];
+  if (paidBy != null) {
+    paymentPageList.paidBy = paidBy;
+  }
+  final String? createdAt = jsonConvert.convert<String>(json['created_at']);
+  if (createdAt != null) {
+    paymentPageList.createdAt = createdAt;
+  }
+  return paymentPageList;
+}
+
+Map<String, dynamic> $PaymentPageListToJson(PaymentPageList entity) {
+  final Map<String, dynamic> data = <String, dynamic>{};
+  data['id'] = entity.id;
+  data['type'] = entity.type;
+  data['start_at'] = entity.startAt;
+  data['end_at'] = entity.endAt;
+  data['amount'] = entity.amount;
+  data['paid_by'] = entity.paidBy;
+  data['created_at'] = entity.createdAt;
+  return data;
+}
+
+extension PaymentPageListExtension on PaymentPageList {
+  PaymentPageList copyWith({
+    String? id,
+    String? type,
+    String? startAt,
+    String? endAt,
+    String? amount,
+    dynamic paidBy,
+    String? createdAt,
+  }) {
+    return PaymentPageList()
+      ..id = id ?? this.id
+      ..type = type ?? this.type
+      ..startAt = startAt ?? this.startAt
+      ..endAt = endAt ?? this.endAt
+      ..amount = amount ?? this.amount
+      ..paidBy = paidBy ?? this.paidBy
+      ..createdAt = createdAt ?? this.createdAt;
+  }
+}

+ 0 - 63
packages/cs_domain/lib/repository/demo_repository.dart

@@ -1,63 +0,0 @@
-import 'package:domain/entity/server_time.dart';
-import 'package:plugin_platform/platform_export.dart';
-import 'package:plugin_platform/http/dio_engine.dart';
-import 'package:plugin_platform/http/http_result.dart';
-import 'package:riverpod_annotation/riverpod_annotation.dart';
-import 'package:shared/utils/util.dart';
-
-import '../constants/api_constants.dart';
-import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:plugin_basic/provider/http_provider/http_provider.dart';
-
-part 'demo_repository.g.dart';
-
-@Riverpod(keepAlive: true)
-DemoRepository demoRepository(Ref ref) {
-  final dioEngine = ref.watch(dioEngineProvider);
-  return DemoRepository(dioEngine: dioEngine);
-}
-
-/*
- * 测试用的数据仓库
- */
-class DemoRepository {
-  DioEngine dioEngine;
-
-  DemoRepository({required this.dioEngine});
-
-  Future<HttpResult<ServerTime>> fetchServerTime(
-    String? type, {
-    CancelToken? cancelToken,
-  }) async {
-    Map<String, String> params = {};
-
-    if (!Utils.isEmpty(type)) {
-      params["type"] = type!;
-    }
-
-    Map<String, String> headers = {};
-
-    headers["Content-Type"] = "application/x-www-form-urlencoded";
-    headers["Accept"] = "application/x.yyjobs-api.v1+json";
-
-    final result = await dioEngine.requestNetResult(
-      ApiConstants.apiServerTime,
-      params: params,
-      headers: headers,
-      method: HttpMethod.GET,
-      isShowLoadingDialog: true,  //是否展示默认的Loading弹窗
-      networkDebounce: true,   //是否防抖防止重复请求
-      cancelToken: cancelToken,
-    );
-
-    //根据返回的结果,封装原始数据为Bean/Entity对象
-    if (result.isSuccess) {
-      //重新赋值data或list
-      final json = result.getDataJson();
-      var data = ServerTime.fromJson(json!);
-      //重新赋值data或list
-      return result.convert<ServerTime>(data: data);
-    }
-    return result.convert();
-  }
-}

+ 54 - 0
packages/cs_domain/lib/repository/payment_repository.dart

@@ -0,0 +1,54 @@
+import 'dart:typed_data';
+
+import 'package:domain/entity/payment_page_entity.dart';
+import 'package:plugin_platform/platform_export.dart';
+import 'package:plugin_platform/http/dio_engine.dart';
+import 'package:plugin_platform/http/http_result.dart';
+import 'package:riverpod_annotation/riverpod_annotation.dart';
+import '../constants/api_constants.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+import 'package:plugin_basic/provider/http_provider/http_provider.dart';
+
+part 'payment_repository.g.dart';
+
+@Riverpod(keepAlive: true)
+PaymentRepository paymentRepository(Ref ref) {
+  final dioEngine = ref.watch(dioEngineProvider);
+  return PaymentRepository(dioEngine: dioEngine);
+}
+
+/*
+ * 支付模块的数据仓库
+ */
+class PaymentRepository {
+  DioEngine dioEngine;
+
+  PaymentRepository({required this.dioEngine});
+
+
+  /// 获取支付列表
+  Future<HttpResult<PaymentPageEntity>> fetchPaymentList({
+    required String type,
+    required int curPage,
+    CancelToken? cancelToken,
+  }) async {
+    Map<String, String> params = {};
+    params['type'] = type;
+    params['page'] = curPage.toString();
+    params['limit'] = "10";
+
+    final result = await dioEngine.requestNetResult(
+      ApiConstants.apiPaymentList,
+      params: params,
+      method: HttpMethod.GET,
+      cancelToken: cancelToken,
+    );
+
+    if (result.isSuccess) {
+      final json = result.getDataJson();
+      var data = PaymentPageEntity.fromJson(json!);
+      return result.convert<PaymentPageEntity>(data: data);
+    }
+    return result.convert();
+  }
+}

+ 9 - 9
packages/cs_domain/lib/repository/demo_repository.g.dart

@@ -1,27 +1,27 @@
 // GENERATED CODE - DO NOT MODIFY BY HAND
 
-part of 'demo_repository.dart';
+part of 'payment_repository.dart';
 
 // **************************************************************************
 // RiverpodGenerator
 // **************************************************************************
 
-String _$demoRepositoryHash() => r'e777a23ad750b13b09ce23ebe0e2ac940f0dfad4';
+String _$paymentRepositoryHash() => r'672f69cb24668dd89fb66a60eaf9bf65ab37d3f8';
 
-/// See also [demoRepository].
-@ProviderFor(demoRepository)
-final demoRepositoryProvider = Provider<DemoRepository>.internal(
-  demoRepository,
-  name: r'demoRepositoryProvider',
+/// See also [paymentRepository].
+@ProviderFor(paymentRepository)
+final paymentRepositoryProvider = Provider<PaymentRepository>.internal(
+  paymentRepository,
+  name: r'paymentRepositoryProvider',
   debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
       ? null
-      : _$demoRepositoryHash,
+      : _$paymentRepositoryHash,
   dependencies: null,
   allTransitiveDependencies: null,
 );
 
 @Deprecated('Will be removed in 3.0. Use Ref instead')
 // ignore: unused_element
-typedef DemoRepositoryRef = ProviderRef<DemoRepository>;
+typedef PaymentRepositoryRef = ProviderRef<PaymentRepository>;
 // ignore_for_file: type=lint
 // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

二进制
packages/cs_resources/assets/payment/condo_icon.webp


二进制
packages/cs_resources/assets/payment/history_icon.webp


二进制
packages/cs_resources/assets/payment/info_icon.webp


二进制
packages/cs_resources/assets/payment/manage_icon.webp


二进制
packages/cs_resources/assets/payment/payment_icon.webp


二进制
packages/cs_resources/assets/payment/property_payment_icon.webp


+ 3 - 1
packages/cs_resources/lib/generated/assets.dart

@@ -158,7 +158,7 @@ class Assets {
   static const String paymentCardIcon = 'assets/payment/card_icon.webp';
   static const String paymentCardName = 'assets/payment/card_name.webp';
   static const String paymentCardNumber = 'assets/payment/card_number.webp';
-  static const String paymentCondoIcon = 'assets/payment/condo_icon.webp';
+  static const String paymentHistoryIcon = 'assets/payment/history_icon.webp';
   static const String paymentInfoBusiness = 'assets/payment/info_business.webp';
   static const String paymentInfoCardGroup = 'assets/payment/info_card_group.webp';
   static const String paymentInfoCashBack = 'assets/payment/info_cash_back.webp';
@@ -169,6 +169,8 @@ class Assets {
   static const String paymentInfoTopImage = 'assets/payment/info_top_image.webp';
   static const String paymentManageIcon = 'assets/payment/manage_icon.webp';
   static const String paymentMasterCardIcon = 'assets/payment/master_card_icon.webp';
+  static const String paymentPaymentIcon = 'assets/payment/payment_icon.webp';
+  static const String paymentPropertyPaymentIcon = 'assets/payment/property_payment_icon.webp';
   static const String paymentTitleQuestionIcon = 'assets/payment/title_question_icon.webp';
   static const String paymentVisaIcon = 'assets/payment/visa_icon.webp';
   static const String profileEditDialogDelete = 'assets/profile/edit_dialog_delete.webp';

+ 5 - 0
packages/cs_resources/lib/generated/intl/messages_en.dart

@@ -242,6 +242,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "logout": MessageLookupByLibrary.simpleMessage("Logout"),
         "logout_alert": MessageLookupByLibrary.simpleMessage(
             "Are you sure you want to logout?"),
+        "manage": MessageLookupByLibrary.simpleMessage("Manage"),
         "mark_all": MessageLookupByLibrary.simpleMessage("Mark All"),
         "me": MessageLookupByLibrary.simpleMessage("Me"),
         "media_room": MessageLookupByLibrary.simpleMessage("Media Room"),
@@ -296,6 +297,8 @@ class MessageLookup extends MessageLookupByLibrary {
         "ownership_status":
             MessageLookupByLibrary.simpleMessage("OWNERSHIP STATUS"),
         "paid_on": MessageLookupByLibrary.simpleMessage("paid on"),
+        "parking_fee_payment":
+            MessageLookupByLibrary.simpleMessage("Parking Fee Payment"),
         "password": MessageLookupByLibrary.simpleMessage("Password"),
         "password_format":
             MessageLookupByLibrary.simpleMessage("8 Digits Alphanumeric"),
@@ -320,6 +323,8 @@ class MessageLookup extends MessageLookupByLibrary {
         "property_guide":
             MessageLookupByLibrary.simpleMessage("Property Guide"),
         "property_news": MessageLookupByLibrary.simpleMessage("Property News"),
+        "property_payment":
+            MessageLookupByLibrary.simpleMessage("Property Payment"),
         "publish": MessageLookupByLibrary.simpleMessage("Publish"),
         "published_successful_txt": MessageLookupByLibrary.simpleMessage(
             "Your feedback has been successfully sent! We will reply to you as soon as possible! thank you!"),

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

@@ -2840,6 +2840,36 @@ class S {
     );
   }
 
+  /// `Manage`
+  String get manage {
+    return Intl.message(
+      'Manage',
+      name: 'manage',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Parking Fee Payment`
+  String get parking_fee_payment {
+    return Intl.message(
+      'Parking Fee Payment',
+      name: 'parking_fee_payment',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Property Payment`
+  String get property_payment {
+    return Intl.message(
+      'Property Payment',
+      name: 'property_payment',
+      desc: '',
+      args: [],
+    );
+  }
+
   /// `Other`
   String get other {
     return Intl.message(

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

@@ -278,5 +278,8 @@
   "tennis_court": "Tennis Court",
   "hold_started_on": "hold started on",
   "released_on": "released on",
+  "manage": "Manage",
+  "parking_fee_payment": "Parking Fee Payment",
+  "property_payment": "Property Payment",
   "other": "Other"
 }

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

@@ -278,5 +278,8 @@
   "tennis_court": "网球场",
   "hold_started_on": "押金付款于",
   "released_on": "押金退款于",
+  "manage": "管理",
+  "parking_fee_payment": "停车费",
+  "property_payment": "物业费",
   "other": "其他"
 }

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

@@ -264,5 +264,8 @@
   "tennis_court": "网球场",
   "hold_started_on": "押金付款于",
   "released_on": "押金退款于",
+  "manage": "管理",
+  "parking_fee_payment": "停车费",
+  "property_payment": "物业费",
   "other": "其他"
 }