Browse Source

Merge remote-tracking branch 'origin/dev' into dev

liukai 1 week ago
parent
commit
3c40ad3542
56 changed files with 435 additions and 513 deletions
  1. 8 4
      packages/cpt_community/lib/modules/community/community_vm.dart
  2. 4 7
      packages/cpt_community/lib/modules/garage/garagesale_detail/garagesale_detail_page.dart
  3. 2 2
      packages/cpt_community/lib/modules/my_posts/my_posts_newsfeed/my_posts_newsfeed_page.dart
  4. 1 1
      packages/cpt_payment/lib/modules/payment/history/history_list_view_model.dart
  5. 1 1
      packages/cpt_payment/lib/modules/payment/payment/payment_list_view_model.dart
  6. 1 1
      packages/cpt_property/lib/modules/property/page/property_page.dart
  7. 3 3
      packages/cpt_services/lib/components/chooseAirConditionContent.dart
  8. 2 2
      packages/cpt_services/lib/components/chooseAirConditionTitle.dart
  9. 3 4
      packages/cpt_services/lib/components/chooseHouseCleanContent.dart
  10. 2 2
      packages/cpt_services/lib/components/chooseHouseCleanTitle.dart
  11. 3 3
      packages/cpt_services/lib/components/chooseVisitTimeBottomFooter.dart
  12. 1 1
      packages/cpt_services/lib/components/chooseVisitTimeBottomFooter_vm.dart
  13. 3 3
      packages/cpt_services/lib/components/chooseVisitTimeContent.dart
  14. 3 3
      packages/cpt_services/lib/components/chooseVisitTimeContent_vm.dart
  15. 2 2
      packages/cpt_services/lib/components/chooseVisitTimeTitle.dart
  16. 70 90
      packages/cpt_services/lib/components/repair_status_card_item.dart
  17. 3 1
      packages/cpt_services/lib/components/status_card_item.dart
  18. 4 4
      packages/cpt_services/lib/components/status_card_item_vm.dart
  19. 30 8
      packages/cpt_services/lib/constants_services.dart
  20. 2 2
      packages/cpt_services/lib/modules/services/clean_order_cancel_success/clean_order_cancel_success_page.dart
  21. 2 1
      packages/cpt_services/lib/modules/services/clean_order_detail/cancelOrderDialogContent.dart
  22. 21 18
      packages/cpt_services/lib/modules/services/clean_order_detail/clean_order_detail_page.dart
  23. 16 13
      packages/cpt_services/lib/modules/services/clean_order_detail/clean_order_detail_vm.dart
  24. 4 4
      packages/cpt_services/lib/modules/services/history/history_page.dart
  25. 2 2
      packages/cpt_services/lib/modules/services/history/history_vm.dart
  26. 1 1
      packages/cpt_services/lib/modules/services/homeService/home_service_page.dart
  27. 6 5
      packages/cpt_services/lib/modules/services/homeService/home_service_vm.dart
  28. 2 2
      packages/cpt_services/lib/modules/services/homeService/service_card_item.dart
  29. 4 4
      packages/cpt_services/lib/modules/services/inProgress/in_progress_page.dart
  30. 2 2
      packages/cpt_services/lib/modules/services/inProgress/in_progress_vm.dart
  31. 2 1
      packages/cpt_services/lib/modules/services/repair/repair_page.dart
  32. 12 72
      packages/cpt_services/lib/modules/services/repair_history/history_page.dart
  33. 1 1
      packages/cpt_services/lib/modules/services/repair_homeService/home_service_page.dart
  34. 10 5
      packages/cpt_services/lib/modules/services/repair_homeService/home_service_vm.dart
  35. 2 2
      packages/cpt_services/lib/modules/services/repair_homeService/service_card_item.dart
  36. 13 72
      packages/cpt_services/lib/modules/services/repair_inProgress/in_progress_page.dart
  37. 15 16
      packages/cpt_services/lib/modules/services/service_clean_detail/service_clean_detail_page.dart
  38. 20 19
      packages/cpt_services/lib/modules/services/service_clean_detail/service_clean_detail_vm.dart
  39. 6 6
      packages/cpt_services/lib/modules/services/service_evaluate_create/service_evaluate_create_page.dart
  40. 9 0
      packages/cpt_services/lib/modules/services/service_evaluate_create/service_evaluate_create_vm.dart
  41. 5 5
      packages/cpt_services/lib/modules/services/service_evaluate_list/service_evaluate_list_page.dart
  42. 14 14
      packages/cpt_services/lib/modules/services/service_order_confirm/service_order_confirm_page.dart
  43. 17 17
      packages/cpt_services/lib/modules/services/service_order_confirm/service_order_confirm_vm.dart
  44. 7 7
      packages/cpt_services/lib/modules/services/service_pay_success/service_pay_success_page.dart
  45. 3 3
      packages/cpt_services/lib/modules/services/service_pay_success/service_pay_success_vm.dart
  46. 6 6
      packages/cpt_services/lib/modules/services/service_repair_detail/service_repair_detail_page.dart
  47. 5 5
      packages/cpt_services/lib/modules/services/service_repair_detail/service_repair_detail_vm.dart
  48. 3 2
      packages/cpt_services/lib/modules/services/services_main_page.dart
  49. 5 4
      packages/cpt_services/lib/modules/services/services_main_vm.dart
  50. 2 1
      packages/cpt_services/lib/modules/services/services_page.dart
  51. 2 2
      packages/cpt_services/lib/respository/services_respository.dart
  52. 6 0
      packages/cpt_services/lib/router/component/services_component_service.dart
  53. 49 49
      packages/cpt_services/lib/router/page/services_page_router.gr.dart
  54. 1 0
      packages/cs_router/lib/componentRouter/service_service.dart
  55. 9 6
      packages/cs_widgets/lib/dialog/dialog_content_wrap.dart
  56. 3 2
      packages/cs_widgets/lib/my_cart_num.dart

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

@@ -74,10 +74,10 @@ class CommunityVm extends _$CommunityVm {
     // Log.d("s   $newsFeedTabsList");
     COMMUNITY_TABS_LIST.asMap().forEach((index, value) {
       _queryParams[index] = {
-        'keyword': null,
-        'is_liked': null,
-        'category_id': null,
-        'category_name': null,
+        'keyword': "",
+        'is_liked': "",
+        'category_id': "",
+        'category_name': "",
         'page_view_idx': index,
         'page_view_name': value,
       };
@@ -305,6 +305,10 @@ class CommunityVm extends _$CommunityVm {
             if(_isSingleSelect){
               if(_currentSelectedGarageCategory.length > 0){
                 categoryId = _currentSelectedGarageCategory[0]['id'];
+                _queryParams?[state.currentPageViewIdx]?['categoryId'] = categoryId??"";
+              }else {
+                // 没有选
+                _queryParams?[state.currentPageViewIdx]?['categoryId'] = "";
               }
             }
 

+ 4 - 7
packages/cpt_community/lib/modules/garage/garagesale_detail/garagesale_detail_page.dart

@@ -23,6 +23,7 @@ import 'package:widgets/my_appbar.dart';
 import 'package:widgets/my_like_button.dart';
 import 'package:widgets/my_load_image.dart';
 import 'package:widgets/my_text_view.dart';
+import 'package:widgets/utils/dark_theme_util.dart';
 import 'package:widgets/widget_export.dart';
 
 @RoutePage()
@@ -257,15 +258,11 @@ class GaragesaleDetailPage extends HookConsumerWidget {
     String contactType =  detailInfo.contact??'';
     String publisherTime =  detailInfo.createdAt??'-';
     int? likes_count =  detailInfo.likesCount??0;
-
-
     final _likes_count = useState<int>(likes_count!);
     final _isLiked = useState<bool>(false);
-
-
     return Container(
       height: 50,
-      color: AppColorsTheme.colorPrimary,
+      color: DarkThemeUtil.multiColors(context, AppColorsTheme.colorPrimary, darkColor: Colors.white.withOpacity(0.1)),
       child: Row(
         mainAxisAlignment: MainAxisAlignment.center,
         children: [
@@ -285,8 +282,8 @@ class GaragesaleDetailPage extends HookConsumerWidget {
                   crossAxisAlignment: CrossAxisAlignment.start,
                   mainAxisAlignment: MainAxisAlignment.center,
                   children: [
-                    MyTextView(publisher, fontSize:12, textColor: context.appColors.textWhite, isFontMedium: true,),
-                    MyTextView(publisherTime, fontSize:10, textColor: context.appColors.textWhite, isFontRegular: true, marginTop: 4,)
+                    MyTextView(publisher, fontSize:12, textColor: DarkThemeUtil.multiColors(context, context.appColors.textWhite, darkColor: Colors.white), isFontMedium: true,),
+                    MyTextView(publisherTime, fontSize:10, textColor: DarkThemeUtil.multiColors(context, context.appColors.textWhite, darkColor: Colors.white), isFontRegular: true, marginTop: 4,)
                   ],
                 ),
               ],

+ 2 - 2
packages/cpt_community/lib/modules/my_posts/my_posts_newsfeed/my_posts_newsfeed_page.dart

@@ -72,7 +72,7 @@ class MyPostsNewsfeedPage extends HookConsumerWidget {
     final state = ref.watch(myPostsNewsfeedVmProvider);
     final vm = ref.read(myPostsNewsfeedVmProvider.notifier);
     return Container(
-        color: Colors.blue,
+        color: DarkThemeUtil.multiColors(context, Colors.blue,darkColor: Colors.black),
         child: MyPostsTab(
           key: UniqueKey(),
           tabsList: state.tabsList!,
@@ -134,7 +134,7 @@ class MyPostsNewsfeedPage extends HookConsumerWidget {
     return Container(
       padding: const EdgeInsets.only(left: 15, right: 15,),
       // color: context.appColors.backgroundDefault,
-      color: ColorUtils.string2Color('#F2F3F6'),
+      color: DarkThemeUtil.multiColors(context, ColorUtils.string2Color('#F2F3F6'),darkColor: Colors.black),
       child: NewsFeedStickyHeader(title: groupId,),
     );
   }

+ 1 - 1
packages/cpt_payment/lib/modules/payment/history/history_list_view_model.dart

@@ -127,7 +127,7 @@ class HistoryListViewModel extends _$HistoryListViewModel with DioCancelableMixi
         break;
       case 'paid_service_order':
         //服务订单
-        ToastEngine.show("Service 的订单,自己写路由跳转到支付详情页面");
+        ComponentServiceManager().servicesService.startServiceOrderDetailPage(data.orderable?.id ?? "");
         break;
       default:
         //默认周期订单的支付 (通用支付页面)

+ 1 - 1
packages/cpt_payment/lib/modules/payment/payment/payment_list_view_model.dart

@@ -134,7 +134,7 @@ class PaymentListViewModel extends _$PaymentListViewModel with DioCancelableMixi
         break;
       case 'paid_service_order':
         //服务订单
-        ToastEngine.show("Service 的订单,自己写路由跳转到支付确认页面");
+        ComponentServiceManager().servicesService.startServiceOrderDetailPage(data.orderable?.id ?? "");
         break;
       default:
         //默认周期订单的支付 (通用支付页面)

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

@@ -82,7 +82,7 @@ class PropertyPage extends HookConsumerWidget {
                     maxLines: 1, // 设置最大行数为2
                     isTextEllipsis: true, // 超出部分用省略号表示
                     fontSize: 13,
-                    textColor: currentTabIdx == index ? context.appColors.textPrimary:context.appColors.textBlack,
+                    textColor: index == currentTabIdx ? DarkThemeUtil.multiColors(context, context.appColors.textPrimary, darkColor: AppColorsTheme.colorPrimary): context.appColors.textBlack,
                     isFontMedium: true,
                   ),
                 ],

+ 3 - 3
packages/cpt_services/lib/components/chooseAirConditionContent.dart

@@ -16,10 +16,10 @@ import 'chooseAirConditionContent_vm.dart';
 
 class ChooseAirConditionContent extends HookConsumerWidget {
   final int id;
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
   final List<PaidServiceDetailProducts> products;
 
-  const ChooseAirConditionContent({Key? key,required this.id, required this.cleanServiceType, required this.products}) : super(key: key);
+  const ChooseAirConditionContent({Key? key,required this.id, required this.cleanServiceTypeStr, required this.products}) : super(key: key);
   
   @override
   Widget build(BuildContext context, WidgetRef ref) {
@@ -31,7 +31,7 @@ class ChooseAirConditionContent extends HookConsumerWidget {
     useEffect((){
       vm.setInitPageData(context, {
         'id': id,
-        'cleanServiceType': cleanServiceType,
+        'cleanServiceTypeStr': cleanServiceTypeStr,
         'products': products,
       });
       // 组件挂载时执行 - 执行接口请求

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

@@ -17,10 +17,10 @@ import 'chooseAirConditionContent_vm.dart';
 
 class ChooseAirConditionTitle extends HookConsumerWidget {
   final int id;
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
 
   const ChooseAirConditionTitle(
-      {Key? key,required this.id, required this.cleanServiceType,}) : super(key: key);
+      {Key? key,required this.id, required this.cleanServiceTypeStr,}) : super(key: key);
 
   @override
   Widget build(BuildContext context, WidgetRef ref) {

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

@@ -20,11 +20,11 @@ import 'chooseHouseCleanContent_vm.dart';
 
 class ChooseHouseCleanContent extends HookConsumerWidget {
   final int id;
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
   final String? useScence;
   final List<PaidServiceDetailProducts> products;
 
-  const ChooseHouseCleanContent({Key? key,required this.id, required this.cleanServiceType, required this.products, this.useScence}) : super(key: key);
+  const ChooseHouseCleanContent({Key? key,required this.id, required this.cleanServiceTypeStr, required this.products, this.useScence}) : super(key: key);
 
   @override
   Widget build(BuildContext context, WidgetRef ref) {
@@ -33,7 +33,7 @@ class ChooseHouseCleanContent extends HookConsumerWidget {
     useEffect((){
       vm.setInitPageData(context, {
         'id': id,
-        'cleanServiceType': cleanServiceType,
+        'cleanServiceTypeStr': cleanServiceTypeStr,
         'products': products,
         'useScence': useScence,
       });
@@ -130,7 +130,6 @@ class ChooseHouseCleanContent extends HookConsumerWidget {
                 fontWeight: FontWeight.w500,
                 enable: !isDisable,
                 textColor:  DarkThemeUtil.multiColors(context, !isChecked? context.appColors.textPrimary : context.appColors.textWhite, darkColor: isChecked? context.appColors.textPrimary :Colors.white)  ,
-                // backgroundColor: !isChecked ? context.appColors.textWhite : context.appColors.textPrimary,
                 backgroundColor: !isChecked ? context.appColors.textWhite : AppColorsTheme.colorPrimary,
                 disabledBackgroundColor: context.appColors.disEnableGray,
                 disabledTextColor: context.appColors.textWhite,

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

@@ -19,10 +19,10 @@ import 'package:widgets/widget_export.dart';
 
 class ChooseHouseCleanTitle extends HookConsumerWidget {
   final int id;
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
 
   const ChooseHouseCleanTitle(
-      {Key? key,required this.id, required this.cleanServiceType,}) : super(key: key);
+      {Key? key,required this.id, required this.cleanServiceTypeStr,}) : super(key: key);
 
   @override
   Widget build(BuildContext context, WidgetRef ref) {

+ 3 - 3
packages/cpt_services/lib/components/chooseVisitTimeBottomFooter.dart

@@ -19,9 +19,9 @@ import '../modules/services/service_order_confirm/service_order_confirm_vm.dart'
 
 class ChooseVisitTimeBottomFooter extends HookConsumerWidget {
   final int id;
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
 
-  const ChooseVisitTimeBottomFooter({Key? key,required this.id, required this.cleanServiceType}) : super(key: key);
+  const ChooseVisitTimeBottomFooter({Key? key,required this.id, required this.cleanServiceTypeStr}) : super(key: key);
 
   @override
   Widget build(BuildContext context, WidgetRef ref) {
@@ -96,7 +96,7 @@ class ChooseVisitTimeBottomFooter extends HookConsumerWidget {
                 ),
               ),
             ).onTap((){
-              vm.handlerClickVisitTimeConfirm(context, id: id , cleanServiceType: cleanServiceType);
+              vm.handlerClickVisitTimeConfirm(context, id: id , cleanServiceTypeStr: cleanServiceTypeStr);
             }),
           ),
         ],

+ 1 - 1
packages/cpt_services/lib/components/chooseVisitTimeBottomFooter_vm.dart

@@ -66,7 +66,7 @@ class ChooseVisitTimeBottomFooterVm extends _$ChooseVisitTimeBottomFooterVm {
   }
 
   // 预约时间点击了confirm
-  handlerClickVisitTimeConfirm(BuildContext context,{required int id, required String cleanServiceType} ){
+  handlerClickVisitTimeConfirm(BuildContext context,{required int id, required String cleanServiceTypeStr} ){
     Log.d("handlerClickVisitTimeConfirm");
     final visitTimeContentVm = ref.read(chooseVisitTimeContentVmProvider.notifier);
     if(visitTimeContentVm.state.allSelectedTimeList !=null && visitTimeContentVm.state.allSelectedTimeList!.isNotEmpty ){

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

@@ -30,7 +30,7 @@ import 'chooseVisitTimeContent_state.dart';
 
 class ChooseVisitTimeContent extends HookConsumerWidget {
   final int id;
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
   final double contentTopSectionHeight;
   final double contentMaxHeight;
   final double bottomBtnSectionHeight;
@@ -38,7 +38,7 @@ class ChooseVisitTimeContent extends HookConsumerWidget {
   const ChooseVisitTimeContent({
     Key? key,
     required this.id,
-    required this.cleanServiceType,
+    required this.cleanServiceTypeStr,
     this.contentTopSectionHeight = 150,
     this.contentMaxHeight = 480,
     this.bottomBtnSectionHeight = 50,
@@ -50,7 +50,7 @@ class ChooseVisitTimeContent extends HookConsumerWidget {
     final state = ref.watch(chooseVisitTimeContentVmProvider);
 
     useEffect((){
-      vm.setInitPageData(context, id, cleanServiceType);
+      vm.setInitPageData(context, id, cleanServiceTypeStr);
       // 组件挂载时执行 - 执行接口请求
       Future.microtask(() => vm.initPageData(context));
       return () {

+ 3 - 3
packages/cpt_services/lib/components/chooseVisitTimeContent_vm.dart

@@ -38,7 +38,7 @@ class ChooseVisitTimeContentVm extends _$ChooseVisitTimeContentVm {
 
   late BuildContext _context;
   late int _id;
-  late String _cleanServiceType;
+  late String _cleanServiceTypeStr;
 
   ChooseVisitTimeContentState initState(){
     Log.d("--------------------------initState---------------------");
@@ -79,10 +79,10 @@ class ChooseVisitTimeContentVm extends _$ChooseVisitTimeContentVm {
     Log.d("87338  ${state.visitTimeList}");
   }
 
-  setInitPageData(BuildContext context, int id, String cleanServiceType){
+  setInitPageData(BuildContext context, int id, String cleanServiceTypeStr){
     _context = context;
     _id = id;
-    _cleanServiceType = cleanServiceType;
+    _cleanServiceTypeStr = cleanServiceTypeStr;
   }
 
   initPageData(BuildContext context){

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

@@ -22,10 +22,10 @@ import 'chooseVisitTimeTitle_vm.dart';
 
 class ChooseVisitTimeTitle extends HookConsumerWidget {
   final int id;
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
 
   const ChooseVisitTimeTitle(
-      {Key? key,required this.id, required this.cleanServiceType,}) : super(key: key);
+      {Key? key,required this.id, required this.cleanServiceTypeStr,}) : super(key: key);
 
   @override
   Widget build(BuildContext context, WidgetRef ref) {

+ 70 - 90
packages/cpt_services/lib/components/repair_status_card_item.dart

@@ -1,6 +1,7 @@
 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/theme/app_colors_theme.dart';
+import 'package:domain/entity/service_in_progress_entity.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_hooks/flutter_hooks.dart';
@@ -15,67 +16,56 @@ import 'package:widgets/my_text_view.dart';
 import '../constants_services.dart';
 
 class RepairStausCardItem extends HookConsumerWidget {
-  int serviceId;
-  String cleanServiceType;
-  int serviceStatusCode;
-  Map<String, dynamic> itemObj;
-  double? cardHeight ;
+  ServiceInProgressList? item;
+  double? cardHeight;
+
   final Function(dynamic)? onClickCard;
 
   RepairStausCardItem({
     Key? key,
-    required this.serviceId,
-    required this.cleanServiceType,
-    required this.serviceStatusCode,
-    required this.itemObj,
+    required this.item,
     this.onClickCard,
     cardHeight,
-  }): super(key: key) {
+  }) : super(key: key) {
     this.cardHeight = cardHeight ?? 180.0;
   }
 
   @override
   Widget build(BuildContext context, WidgetRef ref) {
-    final vm = ref.read(statusCardItemVmProvider.notifier);
-
-    final title = itemObj.getValue("title", "Repair air Conditioner");
-    final companyName = itemObj.getValue("company_name", "HONG YE GROUP PTE LTD");
-
-    Log.d("serviceStatusCode $serviceStatusCode");
-
-    bool isCompletedStatus = servicesConstants.servicesStatus['$serviceStatusCode']['code'] == 2? true:false;
-    String status_text = servicesConstants.servicesStatus['$serviceStatusCode']['text'];
-
-    // final status_text = itemObj.getValue("status_text", "");
+    // final vm = ref.read(statusCardItemVmProvider.notifier);
 
     // List<Map<String, dynamic>>? actionBtnList = servicesConstants.servicesStatusActionBtnList[serviceStatusCode];
     // Log.d("actionBtnList   $actionBtnList");
 
-    useEffect((){
-      vm.setInitData(context, serviceId, cleanServiceType, serviceStatusCode);
-      return () {
-      };
-    },[]);
+    // useEffect((){
+    //   vm.setInitData(context, serviceId, serviceTypeCode, serviceStatusCode);
+    //   return () {
+    //   };
+    // },[]);
+
     return Container(
       width: double.infinity,
-      height: cardHeight!,
+      height: cardHeight,
+      alignment: Alignment.center,
       child: Padding(
-        padding: const EdgeInsets.only(left: 18.0, right: 18.0, top: 22.0, bottom: 22.0),
+        padding: const EdgeInsets.only(left: 18.0, right: 18.0, ),
         child: Column(
           crossAxisAlignment: CrossAxisAlignment.start,
+          mainAxisAlignment: MainAxisAlignment.center,
           children: [
             Expanded(
                 child: Column(
                   crossAxisAlignment: CrossAxisAlignment.start,
+                  mainAxisAlignment: MainAxisAlignment.center,
                   children: [
                     // 标题 和状态
                     Row(
                       mainAxisAlignment: MainAxisAlignment.spaceBetween,
                       children: [
-                        // 标题
+                        // 标题 和状态
                         Expanded(
                           child: MyTextView(
-                            title,
+                            item?.service?.name ?? "-",
                             fontSize: 16,
                             maxLines: 1,
                             isFontMedium: true,
@@ -84,7 +74,7 @@ class RepairStausCardItem extends HookConsumerWidget {
                         ),
                         // 状态
                         MyTextView(
-                          status_text,
+                          item?.orderStatus??"-",
                           fontSize: 14,
                           maxLines: 1,
                           isFontRegular: true,
@@ -95,52 +85,45 @@ class RepairStausCardItem extends HookConsumerWidget {
                     ),
                     // 公司名称
                     MyTextView(
-                      companyName,
+                      item?.merchant?.name ?? "-",
                       fontSize: 14,
                       maxLines: 1,
                       isFontRegular: true,
                       textAlign: TextAlign.left,
-                      marginTop: 6,
+                      marginTop: 5,
                     ),
+                    const SizedBox(
+                      height: 5,
+                    ),
+                    //公司名称
                     MyTextView(
-                      'The staff will contact you soon',
+                      item?.merchantNotes ?? "-",
                       fontSize: 14,
                       maxLines: 1,
                       isFontRegular: true,
                       textAlign: TextAlign.left,
-                      textColor: context.appColors.textDarkGray999,
-                      marginTop: 5,
                     ),
-                    isCompletedStatus? Row(
+                    const SizedBox(
+                      height: 5,
+                    ),
+                    const SizedBox(
+                      height: 7.5,
+                    ),
+                    Row(
                       mainAxisAlignment: MainAxisAlignment.spaceBetween,
                       children: [
-                        Expanded(
-                          child: MyTextView(
-                            'Processing Time',
-                            fontSize: 14,
-                            maxLines: 1,
-                            isFontRegular: true,
-                            textAlign: TextAlign.left,
-                            textColor: context.appColors.textBlack,
-                            marginTop: 5,
-                          ),
+                        MyTextView(
+                          "The staff will contact you soon",
+                          fontSize: 14,
+                          maxLines: 1,
+                          isFontRegular: true,
+                          textAlign: TextAlign.left,
+                          textColor: context.appColors.textDarkGray,
                         ),
-                        Expanded(
-                          child: MyTextView(
-                            '13 0ct 2024 12:00',
-                            fontSize: 14,
-                            maxLines: 1,
-                            isFontRegular: true,
-                            textAlign: TextAlign.end,
-                            textColor: context.appColors.textBlack,
-                            marginTop: 5,
-                          ),
-                        )
                       ],
-                    ): SizedBox.shrink(),
+                    ),
                   ],
-                )
-            ),
+                )),
             // Container(
             // margin: EdgeInsets.only(top: 15),
             // child: _buildActionSection(context,actionBtnList!, vm, ref),
@@ -151,40 +134,37 @@ class RepairStausCardItem extends HookConsumerWidget {
     );
   }
 
-  Widget _buildActionSection(BuildContext context,List<Map<String, dynamic>> actionBtnList, StatusCardItemVm vm, WidgetRef ref ) {
-    return LayoutBuilder(
-        builder: (BuildContext context, BoxConstraints constraints) {
-          final maxHeight = constraints.maxHeight;
-          final minHeight = constraints.minHeight;
-          final maxWidth = constraints.maxWidth;
-          // Log.d("---maxHeight-----$maxHeight-- $minHeight  $maxWidth--");
-          return Container(
-            height: 50,
-            // color: Colors.red,
-            width: maxWidth,
-            child: Row(
-                mainAxisAlignment: MainAxisAlignment.end,
-                mainAxisSize: MainAxisSize.max,
-                children: List.generate(actionBtnList.length, (index){
-                  var item = actionBtnList[index];
-                  // return Expanded(
-                  //   child: _buildBtn(context, item),
-                  // );
-                  return _buildBtn(context, item, vm, ref);
-                })
-            ),
-          ).scrollable(
-            scrollDirection: Axis.horizontal,
-            physics: BouncingScrollPhysics(),
-          );
-        }
-    );
+  Widget _buildActionSection(BuildContext context, List<Map<String, dynamic>> actionBtnList, StatusCardItemVm vm, WidgetRef ref) {
+    return LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) {
+      final maxHeight = constraints.maxHeight;
+      final minHeight = constraints.minHeight;
+      final maxWidth = constraints.maxWidth;
+      // Log.d("---maxHeight-----$maxHeight-- $minHeight  $maxWidth--");
+      return Container(
+        height: 50,
+        // color: Colors.red,
+        width: maxWidth,
+        child: Row(
+            mainAxisAlignment: MainAxisAlignment.end,
+            mainAxisSize: MainAxisSize.max,
+            children: List.generate(actionBtnList.length, (index) {
+              var item = actionBtnList[index];
+              // return Expanded(
+              //   child: _buildBtn(context, item),
+              // );
+              return _buildBtn(context, item, vm, ref);
+            })),
+      ).scrollable(
+        scrollDirection: Axis.horizontal,
+        physics: BouncingScrollPhysics(),
+      );
+    });
   }
 
   Widget _buildBtn(BuildContext context, Map<String, dynamic> btnItem, StatusCardItemVm vm, WidgetRef ref) {
     // final btnCode = btnItem['code'];
     return MyButton(
-      onPressed: (){
+      onPressed: () {
         vm.handlerClickActionBtn(context, btnItem);
       },
       text: btnItem['text'],

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

@@ -49,13 +49,15 @@ class StausCardItem extends HookConsumerWidget {
       height: cardHeight,
       alignment: Alignment.center,
       child: Padding(
-        padding: const EdgeInsets.only(left: 18.0, right: 18.0, top: 10, bottom: 10.0),
+        padding: const EdgeInsets.only(left: 18.0, right: 18.0, ),
         child: Column(
           crossAxisAlignment: CrossAxisAlignment.start,
+          mainAxisAlignment: MainAxisAlignment.center,
           children: [
             Expanded(
                 child: Column(
               crossAxisAlignment: CrossAxisAlignment.start,
+              mainAxisAlignment: MainAxisAlignment.center,
               children: [
                 // 标题 和状态
                 Row(

+ 4 - 4
packages/cpt_services/lib/components/status_card_item_vm.dart

@@ -18,7 +18,7 @@ class StatusCardItemVm extends _$StatusCardItemVm {
   late ServicesRespository serviceRespositoryInstance;
 
   late int _serviceId;
-  late String _cleanServiceType;
+  late String _cleanServiceTypeStr;
   late int _serviceStatusCode;
 
 
@@ -44,9 +44,9 @@ class StatusCardItemVm extends _$StatusCardItemVm {
   //   );
   // }
 
-  setInitData(BuildContext context,int serviceId, String cleanServiceType, int serviceStatusCode){
+  setInitData(BuildContext context,int serviceId, String cleanServiceTypeStr, int serviceStatusCode){
     _serviceId = serviceId;
-    _cleanServiceType = cleanServiceType;
+    _cleanServiceTypeStr = cleanServiceTypeStr;
     _serviceStatusCode = serviceStatusCode;
   }
 
@@ -68,7 +68,7 @@ class StatusCardItemVm extends _$StatusCardItemVm {
       case '4':
         // 去评价
         // context.router.pushNamed('/detail');
-        ServiceEvaluateCreatePage.startInstance(id: _serviceId, cleanServiceType: _cleanServiceType,);
+        ServiceEvaluateCreatePage.startInstance(id: _serviceId, cleanServiceTypeStr: _cleanServiceTypeStr,);
         break;
       default:
         break;

+ 30 - 8
packages/cpt_services/lib/constants_services.dart

@@ -12,7 +12,24 @@ class servicesConstants {
     S.current.view_at_most: SortByType.clicks_count.name,
   };
 
-   static Map<String, Map<String, dynamic>> servicesType = {
+  // 服务种类
+  static Map<int, Map<String, dynamic>> servicesType = {
+    1: {
+      "id": 1, // 业务做 标识 字段
+      "name": "Home Service",
+      "parent_id": 0,
+      "type": "paid"
+    },
+    4: {
+      "id": 4, // 业务做 标识 字段
+      "name": "Maintenance",
+      "parent_id": 0,
+      "type": "inquiry"
+    }
+  };
+  
+   // 付费服务类型
+   static Map<String, Map<String, dynamic>> paidServicesType = {
      "houseCleaning": {
        "text": S.current.house_cleaning,
        "type": "paid",
@@ -23,13 +40,18 @@ class servicesConstants {
        "type": "paid",
        'code': "Air Conditioning Cleaning", // 业务做 标识 字段
      },
-     "repairAirConditioner": {
-       "text": S.current.maintenance,
-       "type": "inquiry",
-       'code': "Repair air Conditioner",  // 业务做 标识 字段
-     }
   };
 
+  // 咨询服务类型
+  static Map<String, Map<String, dynamic>> inquiryServicesType = {
+    "repairAirConditioner": {
+      "text": S.current.maintenance,
+      "type": "inquiry",
+      'code': "Repair air Conditioner",  // 业务做 标识 字段
+    }
+  };
+   
+
    static Map<String, dynamic> servicesStatus = {
      "0": {
        "text": S.current.wait_paid,
@@ -66,11 +88,11 @@ class servicesConstants {
        actionBtn['3'],
      ],
      '2': [
-       actionBtn['4'],
+       actionBtn['1'],
        actionBtn['5'],
      ],
      '3': [
-       actionBtn['4'],
+       // actionBtn['4'],
      ]
    };
 

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

@@ -61,7 +61,7 @@ class CleanOrderCancelSuccessPage extends HookConsumerWidget {
                   isFontRegular: true,
                   boxWidth: 270,
                   textAlign: TextAlign.center,
-                  textColor: ColorUtils.string2Color('#333333'),
+                  textColor: DarkThemeUtil.multiColors(context, ColorUtils.string2Color('#333333'), darkColor: Colors.white),
                   marginTop: 17,
                   marginBottom: 50,
                 ),
@@ -74,7 +74,7 @@ class CleanOrderCancelSuccessPage extends HookConsumerWidget {
                   fontSize: 15,
                   fontWeight: FontWeight.w500,
                   textColor: context.appColors.textWhite,
-                  backgroundColor: context.appColors.textPrimary,
+                  backgroundColor: DarkThemeUtil.multiColors(context, context.appColors.textPrimary, darkColor: AppColorsTheme.color666666),
                   minHeight: 45,
                   minWidth: 310,
                 )

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

@@ -17,6 +17,7 @@ import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/my_button.dart';
 import 'package:widgets/my_load_image.dart';
 import 'package:widgets/my_text_view.dart';
+import 'package:widgets/utils/dark_theme_util.dart';
 
 class CancelOrderDialogContent extends HookConsumerWidget {
 
@@ -71,7 +72,7 @@ class CancelOrderDialogContent extends HookConsumerWidget {
     final noteCount = useState(0);
     return Stack(children: [
       Container(
-        color: ColorUtils.string2Color("#F2F3F6"),
+        color: DarkThemeUtil.multiColors(context, ColorUtils.string2Color("#F2F3F6"), darkColor: Colors.white12),
         margin: const EdgeInsets.only(top: 15, bottom: 28.5),
         padding: const EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10),
         child: TextField(

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

@@ -37,24 +37,25 @@ import '../../../components/status_card_item.dart';
 @RoutePage()
 class CleanOrderDetailPage extends HookConsumerWidget {
   final int id; // 订单id
-  final String cleanServiceType; // 订单类型
+  final String? cleanServiceTypeStr; // 订单类型
 
   const CleanOrderDetailPage({
     Key? key,
     @PathParam('id') required this.id,
-    @PathParam('cleanServiceType') required this.cleanServiceType,
+    @PathParam('cleanServiceTypeStr') this.cleanServiceTypeStr,
   }) : super(key: key);
 
   //启动当前页面
-  static void startInstance({BuildContext? context, required int id, required String cleanServiceType }) {
+  static void startInstance({BuildContext? context, required int id, String cleanServiceTypeStr = '' }) {
     if (context != null) {
-      context.router.push(CleanOrderDetailPageRoute(id: id, cleanServiceType: cleanServiceType,));
+      context.router.push(CleanOrderDetailPageRoute(id: id, cleanServiceTypeStr: cleanServiceTypeStr,));
     } else {
-      appRouter.push(CleanOrderDetailPageRoute(id: id, cleanServiceType: cleanServiceType,));
+      appRouter.push(CleanOrderDetailPageRoute(id: id, cleanServiceTypeStr: cleanServiceTypeStr,));
     }
   }
 
 
+
   @override
   Widget build(BuildContext context, WidgetRef ref) {
     final vm = ref.read(cleanOrderDetailVmProvider.notifier);
@@ -65,7 +66,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
     // Log.d("actionBtnList   $actionBtnList");
 
     useEffect(() {
-      vm.setInitPageData(id: id, cleanServiceType: cleanServiceType,);
+      vm.setInitPageData(id: id, cleanServiceTypeStr: cleanServiceTypeStr??'',);
       // 组件挂载时执行 - 执行接口请求
       Future.microtask(() => vm.fetchOrderDetailData(id));
       return () {
@@ -108,7 +109,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
                   Visibility(
                     visible: state.loadingState == LoadState.State_Success,
                     child:
-                    (state.datas != null && state.actionBtnList !=null && state.actionBtnList!.length>0) ? _buildActionSection(context, state, vm, ref, id, cleanServiceType,  state.actionBtnList??[]) : Container(),
+                    (state.datas != null && state.actionBtnList !=null && state.actionBtnList!.isNotEmpty) ? _buildActionSection(context, state, vm, ref, id, state.actionBtnList??[]) : Container(),
                   )
                 ],
               ),
@@ -127,7 +128,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
             color: context.appColors.whiteBG,
             width: double.infinity,
             margin: const EdgeInsets.only(left: 0, right: 0, top: 5, bottom: 0),
-            padding: const EdgeInsets.only(left: 10, right: 10, top: 18.5, bottom: 0),
+            padding: const EdgeInsets.only(left: 10, right: 10, top: 18.5, bottom: 18.5),
             child: _buildOrderScore(state, vm, context),
           ),
           // profile信息
@@ -135,7 +136,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
             color: context.appColors.whiteBG,
             width: double.infinity,
             margin: const EdgeInsets.only(left: 0, right: 0, top: 5, bottom: 0),
-            padding: const EdgeInsets.only(left: 10, right: 10, top: 18.5, bottom: 0),
+            padding: const EdgeInsets.only(left: 10, right: 10, top: 18.5, bottom: 18.5),
             child: _buildOrderProfile(state, vm, context),
           ),
           // 订单 服务项目
@@ -258,7 +259,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
       children: [
         Row(
           mainAxisAlignment: MainAxisAlignment.start,
-          crossAxisAlignment: CrossAxisAlignment.start,
+          crossAxisAlignment: CrossAxisAlignment.center,
           children: [
             const MyAssetImage(
               Assets.serviceLocationIcon,
@@ -269,6 +270,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
               width: 10,
             ),
             Column(
+              mainAxisAlignment: MainAxisAlignment.start,
               crossAxisAlignment: CrossAxisAlignment.start,
               children: [
                 MyTextView(
@@ -309,7 +311,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
       children: [
         Row(
           mainAxisAlignment: MainAxisAlignment.start,
-          crossAxisAlignment: CrossAxisAlignment.start,
+          crossAxisAlignment: CrossAxisAlignment.center,
           children: [
             const MyAssetImage(
               Assets.serviceServiceAvatorIcon,
@@ -329,10 +331,10 @@ class CleanOrderDetailPage extends HookConsumerWidget {
           ],
         ),
         
-        // if (cleanServiceType == servicesConstants.servicesType['houseCleaning']!['code'])
+        // if (cleanServiceTypeStr == servicesConstants.paidServicesType['houseCleaning']!['code'])
         //   // 室内清理
         //   _buildCleanContent(context, state)
-        // else if (cleanServiceType == servicesConstants.servicesType['airConditioner']!['code'])
+        // else if (cleanServiceTypeStr == servicesConstants.paidServicesType['airConditioner']!['code'])
         //   // 空调清理
         //   _buildCleanContent(context, state)
         // else
@@ -362,12 +364,13 @@ class CleanOrderDetailPage extends HookConsumerWidget {
     return Container(
       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'),
+      color: DarkThemeUtil.multiColors(context, ColorUtils.string2Color('#F8F8F8'), darkColor: Colors.grey.withOpacity(0.1)),
       child: Column(
         children: [
           Row(
             mainAxisAlignment: MainAxisAlignment.spaceBetween,
             mainAxisSize: MainAxisSize.max,
+            crossAxisAlignment: CrossAxisAlignment.center,
             children: [
               Expanded(
                 child: Column(
@@ -425,7 +428,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
 
   Widget _buildOrderTotalAmount(CleanOrderDetailState state, CleanOrderDetailVm vm, BuildContext context) {
     return Column(children: [
-      Row(mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [
+      Row(mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [
         const MyAssetImage(
           Assets.serviceMoneyIcon,
           width: 15,
@@ -564,7 +567,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
       children: [
         Row(
           mainAxisAlignment: MainAxisAlignment.start,
-          crossAxisAlignment: CrossAxisAlignment.start,
+          crossAxisAlignment: CrossAxisAlignment.center,
           children: [
             // const MyAssetImage(
             //   Assets.assetsYyHomeLogo,
@@ -588,7 +591,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
           width: double.infinity,
           padding: const EdgeInsets.all(15),
           decoration: BoxDecoration(
-            color: ColorUtils.string2Color("#F8F8F8"),
+            color: DarkThemeUtil.multiColors(context, ColorUtils.string2Color("#F8F8F8"), darkColor: Colors.grey.withOpacity(0.1)),
             borderRadius: BorderRadius.circular(5),
             // boxShadow: [
             //   BoxShadow(
@@ -645,7 +648,7 @@ class CleanOrderDetailPage extends HookConsumerWidget {
 
   // 底部操作区域
   Widget _buildActionSection(
-      BuildContext context, state, vm, WidgetRef ref, int id, String cleanServiceType,List<Map<String, dynamic>> actionBtnList) {
+      BuildContext context, state, vm, WidgetRef ref, int id,List<Map<String, dynamic>> actionBtnList) {
     return LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) {
       final maxHeight = constraints.maxHeight;
       final minHeight = constraints.minHeight;

+ 16 - 13
packages/cpt_services/lib/modules/services/clean_order_detail/clean_order_detail_vm.dart

@@ -28,6 +28,7 @@ import 'package:widgets/dialog/app_default_dialog.dart';
 import 'package:widgets/dialog/dialog_content_wrap.dart';
 import 'package:widgets/load_state_layout.dart';
 import 'package:widgets/my_button.dart';
+import 'package:widgets/utils/dark_theme_util.dart';
 import 'package:widgets/widget_export.dart';
 
 import '../../../components/chooseHouseCleanContent.dart';
@@ -50,7 +51,7 @@ class CleanOrderDetailVm extends _$CleanOrderDetailVm with DioCancelableMixin {
   bool _needShowPlaceholder = false; //是否展示LoadingView
 
   late int _detailId;
-  late String _cleanServiceType;
+  late String _cleanServiceTypeStr;
   late String _orderId;
 
   // Refresh 控制器
@@ -84,15 +85,15 @@ class CleanOrderDetailVm extends _$CleanOrderDetailVm with DioCancelableMixin {
     state = state.copyWith(loadingState: loadState, errorMessage: errorMsg);
   }
 
-  setInitPageData({required int id, required String cleanServiceType,}) {
+  setInitPageData({required int id, required String cleanServiceTypeStr,}) {
     _detailId = id;
-    _cleanServiceType = cleanServiceType;
+    _cleanServiceTypeStr = cleanServiceTypeStr;
   }
 
   // 初始化页面数据
   // initPageData({detailId, detailcleanServiceType, detailServiceStatusCode}) {
   //   _detailId = detailId??_detailId;
-  //   _cleanServiceType = detailcleanServiceType??_cleanServiceType;
+  //   _cleanServiceTypeStr = detailcleanServiceType??_cleanServiceTypeStr;
   //   _detailServiceStatusCode = detailServiceStatusCode??_detailServiceStatusCode;
   //   Log.d("--------------------------initPageData---------------------");
   //   changeLoadingState(LoadState.State_Success, null);
@@ -107,7 +108,7 @@ class CleanOrderDetailVm extends _$CleanOrderDetailVm with DioCancelableMixin {
   void _callPhone(String? phone) {
     if(phone == null || phone.isEmpty){
       // appRouter.pushAndPopUntil(
-      //   ServicePaySuccessPageRoute(id: _detailId!, cleanServiceType: _cleanServiceType),
+      //   ServicePaySuccessPageRoute(id: _detailId!, cleanServiceTypeStr: _cleanServiceTypeStr),
       //   predicate: (Route<dynamic> route) {       // 根据具体条件返回 true 或 false
       //     return route.settings.name != 'CleanOrderDetailPageRoute';
       //   });
@@ -136,7 +137,7 @@ class CleanOrderDetailVm extends _$CleanOrderDetailVm with DioCancelableMixin {
           // 跳入 支付成功页面
           // ServicePaySuccessPage.startInstance();
           appRouter.pushAndPopUntil(
-              ServicePaySuccessPageRoute(id: orderid_int, cleanServiceType: _cleanServiceType),
+              ServicePaySuccessPageRoute(id: orderid_int, cleanServiceTypeStr: _cleanServiceTypeStr),
               predicate: (Route<dynamic> route) {       // 根据具体条件返回 true 或 false
             return route.settings.name != 'CleanOrderDetailPageRoute';
           });
@@ -169,7 +170,7 @@ class CleanOrderDetailVm extends _$CleanOrderDetailVm with DioCancelableMixin {
         // Evaluate 去评价
         ServiceEvaluateCreatePage.startInstance(
           id: _detailId,
-          cleanServiceType: _cleanServiceType,
+          cleanServiceTypeStr: _cleanServiceTypeStr,
         );
         break;
       default:
@@ -177,6 +178,7 @@ class CleanOrderDetailVm extends _$CleanOrderDetailVm with DioCancelableMixin {
     }
   }
 
+  // 删除订单
   handlerDeleteOrder(BuildContext context) {
     DialogEngine.show(
         widget: AppCustomDialog(
@@ -198,12 +200,13 @@ class CleanOrderDetailVm extends _$CleanOrderDetailVm with DioCancelableMixin {
           loadingState: LoadState.State_Success,
           maxHeight: 460.0,
           dialogWidth: 340.0,
+          showCloseIcon: true,
           isShowConfirmBtn: false,
           isShowCancelBtn: false,
           confirmTxt: S.current.confirm,
           title: S.current.cancellation_of_order,
-          titleBackgroundColor: context.appColors.textPrimary,
-          closeIconColor: context.appColors.textWhite,
+          titleBackgroundColor: DarkThemeUtil.multiColors(context, context.appColors.textWhite, darkColor: AppColorsTheme.color666666),
+          closeIconColor: DarkThemeUtil.multiColors(context, context.appColors.textWhite, darkColor: Colors.white),
           titleTextStyle: TextStyle(
             color: context.appColors.textWhite,
           ),
@@ -223,7 +226,7 @@ class CleanOrderDetailVm extends _$CleanOrderDetailVm with DioCancelableMixin {
                 minHeight: 45,
                 fontSize: 16,
                 fontWeight: FontWeight.w500,
-                backgroundColor: context.appColors.textPrimary,
+                backgroundColor: DarkThemeUtil.multiColors(context, context.appColors.textPrimary,darkColor: Colors.black.withOpacity(0.3)),
                 textColor: context.appColors.textWhite,
               ),
             );
@@ -254,16 +257,16 @@ class CleanOrderDetailVm extends _$CleanOrderDetailVm with DioCancelableMixin {
   // 取消订单
   submitCancelOrder(BuildContext context) async {
     Log.d("cancelReason: ${state.cancelReason}");
-
+    String? cancelReason = state.cancelReason;
     if (Utils.isNotEmpty(state.cancelReason)) {
       //调用接口取消订单
-      DialogEngine.dismiss(tag: 'cancelOrder');
 
-      final result = await servicesRespositoryInstance.fetchCancelPaidServiceOrder(id: _detailId.toString(), reason: state.cancelReason);
+      final result = await servicesRespositoryInstance.fetchCancelPaidServiceOrder(id: _detailId.toString(), cancel_reason: cancelReason);
 
       if (result.isSuccess) {
         bus.emit(AppConstant.eventServiceOrderRefresh, _detailId.toString());
         clearReasonInput();
+        DialogEngine.dismiss(tag: 'cancelOrder');
         //去成功页面
         CleanOrderCancelSuccessPage.startInstance();
       } else {

+ 4 - 4
packages/cpt_services/lib/modules/services/history/history_page.dart

@@ -46,7 +46,7 @@ class HistoryPage extends HookConsumerWidget {
     final state = ref.watch(historyVmProvider);
     // final appConfigState = ref.watch(appConfigServiceProvider)
 
-    String cleanServiceType = servicesConstants.servicesType['houseCleaning']?['code'];
+    String cleanServiceTypeStr = servicesConstants.paidServicesType['houseCleaning']?['code'];
     int serviceStatusCode = servicesConstants.servicesStatus['2']?['code'];
 
     useEffect(() {
@@ -96,12 +96,12 @@ class HistoryPage extends HookConsumerWidget {
                         ref,
                         state.list[index],
                         vm,
-                        cleanServiceType,
+                        cleanServiceTypeStr,
                       ).onTap(() {
                         vm.gotoCleanOrderDetailPage(
                           context,
                           state.list[index].id != null ? int.tryParse(state.list[index].id!) ?? 0 : 0,
-                          cleanServiceType,
+                          cleanServiceTypeStr,
                         );
                       });
                     },
@@ -114,7 +114,7 @@ class HistoryPage extends HookConsumerWidget {
     );
   }
 
-  Widget _buildHistoryItem(BuildContext context, WidgetRef ref, GarageSaleHistoryList item, vm, String cleanServiceType) {
+  Widget _buildHistoryItem(BuildContext context, WidgetRef ref, GarageSaleHistoryList item, vm, String cleanServiceTypeStr) {
     return Container(
       margin: const EdgeInsets.only(top: 10),
       width: double.infinity,

+ 2 - 2
packages/cpt_services/lib/modules/services/history/history_vm.dart

@@ -197,7 +197,7 @@ class HistoryVm extends _$HistoryVm with DioCancelableMixin {
   }
 
   //  去详情页面
-  gotoCleanOrderDetailPage(BuildContext context, int id, String cleanServiceType,) {
-    CleanOrderDetailPage.startInstance(id: id, cleanServiceType: cleanServiceType,);
+  gotoCleanOrderDetailPage(BuildContext context, int id, String cleanServiceTypeStr,) {
+    CleanOrderDetailPage.startInstance(id: id, cleanServiceTypeStr: cleanServiceTypeStr,);
   }
 }

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

@@ -150,7 +150,7 @@ class HomeServicePage extends HookConsumerWidget {
                 child: HomeServiceCard(
                     key: UniqueKey(),
                     itemEntity: item,
-                    cleanServiceType: item.category!.type,
+                    cleanServiceTypeStr: item.category!.type,
                     onClickColleciotn: (dynamic collectionValue) async {
                       Log.d("点击了喜欢按钮  --id:${item.id}- $collectionValue");
                       int id = item.id!;

+ 6 - 5
packages/cpt_services/lib/modules/services/homeService/home_service_vm.dart

@@ -565,14 +565,15 @@ class HomeServiceVm extends _$HomeServiceVm {
     liked,
     likesCount,
   }){
-    final cleanServiceType = paidServiceCategory.name!;
-    Log.d("去详情页面:  $id  $cleanServiceType");
-    if(cleanServiceType == servicesConstants.servicesType['houseCleaning']!['code'] || cleanServiceType == servicesConstants.servicesType['airConditioner']!['code']){
+    final cleanServiceId = paidServiceCategory.id!;
+    final cleanServiceTypeStr = paidServiceCategory.name!;
+    Log.d("去详情页面:  paidServiceCategory:$paidServiceCategory $id  $cleanServiceTypeStr");
+    if(cleanServiceTypeStr == servicesConstants.paidServicesType['houseCleaning']!['code'] || cleanServiceTypeStr == servicesConstants.paidServicesType['airConditioner']!['code']){
       // clean service  跳转到 clean 详情页
-      appRouter.push(ServiceCleanDetailPageRoute(id: id, cleanServiceType: cleanServiceType,liked: liked,likesCount: likesCount));
+      appRouter.push(ServiceCleanDetailPageRoute(id: id, cleanServiceTypeStr: cleanServiceTypeStr,liked: liked,likesCount: likesCount));
     }else {
       // other service  跳转到 other 详情页
-      ToastEngine.show("${cleanServiceType} 类型的详情暂未开放");
+      ToastEngine.show("${cleanServiceTypeStr} 类型的详情暂未开放");
     }
   }
 

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

@@ -13,7 +13,7 @@ import 'package:widgets/my_load_image.dart';
 import 'package:widgets/my_text_view.dart';
 
 class HomeServiceCard extends StatelessWidget {
-  String? cleanServiceType;
+  String? cleanServiceTypeStr;
   PaidServiceList itemEntity;
   double? cardHeight;
   final Function()? onTap;
@@ -21,7 +21,7 @@ class HomeServiceCard extends StatelessWidget {
 
   HomeServiceCard({
     Key? key,
-    this.cleanServiceType,
+    this.cleanServiceTypeStr,
     required this.itemEntity,
     this.onTap,
     this.onClickColleciotn,

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

@@ -46,7 +46,7 @@ class InProgressPage extends HookConsumerWidget {
     final state = ref.watch(inProgressVmProvider);
     // final appConfigState = ref.watch(appConfigServiceProvider)
 
-    String cleanServiceType = servicesConstants.servicesType['houseCleaning']?['code'];
+    String cleanServiceTypeStr = servicesConstants.paidServicesType['houseCleaning']?['code'];
 
 
 
@@ -92,14 +92,14 @@ class InProgressPage extends HookConsumerWidget {
                 SliverList(
                   delegate: SliverChildBuilderDelegate(
                     (context, index) {
-                      return _buildInProgressItem(context, ref, state.list[index], vm,  cleanServiceType).onTap(() {
+                      return _buildInProgressItem(context, ref, state.list[index], vm,  cleanServiceTypeStr).onTap(() {
                         List<GarageSaleHistoryList> serviceStatusTypeList = state.list as List<GarageSaleHistoryList> ?? [];
                         String serviceStatusCode = serviceStatusTypeList[index].orderStatus??'';
 
                         vm.gotoCleanOrderDetailPage(
                           context,
                           state.list[index].id != null ? int.tryParse(state.list[index].id!) ?? 0 : 0,
-                          cleanServiceType,
+                          cleanServiceTypeStr,
                         );
                       });
                     },
@@ -112,7 +112,7 @@ class InProgressPage extends HookConsumerWidget {
     );
   }
 
-  Widget _buildInProgressItem(BuildContext context, WidgetRef ref, GarageSaleHistoryList item, vm, String cleanServiceType) {
+  Widget _buildInProgressItem(BuildContext context, WidgetRef ref, GarageSaleHistoryList item, vm, String cleanServiceTypeStr) {
     return Container(
       margin: const EdgeInsets.only(top: 10),
       width: double.infinity,

+ 2 - 2
packages/cpt_services/lib/modules/services/inProgress/in_progress_vm.dart

@@ -198,7 +198,7 @@ class InProgressVm extends _$InProgressVm with DioCancelableMixin {
   }
 
   //  去详情页面
-  gotoCleanOrderDetailPage(BuildContext context, int id, String cleanServiceType) {
-    CleanOrderDetailPage.startInstance(id: id, cleanServiceType: cleanServiceType);
+  gotoCleanOrderDetailPage(BuildContext context, int id, String cleanServiceTypeStr) {
+    CleanOrderDetailPage.startInstance(id: id, cleanServiceTypeStr: cleanServiceTypeStr);
   }
 }

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

@@ -16,6 +16,7 @@ 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/utils/dark_theme_util.dart';
 import 'package:widgets/widget_export.dart';
 
 import '../../../router/page/services_page_router.dart';
@@ -229,7 +230,7 @@ class RepairPage extends HookConsumerWidget with WidgetsBindingObserver {
                   item['title'],
                   fontSize: 15,
                   marginTop: 8,
-                  textColor: index == currentPageIdx ? context.appColors.textPrimary: context.appColors.textBlack,
+                  textColor: index == currentPageIdx ? DarkThemeUtil.multiColors(context, context.appColors.textPrimary, darkColor: AppColorsTheme.colorPrimary): context.appColors.textBlack,
                   textAlign: TextAlign.center,
                   isFontMedium: true,
                 ),

+ 12 - 72
packages/cpt_services/lib/modules/services/repair_history/history_page.dart

@@ -46,7 +46,7 @@ class RepairHistoryPage extends HookConsumerWidget {
     final state = ref.watch(repairHistoryVmProvider);
     // final appConfigState = ref.watch(appConfigServiceProvider)
 
-    String cleanServiceType = servicesConstants.servicesType['repairAirConditioner']?['code'];
+    String cleanServiceTypeStr = servicesConstants.inquiryServicesType['repairAirConditioner']?['code'];
     int serviceStatusCode = servicesConstants.servicesInquiryStatus['1']?['code'];
 
 
@@ -97,7 +97,7 @@ class RepairHistoryPage extends HookConsumerWidget {
                         ref,
                         state.list[index],
                         vm,
-                        cleanServiceType,
+                        cleanServiceTypeStr,
                         serviceStatusCode,
                       ).onTap(() {
                       });
@@ -111,7 +111,7 @@ class RepairHistoryPage extends HookConsumerWidget {
     );
   }
 
-  Widget _buildRepairHistoryItem(BuildContext context, WidgetRef ref, ServiceInProgressList item, vm, String cleanServiceType, int serviceStatusCode){
+  Widget _buildRepairHistoryItem(BuildContext context, WidgetRef ref, ServiceInProgressList item, vm, String cleanServiceTypeStr, int serviceStatusCode){
     return Container(
       margin: const EdgeInsets.only(top: 10),
       width: double.infinity,
@@ -126,75 +126,15 @@ class RepairHistoryPage extends HookConsumerWidget {
           ),
         ],
       ),
-      child: Container(
-        width: double.infinity,
-        height: 140,
-        child: Padding(
-          padding: const EdgeInsets.only(
-              left: 18.0, right: 18.0, top: 10.0, bottom: 10.0),
-          child: Column(
-            crossAxisAlignment: CrossAxisAlignment.start,
-            children: [
-              Expanded(
-                  child: Column(
-                crossAxisAlignment: CrossAxisAlignment.start,
-                children: [
-                  // 标题 和状态
-                  Row(
-                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
-                    children: [
-                      // 标题
-                      Expanded(
-                        child: MyTextView(
-                          item?.service?.name ?? "-",
-                          fontSize: 16,
-                          maxLines: 1,
-                          isFontBold: true,
-                          textAlign: TextAlign.left,
-                        ),
-                      ),
-                      // 状态
-                      MyTextView(
-                        item?.orderStatus ?? "-",
-                        fontSize: 14,
-                        maxLines: 1,
-                        isFontRegular: true,
-                        textAlign: TextAlign.left,
-                        textColor: context.appColors.textPrimary,
-                      ),
-                    ],
-                  ),
-                  // 公司名称
-                  MyTextView(
-                    item?.merchant?.name ?? "-",
-                    fontSize: 14,
-                    maxLines: 1,
-                    isFontRegular: true,
-                    textAlign: TextAlign.left,
-                    marginTop: 6,
-                  ),
-                  const SizedBox(
-                    height: 5,
-                  ),
-                  // visit time
-                  Row(
-                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
-                    children: [
-                      MyTextView(
-                        item?.merchantNotes ?? "-",
-                        fontSize: 14,
-                        maxLines: 1,
-                        isFontRegular: true,
-                        textAlign: TextAlign.left,
-                        textColor: context.appColors.textDarkGray,
-                      ),
-                    ],
-                  ),
-                ],
-              )),
-            ],
-          ),
-        ),
+      child: RepairStausCardItem(
+        key: UniqueKey(),
+        cardHeight: 115.0,
+        item: item,
+        onClickCard: (dynamic value) async {
+          // Log.d("点击了喜欢按钮  --id:${item['id']}- $collectionValue");
+          // int id = item['id'];
+          // return await vm.handlerClickCollection(id, collectionValue);
+        },
       ),
     );
   }

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

@@ -152,7 +152,7 @@ class RepairHomeServicePage extends HookConsumerWidget {
                 child: RepairHomeServiceCard(
                     key: UniqueKey(),
                     itemEntity: item,
-                    cleanServiceType: item.category!.type,
+                    cleanServiceTypeStr: item.category!.type,
                     onClickColleciotn: (dynamic collectionValue) async {
                       Log.d("点击了喜欢按钮  --id:${item.id}- $collectionValue");
                       int id = item.id!;

+ 10 - 5
packages/cpt_services/lib/modules/services/repair_homeService/home_service_vm.dart

@@ -34,6 +34,7 @@ class RepairHomeServiceVm extends _$RepairHomeServiceVm {
   int _limit = 10; // 每页数量
   int _count = 0; // 总条数
 
+  // CleanServiceTyp _cleanServiceTypeStr;
 
   bool _isSingleSelect = true;
   List<Map<String, dynamic>> _currentSelectedCategory = [];
@@ -525,17 +526,21 @@ class RepairHomeServiceVm extends _$RepairHomeServiceVm {
     );
   }
 
+  // 设置当前的 cleanServiceTypeStr
+  // setCurrentCleanServiceType(CleanServiceType cleanServiceTypeStr){
+  //   _cleanServiceTypeStr = cleanServiceTypeStr;
+  // }
   // 去详情页面
   void handlerGotoDetail({BuildContext? context, required int id, required RepairServiceListCategory repairServiceListCategory }){
 
-    final cleanServiceType = repairServiceListCategory.name!;
-    Log.d("去详情页面:  $id  $cleanServiceType");
-    if(cleanServiceType == servicesConstants.servicesType['repairAirConditioner']!['code']){
+    final cleanServiceTypeStr = repairServiceListCategory.name!;
+    Log.d("去详情页面:  id:$id  repairServiceListCategory:$repairServiceListCategory  cleanServiceTypeStr: $cleanServiceTypeStr");
+    if(cleanServiceTypeStr == servicesConstants.inquiryServicesType['repairAirConditioner']!['code']){
       // clean service  跳转到 clean 详情页
-      appRouter.push(ServiceRepairDetailPageRoute(id: id, cleanServiceType: cleanServiceType));
+      appRouter.push(ServiceRepairDetailPageRoute(id: id, cleanServiceTypeStr: cleanServiceTypeStr));
     }else {
       // other service  跳转到 other 详情页
-      ToastEngine.show("${cleanServiceType} 类型的详情暂未开放");
+      ToastEngine.show("${cleanServiceTypeStr} 类型的详情暂未开放");
     }
 
   }

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

@@ -12,7 +12,7 @@ import 'package:widgets/my_load_image.dart';
 import 'package:widgets/my_text_view.dart';
 
 class RepairHomeServiceCard extends StatelessWidget {
-  String? cleanServiceType;
+  String? cleanServiceTypeStr;
   RepairServiceList itemEntity;
   double? cardHeight;
   final Function()? onTap;
@@ -20,7 +20,7 @@ class RepairHomeServiceCard extends StatelessWidget {
 
   RepairHomeServiceCard({
     Key? key,
-    this.cleanServiceType,
+    this.cleanServiceTypeStr,
     required this.itemEntity,
     this.onTap,
     this.onClickColleciotn,

+ 13 - 72
packages/cpt_services/lib/modules/services/repair_inProgress/in_progress_page.dart

@@ -49,7 +49,7 @@ class RepairInProgressPage extends HookConsumerWidget {
     final state = ref.watch(repairInProgressVmProvider);
     // final appConfigState = ref.watch(appConfigServiceProvider)
 
-    String cleanServiceType = servicesConstants.servicesType['repairAirConditioner']?['code'];
+    String cleanServiceTypeStr = servicesConstants.inquiryServicesType['repairAirConditioner']?['code'];
     int serviceStatusCode = servicesConstants.servicesInquiryStatus['0']?['code'];
 
     useEffect(() {
@@ -99,7 +99,7 @@ class RepairInProgressPage extends HookConsumerWidget {
                               ref,
                               state.list[index],
                               vm,
-                              cleanServiceType,
+                              cleanServiceTypeStr,
                               serviceStatusCode)
                           .onTap(() {
                       });
@@ -115,7 +115,7 @@ class RepairInProgressPage extends HookConsumerWidget {
 
   Widget _buildRepairInProgressItem(BuildContext context, WidgetRef ref, ServiceInProgressList item,
       vm,
-      String cleanServiceType,
+      String cleanServiceTypeStr,
       int serviceStatusCode) {
     return Container(
       margin: const EdgeInsets.only(top: 10),
@@ -131,75 +131,16 @@ class RepairInProgressPage extends HookConsumerWidget {
           ),
         ],
       ),
-      child: Container(
-        width: double.infinity,
-        height: 130,
-        child: Padding(
-          padding: const EdgeInsets.only(
-              left: 18.0, right: 18.0, top: 10, bottom: 10),
-          child: Column(
-            crossAxisAlignment: CrossAxisAlignment.start,
-            children: [
-              Expanded(
-                  child: Column(
-                crossAxisAlignment: CrossAxisAlignment.start,
-                children: [
-                  // 标题 和状态
-                  Row(
-                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
-                    children: [
-                      // 标题
-                      Expanded(
-                        child: MyTextView(
-                          item?.service?.name ?? "-",
-                          fontSize: 16,
-                          maxLines: 1,
-                          isFontBold: true,
-                          textAlign: TextAlign.left,
-                        ),
-                      ),
-                      // 状态
-                      MyTextView(
-                        item?.orderStatus ?? "-",
-                        fontSize: 14,
-                        maxLines: 1,
-                        isFontRegular: true,
-                        textAlign: TextAlign.left,
-                        textColor: context.appColors.textPrimary,
-                      ),
-                    ],
-                  ),
-                  // 公司名称
-                  MyTextView(
-                    item?.merchant?.name ?? "-",
-                    fontSize: 14,
-                    maxLines: 1,
-                    isFontRegular: true,
-                    textAlign: TextAlign.left,
-                    marginTop: 6,
-                  ),
-                  const SizedBox(
-                    height: 7.5,
-                  ),
-                  // visit time
-                  Row(
-                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
-                    children: [
-                      MyTextView(
-                        "The staff will contact you soon",
-                        fontSize: 14,
-                        maxLines: 1,
-                        isFontRegular: true,
-                        textAlign: TextAlign.left,
-                        textColor: context.appColors.textDarkGray,
-                      ),
-                    ],
-                  ),
-                ],
-              )),
-            ],
-          ),
-        ),
+      child:
+      RepairStausCardItem(
+        key: UniqueKey(),
+        cardHeight: 115.0,
+        item: item,
+        onClickCard: (dynamic value) async {
+          // Log.d("点击了喜欢按钮  --id:${item['id']}- $collectionValue");
+          // int id = item['id'];
+          // return await vm.handlerClickCollection(id, collectionValue);
+        },
       ),
     );
   }

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

@@ -35,17 +35,17 @@ import '../../../router/page/services_page_router.dart';
 @RoutePage()
 class ServiceCleanDetailPage extends HookConsumerWidget {
   final int id;
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
   bool liked = false;
   int likesCount = 0;
 
-  ServiceCleanDetailPage({Key? key,@PathParam('id') required this.id, @PathParam('cleanServiceType') required this.cleanServiceType, required this.liked, required this.likesCount}) : super(key: key);
+  ServiceCleanDetailPage({Key? key,@PathParam('id') required this.id, @PathParam('cleanServiceTypeStr') required this.cleanServiceTypeStr, required this.liked, required this.likesCount}) : super(key: key);
   // 启动当前页面
-  static void startInstance({BuildContext? context, int? id, String? cleanServiceType, bool? liked, int? likesCount}) {
+  static void startInstance({BuildContext? context, int? id, String? cleanServiceTypeStr, bool? liked, int? likesCount}) {
     if (context != null) {
-      context.router.push(ServiceCleanDetailPageRoute(id: id!, cleanServiceType: cleanServiceType!, liked: liked!, likesCount: likesCount = 0));
+      context.router.push(ServiceCleanDetailPageRoute(id: id!, cleanServiceTypeStr: cleanServiceTypeStr!, liked: liked!, likesCount: likesCount = 0));
     } else {
-      appRouter.push(ServiceCleanDetailPageRoute(id: id!, cleanServiceType: cleanServiceType!, liked: liked!, likesCount: likesCount = 0));
+      appRouter.push(ServiceCleanDetailPageRoute(id: id!, cleanServiceTypeStr: cleanServiceTypeStr!, liked: liked!, likesCount: likesCount = 0));
     }
   }
 
@@ -60,7 +60,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
 
 
     useEffect((){
-      vm.setInitPageData(id: id, cleanServiceType: cleanServiceType, liked: liked, likesCount: likesCount);
+      vm.setInitPageData(id: id, cleanServiceTypeStr: cleanServiceTypeStr, liked: liked, likesCount: likesCount);
 
       // 组件挂载时执行 - 执行接口请求
       Future.microtask(() => vm.initPageData());
@@ -341,7 +341,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
                   ),
                 ],
               ).onTap((){
-                vm.gotoUserReviewsPage(context, id, cleanServiceType);
+                vm.gotoUserReviewsPage(context, id, cleanServiceTypeStr);
               }),
             ),
             // evaluate list
@@ -390,7 +390,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
           child: Container(
             margin: const EdgeInsets.only(right: 5),
             decoration: BoxDecoration(
-              color: ColorUtils.string2Color("#F8F8F8"),
+              color: DarkThemeUtil.multiColors(context, ColorUtils.string2Color("#F8F8F8"), darkColor: Colors.white12),
               borderRadius: BorderRadius.circular(8),
               // boxShadow: [
               //   BoxShadow(
@@ -422,7 +422,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
   }
 
   Widget _buildSelectHouseCleanOrAirConditioner(BuildContext context, WidgetRef ref, PaidServiceDetailEntity detailInfo) {
-    if(cleanServiceType == servicesConstants.servicesType['houseCleaning']!['code']){
+    if(cleanServiceTypeStr == servicesConstants.paidServicesType['houseCleaning']!['code']){
       List<PaidServiceDetailProducts>? houseCleanList = detailInfo?.products??[];
       // 室内清洁
       return houseCleanList.isNotEmpty? Column(
@@ -451,12 +451,12 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
               ],
             ),
           ),
-          ChooseHouseCleanContent(id: id, cleanServiceType: cleanServiceType, products: houseCleanList),
+          ChooseHouseCleanContent(id: id, cleanServiceTypeStr: cleanServiceTypeStr, products: houseCleanList),
         ],
       ): SizedBox.shrink();
-    }else if(cleanServiceType == servicesConstants.servicesType['airConditioner']!['code']){
+    }else if(cleanServiceTypeStr == servicesConstants.paidServicesType['airConditioner']!['code']){
       // 空调清洁  页面中没有直接展示 选择数量的  直接在弹窗中选择了
-      // return ChooseAirConditionContent(id: id, cleanServiceType: cleanServiceType);
+      // return ChooseAirConditionContent(id: id, cleanServiceTypeStr: cleanServiceTypeStr);
     }
     return SizedBox.shrink();
   }
@@ -489,7 +489,6 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
         children: [
           Container(
             width: 122,
-            color: Colors.red,
             child: Row(
               mainAxisAlignment: MainAxisAlignment.center,
               crossAxisAlignment: CrossAxisAlignment.center,
@@ -531,7 +530,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
                       MyTextView(
                         "${_likes_count.value}",
                         fontSize: 18,
-                        textColor: context.appColors.textWhite,
+                        textColor: DarkThemeUtil.multiColors(context, context.appColors.textWhite, darkColor: Colors.white),
                         isFontRegular: true,
                         marginLeft: 5,
                         marginRight: 15,
@@ -560,7 +559,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
                   ],
                 ),
               ],
-            ).backgroundColor(context.appColors.textPrimary),
+            ).backgroundColor(DarkThemeUtil.multiColors(context, context.appColors.textPrimary, darkColor: AppColorsTheme.colorPrimary)),
           ),
           Expanded(
             child: Container(
@@ -575,7 +574,7 @@ class ServiceCleanDetailPage extends HookConsumerWidget {
                 ),
               ),
             ).onTap((){
-              vm.handlerClickBookNow(context, id: id , cleanServiceType: cleanServiceType,);
+              vm.handlerClickBookNow(context, id: id , cleanServiceTypeStr: cleanServiceTypeStr,);
             }),
           ),
         ],

+ 20 - 19
packages/cpt_services/lib/modules/services/service_clean_detail/service_clean_detail_vm.dart

@@ -21,6 +21,7 @@ import 'package:shared/utils/ext_dart.dart';
 import 'package:shared/utils/log_utils.dart';
 import 'package:widgets/load_state_layout.dart';
 import 'package:widgets/my_text_view.dart';
+import 'package:widgets/utils/dark_theme_util.dart';
 import 'package:widgets/widget_export.dart';
 import 'package:widgets/dialog/dialog_content_wrap.dart';
 
@@ -53,7 +54,7 @@ class ServiceCleanDetailVm extends _$ServiceCleanDetailVm {
   int _count = 0; // 总条数
 
   int? _detailId;
-  String? _cleanServiceType;
+  String? _cleanServiceTypeStr;
   bool? _liked;
   num? _likesCount;
 
@@ -89,10 +90,10 @@ class ServiceCleanDetailVm extends _$ServiceCleanDetailVm {
     );
   }
 
-  setInitPageData({required int id, required String cleanServiceType, bool? liked, num? likesCount}){
-    Log.d("service_clean_detail 设置 initpagedata ---  id:$id cleanServiceType:$cleanServiceType");
+  setInitPageData({required int id, required String cleanServiceTypeStr, bool? liked, num? likesCount}){
+    Log.d("service_clean_detail 设置 initpagedata ---  id:$id cleanServiceTypeStr:$cleanServiceTypeStr");
     _detailId = id;
-    _cleanServiceType = cleanServiceType!;
+    _cleanServiceTypeStr = cleanServiceTypeStr!;
     _liked = liked;
     _likesCount = likesCount;
   }
@@ -260,10 +261,10 @@ class ServiceCleanDetailVm extends _$ServiceCleanDetailVm {
   }
 
   // 点击了 Book Now 按钮
-  handlerClickBookNow(BuildContext context, {int? id, String? cleanServiceType} ){
+  handlerClickBookNow(BuildContext context, {int? id, String? cleanServiceTypeStr} ){
     final detailId = id ?? _detailId;
-    final cleanType = cleanServiceType ?? _cleanServiceType;   // 0 房屋清洁  1 空调清洁  2 维修
-    if(cleanType == servicesConstants.servicesType['houseCleaning']!['code']){
+    final cleanType = cleanServiceTypeStr ?? _cleanServiceTypeStr;   // 0 房屋清洁  1 空调清洁  2 维修
+    if(cleanType == servicesConstants.paidServicesType['houseCleaning']!['code']){
       // 房屋清洁
       final chooseHouseCleanContentVm= ref.read(chooseHouseCleanContentVmProvider.notifier);
       if(!chooseHouseCleanContentVm.state.hasCheckdService){
@@ -275,11 +276,11 @@ class ServiceCleanDetailVm extends _$ServiceCleanDetailVm {
         // 跳转到 订单确认页面
         gotoServiceOrderConfirmPage();
       }
-    }else if(cleanType == servicesConstants.servicesType['airConditioner']!['code']){
+    }else if(cleanType == servicesConstants.paidServicesType['airConditioner']!['code']){
       // 空调清洁
       // 弹出选择 空调型号和数量的弹框
       handlerShowChooseAirConditionerDialog(context);
-    }else if(cleanType == servicesConstants.servicesType['repaire']!['code']){
+    }else if(cleanType == servicesConstants.paidServicesType['repaire']!['code']){
       // 维修
     }
   }
@@ -400,8 +401,8 @@ class ServiceCleanDetailVm extends _$ServiceCleanDetailVm {
 
   // 去订单确认页面
   gotoServiceOrderConfirmPage(){
-    // appRouter.push(ServiceOrderConfirmPageRoute(id: _detailId, cleanServiceType: _cleanServiceType));
-    ServiceOrderConfirmPage.startInstance(id: _detailId!, cleanServiceType: _cleanServiceType!);
+    // appRouter.push(ServiceOrderConfirmPageRoute(id: _detailId, cleanServiceTypeStr: _cleanServiceTypeStr));
+    ServiceOrderConfirmPage.startInstance(id: _detailId!, cleanServiceTypeStr: _cleanServiceTypeStr!);
   }
 
   chooseHouseCleanCancelFn(){
@@ -415,8 +416,8 @@ class ServiceCleanDetailVm extends _$ServiceCleanDetailVm {
     final chooseAirCleanContentVm= ref.watch(chooseAirConditionContentVmProvider.notifier);
     if(chooseAirCleanContentVm?.state.hasCheckdService??false){
       // 跳转到 订单确认页面
-      // appRouter.push(ServiceOrderConfirmPageRoute(id: _detailId, cleanServiceType: _cleanServiceType));
-      ServiceOrderConfirmPage.startInstance(id: _detailId!, cleanServiceType: _cleanServiceType!);
+      // appRouter.push(ServiceOrderConfirmPageRoute(id: _detailId, cleanServiceTypeStr: _cleanServiceTypeStr));
+      ServiceOrderConfirmPage.startInstance(id: _detailId!, cleanServiceTypeStr: _cleanServiceTypeStr!);
       DialogEngine.dismiss(tag: "chooseAirConditionClean");
     }else {
       // 一个数量也没选 则英文提示
@@ -430,24 +431,24 @@ class ServiceCleanDetailVm extends _$ServiceCleanDetailVm {
 
   
   Widget buildChooseHouseCleanTitle(BuildContext context){
-    return ChooseHouseCleanTitle(id: _detailId!, cleanServiceType: _cleanServiceType!);
+    return ChooseHouseCleanTitle(id: _detailId!, cleanServiceTypeStr: _cleanServiceTypeStr!);
   }
 
   Widget buildChooseHouseCleanContent(BuildContext context){
     Log.d("打开弹框 products: ${state.datas!.products!}");
-    return ChooseHouseCleanContent(id: _detailId!, cleanServiceType: _cleanServiceType!, products: state.datas!.products!,);
+    return ChooseHouseCleanContent(id: _detailId!, cleanServiceTypeStr: _cleanServiceTypeStr!, products: state.datas!.products!,);
   }
 
   Widget buildChooseAirConditionTitle(BuildContext context){
-    return ChooseAirConditionTitle(id: _detailId!, cleanServiceType: _cleanServiceType!);
+    return ChooseAirConditionTitle(id: _detailId!, cleanServiceTypeStr: _cleanServiceTypeStr!);
   }
   
   Widget buildChooseAirConditionContent(BuildContext context){
-    return ChooseAirConditionContent(id: _detailId!, cleanServiceType: _cleanServiceType!,products: state.datas!.products!);
+    return ChooseAirConditionContent(id: _detailId!, cleanServiceTypeStr: _cleanServiceTypeStr!,products: state.datas!.products!);
   }
 
   // 去 评价列表页面
-  gotoUserReviewsPage(BuildContext context, int id, String cleanServiceType){
-    ServiceEvaluateListPage.startInstance(id:id, cleanServiceType: cleanServiceType);
+  gotoUserReviewsPage(BuildContext context, int id, String cleanServiceTypeStr){
+    ServiceEvaluateListPage.startInstance(id:id, cleanServiceTypeStr: cleanServiceTypeStr);
   }
 }

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

@@ -32,19 +32,19 @@ import 'service_evaluate_create_vm.dart';
 @RoutePage()
 class ServiceEvaluateCreatePage extends HookConsumerWidget {
   final int id;
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
   const ServiceEvaluateCreatePage({
     Key? key,
     required this.id,
-    required this.cleanServiceType,
+    required this.cleanServiceTypeStr,
   }) : super(key: key);
 
   //启动当前页面
-  static void startInstance({BuildContext? context, required int id, required String cleanServiceType}) {
+  static void startInstance({BuildContext? context, required int id, required String cleanServiceTypeStr}) {
     if (context != null) {
-      context.router.push(ServiceEvaluateCreatePageRoute(id: id, cleanServiceType: cleanServiceType));
+      context.router.push(ServiceEvaluateCreatePageRoute(id: id, cleanServiceTypeStr: cleanServiceTypeStr));
     } else {
-      appRouter.push(ServiceEvaluateCreatePageRoute(id:id, cleanServiceType: cleanServiceType));
+      appRouter.push(ServiceEvaluateCreatePageRoute(id:id, cleanServiceTypeStr: cleanServiceTypeStr));
     }
   }
 
@@ -217,7 +217,7 @@ class ServiceEvaluateCreatePage extends HookConsumerWidget {
                         text: S.current.submit,
                         radius: 0,
                         minHeight: 50,
-                        backgroundColor: context.appColors.textPrimary,
+                        backgroundColor: DarkThemeUtil.multiColors(context, context.appColors.textPrimary, darkColor: AppColorsTheme.color666666),
                         textColor: Colors.white,
                         fontWeight: FontWeight.w500,
                         fontSize: 16,

+ 9 - 0
packages/cpt_services/lib/modules/services/service_evaluate_create/service_evaluate_create_vm.dart

@@ -474,6 +474,15 @@ class ServiceEvaluateCreateVm extends _$ServiceEvaluateCreateVm {
     state = state.copyWith(notes: notes);
   }
   handlerEvaluateSubmit(BuildContext context,) async {
+
+    if(state.notes == null || state.notes!.isEmpty){
+      return ToastEngine.show("Comment is empty");
+    }
+
+    if(state.imgList == null || state.imgList!.length  == 0){
+      return ToastEngine.show("Picture is empty");
+    }
+
      try {
       //请求网络
       Map<String, dynamic>  params = {

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

@@ -30,19 +30,19 @@ import '../../../components/status_card_item.dart';
 @RoutePage()
 class ServiceEvaluateListPage extends HookConsumerWidget {
   final int id;
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
   const ServiceEvaluateListPage({
     Key? key,
     required this.id,
-    required this.cleanServiceType,
+    required this.cleanServiceTypeStr,
   }) : super(key: key);
 
   //启动当前页面
-  static void startInstance({BuildContext? context, required int id, required String cleanServiceType}) {
+  static void startInstance({BuildContext? context, required int id, required String cleanServiceTypeStr}) {
     if (context != null) {
-      context.router.push( ServiceEvaluateListPageRoute(id:id, cleanServiceType:cleanServiceType));
+      context.router.push( ServiceEvaluateListPageRoute(id:id, cleanServiceTypeStr:cleanServiceTypeStr));
     } else {
-      appRouter.push(ServiceEvaluateListPageRoute(id:id, cleanServiceType:cleanServiceType));
+      appRouter.push(ServiceEvaluateListPageRoute(id:id, cleanServiceTypeStr:cleanServiceTypeStr));
     }
   }
 

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

@@ -43,19 +43,19 @@ import '../../../components/status_card_item.dart';
 @RoutePage()
 class ServiceOrderConfirmPage extends HookConsumerWidget {
   final int id;
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
   const ServiceOrderConfirmPage({
     Key? key,
     required this.id,
-    required this.cleanServiceType,
+    required this.cleanServiceTypeStr,
   }) : super(key: key);
 
   //启动当前页面
-  static void startInstance({BuildContext? context, required int id, required String cleanServiceType}) {
+  static void startInstance({BuildContext? context, required int id, required String cleanServiceTypeStr}) {
     if (context != null) {
-      context.router.push(ServiceOrderConfirmPageRoute(id: id, cleanServiceType: cleanServiceType));
+      context.router.push(ServiceOrderConfirmPageRoute(id: id, cleanServiceTypeStr: cleanServiceTypeStr));
     } else {
-      appRouter.push(ServiceOrderConfirmPageRoute(id:id, cleanServiceType: cleanServiceType));
+      appRouter.push(ServiceOrderConfirmPageRoute(id:id, cleanServiceTypeStr: cleanServiceTypeStr));
     }
   }
 
@@ -67,7 +67,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
     // final appConfigState = ref.watch(appConfigServiceProvider)
 
     useEffect(() {
-      vm.setInitPageData(id: id, cleanServiceType: cleanServiceType);
+      vm.setInitPageData(id: id, cleanServiceTypeStr: cleanServiceTypeStr);
       // 组件挂载时执行 - 执行接口请求
       Future.microtask(() => vm.initPageData(context));
       return () {
@@ -104,7 +104,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
                     // 底部联系信息
                     Visibility(
                       visible: state.loadingState == LoadState.State_Success,
-                      child: state.datas !=null ? _buildBottomSection(state, vm,ref, context, id, cleanServiceType): Container(),
+                      child: state.datas !=null ? _buildBottomSection(state, vm,ref, context, id, cleanServiceTypeStr): Container(),
                     )
 
                   ],
@@ -332,10 +332,10 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
             ),
           ],
         ),
-        if (cleanServiceType == servicesConstants.servicesType['houseCleaning']!['code'])
+        if (cleanServiceTypeStr == servicesConstants.paidServicesType['houseCleaning']!['code'])
         // 室内清理
           _buildHouseCleanContent(state, vm, context, ref, houseCleanCheckedServiceList)
-        else if (cleanServiceType == servicesConstants.servicesType['airConditioner']!['code'])
+        else if (cleanServiceTypeStr == servicesConstants.paidServicesType['airConditioner']!['code'])
         // 空调清理
           _buildAirCleanCleanContent(state, vm, context, ref, airCleancheckedServiceList)
         else
@@ -623,7 +623,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
           height: 200,
           padding: const EdgeInsets.all(15),
           decoration: BoxDecoration(
-              color: ColorUtils.string2Color("#F2F3F6"),
+              color: DarkThemeUtil.multiColors(context, ColorUtils.string2Color("#F2F3F6"),darkColor: AppColorsTheme.color666666),
               borderRadius: BorderRadius.circular(5),
               boxShadow: [
                 BoxShadow(
@@ -661,13 +661,13 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
                 border: InputBorder.none,
                 hintText: state.remarkInfo[key]!['hintText'],
                 hintStyle: TextStyle(
-                  color: context.appColors.authFiledHint,
+                  color: DarkThemeUtil.multiColors(context, context.appColors.authFiledHint, darkColor: Colors.black),
                   fontSize: 16.0,
                   fontWeight: FontWeight.w400,
                 ),
               ),
               style: TextStyle(
-                color: context.appColors.authFiledText,
+                color: DarkThemeUtil.multiColors(context, context.appColors.authFiledText, darkColor: Colors.black),
                 fontSize: 16.0,
                 fontWeight: FontWeight.w400,
               ),
@@ -731,7 +731,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
   }
 
   // 底部操作区域
-  Widget _buildBottomSection(ServiceOrderConfirmState state, ServiceOrderConfirmVm vm,WidgetRef ref, BuildContext context, int id, String cleanServiceType) {
+  Widget _buildBottomSection(ServiceOrderConfirmState state, ServiceOrderConfirmVm vm,WidgetRef ref, BuildContext context, int id, String cleanServiceTypeStr) {
 
     double totalPrice = ref.watch(serviceOrderConfirmVmProvider.select((state) => ((state.cleanServiceToTalCost??0.0) + (state.extraCost??0.0)??0.0)));
 
@@ -786,7 +786,7 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
                 ),
               ),
             ).onTap((){
-              vm.handlerClickPayNow(context, id: id , cleanServiceType: cleanServiceType);
+              vm.handlerClickPayNow(context, id: id , cleanServiceTypeStr: cleanServiceTypeStr);
             }),
           ),
         ],

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

@@ -52,7 +52,7 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
   int _count = 0; // 总条数
 
   int? _id;
-  String? _cleanServiceType;
+  String? _cleanServiceTypeStr;
 
   // Refresh 控制器
   final EasyRefreshController refreshController = EasyRefreshController(
@@ -90,9 +90,9 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
   }
 
 
-  setInitPageData({required int id, required String cleanServiceType}){
+  setInitPageData({required int id, required String cleanServiceTypeStr}){
     _id = id;
-    _cleanServiceType = cleanServiceType;
+    _cleanServiceTypeStr = cleanServiceTypeStr;
   }
   // 初始化页面数据
   initPageData(BuildContext context) {
@@ -262,7 +262,7 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
   chooseVisitTimeConfirmFn(){
     Log.d("预约时间 点击了确定");
     // 跳转到 订单确认页面
-    // appRouter.push(ServiceOrderConfirmPageRoute(id: _id, cleanServiceType: _cleanServiceType));
+    // appRouter.push(ServiceOrderConfirmPageRoute(id: _id, cleanServiceTypeStr: _cleanServiceTypeStr));
   }
 
   chooseVisitTimeCancelFn(){
@@ -274,15 +274,15 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
   }
 
   Widget buildChooseVisitTimeTitle(BuildContext context){
-    return ChooseVisitTimeTitle(id: 0, cleanServiceType: _cleanServiceType!);
+    return ChooseVisitTimeTitle(id: 0, cleanServiceTypeStr: _cleanServiceTypeStr!);
   }
 
   Widget buildChooseVisitTimeContent(BuildContext context){
-    return ChooseVisitTimeContent(id: _id!, cleanServiceType: _cleanServiceType!,);
+    return ChooseVisitTimeContent(id: _id!, cleanServiceTypeStr: _cleanServiceTypeStr!,);
   }
 
   Widget buildChooseVisitTimeBottomFooter(BuildContext context){
-    return ChooseVisitTimeBottomFooter(id: _id!, cleanServiceType: _cleanServiceType!,);
+    return ChooseVisitTimeBottomFooter(id: _id!, cleanServiceTypeStr: _cleanServiceTypeStr!,);
   }
 
   // 更新visitTime
@@ -303,9 +303,9 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
     final chooseAirCleanServiceDetailVm = ref.watch(chooseAirConditionContentVmProvider.notifier);
     List<AirConditionContentItem> airCleancheckedServiceList = [];
 
-    if (_cleanServiceType == servicesConstants.servicesType['houseCleaning']!['code']) {
+    if (_cleanServiceTypeStr == servicesConstants.paidServicesType['houseCleaning']!['code']) {
       houseCleanCheckedServiceList = chooseHouseCleanServiceDetailVm.state.checkedServiceList ?? [];
-    } else if (_cleanServiceType == servicesConstants.servicesType['airConditioner']!['code']) {
+    } else if (_cleanServiceTypeStr == servicesConstants.paidServicesType['airConditioner']!['code']) {
       airCleancheckedServiceList = chooseAirCleanServiceDetailVm.state.checkedServiceList ?? [];
     }
 
@@ -335,7 +335,7 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
 
     Log.d("houseCleanCheckedServiceList  $houseCleanCheckedServiceList");
     Log.d("airCleancheckedServiceList  $airCleancheckedServiceList");
-    if(_cleanServiceType == servicesConstants.servicesType['houseCleaning']!['code']){
+    if(_cleanServiceTypeStr == servicesConstants.paidServicesType['houseCleaning']!['code']){
       if(houseCleanCheckedServiceList != null && houseCleanCheckedServiceList.length > 0){
         resultParams['products'] = []; // 初始化 products 为一个 List
         houseCleanCheckedServiceList.asMap().forEach((idx, element) {
@@ -345,7 +345,7 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
           });
         });
       }
-    }else if(_cleanServiceType == servicesConstants.servicesType['airConditioner']!['code']){
+    }else if(_cleanServiceTypeStr == servicesConstants.paidServicesType['airConditioner']!['code']){
       if(airCleancheckedServiceList != null && airCleancheckedServiceList.length > 0){
         resultParams['products'] = []; // 初始化 products 为一个 List
         airCleancheckedServiceList.asMap().forEach((idx, element) {
@@ -378,10 +378,10 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
     final chooseAirCleanContentVm = ref.read(chooseAirConditionContentVmProvider.notifier);
     double airCleanTotalPrice = 0.0;
 
-    if (_cleanServiceType == servicesConstants.servicesType['houseCleaning']!['code']) {
+    if (_cleanServiceTypeStr == servicesConstants.paidServicesType['houseCleaning']!['code']) {
       houseCleanTotalPrice = (chooseHouseCleanCotentVm?.state.totalPrice ?? 0.0).toDouble();
       cleanServiceToTalPrice = houseCleanTotalPrice;
-    } else if (_cleanServiceType == servicesConstants.servicesType['airConditioner']!['code']) {
+    } else if (_cleanServiceTypeStr == servicesConstants.paidServicesType['airConditioner']!['code']) {
       airCleanTotalPrice = (chooseAirCleanContentVm?.state.totalPrice ?? 0.0).toDouble();
       cleanServiceToTalPrice = airCleanTotalPrice;
     }
@@ -399,7 +399,7 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
   }
 
   // 点击去支付按钮
-  handlerClickPayNow(BuildContext context, {int? id, String? cleanServiceType}) async{
+  handlerClickPayNow(BuildContext context, {int? id, String? cleanServiceTypeStr}) async{
     // ToastEngine.show("Pay Now");
     if(state.visitTime == null || state.visitTime!.isEmpty){
       // 预约时间没有
@@ -450,7 +450,7 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
           // 成功后 去支付成功页面
           // ServicePaySuccessPage.startInstance();
           context.appRouter.pushAndPopUntil(
-              ServicePaySuccessPageRoute(id: orderId_int, cleanServiceType: _cleanServiceType!),
+              ServicePaySuccessPageRoute(id: orderId_int, cleanServiceTypeStr: _cleanServiceTypeStr!),
               predicate: (Route<dynamic> route) {       // 根据具体条件返回 true 或 false
             // Log.d("888 ${route.settings}");
             return route.settings.name != 'ServiceOrderConfirmPageRoute';
@@ -459,7 +459,7 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
         fcallback: (String? orderId, String? orderDetailId){
           // ToastEngine.show("Pay Failed");
           int? orderDetailId_int;
-          String cleanServiceType = _cleanServiceType!;
+          String cleanServiceTypeStr = _cleanServiceTypeStr!;
           // 待支付状态
           if(orderDetailId != null){
             orderDetailId_int = int.parse(orderDetailId!);
@@ -473,7 +473,7 @@ class ServiceOrderConfirmVm extends _$ServiceOrderConfirmVm {
           context.appRouter.pushAndPopUntil(
               CleanOrderDetailPageRoute(
                 id: orderDetailId_int,
-                cleanServiceType: cleanServiceType!,
+                cleanServiceTypeStr: cleanServiceTypeStr!,
               ),
               predicate: (Route<dynamic> route) {       // 根据具体条件返回 true 或 false
                 // Log.d("888 ${route.settings}");

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

@@ -30,20 +30,20 @@ import '../../../components/status_card_item.dart';
 @RoutePage()
 class ServicePaySuccessPage extends HookConsumerWidget {
   final int id; // 订单id
-  final String cleanServiceType; // 订单类型
+  final String cleanServiceTypeStr; // 订单类型
   const ServicePaySuccessPage({
     Key? key,
     @PathParam('id') required this.id,
-    @PathParam('cleanServiceType') required this.cleanServiceType,
+    @PathParam('cleanServiceTypeStr') required this.cleanServiceTypeStr,
   }) : super(key: key);
 
 
   //启动当前页面
-  static void startInstance({BuildContext? context, required int id, required String cleanServiceType }) {
+  static void startInstance({BuildContext? context, required int id, required String cleanServiceTypeStr }) {
     if (context != null) {
-      context.router.push(ServicePaySuccessPageRoute(id: id, cleanServiceType: cleanServiceType,));
+      context.router.push(ServicePaySuccessPageRoute(id: id, cleanServiceTypeStr: cleanServiceTypeStr,));
     } else {
-      appRouter.push(ServicePaySuccessPageRoute(id: id, cleanServiceType: cleanServiceType,));
+      appRouter.push(ServicePaySuccessPageRoute(id: id, cleanServiceTypeStr: cleanServiceTypeStr,));
     }
   }
 
@@ -56,7 +56,7 @@ class ServicePaySuccessPage extends HookConsumerWidget {
 
 
     useEffect(() {
-      vm.setInitPageData(id: id, cleanServiceType: cleanServiceType);
+      vm.setInitPageData(id: id, cleanServiceTypeStr: cleanServiceTypeStr);
       // 组件挂载时执行 - 执行接口请求
       Future.microtask(() => vm.fetchOrderDetailData(id));
       return () {
@@ -331,7 +331,7 @@ class ServicePaySuccessPage extends HookConsumerWidget {
                       crossAxisAlignment: CrossAxisAlignment.start,
                       children: [
                         MyTextView(
-                          '$cleanServiceType',
+                          '$cleanServiceTypeStr',
                           fontSize: 14,
                           textColor: context.appColors.textBlack,
                           isFontRegular: true,

+ 3 - 3
packages/cpt_services/lib/modules/services/service_pay_success/service_pay_success_vm.dart

@@ -27,7 +27,7 @@ class ServicePaySuccessVm extends _$ServicePaySuccessVm {
 
 
   int? _id;
-  String? _cleanServiceType;
+  String? _cleanServiceTypeStr;
 
   // Refresh 控制器
   final EasyRefreshController refreshController = EasyRefreshController(
@@ -61,9 +61,9 @@ class ServicePaySuccessVm extends _$ServicePaySuccessVm {
     );
   }
 
-  setInitPageData({required int id, required String cleanServiceType}){
+  setInitPageData({required int id, required String cleanServiceTypeStr}){
     _id = id;
-    _cleanServiceType = cleanServiceType;
+    _cleanServiceTypeStr = cleanServiceTypeStr;
   }
 
   // 初始化页面数据

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

@@ -35,22 +35,22 @@ import '../../../router/page/services_page_router.dart';
 @RoutePage()
 class ServiceRepairDetailPage extends HookConsumerWidget {
   final int id;
-  final String? cleanServiceType;
+  final String? cleanServiceTypeStr;
 
   const ServiceRepairDetailPage(
       {Key? key,
       @PathParam('id') required this.id,
-      @PathParam('cleanServiceType') required this.cleanServiceType})
+      @PathParam('cleanServiceTypeStr') required this.cleanServiceTypeStr})
       : super(key: key);
   // 启动当前页面
   static void startInstance(
-      {BuildContext? context, int? id, String? cleanServiceType}) {
+      {BuildContext? context, int? id, String? cleanServiceTypeStr}) {
     if (context != null) {
       context.router.push(ServiceRepairDetailPageRoute(
-          id: id!, cleanServiceType: cleanServiceType!));
+          id: id!, cleanServiceTypeStr: cleanServiceTypeStr!));
     } else {
       appRouter.push(ServiceRepairDetailPageRoute(
-          id: id!, cleanServiceType: cleanServiceType!));
+          id: id!, cleanServiceTypeStr: cleanServiceTypeStr!));
     }
   }
 
@@ -70,7 +70,7 @@ class ServiceRepairDetailPage extends HookConsumerWidget {
     useEffect(() {
       vm.setInitPageData(
         id: id,
-        cleanServiceType: cleanServiceType,
+        cleanServiceTypeStr: cleanServiceTypeStr,
       );
       // 组件挂载时执行 - 执行接口请求
       Future.microtask(() => vm.initPageData());

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

@@ -35,7 +35,7 @@ class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
   late ServicesRespository serviceRespositoryInstance;
 
   late int _detailId;
-  late String _cleanServiceType;
+  late String _cleanServiceTypeStr;
 
   bool _needShowPlaceholder = false; //是否展示LoadingView
   int _page = 1; // 当前页
@@ -113,9 +113,9 @@ class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
     getDetailData();
   }
 
-  setInitPageData({required int id, required String? cleanServiceType}) {
+  setInitPageData({required int id, required String? cleanServiceTypeStr}) {
     _detailId = id;
-    _cleanServiceType = cleanServiceType?? '';
+    _cleanServiceTypeStr = cleanServiceTypeStr?? '';
   }
 
   Future getDetailData<T>() async {
@@ -177,9 +177,9 @@ class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
   Future<bool?> handlerClickCollection(
       BuildContext? context, int id, bool isCollection) async {
     // var vm;
-    // if(_cleanServiceType == "forSale"){
+    // if(_cleanServiceTypeStr == "forSale"){
     //   // vm = ref.read(forsaleVmProvider.notifier);
-    // }else if(_cleanServiceType == "forRent"){
+    // }else if(_cleanServiceTypeStr == "forRent"){
     //   vm = ref.read(forrentVmProvider.notifier);
     // }
     // try {

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

@@ -1,4 +1,5 @@
 
+import 'package:cpt_services/constants_services.dart';
 import 'package:cpt_services/modules/services/services_main_vm.dart';
 import 'package:cs_resources/generated/assets.dart';
 import 'package:cs_resources/generated/l10n.dart';
@@ -119,7 +120,7 @@ class ServicesMainPage extends HookConsumerWidget {
   }
 
   Widget _buildCardItem(BuildContext context, WidgetRef ref, ServiceCategoryEntity data, ServiceMainVm vm){
-    if(data?.id == 1){
+    if(data?.id == servicesConstants.servicesType[1]?['id']){
       // home Services
       return _buildServiceCard(
         context,
@@ -129,7 +130,7 @@ class ServicesMainPage extends HookConsumerWidget {
         102.5,
         82.5
       );
-    }else if(data?.id == 4){
+    }else if(data?.id == servicesConstants.servicesType[4]?['id']){
         // maintenance
         return _buildServiceCard(
           context,

+ 5 - 4
packages/cpt_services/lib/modules/services/services_main_vm.dart

@@ -1,6 +1,7 @@
 
 import 'dart:async';
 
+import 'package:cpt_services/constants_services.dart';
 import 'package:cpt_services/modules/services/repair/repair_page.dart';
 import 'package:cpt_services/modules/services/services_page.dart';
 import 'package:domain/entity/service_category_entity.dart';
@@ -152,10 +153,10 @@ class ServiceMainVm extends _$ServiceMainVm {
     state = state.copyWith(
         curCategory: entity
     );
-    if(id == 1){
-      ServicesPage.startInstance(parentCategoryId: 1);
-    }else if(id == 4){
-      RepairPage.startInstance(parentCategoryId: 4);
+    if(id == servicesConstants.servicesType[1]?['id']){
+      ServicesPage.startInstance(parentCategoryId: id);
+    }else if(id == servicesConstants.servicesType[4]?['id']){
+      RepairPage.startInstance(parentCategoryId: id);
     }else {
       ToastEngine.show("暂未开放");
     }

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

@@ -16,6 +16,7 @@ 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/utils/dark_theme_util.dart';
 import 'package:widgets/widget_export.dart';
 
 import '../../router/page/services_page_router.dart';
@@ -231,7 +232,7 @@ class ServicesPage extends HookConsumerWidget with WidgetsBindingObserver {
                   item['title'],
                   fontSize: 15,
                   marginTop: 8,
-                  textColor: index == currentPageIdx ? context.appColors.textPrimary: context.appColors.textBlack,
+                  textColor: index == currentPageIdx ? DarkThemeUtil.multiColors(context, context.appColors.textPrimary, darkColor: AppColorsTheme.colorPrimary): context.appColors.textBlack,
                   textAlign: TextAlign.center,
                   isFontMedium: true,
                 ),

+ 2 - 2
packages/cpt_services/lib/respository/services_respository.dart

@@ -459,12 +459,12 @@ class ServicesRespository {
   // 付费服务 取消订单
   Future<HttpResult> fetchCancelPaidServiceOrder({
     required String? id,
-    required String? reason,
+    required String? cancel_reason,
     CancelToken? cancelToken,
   }) async {
     Map<String, String> params = {};
     params['id'] = id ?? "";
-    params['cancel_reason'] = reason ?? "";
+    params['cancel_reason'] = cancel_reason  ?? "";
 
     final result = await dioEngine.requestNetResult(
       '/api/v1/user/service/paid-service-order/cancel',

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

@@ -8,6 +8,7 @@ import 'package:flutter/material.dart';
 import 'package:hooks_riverpod/hooks_riverpod.dart';
 import 'package:riverpod_annotation/riverpod_annotation.dart';
 
+import '../../modules/services/clean_order_detail/clean_order_detail_page.dart';
 import '../../modules/services/services_page.dart';
 
 part 'services_component_service.g.dart';
@@ -23,4 +24,9 @@ class ServicesComponentService extends ServiceService {
   void startServicePage() {
     ServicesMainPage.startInstance();
   }
+
+  @override
+  void startServiceOrderDetailPage(String id) {
+    CleanOrderDetailPage.startInstance(id: int.parse(id!));
+  }
 }

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

@@ -26,14 +26,14 @@ abstract class _$ServicesPageRouter extends RootStackRouter {
       final args = routeData.argsAs<CleanOrderDetailPageRouteArgs>(
           orElse: () => CleanOrderDetailPageRouteArgs(
                 id: pathParams.getInt('id'),
-                cleanServiceType: pathParams.getString('cleanServiceType'),
+                cleanServiceTypeStr: pathParams.getString('cleanServiceTypeStr'),
               ));
       return AutoRoutePage<dynamic>(
         routeData: routeData,
         child: CleanOrderDetailPage(
           key: args.key,
           id: args.id,
-          cleanServiceType: args.cleanServiceType,
+          cleanServiceTypeStr: args.cleanServiceTypeStr,
         ),
       );
     },
@@ -96,7 +96,7 @@ abstract class _$ServicesPageRouter extends RootStackRouter {
         child: ServiceCleanDetailPage(
           key: args.key,
           id: args.id,
-          cleanServiceType: args.cleanServiceType,
+          cleanServiceTypeStr: args.cleanServiceTypeStr,
           liked: args.liked,
           likesCount: args.likesCount,
         ),
@@ -109,7 +109,7 @@ abstract class _$ServicesPageRouter extends RootStackRouter {
         child: ServiceEvaluateCreatePage(
           key: args.key,
           id: args.id,
-          cleanServiceType: args.cleanServiceType,
+          cleanServiceTypeStr: args.cleanServiceTypeStr,
         ),
       );
     },
@@ -120,7 +120,7 @@ abstract class _$ServicesPageRouter extends RootStackRouter {
         child: ServiceEvaluateListPage(
           key: args.key,
           id: args.id,
-          cleanServiceType: args.cleanServiceType,
+          cleanServiceTypeStr: args.cleanServiceTypeStr,
         ),
       );
     },
@@ -131,7 +131,7 @@ abstract class _$ServicesPageRouter extends RootStackRouter {
         child: ServiceOrderConfirmPage(
           key: args.key,
           id: args.id,
-          cleanServiceType: args.cleanServiceType,
+          cleanServiceTypeStr: args.cleanServiceTypeStr,
         ),
       );
     },
@@ -140,14 +140,14 @@ abstract class _$ServicesPageRouter extends RootStackRouter {
       final args = routeData.argsAs<ServicePaySuccessPageRouteArgs>(
           orElse: () => ServicePaySuccessPageRouteArgs(
                 id: pathParams.getInt('id'),
-                cleanServiceType: pathParams.getString('cleanServiceType'),
+                cleanServiceTypeStr: pathParams.getString('cleanServiceTypeStr'),
               ));
       return AutoRoutePage<dynamic>(
         routeData: routeData,
         child: ServicePaySuccessPage(
           key: args.key,
           id: args.id,
-          cleanServiceType: args.cleanServiceType,
+          cleanServiceTypeStr: args.cleanServiceTypeStr,
         ),
       );
     },
@@ -156,14 +156,14 @@ abstract class _$ServicesPageRouter extends RootStackRouter {
       final args = routeData.argsAs<ServiceRepairDetailPageRouteArgs>(
           orElse: () => ServiceRepairDetailPageRouteArgs(
                 id: pathParams.getInt('id'),
-                cleanServiceType: pathParams.optString('cleanServiceType'),
+                cleanServiceTypeStr: pathParams.optString('cleanServiceTypeStr'),
               ));
       return AutoRoutePage<dynamic>(
         routeData: routeData,
         child: ServiceRepairDetailPage(
           key: args.key,
           id: args.id,
-          cleanServiceType: args.cleanServiceType,
+          cleanServiceTypeStr: args.cleanServiceTypeStr,
         ),
       );
     },
@@ -209,18 +209,18 @@ class CleanOrderDetailPageRoute
   CleanOrderDetailPageRoute({
     Key? key,
     required int id,
-    required String cleanServiceType,
+    required String cleanServiceTypeStr,
     List<PageRouteInfo>? children,
   }) : super(
           CleanOrderDetailPageRoute.name,
           args: CleanOrderDetailPageRouteArgs(
             key: key,
             id: id,
-            cleanServiceType: cleanServiceType,
+            cleanServiceTypeStr: cleanServiceTypeStr,
           ),
           rawPathParams: {
             'id': id,
-            'cleanServiceType': cleanServiceType,
+            'cleanServiceTypeStr': cleanServiceTypeStr,
           },
           initialChildren: children,
         );
@@ -235,18 +235,18 @@ class CleanOrderDetailPageRouteArgs {
   const CleanOrderDetailPageRouteArgs({
     this.key,
     required this.id,
-    required this.cleanServiceType,
+    required this.cleanServiceTypeStr,
   });
 
   final Key? key;
 
   final int id;
 
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
 
   @override
   String toString() {
-    return 'CleanOrderDetailPageRouteArgs{key: $key, id: $id, cleanServiceType: $cleanServiceType}';
+    return 'CleanOrderDetailPageRouteArgs{key: $key, id: $id, cleanServiceTypeStr: $cleanServiceTypeStr}';
   }
 }
 
@@ -393,7 +393,7 @@ class ServiceCleanDetailPageRoute
   ServiceCleanDetailPageRoute({
     Key? key,
     required int id,
-    required String cleanServiceType,
+    required String cleanServiceTypeStr,
     required bool liked,
     required int likesCount,
     List<PageRouteInfo>? children,
@@ -402,13 +402,13 @@ class ServiceCleanDetailPageRoute
           args: ServiceCleanDetailPageRouteArgs(
             key: key,
             id: id,
-            cleanServiceType: cleanServiceType,
+            cleanServiceTypeStr: cleanServiceTypeStr,
             liked: liked,
             likesCount: likesCount,
           ),
           rawPathParams: {
             'id': id,
-            'cleanServiceType': cleanServiceType,
+            'cleanServiceTypeStr': cleanServiceTypeStr,
           },
           initialChildren: children,
         );
@@ -423,7 +423,7 @@ class ServiceCleanDetailPageRouteArgs {
   const ServiceCleanDetailPageRouteArgs({
     this.key,
     required this.id,
-    required this.cleanServiceType,
+    required this.cleanServiceTypeStr,
     required this.liked,
     required this.likesCount,
   });
@@ -432,7 +432,7 @@ class ServiceCleanDetailPageRouteArgs {
 
   final int id;
 
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
 
   final bool liked;
 
@@ -440,7 +440,7 @@ class ServiceCleanDetailPageRouteArgs {
 
   @override
   String toString() {
-    return 'ServiceCleanDetailPageRouteArgs{key: $key, id: $id, cleanServiceType: $cleanServiceType, liked: $liked, likesCount: $likesCount}';
+    return 'ServiceCleanDetailPageRouteArgs{key: $key, id: $id, cleanServiceTypeStr: $cleanServiceTypeStr, liked: $liked, likesCount: $likesCount}';
   }
 }
 
@@ -451,14 +451,14 @@ class ServiceEvaluateCreatePageRoute
   ServiceEvaluateCreatePageRoute({
     Key? key,
     required int id,
-    required String cleanServiceType,
+    required String cleanServiceTypeStr,
     List<PageRouteInfo>? children,
   }) : super(
           ServiceEvaluateCreatePageRoute.name,
           args: ServiceEvaluateCreatePageRouteArgs(
             key: key,
             id: id,
-            cleanServiceType: cleanServiceType,
+            cleanServiceTypeStr: cleanServiceTypeStr,
           ),
           initialChildren: children,
         );
@@ -473,18 +473,18 @@ class ServiceEvaluateCreatePageRouteArgs {
   const ServiceEvaluateCreatePageRouteArgs({
     this.key,
     required this.id,
-    required this.cleanServiceType,
+    required this.cleanServiceTypeStr,
   });
 
   final Key? key;
 
   final int id;
 
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
 
   @override
   String toString() {
-    return 'ServiceEvaluateCreatePageRouteArgs{key: $key, id: $id, cleanServiceType: $cleanServiceType}';
+    return 'ServiceEvaluateCreatePageRouteArgs{key: $key, id: $id, cleanServiceTypeStr: $cleanServiceTypeStr}';
   }
 }
 
@@ -495,14 +495,14 @@ class ServiceEvaluateListPageRoute
   ServiceEvaluateListPageRoute({
     Key? key,
     required int id,
-    required String cleanServiceType,
+    required String cleanServiceTypeStr,
     List<PageRouteInfo>? children,
   }) : super(
           ServiceEvaluateListPageRoute.name,
           args: ServiceEvaluateListPageRouteArgs(
             key: key,
             id: id,
-            cleanServiceType: cleanServiceType,
+            cleanServiceTypeStr: cleanServiceTypeStr,
           ),
           initialChildren: children,
         );
@@ -517,18 +517,18 @@ class ServiceEvaluateListPageRouteArgs {
   const ServiceEvaluateListPageRouteArgs({
     this.key,
     required this.id,
-    required this.cleanServiceType,
+    required this.cleanServiceTypeStr,
   });
 
   final Key? key;
 
   final int id;
 
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
 
   @override
   String toString() {
-    return 'ServiceEvaluateListPageRouteArgs{key: $key, id: $id, cleanServiceType: $cleanServiceType}';
+    return 'ServiceEvaluateListPageRouteArgs{key: $key, id: $id, cleanServiceTypeStr: $cleanServiceTypeStr}';
   }
 }
 
@@ -539,14 +539,14 @@ class ServiceOrderConfirmPageRoute
   ServiceOrderConfirmPageRoute({
     Key? key,
     required int id,
-    required String cleanServiceType,
+    required String cleanServiceTypeStr,
     List<PageRouteInfo>? children,
   }) : super(
           ServiceOrderConfirmPageRoute.name,
           args: ServiceOrderConfirmPageRouteArgs(
             key: key,
             id: id,
-            cleanServiceType: cleanServiceType,
+            cleanServiceTypeStr: cleanServiceTypeStr,
           ),
           initialChildren: children,
         );
@@ -561,18 +561,18 @@ class ServiceOrderConfirmPageRouteArgs {
   const ServiceOrderConfirmPageRouteArgs({
     this.key,
     required this.id,
-    required this.cleanServiceType,
+    required this.cleanServiceTypeStr,
   });
 
   final Key? key;
 
   final int id;
 
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
 
   @override
   String toString() {
-    return 'ServiceOrderConfirmPageRouteArgs{key: $key, id: $id, cleanServiceType: $cleanServiceType}';
+    return 'ServiceOrderConfirmPageRouteArgs{key: $key, id: $id, cleanServiceTypeStr: $cleanServiceTypeStr}';
   }
 }
 
@@ -583,18 +583,18 @@ class ServicePaySuccessPageRoute
   ServicePaySuccessPageRoute({
     Key? key,
     required int id,
-    required String cleanServiceType,
+    required String cleanServiceTypeStr,
     List<PageRouteInfo>? children,
   }) : super(
           ServicePaySuccessPageRoute.name,
           args: ServicePaySuccessPageRouteArgs(
             key: key,
             id: id,
-            cleanServiceType: cleanServiceType,
+            cleanServiceTypeStr: cleanServiceTypeStr,
           ),
           rawPathParams: {
             'id': id,
-            'cleanServiceType': cleanServiceType,
+            'cleanServiceTypeStr': cleanServiceTypeStr,
           },
           initialChildren: children,
         );
@@ -609,18 +609,18 @@ class ServicePaySuccessPageRouteArgs {
   const ServicePaySuccessPageRouteArgs({
     this.key,
     required this.id,
-    required this.cleanServiceType,
+    required this.cleanServiceTypeStr,
   });
 
   final Key? key;
 
   final int id;
 
-  final String cleanServiceType;
+  final String cleanServiceTypeStr;
 
   @override
   String toString() {
-    return 'ServicePaySuccessPageRouteArgs{key: $key, id: $id, cleanServiceType: $cleanServiceType}';
+    return 'ServicePaySuccessPageRouteArgs{key: $key, id: $id, cleanServiceTypeStr: $cleanServiceTypeStr}';
   }
 }
 
@@ -631,18 +631,18 @@ class ServiceRepairDetailPageRoute
   ServiceRepairDetailPageRoute({
     Key? key,
     required int id,
-    required String? cleanServiceType,
+    required String? cleanServiceTypeStr,
     List<PageRouteInfo>? children,
   }) : super(
           ServiceRepairDetailPageRoute.name,
           args: ServiceRepairDetailPageRouteArgs(
             key: key,
             id: id,
-            cleanServiceType: cleanServiceType,
+            cleanServiceTypeStr: cleanServiceTypeStr,
           ),
           rawPathParams: {
             'id': id,
-            'cleanServiceType': cleanServiceType,
+            'cleanServiceTypeStr': cleanServiceTypeStr,
           },
           initialChildren: children,
         );
@@ -657,18 +657,18 @@ class ServiceRepairDetailPageRouteArgs {
   const ServiceRepairDetailPageRouteArgs({
     this.key,
     required this.id,
-    required this.cleanServiceType,
+    required this.cleanServiceTypeStr,
   });
 
   final Key? key;
 
   final int id;
 
-  final String? cleanServiceType;
+  final String? cleanServiceTypeStr;
 
   @override
   String toString() {
-    return 'ServiceRepairDetailPageRouteArgs{key: $key, id: $id, cleanServiceType: $cleanServiceType}';
+    return 'ServiceRepairDetailPageRouteArgs{key: $key, id: $id, cleanServiceTypeStr: $cleanServiceTypeStr}';
   }
 }
 

+ 1 - 0
packages/cs_router/lib/componentRouter/service_service.dart

@@ -5,4 +5,5 @@ abstract class ServiceService {
 
   void startServicePage();
 
+  void startServiceOrderDetailPage(String id);
 }

+ 9 - 6
packages/cs_widgets/lib/dialog/dialog_content_wrap.dart

@@ -78,9 +78,9 @@ class DialogContentWrap extends StatefulWidget {
     this.confirmTxt,
     this.cancelTxt,
     this.titleTextStyle,
-    this.titleBackgroundColor = Colors.white,
-    this.backgroundColor = Colors.white,
-    this.closeIconColor = Colors.white,
+    this.titleBackgroundColor,
+    this.backgroundColor,
+    this.closeIconColor,
     this.bottomBtnRadius = 7,
     this.noBtnBg,
     this.yesBtnBg,
@@ -129,6 +129,9 @@ class DialogContentWrapState extends State<DialogContentWrap> {
   @override
   Widget build(BuildContext context) {
     Log.d("dialogWidth  ${widget.dialogWidth} ");
+    Color _titleBackgroundColor = widget.titleBackgroundColor?? context.appColors.whiteBG;
+    Color _backgroundColor = widget.backgroundColor?? context.appColors.whiteBG;
+    Color _closeIconColor = widget.closeIconColor?? context.appColors.whiteBG;
     double _dialogWidth = widget.dialogWidth?? MediaQuery.of(context).size.width * 0.65;
     bool _showTitleSection = (widget.title != null && widget.title!.isNotEmpty) || widget.titleBuilder != null;
     bool _showBottomBtnSection = widget.isShowConfirmBtn || widget.isShowCancelBtn || widget.bottomFooterBuilder != null;
@@ -159,7 +162,7 @@ class DialogContentWrapState extends State<DialogContentWrap> {
               maxHeight: widget.maxHeight!,
             ),
             decoration: BoxDecoration(
-              color: DarkThemeUtil.multiColors(context, widget.backgroundColor?? context.appColors.whiteBG, darkColor: AppColorsTheme.color666666),
+              color: DarkThemeUtil.multiColors(context, _backgroundColor, darkColor: widget.backgroundColor??AppColorsTheme.color666666),
               // borderRadius: BorderRadius.only(
               //   topLeft: Radius.circular(topLeftRadius!),
               //   topRight: Radius.circular(topRightRadius!),
@@ -181,7 +184,7 @@ class DialogContentWrapState extends State<DialogContentWrap> {
                               // 标题区
                               Container(
                                 width: double.infinity,
-                                color: DarkThemeUtil.multiColors(context, widget.titleBackgroundColor, darkColor: Colors.black),
+                                color: DarkThemeUtil.multiColors(context, _titleBackgroundColor, darkColor: widget.titleBackgroundColor??Colors.black.withOpacity(0.8)),
                                 child: Visibility(
                                   visible: _showTitleSection,
                                   child: (widget.title != null && widget.title!.isNotEmpty)? MyTextView(
@@ -307,7 +310,7 @@ class DialogContentWrapState extends State<DialogContentWrap> {
               Assets.baseServiceDialogDeleteIcon,
               width: 25,
               height: 25.5,
-              color: widget.closeIconColor ?? context.appColors.textPrimary,
+              color: DarkThemeUtil.multiColors(context, _closeIconColor, darkColor: widget.closeIconColor ?? context.appColors.textPrimary),
             ).onTap((){
               widget.closeAction ?.call();
               onCancel();

+ 3 - 2
packages/cs_widgets/lib/my_cart_num.dart

@@ -1,6 +1,7 @@
 import 'package:cs_resources/theme/app_colors_theme.dart';
 import 'package:flutter/material.dart';
 import 'package:widgets/my_text_view.dart';
+import 'package:widgets/utils/dark_theme_util.dart';
 
 class MyCartNum extends StatefulWidget {
   final int initialNum;
@@ -55,7 +56,7 @@ class _MyCartNumState extends State<MyCartNum> {
           ),
             fillColor: context.appColors.textPrimary,
             splashColor: context.appColors.textPrimary,
-            textStyle: TextStyle(color: Colors.white),
+            textStyle: TextStyle(color: DarkThemeUtil.multiColors(context, Colors.white, darkColor: Colors.black54)),
             onPressed: _decrementNum,
             child: const Icon(Icons.remove),
         ),
@@ -77,7 +78,7 @@ class _MyCartNumState extends State<MyCartNum> {
           ),
           fillColor: context.appColors.textPrimary,
           splashColor: context.appColors.textPrimary,
-          textStyle: TextStyle(color: Colors.white),
+          textStyle: TextStyle(color: DarkThemeUtil.multiColors(context, Colors.white, darkColor: Colors.black54)),
           onPressed: _incrementNum,
           child: const Icon(Icons.add),
         ),