Explorar el Código

update service

glglove hace 1 mes
padre
commit
b1a96249d4
Se han modificado 20 ficheros con 424 adiciones y 136 borrados
  1. 2 2
      packages/cpt_services/lib/constants_services.dart
  2. 1 2
      packages/cpt_services/lib/modules/services/homeService/home_service_vm.dart
  3. 1 1
      packages/cpt_services/lib/modules/services/homeService/home_service_vm.g.dart
  4. 1 1
      packages/cpt_services/lib/modules/services/inProgress/in_progress_vm.g.dart
  5. 9 7
      packages/cpt_services/lib/modules/services/repair/repair_page.dart
  6. 1 1
      packages/cpt_services/lib/modules/services/repair_history/history_vm.g.dart
  7. 13 7
      packages/cpt_services/lib/modules/services/repair_homeService/home_service_page.dart
  8. 3 2
      packages/cpt_services/lib/modules/services/repair_homeService/home_service_state.dart
  9. 41 41
      packages/cpt_services/lib/modules/services/repair_homeService/home_service_vm.dart
  10. 1 1
      packages/cpt_services/lib/modules/services/repair_homeService/home_service_vm.g.dart
  11. 13 33
      packages/cpt_services/lib/modules/services/repair_homeService/service_card_item.dart
  12. 14 12
      packages/cpt_services/lib/modules/services/service_repair_detail/service_repair_detail_page.dart
  13. 9 9
      packages/cpt_services/lib/modules/services/service_repair_detail/service_repair_detail_vm.dart
  14. 1 1
      packages/cpt_services/lib/modules/services/service_repair_detail/service_repair_detail_vm.g.dart
  15. 10 7
      packages/cpt_services/lib/modules/services/services_page.dart
  16. 2 1
      packages/cpt_services/lib/respository/services_respository.dart
  17. 8 8
      packages/cpt_services/lib/router/page/services_page_router.gr.dart
  18. 82 0
      packages/cs_domain/lib/entity/repair_service_entity.dart
  19. 21 0
      packages/cs_domain/lib/generated/json/base/json_convert_content.dart
  20. 191 0
      packages/cs_domain/lib/generated/json/repair_service_entity.g.dart

+ 2 - 2
packages/cpt_services/lib/constants_services.dart

@@ -10,10 +10,10 @@ class servicesConstants {
        "type": "paid",
        'code': "Air Conditioning Cleaning", // 业务做 标识 字段
      },
-     "inquiry": {
+     "repairAirConditioner": {
        "text": "Maintenance",
        "type": "inquiry",
-       'code': "Maintenance",  // 业务做 标识 字段
+       'code': "Repair air Conditioner",  // 业务做 标识 字段
      }
   };
 

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

@@ -187,7 +187,7 @@ class HomeServiceVm extends _$HomeServiceVm {
       final result = await servicesRespositoryInstance.fetchPaidServiceDataList(params);
       //校验成功失败
       if (result.isSuccess) {
-        handlerResultList((result.data as PaidServiceEntity).list as List<PaidServiceList>?, isLoadMore ?? false);
+        handlerResultList((result.data as PaidServiceEntity)?.list as List<PaidServiceList>?, isLoadMore ?? false);
       } else {
         String errorMessage = result.errorMsg!;
         changeLoadingState(LoadState.State_Error, errorMessage);
@@ -449,7 +449,6 @@ class HomeServiceVm extends _$HomeServiceVm {
 
   // 设置当前的 _queryParams
   setCurrentQueryParams(Map<String, dynamic> params){
-    Log.d(222);
     _queryParams.addAll(params);
   }
 

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

@@ -6,7 +6,7 @@ part of 'home_service_vm.dart';
 // RiverpodGenerator
 // **************************************************************************
 
-String _$homeServiceVmHash() => r'186dde40ced6727523baa7bce046d5ff436bd6c9';
+String _$homeServiceVmHash() => r'7c5d76923a572cd63f3a31036baec538f17a0cc4';
 
 /// See also [HomeServiceVm].
 @ProviderFor(HomeServiceVm)

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

@@ -6,7 +6,7 @@ part of 'in_progress_vm.dart';
 // RiverpodGenerator
 // **************************************************************************
 
-String _$inProgressVmHash() => r'a68e56ab4116a9868f38b5389e1527bfc2453975';
+String _$inProgressVmHash() => r'cf2b1d13c3c134c4b8a29e257fda6e652af9061d';
 
 /// See also [InProgressVm].
 @ProviderFor(InProgressVm)

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

@@ -121,13 +121,15 @@ class RepairPage extends HookConsumerWidget with WidgetsBindingObserver {
             context,
             value: vm.getCurrentQueryParams('keyword'),
             actions: [
-              const MyAssetImage(
-                Assets.serviceServiceScoreYes,
-                width: 21.5,
-                height: 21.5,
-              ).onTap((){
-                vm.handlerClickNavbarLikeBtn(context);
-              }),
+              (state.currentPageViewIdx == 0) ? Container(
+                child: const MyAssetImage(
+                  Assets.serviceServiceScoreYes,
+                  width: 21.5,
+                  height: 21.5,
+                ).onTap((){
+                  vm.handlerClickNavbarLikeBtn(context);
+                }),
+              ):const SizedBox.shrink(),
               const SizedBox(width: 15),
             ],
             backgroundColor: context.appColors.backgroundWhite,

+ 1 - 1
packages/cpt_services/lib/modules/services/repair_history/history_vm.g.dart

@@ -6,7 +6,7 @@ part of 'history_vm.dart';
 // RiverpodGenerator
 // **************************************************************************
 
-String _$repairHistoryVmHash() => r'0efc4fce87cd9f6fd4a3946d43b3cacef966aa00';
+String _$repairHistoryVmHash() => r'02b81fc894e21133f15ca8b36d8026e2c195880e';
 
 /// See also [RepairHistoryVm].
 @ProviderFor(RepairHistoryVm)

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

@@ -1,5 +1,6 @@
 import 'package:cs_resources/generated/assets.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
+import 'package:domain/entity/repair_service_entity.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/rendering.dart';
@@ -101,8 +102,12 @@ class RepairHomeServicePage extends HookConsumerWidget {
                         ),
                         delegate: SliverChildBuilderDelegate(
                               (context, index) {
-                            return  _buildRepairHomeServiceItem(context, ref, state.list[index], vm).onTap((){
-                              vm.handlerGotoDetail(context: context, id: state.list[index]['id'], cleanServiceType: state.list[index]['service_type']);
+                            return  _buildRepairHomeServiceItem(context, ref, state.list[index] as RepairServiceList, vm).onTap((){
+                              // 去详情页面
+                              RepairServiceList repairServiceEntity = state.list[index] as RepairServiceList;
+                              RepairServiceListCategory repairServiceCategory = repairServiceEntity.category!;
+                              vm.handlerGotoDetail(context: context, id: repairServiceEntity.id!, repairServiceListCategory: repairServiceCategory!);
+
                             });
                           },
                           childCount: state.list.length,
@@ -110,7 +115,7 @@ class RepairHomeServicePage extends HookConsumerWidget {
                       ),
                     ],
                   ),
-                ).marginOnly(left: 15,right: 15,top: 0,bottom: 15),
+                ).marginOnly(left: 15,right: 15,top: 15,bottom: 15),
               ),
             ],
           )
@@ -118,7 +123,7 @@ class RepairHomeServicePage extends HookConsumerWidget {
     );
   }
 
-  Widget _buildRepairHomeServiceItem(BuildContext context, WidgetRef ref, Map<String, dynamic> item, vm){
+  Widget _buildRepairHomeServiceItem(BuildContext context, WidgetRef ref, RepairServiceList item, vm){
     return SizedBox(
       width: double.infinity,
       // height: 170,
@@ -143,10 +148,11 @@ class RepairHomeServicePage extends HookConsumerWidget {
               Expanded(
                 child: RepairHomeServiceCard(
                     key: UniqueKey(),
-                    itemObj: item.cast<String, dynamic>(),
+                    itemEntity: item,
+                    cleanServiceType: item.category!.type,
                     onClickColleciotn: (dynamic collectionValue) async {
-                      Log.d("点击了喜欢按钮  --id:${item['id']}- $collectionValue");
-                      int id = item['id'];
+                      Log.d("点击了喜欢按钮  --id:${item.id}- $collectionValue");
+                      int id = item.id!;
                       return await vm.handlerClickCollection(id, collectionValue);
                     }
                 ),

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

@@ -1,3 +1,4 @@
+import 'package:domain/entity/repair_service_entity.dart';
 import 'package:widgets/load_state_layout.dart';
 
 class RepairHomeServiceState {
@@ -12,7 +13,7 @@ class RepairHomeServiceState {
   String? sortBySelectedOption;
 
   List<Map<String, dynamic>> activeCateGoryList;
-  List<Map<String, dynamic>> list;
+  List<RepairServiceList> list;
 
 
   RepairHomeServiceState({
@@ -32,7 +33,7 @@ class RepairHomeServiceState {
     bool? isLiked,
     String? sortBySelectedOption,
     List<Map<String, dynamic>>? activeCateGoryList,
-    List<Map<String, dynamic>>? list,
+    List<RepairServiceList>? list,
   }) {
     return RepairHomeServiceState(
       loadingState: loadingState ?? this.loadingState,

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

@@ -1,8 +1,6 @@
 
-import 'package:cs_resources/generated/assets.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
-import 'package:domain/entity/garage_sale_rent_entity.dart';
-import 'package:domain/entity/newsfeed_detail_entity.dart';
+import 'package:domain/entity/repair_service_entity.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
 import 'package:plugin_platform/engine/dialog/dialog_engine.dart';
@@ -16,6 +14,7 @@ import 'package:widgets/my_checkbox_group.dart';
 import 'package:widgets/picker/option_pick_util.dart';
 import 'package:widgets/widget_export.dart';
 
+import '../../../constants_services.dart';
 import '../../../respository/services_respository.dart';
 import '../../../router/page/services_page_router.dart';
 import 'home_service_state.dart';
@@ -55,7 +54,7 @@ class RepairHomeServiceVm extends _$RepairHomeServiceVm {
   @override
   RepairHomeServiceState build(){
     // 引入数据仓库
-    // servicesRespositoryInstance = ref.read(commonGarageRespositoryProvider);
+    servicesRespositoryInstance = ref.read(servicesRespositoryProvider);
     final state = initState();
     Log.d("--------------------------build---------------------");
 
@@ -164,38 +163,37 @@ class RepairHomeServiceVm extends _$RepairHomeServiceVm {
     //     'company_name': 'HONG YE GROUP PTE LTD',
     //   },
     // ];
-    // handlerResultData(true, list:list);
 
-    // try {
-    //   //请求网络
-    //   Map<String, dynamic>  params = {
-    //     "sort": null, // 排序(desc=降序,asc=升序)
-    //     "sort_by": null,  // 排序(likes_count=点赞量,orders_count=下单量,clicks_count=点击量)
-    //     "category_id": _queryParams['category_id'],
-    //     "keyword": _queryParams['keyword'],
-    //     "page": _page,
-    //     "limit": _limit,
-    //   };
-    //   Log.d("请求参数------$params");
-    //   final result = await servicesRespositoryInstance.fetchRepairServiceList(params);
-    //   //校验成功失败
-    //   if (result.isSuccess) {
-    //     handlerResultList((result.data as PaidServiceEntity).list as List<PaidServiceList>?, isLoadMore ?? false);
-    //   } else {
-    //     String errorMessage = result.errorMsg!;
-    //     changeLoadingState(LoadState.State_Error, errorMessage);
-    //     ToastEngine.show(result.errorMsg ?? "Network Load Error");
-    //   }
-    // } catch (e) {
-    //   ToastEngine.show("Error: $e");
-    // }
+    try {
+      //请求网络
+      Map<String, dynamic>  params = {
+        "sort": null, // 排序(desc=降序,asc=升序)
+        "sort_by": null,  // 排序(likes_count=点赞量,orders_count=下单量,clicks_count=点击量)
+        "category_id": _queryParams['category_id'],
+        "keyword": _queryParams['keyword'],
+        "page": _page,
+        "limit": _limit,
+      };
+      Log.d("请求参数------$params");
+      final result = await servicesRespositoryInstance.fetchRepairServiceList(params);
+      //校验成功失败
+      if (result.isSuccess) {
+        handlerResultList((result.data as RepairServiceEntity)?.list as List<RepairServiceList>?, isLoadMore ?? false);
+      } else {
+        String errorMessage = result.errorMsg!;
+        changeLoadingState(LoadState.State_Error, errorMessage);
+        ToastEngine.show(result.errorMsg ?? "Network Load Error");
+      }
+    } catch (e) {
+      ToastEngine.show("Error: $e");
+    }
 
     // 最后赋值
     _needShowPlaceholder = false;
 
   }
 
-  handlerResultData(bool isList, {List<Map<String, dynamic>>? list, dynamic? data}){
+  handlerResultData(bool isList, {List<RepairServiceList>? list, dynamic? data}){
     Future.delayed(const Duration(seconds: 1)).then((value) {
       if(isList){
         // list 数据模式
@@ -241,20 +239,20 @@ class RepairHomeServiceVm extends _$RepairHomeServiceVm {
     });
   }
 
-  void handlerResultList(List<GarageSaleRentList>? list, bool isLoadMore) {
+  void handlerResultList(List<RepairServiceList>? list, bool isLoadMore) {
     if (list != null && list.isNotEmpty) {
       //有数据,判断是刷新还是加载更多的数据
       if (_page == 1) {
         //刷新的方式
         state.list!.clear();
-        state.list!.addAll(list.map((item) => item.toJson()).toList());
+        state.list!.addAll(list);
         refreshController.finishRefresh();
         //更新展示的状态
         changeLoadingState(LoadState.State_Success, null);
       } else {
         //加载更多
         final allList = state.list;
-        allList!.addAll(list.map((item) => item.toJson()).toList());
+        allList!.addAll(list);
         state = state.copyWith(list: allList);
         refreshController.finishLoad();
       }
@@ -414,16 +412,12 @@ class RepairHomeServiceVm extends _$RepairHomeServiceVm {
       //校验成功失败
       if (result.isSuccess) {
         // 修改 该id 的 liked 和 likes_count 字段
-        state.list!.forEach((Map<String, dynamic> element) {
-          GarageSaleRentList elementEntity = GarageSaleRentList.fromJson(element);
+        state.list!.forEach((RepairServiceList elementEntity) {
 
           if(elementEntity.id == id){
             elementEntity.liked = !elementEntity.liked!;
             elementEntity.likesCount = elementEntity.liked! ? (elementEntity.likesCount! + 1) : (elementEntity.likesCount! - 1);
           }
-
-          element = elementEntity.toJson();
-
         });
         return true;
       } else {
@@ -501,12 +495,18 @@ class RepairHomeServiceVm extends _$RepairHomeServiceVm {
   }
 
   // 去详情页面
-  void handlerGotoDetail({BuildContext? context, required int id, String? cleanServiceType }){
-    Log.d("去详情页面  $id  $cleanServiceType");
-    if(cleanServiceType == 0 || cleanServiceType == 1){
+  void handlerGotoDetail({BuildContext? context, required int id, required RepairServiceListCategory repairServiceListCategory }){
+
+    final cleanServiceType = repairServiceListCategory.name!;
+    Log.d("去详情页面:  $id  $cleanServiceType");
+    if(cleanServiceType == servicesConstants.servicesType['repairAirConditioner']!['code']){
       // clean service  跳转到 clean 详情页
-      appRouter.push(ServiceCleanDetailPageRoute(id: id, cleanServiceType: cleanServiceType!));
+      appRouter.push(ServiceRepairDetailPageRoute(id: id, cleanServiceType: cleanServiceType));
+    }else {
+      // other service  跳转到 other 详情页
+      ToastEngine.show("${cleanServiceType} 类型的详情暂未开放");
     }
+
   }
 
 }

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

@@ -7,7 +7,7 @@ part of 'home_service_vm.dart';
 // **************************************************************************
 
 String _$repairHomeServiceVmHash() =>
-    r'184ab2f5e837316c41329192c1079fe183b0b9d0';
+    r'4006150cdf360bf7db04f0c4e591f14e32e38990';
 
 /// See also [RepairHomeServiceVm].
 @ProviderFor(RepairHomeServiceVm)

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

@@ -1,5 +1,6 @@
 import 'package:cs_resources/generated/assets.dart';
 import 'package:cs_resources/theme/app_colors_theme.dart';
+import 'package:domain/entity/repair_service_entity.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/widgets.dart';
 import 'package:flutter_hooks/flutter_hooks.dart';
@@ -28,16 +29,16 @@ import '../../../constants_services.dart';
 
 
 class RepairHomeServiceCard extends StatelessWidget {
-  Map<String, dynamic>? serviceType = servicesConstants.servicesType['houseCleaning'];
-  Map<String, dynamic> itemObj;
+  String? cleanServiceType;
+  RepairServiceList itemEntity;
   double? cardHeight;
   final Function()? onTap;
   final Function(dynamic)? onClickColleciotn;
 
   RepairHomeServiceCard({
     Key? key,
-    this.serviceType,
-    required this.itemObj,
+    this.cleanServiceType,
+    required this.itemEntity,
     this.onTap,
     this.onClickColleciotn,
     double? cardHeight,
@@ -47,16 +48,14 @@ class RepairHomeServiceCard extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    List? card_resources = itemObj.getValue<List>("resources", [])?? [];
+    int card_id = itemEntity.id?? 0;
+    List? card_resources =  [];
     String card_img = card_resources.length>0? card_resources[0]:"";
-    String card_title = itemObj.getValue("title", "");
-    final unit = itemObj.getValue("unit", "");
+    String card_name = itemEntity.name?? "";
+    bool card_liked = itemEntity.liked??false;
+    int card_likes_count = itemEntity.likesCount?? 0;
 
-    int card_price = itemObj.getValue("price", "");
-    String card_created_at = itemObj.getValue("created_at", "");
-    bool card_liked = itemObj.getValue("liked", false);
-    int card_likes_count = itemObj.getValue("likes_count", 0);
-    final company_name = itemObj.getValue("company_name", "");
+    final company_name = itemEntity.merchant?.name?? "";
     return Column(
       children: [
         // 图片
@@ -88,7 +87,7 @@ class RepairHomeServiceCard extends StatelessWidget {
                 child: SizedBox(
                   height: 30.ap,
                   child: MyTextView(
-                    card_title,
+                    '$card_name',
                     maxLines: 2,
                     isTextEllipsis: true,
                     textAlign: TextAlign.left,
@@ -114,26 +113,7 @@ class RepairHomeServiceCard extends StatelessWidget {
                   crossAxisAlignment: CrossAxisAlignment.center,
                   children: [
                     MyTextView(
-                      'from',
-                      maxLines: 1,
-                      isTextEllipsis: true,
-                      textAlign: TextAlign.start,
-                      textColor: ColorUtils.string2Color('#666666'),
-                      fontSize: 11,
-                      isFontMedium: true,
-                    ),
-                    MyTextView(
-                      '\$$card_price',
-                      maxLines: 1,
-                      isTextEllipsis: true,
-                      textAlign: TextAlign.start,
-                      textColor: ColorUtils.string2Color('#4161D0'),
-                      fontSize: 15,
-                      isFontMedium: true,
-                      marginLeft: 2,
-                    ),
-                    MyTextView(
-                      '$unit',
+                      'get a quote',
                       maxLines: 1,
                       isTextEllipsis: true,
                       textAlign: TextAlign.start,

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

@@ -15,6 +15,7 @@ import 'package:router/ext/auto_router_extensions.dart';
 import 'package:shared/utils/color_utils.dart';
 import 'package:shared/utils/ext_dart.dart';
 import 'package:shared/utils/log_utils.dart';
+import 'package:shared/utils/richText_utils.dart';
 import 'package:shared/utils/size_config.dart';
 import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/load_state_layout.dart';
@@ -32,22 +33,22 @@ import '../../../router/page/services_page_router.dart';
 @RoutePage()
 class ServiceRepairDetailPage extends HookConsumerWidget {
   final int id;
-  final int serviceTypeCode;
+  final String? cleanServiceType;
 
   const ServiceRepairDetailPage(
       {Key? key,
       @PathParam('id') required this.id,
-      @PathParam('serviceTypeCode') required this.serviceTypeCode})
+      @PathParam('cleanServiceType') required this.cleanServiceType})
       : super(key: key);
   // 启动当前页面
   static void startInstance(
-      {BuildContext? context, int? id, int? serviceTypeCode = 0}) {
+      {BuildContext? context, int? id, String? cleanServiceType}) {
     if (context != null) {
       context.router.push(ServiceRepairDetailPageRoute(
-          id: id!, serviceTypeCode: serviceTypeCode!));
+          id: id!, cleanServiceType: cleanServiceType!));
     } else {
       appRouter.push(ServiceRepairDetailPageRoute(
-          id: id!, serviceTypeCode: serviceTypeCode!));
+          id: id!, cleanServiceType: cleanServiceType!));
     }
   }
 
@@ -67,7 +68,7 @@ class ServiceRepairDetailPage extends HookConsumerWidget {
     useEffect(() {
       vm.setInitPageData(
         id: id,
-        serviceTypeCode: serviceTypeCode,
+        cleanServiceType: cleanServiceType,
       );
       // 组件挂载时执行 - 执行接口请求
       Future.microtask(() => vm.initPageData());
@@ -132,10 +133,8 @@ class ServiceRepairDetailPage extends HookConsumerWidget {
       ServiceRepairDetailEntity? detailInfo,
       ServiceRepairDetailState state,
       ServiceRepairDetailVm vm) {
-    // List<String> resources = detailInfo?['resources'].cast<String>()??[];
-    String title = detailInfo?.name ?? '';
-    double score = 5.0;
-    // String description = detailInfo?['description']??'';
+    final String title = detailInfo?.name??'';
+    final description =  RichtextUtils.getHandleResult(detailInfo?.description??'');
 
     return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
       Column(
@@ -231,7 +230,7 @@ class ServiceRepairDetailPage extends HookConsumerWidget {
                         minHeight: 44.5,
                         fontWeight: FontWeight.w400,
                         onPressed: () {
-                          vm.RepairServiceSubmit(context, id, serviceTypeCode);
+                          vm.RepairServiceSubmit(context, id);
                         },
                       ),
                     ),
@@ -255,7 +254,10 @@ class ServiceRepairDetailPage extends HookConsumerWidget {
               child: Column(
                   mainAxisAlignment: MainAxisAlignment.center,
                   crossAxisAlignment: CrossAxisAlignment.center,
-                  children: [Html(data: detailInfo?.description)]
+                  children: [
+                    // description
+                    Html(data: description),
+                  ]
                   // List.generate(2, (index) {
                   //   // 创建一个映射来关联字符串和资源
                   //   final Map<String, String> assetMap = {

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

@@ -26,8 +26,8 @@ part 'service_repair_detail_vm.g.dart';
 class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
   late ServicesRespository serviceRespositoryInstance;
 
-  int _detailId = 0;
-  int _detailServiceTypeCode = 0;
+  late int _detailId;
+  late String _cleanServiceType;
 
   bool _needShowPlaceholder = false; //是否展示LoadingView
   int _page = 1; // 当前页
@@ -105,9 +105,9 @@ class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
     getDetailData();
   }
 
-  setInitPageData({required int id, required int serviceTypeCode}) {
+  setInitPageData({required int id, required String? cleanServiceType}) {
     _detailId = id;
-    _detailServiceTypeCode = serviceTypeCode;
+    _cleanServiceType = cleanServiceType?? '';
   }
 
   Future getDetailData<T>() async {
@@ -169,9 +169,9 @@ class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
   Future<bool?> handlerClickCollection(
       BuildContext? context, int id, bool isCollection) async {
     // var vm;
-    // if(_detailServiceTypeCode == "forSale"){
+    // if(_cleanServiceType == "forSale"){
     //   // vm = ref.read(forsaleVmProvider.notifier);
-    // }else if(_detailServiceTypeCode == "forRent"){
+    // }else if(_cleanServiceType == "forRent"){
     //   vm = ref.read(forrentVmProvider.notifier);
     // }
     // try {
@@ -249,13 +249,13 @@ class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
   }
 
   Future RepairServiceSubmit<T>(
-      BuildContext context, int id, int serviceTypeCode) async {
+      BuildContext context, int id) async {
     try {
       Map<String, dynamic> params = {"service_id": id, "user_notes": ""};
       final result =
           await serviceRespositoryInstance.fetchRepairServiceSubmit(params);
       if (result.isSuccess) {
-        handlerClickQuoteBtn(context, id, serviceTypeCode);
+        handlerClickQuoteBtn(context, id);
       } else {
         ToastEngine.show(result.errorMsg ?? "Network Load Error");
       }
@@ -265,7 +265,7 @@ class ServiceRepairDetailVm extends _$ServiceRepairDetailVm {
   }
 
   handlerClickQuoteBtn(
-      BuildContext context, int id, int serviceTypeCode) async {
+      BuildContext context, int id) async {
     await DialogEngine.show(
         tag: "gotoQuote",
         position: DialogPosition.center,

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

@@ -7,7 +7,7 @@ part of 'service_repair_detail_vm.dart';
 // **************************************************************************
 
 String _$serviceRepairDetailVmHash() =>
-    r'9113465692ae1a7b14627b090fa06e7696f61ddf';
+    r'783e4c9115e5ccc0ab8866fc08260b09764eec5c';
 
 /// See also [ServiceRepairDetailVm].
 @ProviderFor(ServiceRepairDetailVm)

+ 10 - 7
packages/cpt_services/lib/modules/services/services_page.dart

@@ -118,18 +118,21 @@ class ServicesPage extends HookConsumerWidget with WidgetsBindingObserver {
       };
     },[]);
 
+
     return Scaffold(
         appBar: MyAppBar.searchAppBar(
             context,
             value: vm.getCurrentQueryParams('keyword'),
             actions: [
-              const MyAssetImage(
-                Assets.serviceServiceScoreYes,
-                width: 21.5,
-                height: 21.5,
-              ).onTap((){
-                vm.handlerClickNavbarLikeBtn(context);
-              }),
+              (state.currentPageViewIdx == 0) ? Container(
+                 child: const MyAssetImage(
+                    Assets.serviceServiceScoreYes,
+                    width: 21.5,
+                    height: 21.5,
+                 ).onTap((){
+                    vm.handlerClickNavbarLikeBtn(context);
+                 }),
+               ):const SizedBox.shrink(),
               const SizedBox(width: 15),
             ],
             backgroundColor: context.appColors.backgroundWhite,

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

@@ -8,6 +8,7 @@ import 'package:domain/entity/newsfeed_news_entity.dart';
 import 'package:domain/entity/paid_service_detail_entity.dart';
 import 'package:domain/entity/paid_service_entity.dart';
 import 'package:domain/entity/paid_service_pay_success_info_entity.dart';
+import 'package:domain/entity/repair_service_entity.dart';
 import 'package:domain/entity/server_time.dart';
 import 'package:domain/entity/service_category_entity.dart';
 import 'package:domain/entity/service_time_period_entity.dart';
@@ -508,7 +509,7 @@ class ServicesRespository {
     if (result.isSuccess) {
       //重新赋值data或list
       final json = result.getDataJson();
-      var data = GarageSaleRentEntity.fromJson(json!);
+      var data = RepairServiceEntity.fromJson(json!);
       //重新赋值data或list
       return result.convert(data: data);
     } else {

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

@@ -151,14 +151,14 @@ abstract class _$ServicesPageRouter extends RootStackRouter {
       final args = routeData.argsAs<ServiceRepairDetailPageRouteArgs>(
           orElse: () => ServiceRepairDetailPageRouteArgs(
                 id: pathParams.getInt('id'),
-                serviceTypeCode: pathParams.getInt('serviceTypeCode'),
+                cleanServiceType: pathParams.optString('cleanServiceType'),
               ));
       return AutoRoutePage<dynamic>(
         routeData: routeData,
         child: ServiceRepairDetailPage(
           key: args.key,
           id: args.id,
-          serviceTypeCode: args.serviceTypeCode,
+          cleanServiceType: args.cleanServiceType,
         ),
       );
     },
@@ -588,18 +588,18 @@ class ServiceRepairDetailPageRoute
   ServiceRepairDetailPageRoute({
     Key? key,
     required int id,
-    required int serviceTypeCode,
+    required String? cleanServiceType,
     List<PageRouteInfo>? children,
   }) : super(
           ServiceRepairDetailPageRoute.name,
           args: ServiceRepairDetailPageRouteArgs(
             key: key,
             id: id,
-            serviceTypeCode: serviceTypeCode,
+            cleanServiceType: cleanServiceType,
           ),
           rawPathParams: {
             'id': id,
-            'serviceTypeCode': serviceTypeCode,
+            'cleanServiceType': cleanServiceType,
           },
           initialChildren: children,
         );
@@ -614,18 +614,18 @@ class ServiceRepairDetailPageRouteArgs {
   const ServiceRepairDetailPageRouteArgs({
     this.key,
     required this.id,
-    required this.serviceTypeCode,
+    required this.cleanServiceType,
   });
 
   final Key? key;
 
   final int id;
 
-  final int serviceTypeCode;
+  final String? cleanServiceType;
 
   @override
   String toString() {
-    return 'ServiceRepairDetailPageRouteArgs{key: $key, id: $id, serviceTypeCode: $serviceTypeCode}';
+    return 'ServiceRepairDetailPageRouteArgs{key: $key, id: $id, cleanServiceType: $cleanServiceType}';
   }
 }
 

+ 82 - 0
packages/cs_domain/lib/entity/repair_service_entity.dart

@@ -0,0 +1,82 @@
+import 'package:domain/generated/json/base/json_field.dart';
+import 'package:domain/generated/json/repair_service_entity.g.dart';
+import 'dart:convert';
+export 'package:domain/generated/json/repair_service_entity.g.dart';
+
+@JsonSerializable()
+class RepairServiceEntity {
+	int? count;
+	int? page;
+	int? limit;
+	@JSONField(name: "count_page")
+	int? countPage;
+	List<RepairServiceList>? list;
+
+	RepairServiceEntity();
+
+	factory RepairServiceEntity.fromJson(Map<String, dynamic> json) => $RepairServiceEntityFromJson(json);
+
+	Map<String, dynamic> toJson() => $RepairServiceEntityToJson(this);
+
+	@override
+	String toString() {
+		return jsonEncode(this);
+	}
+}
+
+@JsonSerializable()
+class RepairServiceList {
+	int? id;
+	String? name;
+	@JSONField(name: "likes_count")
+	int? likesCount;
+	bool? liked;
+	RepairServiceListMerchant? merchant;
+	RepairServiceListCategory? category;
+
+	RepairServiceList();
+
+	factory RepairServiceList.fromJson(Map<String, dynamic> json) => $RepairServiceListFromJson(json);
+
+	Map<String, dynamic> toJson() => $RepairServiceListToJson(this);
+
+	@override
+	String toString() {
+		return jsonEncode(this);
+	}
+}
+
+@JsonSerializable()
+class RepairServiceListMerchant {
+	int? id;
+	String? name;
+
+	RepairServiceListMerchant();
+
+	factory RepairServiceListMerchant.fromJson(Map<String, dynamic> json) => $RepairServiceListMerchantFromJson(json);
+
+	Map<String, dynamic> toJson() => $RepairServiceListMerchantToJson(this);
+
+	@override
+	String toString() {
+		return jsonEncode(this);
+	}
+}
+
+@JsonSerializable()
+class RepairServiceListCategory {
+	int? id;
+	String? name;
+	String? type;
+
+	RepairServiceListCategory();
+
+	factory RepairServiceListCategory.fromJson(Map<String, dynamic> json) => $RepairServiceListCategoryFromJson(json);
+
+	Map<String, dynamic> toJson() => $RepairServiceListCategoryToJson(this);
+
+	@override
+	String toString() {
+		return jsonEncode(this);
+	}
+}

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

@@ -44,6 +44,7 @@ import 'package:domain/entity/payment_page_entity.dart';
 import 'package:domain/entity/property_news_detail_entity.dart';
 import 'package:domain/entity/property_news_entity.dart';
 import 'package:domain/entity/property_sale_rent_entity.dart';
+import 'package:domain/entity/repair_service_entity.dart';
 import 'package:domain/entity/rewards_active_detail_entity.dart';
 import 'package:domain/entity/rewards_buy_entity.dart';
 import 'package:domain/entity/rewards_category_entity.dart';
@@ -595,6 +596,22 @@ class JsonConvert {
       return data.map<PropertySaleRentList>((Map<String, dynamic> e) =>
           PropertySaleRentList.fromJson(e)).toList() as M;
     }
+    if (<RepairServiceEntity>[] is M) {
+      return data.map<RepairServiceEntity>((Map<String, dynamic> e) =>
+          RepairServiceEntity.fromJson(e)).toList() as M;
+    }
+    if (<RepairServiceList>[] is M) {
+      return data.map<RepairServiceList>((Map<String, dynamic> e) =>
+          RepairServiceList.fromJson(e)).toList() as M;
+    }
+    if (<RepairServiceListMerchant>[] is M) {
+      return data.map<RepairServiceListMerchant>((Map<String, dynamic> e) =>
+          RepairServiceListMerchant.fromJson(e)).toList() as M;
+    }
+    if (<RepairServiceListCategory>[] is M) {
+      return data.map<RepairServiceListCategory>((Map<String, dynamic> e) =>
+          RepairServiceListCategory.fromJson(e)).toList() as M;
+    }
     if (<RewardsActiveDetailEntity>[] is M) {
       return data.map<RewardsActiveDetailEntity>((Map<String, dynamic> e) =>
           RewardsActiveDetailEntity.fromJson(e)).toList() as M;
@@ -969,6 +986,10 @@ class JsonConvertClassCollection {
     (PropertyNewsList).toString(): PropertyNewsList.fromJson,
     (PropertySaleRentEntity).toString(): PropertySaleRentEntity.fromJson,
     (PropertySaleRentList).toString(): PropertySaleRentList.fromJson,
+    (RepairServiceEntity).toString(): RepairServiceEntity.fromJson,
+    (RepairServiceList).toString(): RepairServiceList.fromJson,
+    (RepairServiceListMerchant).toString(): RepairServiceListMerchant.fromJson,
+    (RepairServiceListCategory).toString(): RepairServiceListCategory.fromJson,
     (RewardsActiveDetailEntity).toString(): RewardsActiveDetailEntity.fromJson,
     (RewardsActiveDetailData).toString(): RewardsActiveDetailData.fromJson,
     (RewardsActiveDetailDataAccount).toString(): RewardsActiveDetailDataAccount

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

@@ -0,0 +1,191 @@
+import 'package:domain/generated/json/base/json_convert_content.dart';
+import 'package:domain/entity/repair_service_entity.dart';
+
+RepairServiceEntity $RepairServiceEntityFromJson(Map<String, dynamic> json) {
+  final RepairServiceEntity repairServiceEntity = RepairServiceEntity();
+  final int? count = jsonConvert.convert<int>(json['count']);
+  if (count != null) {
+    repairServiceEntity.count = count;
+  }
+  final int? page = jsonConvert.convert<int>(json['page']);
+  if (page != null) {
+    repairServiceEntity.page = page;
+  }
+  final int? limit = jsonConvert.convert<int>(json['limit']);
+  if (limit != null) {
+    repairServiceEntity.limit = limit;
+  }
+  final int? countPage = jsonConvert.convert<int>(json['count_page']);
+  if (countPage != null) {
+    repairServiceEntity.countPage = countPage;
+  }
+  final List<RepairServiceList>? list = (json['list'] as List<dynamic>?)
+      ?.map(
+          (e) => jsonConvert.convert<RepairServiceList>(e) as RepairServiceList)
+      .toList();
+  if (list != null) {
+    repairServiceEntity.list = list;
+  }
+  return repairServiceEntity;
+}
+
+Map<String, dynamic> $RepairServiceEntityToJson(RepairServiceEntity entity) {
+  final Map<String, dynamic> data = <String, dynamic>{};
+  data['count'] = entity.count;
+  data['page'] = entity.page;
+  data['limit'] = entity.limit;
+  data['count_page'] = entity.countPage;
+  data['list'] = entity.list?.map((v) => v.toJson()).toList();
+  return data;
+}
+
+extension RepairServiceEntityExtension on RepairServiceEntity {
+  RepairServiceEntity copyWith({
+    int? count,
+    int? page,
+    int? limit,
+    int? countPage,
+    List<RepairServiceList>? list,
+  }) {
+    return RepairServiceEntity()
+      ..count = count ?? this.count
+      ..page = page ?? this.page
+      ..limit = limit ?? this.limit
+      ..countPage = countPage ?? this.countPage
+      ..list = list ?? this.list;
+  }
+}
+
+RepairServiceList $RepairServiceListFromJson(Map<String, dynamic> json) {
+  final RepairServiceList repairServiceList = RepairServiceList();
+  final int? id = jsonConvert.convert<int>(json['id']);
+  if (id != null) {
+    repairServiceList.id = id;
+  }
+  final String? name = jsonConvert.convert<String>(json['name']);
+  if (name != null) {
+    repairServiceList.name = name;
+  }
+  final int? likesCount = jsonConvert.convert<int>(json['likes_count']);
+  if (likesCount != null) {
+    repairServiceList.likesCount = likesCount;
+  }
+  final bool? liked = jsonConvert.convert<bool>(json['liked']);
+  if (liked != null) {
+    repairServiceList.liked = liked;
+  }
+  final RepairServiceListMerchant? merchant = jsonConvert.convert<
+      RepairServiceListMerchant>(json['merchant']);
+  if (merchant != null) {
+    repairServiceList.merchant = merchant;
+  }
+  final RepairServiceListCategory? category = jsonConvert.convert<
+      RepairServiceListCategory>(json['category']);
+  if (category != null) {
+    repairServiceList.category = category;
+  }
+  return repairServiceList;
+}
+
+Map<String, dynamic> $RepairServiceListToJson(RepairServiceList entity) {
+  final Map<String, dynamic> data = <String, dynamic>{};
+  data['id'] = entity.id;
+  data['name'] = entity.name;
+  data['likes_count'] = entity.likesCount;
+  data['liked'] = entity.liked;
+  data['merchant'] = entity.merchant?.toJson();
+  data['category'] = entity.category?.toJson();
+  return data;
+}
+
+extension RepairServiceListExtension on RepairServiceList {
+  RepairServiceList copyWith({
+    int? id,
+    String? name,
+    int? likesCount,
+    bool? liked,
+    RepairServiceListMerchant? merchant,
+    RepairServiceListCategory? category,
+  }) {
+    return RepairServiceList()
+      ..id = id ?? this.id
+      ..name = name ?? this.name
+      ..likesCount = likesCount ?? this.likesCount
+      ..liked = liked ?? this.liked
+      ..merchant = merchant ?? this.merchant
+      ..category = category ?? this.category;
+  }
+}
+
+RepairServiceListMerchant $RepairServiceListMerchantFromJson(
+    Map<String, dynamic> json) {
+  final RepairServiceListMerchant repairServiceListMerchant = RepairServiceListMerchant();
+  final int? id = jsonConvert.convert<int>(json['id']);
+  if (id != null) {
+    repairServiceListMerchant.id = id;
+  }
+  final String? name = jsonConvert.convert<String>(json['name']);
+  if (name != null) {
+    repairServiceListMerchant.name = name;
+  }
+  return repairServiceListMerchant;
+}
+
+Map<String, dynamic> $RepairServiceListMerchantToJson(
+    RepairServiceListMerchant entity) {
+  final Map<String, dynamic> data = <String, dynamic>{};
+  data['id'] = entity.id;
+  data['name'] = entity.name;
+  return data;
+}
+
+extension RepairServiceListMerchantExtension on RepairServiceListMerchant {
+  RepairServiceListMerchant copyWith({
+    int? id,
+    String? name,
+  }) {
+    return RepairServiceListMerchant()
+      ..id = id ?? this.id
+      ..name = name ?? this.name;
+  }
+}
+
+RepairServiceListCategory $RepairServiceListCategoryFromJson(
+    Map<String, dynamic> json) {
+  final RepairServiceListCategory repairServiceListCategory = RepairServiceListCategory();
+  final int? id = jsonConvert.convert<int>(json['id']);
+  if (id != null) {
+    repairServiceListCategory.id = id;
+  }
+  final String? name = jsonConvert.convert<String>(json['name']);
+  if (name != null) {
+    repairServiceListCategory.name = name;
+  }
+  final String? type = jsonConvert.convert<String>(json['type']);
+  if (type != null) {
+    repairServiceListCategory.type = type;
+  }
+  return repairServiceListCategory;
+}
+
+Map<String, dynamic> $RepairServiceListCategoryToJson(
+    RepairServiceListCategory entity) {
+  final Map<String, dynamic> data = <String, dynamic>{};
+  data['id'] = entity.id;
+  data['name'] = entity.name;
+  data['type'] = entity.type;
+  return data;
+}
+
+extension RepairServiceListCategoryExtension on RepairServiceListCategory {
+  RepairServiceListCategory copyWith({
+    int? id,
+    String? name,
+    String? type,
+  }) {
+    return RepairServiceListCategory()
+      ..id = id ?? this.id
+      ..name = name ?? this.name
+      ..type = type ?? this.type;
+  }
+}