glglove преди 2 месеца
родител
ревизия
687de18dd3

+ 22 - 5
packages/cpt_services/lib/components/chooseHouseCleanContent.dart

@@ -17,8 +17,9 @@ import 'chooseHouseCleanContent_vm.dart';
 class ChooseHouseCleanContent extends HookConsumerWidget {
   final int id;
   final int serviceTypeCode;
+  final String? useScence;
 
-  const ChooseHouseCleanContent({Key? key,required this.id, required this.serviceTypeCode}) : super(key: key);
+  const ChooseHouseCleanContent({Key? key,required this.id, required this.serviceTypeCode, this.useScence}) : super(key: key);
 
   @override
   Widget build(BuildContext context, WidgetRef ref) {
@@ -28,6 +29,11 @@ class ChooseHouseCleanContent extends HookConsumerWidget {
     final totalPrice = ref.watch(chooseHouseCleanContentVmProvider.select((state)=>state.totalPrice));
 
     useEffect((){
+      vm.setInitPageData(context, {
+        'id': id,
+        'serviceTypeCode': serviceTypeCode,
+        'useScence': useScence,
+      });
       // 组件挂载时执行 - 执行接口请求
       // Future.microtask(() => vm.initPageData());
       return () {
@@ -47,14 +53,24 @@ class ChooseHouseCleanContent extends HookConsumerWidget {
     );
   }
 
+
   Widget _buildItem(BuildContext context, HouseCleanContentItem HouseCleanItem, int index, ChooseHouseCleanContentVm vm){
     final title = HouseCleanItem.name??'';
     final areaSizeRange = HouseCleanItem.areaSizeRange??'';
     final num = HouseCleanItem.num?? 1;
     final price = HouseCleanItem.price?? 0;
 
+    Log.d("6666  ${HouseCleanItem.isDisable}");
     bool isChecked = HouseCleanItem.isChecked??false;
-    bool isDisable = HouseCleanItem.isDisable??false;
+
+    bool disabled = HouseCleanItem.isDisable??false;
+    if(useScence !=null){
+      disabled = true;
+    }else {
+      disabled = false;
+    }
+    final isDisable = useState<bool>(disabled);
+
     return Container(
       padding: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10),
       margin: EdgeInsets.only(left: 15, right: 15, top: 0, bottom: 0),
@@ -100,7 +116,8 @@ class ChooseHouseCleanContent extends HookConsumerWidget {
                 child: MyButton(
                   text: '\$$price',
                   onPressed: (){
-                    if(!isDisable){
+                    Log.d("$isChecked  $isDisable");
+                    if(!isDisable.value){
                       isChecked = !isChecked;
                       vm.handlerChangeNum(context, isChecked, index);
                     }
@@ -109,8 +126,8 @@ class ChooseHouseCleanContent extends HookConsumerWidget {
                   minHeight: 40,
                   fontSize: 19,
                   fontWeight: FontWeight.w500,
-                  enable: !isDisable,
-                  textColor: isChecked? context.appColors.textWhite: context.appColors.textPrimary,
+                  // enable: !isDisable.value,
+                  textColor:  isChecked? context.appColors.textWhite: context.appColors.textPrimary,
                   backgroundColor: isChecked? context.appColors.textPrimary:context.appColors.textWhite,
                   disabledBackgroundColor: context.appColors.disEnableGray,
                   disabledTextColor: context.appColors.textWhite,

+ 36 - 18
packages/cpt_services/lib/components/chooseHouseCleanContent_vm.dart

@@ -20,6 +20,8 @@ List<Map<String, dynamic>> HouseCleanList = [
     "price": 40.0,
     "num":1,
     "areaSizeRange": "≤600 sqft",
+    "isChecked": false,
+    "isDisable": false,
   },
   {
     "name": "House Clean 2(unit)",
@@ -27,6 +29,8 @@ List<Map<String, dynamic>> HouseCleanList = [
     "price": 57.0,
     "num":1,
     "areaSizeRange": "601-800 sqft",
+    "isChecked": false,
+    "isDisable": false,
   },
   {
     "name": "House Clean 3(unit)",
@@ -34,6 +38,8 @@ List<Map<String, dynamic>> HouseCleanList = [
     "price": 72.0,
     "num":1,
     "areaSizeRange": "801-1000 sqft",
+    "isChecked": false,
+    "isDisable": false,
   },
   {
     "name": "House Clean 3(unit)",
@@ -41,44 +47,56 @@ List<Map<String, dynamic>> HouseCleanList = [
     "price": 85.0,
     "num":1,
     "areaSizeRange": "1001-1200 sqft",
+    "isChecked": false,
+    "isDisable": false,
   },
 ];
 
 
 
 
-ChooseHouseCleanContentState initState(){
-  Log.d("--------------------------initState---------------------");
-  List<HouseCleanContentItem> HouseCleanListNew = [];
-  HouseCleanList.forEach((item) {
-    HouseCleanContentItem newItem = HouseCleanContentItem()
-      ..id = item['id']
-      ..price = item['price'] as double
-      ..name = item['name']
-      ..num = 1
-      ..areaSizeRange = item['areaSizeRange']
-      ..isChecked = false;
-    HouseCleanListNew.add(newItem);
-  });
-  return ChooseHouseCleanContentState(
-    HouseCleanList: HouseCleanListNew,
-  );
-}
 
 @riverpod
 class ChooseHouseCleanContentVm extends _$ChooseHouseCleanContentVm {
   late ServicesRespository serviceRespositoryInstance;
 
+  late BuildContext _context;
+  late Map<String, dynamic>? _initProps;
+
+  ChooseHouseCleanContentState initState(){
+    Log.d("--------------------------initState---------------------");
+    List<HouseCleanContentItem> HouseCleanListNew = [];
+    HouseCleanList.forEach((item) {
+      HouseCleanContentItem newItem = HouseCleanContentItem()
+        ..id = item['id']
+        ..price = item['price'] as double
+        ..name = item['name']
+        ..num = 1
+        ..areaSizeRange = item['areaSizeRange']
+        ..isChecked = item['isChecked']
+        ..isDisable = item['isDisable'];
+        HouseCleanListNew.add(newItem);
+    });
+    return ChooseHouseCleanContentState(
+      HouseCleanList: HouseCleanListNew,
+    );
+  }
+
   @override
   ChooseHouseCleanContentState build(){
     // 引入数据仓库
     serviceRespositoryInstance = ref.read(servicesRespositoryProvider);
     ChooseHouseCleanContentState state = initState();
     Log.d("--------------------------build---------------------");
-
     return state;
   }
 
+  setInitPageData(BuildContext context, Map<String, dynamic>? params){
+    _context = context;
+    Log.d("--------------------------setInitPageData----------$params-----------");
+    _initProps = params;
+
+  }
 
   handlerChangeNum(BuildContext context, bool isChecked, int index){
     state.HouseCleanList[index].isChecked = isChecked;

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

@@ -64,6 +64,7 @@ class HomeServicePage extends HookConsumerWidget {
       backgroundColor: ColorUtils.string2Color("#F2F3F6"),
       body: SizedBox(
           width: double.infinity,
+          height: double.infinity,
           child: Column(
             children: [
               // sort and filter
@@ -160,23 +161,54 @@ class HomeServicePage extends HookConsumerWidget {
     String dropdownValue = 'Item1';
     List<String> items = ['Item1', 'Item2', 'Item3'];
 
+    final sortTitle = useState("Most Likes");
+
+    final expandSortIcon = useState<bool>(false);
+
     return Container(
       padding: const EdgeInsets.only(left: 15, right: 15, top: 10, bottom: 10),
-      // color: Colors.red,
+      color: context.appColors.whiteBG,
       child: Row(
         mainAxisAlignment: MainAxisAlignment.spaceBetween,
         crossAxisAlignment: CrossAxisAlignment.center,
         children: [
           // 筛选
-          MyTextView(
-            "Sort",
-            fontSize: 15,
-            isFontRegular: true,
-            textAlign: TextAlign.center,
-          ).onTap(() {
-            Log.d("点击了筛选");
+          Row(
+            children: [
+              MyTextView(
+                "Sort",
+                fontSize: 15,
+                isFontRegular: true,
+                textAlign: TextAlign.center,
+              ),
+              Wrap(
+                crossAxisAlignment: WrapCrossAlignment.center,
+                children: [
+                  MyTextView(
+                    "${sortTitle.value}",
+                    fontSize: 13,
+                    isFontRegular: true,
+                    textAlign: TextAlign.center,
+                    marginLeft: 15,
+                    textColor: context.appColors.textPrimary,
+                  ),
+                  IconButton(
+                    // padding: EdgeInsets.zero,
+                    constraints: const BoxConstraints(),
+                    onPressed: null,
+                    icon: Icon(
+                        expandSortIcon.value ? Icons.arrow_drop_up: Icons.arrow_drop_down
+                    ),
+                  ),
+                ],
+              ).onTap((){
+                Log.d("点击了sort");
+                vm.handlerClickSortIcon(context);
+                expandSortIcon.value = !expandSortIcon.value;
 
-          }),
+              }),
+            ],
+          ),
 
           // 排序
           const MyAssetImage(

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

@@ -467,6 +467,47 @@ class HomeServiceVm extends _$HomeServiceVm {
     return _queryParams;
   }
 
+  // 点击 sort icon
+  handlerClickSortIcon(BuildContext context) async{
+    await  SmartDialog.showAttach(
+      targetContext: context,
+      alignment: Alignment.bottomCenter,
+      highlightBuilder: (Offset targetOffset, Size targetSize) {
+        Log.d("666 ${targetOffset} ${targetSize}");
+        return Positioned(
+          right: 0,
+          top: 0,
+          child: Container(height: targetOffset.dy + 50, width: targetSize.width, color: Colors.white),
+        );
+      },
+      builder: (_) => _listDialog(),
+    );
+    // DialogEngine.showAttach(
+    //     targetContext: context,
+    //     position: DialogPosition.top,
+    //     clickMaskDismiss:false,
+    //     usePenetrate: true,
+    //     widget: _listDialog()
+    // );
+  }
+
+  Widget _listDialog() {
+    return Container(
+      width: 200,
+      height: 200,
+      color: Colors.white,
+      child: Column(
+        children: [
+          Text("排序方式"),
+          Text("价格从低到高"),
+          Text("价格从高到低"),
+          Text("距离最近"),
+          Text("距离最远"),
+        ],
+      ),
+    );
+  }
+
   // 去详情页面
   void handlerGotoDetail({BuildContext? context, required int id, int serviceTypeCode= 0 }){
     Log.d("去详情页面  $id  $serviceTypeCode");
@@ -478,4 +519,5 @@ class HomeServiceVm extends _$HomeServiceVm {
       appRouter.push(ServiceRepairDetailPageRoute(id: id, serviceTypeCode: serviceTypeCode));
     }
   }
-}
+
+}

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

@@ -316,16 +316,162 @@ class ServiceOrderConfirmPage extends HookConsumerWidget {
         ),
         if (serviceTypeCode == servicesConstants.servicesType['houseCleaning']!['code'])
           // 室内清理
-          ChooseHouseCleanContent(id: 0, serviceTypeCode: 0,)
+          _buildHouseCleanContent(state, vm, context)
         else if (serviceTypeCode == servicesConstants.servicesType['airConditioner']!['code'])
           // 空调清理
-          ChooseAirConditionContent(id: 0, serviceTypeCode: 0,)
+          _buildAirConditionContent(state, vm, context)
         else
-          const SizedBox.shrink()
+          const SizedBox.shrink(),
       ],
     );
   }
 
+  Widget _buildHouseCleanContent(ServiceOrderConfirmState state, ServiceOrderConfirmVm vm, BuildContext context) {
+    final title = 'House Cleaning Services';
+    final areaSizeRange = '1 Bedroom';
+    final num =  1;
+    final price = 0;
+    bool isChecked = false;
+    bool disabled = true;
+    final isDisable = useState<bool>(disabled);
+
+    return Container(
+      padding: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10),
+      margin: EdgeInsets.only(left: 15, right: 15, top: 0, bottom: 0),
+      color: ColorUtils.string2Color('#F8F8F8'),
+      child: Column(
+        children: [
+          Row(
+            mainAxisAlignment: MainAxisAlignment.spaceBetween,
+            mainAxisSize: MainAxisSize.max,
+            children: [
+              Expanded(
+                child: Column(
+                  crossAxisAlignment: CrossAxisAlignment.start,
+                  children: [
+                    MyTextView(
+                      title,
+                      fontSize: 16,
+                      isFontMedium: true,
+                      textColor: context.appColors.textBlack,
+                    ),
+                    MyTextView(
+                      areaSizeRange,
+                      fontSize: 15,
+                      isFontRegular: true,
+                      textColor: context.appColors.textDarkGray999,
+                      marginTop: 5,
+                    ),
+                  ],
+                ),
+              ),
+              // MyCartNum(onChange: (value){
+              //   vm.handlerChangeNum(context, value, index);
+              // })
+              // MyButton(
+              //   text: '\$$price',
+              //   onPressed: (){
+              //       // vm.handlerChangeNum(context, value, index);
+              //   },
+              //   fontSize: 19,
+              //   fontWeight: FontWeight.w500,
+              // )
+              Container(
+                child: MyButton(
+                  text: '\$$price',
+                  onPressed: null,
+                  minWidth: 80,
+                  minHeight: 40,
+                  fontSize: 19,
+                  fontWeight: FontWeight.w500,
+                  // enable: !isDisable.value,
+                  textColor:  context.appColors.textPrimary,
+                  backgroundColor: context.appColors.textWhite,
+                  disabledBackgroundColor: context.appColors.disEnableGray,
+                  disabledTextColor: context.appColors.textWhite,
+                ),
+              ),
+            ],
+          ),
+          // Divider(),
+        ],
+      ),
+    );
+  }
+
+  Widget _buildAirConditionContent(ServiceOrderConfirmState state, ServiceOrderConfirmVm vm, BuildContext context) {
+    final title = 'House Cleaning Services';
+    final areaSizeRange = '1 Bedroom';
+    final num =  1;
+    final price = 0;
+    bool isChecked = false;
+    bool disabled = true;
+    final isDisable = useState<bool>(disabled);
+
+    return Container(
+      padding: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10),
+      margin: EdgeInsets.only(left: 15, right: 15, top: 0, bottom: 0),
+      color: ColorUtils.string2Color('#F8F8F8'),
+      child: Column(
+        children: [
+          Row(
+            mainAxisAlignment: MainAxisAlignment.spaceBetween,
+            mainAxisSize: MainAxisSize.max,
+            children: [
+              Expanded(
+                child: Column(
+                  crossAxisAlignment: CrossAxisAlignment.start,
+                  children: [
+                    MyTextView(
+                      title,
+                      fontSize: 16,
+                      isFontMedium: true,
+                      textColor: context.appColors.textBlack,
+                    ),
+                    MyTextView(
+                      areaSizeRange,
+                      fontSize: 15,
+                      isFontRegular: true,
+                      textColor: context.appColors.textDarkGray999,
+                      marginTop: 5,
+                    ),
+                  ],
+                ),
+              ),
+              // MyCartNum(onChange: (value){
+              //   vm.handlerChangeNum(context, value, index);
+              // })
+              // MyButton(
+              //   text: '\$$price',
+              //   onPressed: (){
+              //       // vm.handlerChangeNum(context, value, index);
+              //   },
+              //   fontSize: 19,
+              //   fontWeight: FontWeight.w500,
+              // )
+              Container(
+                child: MyButton(
+                  text: '\$$price',
+                  onPressed: null,
+                  minWidth: 80,
+                  minHeight: 40,
+                  fontSize: 19,
+                  fontWeight: FontWeight.w500,
+                  // enable: !isDisable.value,
+                  textColor:  context.appColors.textPrimary,
+                  backgroundColor: context.appColors.textWhite,
+                  disabledBackgroundColor: context.appColors.disEnableGray,
+                  disabledTextColor: context.appColors.textWhite,
+                ),
+              ),
+            ],
+          ),
+          // Divider(),
+        ],
+      ),
+    );
+  }
+
   Widget _buildOrderVisitTime(ServiceOrderConfirmState state, ServiceOrderConfirmVm vm, BuildContext context) {
     return Row(
       mainAxisSize: MainAxisSize.max,

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

@@ -187,7 +187,304 @@ class ServicePaySuccessPage extends HookConsumerWidget {
   }
 
   Widget _buildBottomInfo(BuildContext context, ServicePaySuccessState state, WidgetRef ref) {
-    return Text("5666666");
+    return Container(
+      width: double.infinity,
+      child: Column(
+        crossAxisAlignment: CrossAxisAlignment.stretch,
+        children: [
+          Container(
+            margin: const EdgeInsets.only(left: 15, right: 15, top: 15, bottom: 15),
+            child: _buildCardVisitTime(context, state, ref, ),
+          ),
+          Container(
+            margin: const EdgeInsets.only(left: 15, right: 15, top: 15, bottom: 15),
+            child: _buildCardService(context, state, ref, ),
+          ),
+          Container(
+            margin: const EdgeInsets.only(left: 15, right: 15, top: 15, bottom: 15),
+            child: _buildCardAddress(context, state, ref, ),
+          ),
+          Container(
+            width: double.infinity,
+            margin: const EdgeInsets.only(left: 15, right: 15, top: 15, bottom: 15),
+            child: _buildCardPayment(context, state, ref, ),
+          ),
+        ],
+      ),
+    );
+  }
+
+  Widget _buildCardVisitTime(BuildContext context, ServicePaySuccessState state, WidgetRef ref,) {
+    return Container(
+      width: double.infinity,
+      padding: const EdgeInsets.only(left: 20, right: 20, top: 15, bottom: 15),
+      decoration: BoxDecoration(
+        borderRadius: BorderRadius.circular(5),
+        border: Border(
+          bottom: BorderSide(
+            color: context.appColors.whiteBG,
+            width: 1,
+          ),
+        ),
+        boxShadow: [
+          BoxShadow(
+            color: context.appColors.whiteBG,
+            offset: const Offset(0, 1),
+            blurRadius: 1,
+            spreadRadius: 0,
+          ),
+        ]
+      ),
+      child: Column(
+        crossAxisAlignment: CrossAxisAlignment.start,
+        children: [
+          MyTextView(
+            'Visit Time',
+            fontSize: 16,
+            textColor: context.appColors.textBlack,
+            textAlign: TextAlign.center,
+            isFontMedium: true,
+            marginBottom: 11,
+          ),
+          Row(
+            crossAxisAlignment: CrossAxisAlignment.center,
+            children: [
+              const MyAssetImage(
+                Assets.serviceCalendarIcon,
+                width: 28.5,
+                height: 28.5,
+              ),
+              const SizedBox(width: 15.5),
+              Column(
+                crossAxisAlignment: CrossAxisAlignment.start,
+                children: [
+                  MyTextView(
+                    'Tue,24 Oct 2024',
+                    fontSize: 14,
+                    textColor: context.appColors.textBlack,
+                    isFontRegular: true,
+                  ),
+                  MyTextView(
+                    '05:00 PM',
+                    fontSize: 14,
+                    textColor: context.appColors.textBlack,
+                    isFontRegular: true,
+                    marginTop: 5,
+                  )
+                ]
+              )
+            ],
+          )
+        ]
+      )
+    );
   }
 
+  Widget _buildCardService(BuildContext context, ServicePaySuccessState state, WidgetRef ref,) {
+    return Container(
+        width: double.infinity,
+        padding: const EdgeInsets.only(left: 20, right: 20, top: 15, bottom: 15),
+        decoration: BoxDecoration(
+            borderRadius: BorderRadius.circular(5),
+            border: Border(
+              bottom: BorderSide(
+                color: context.appColors.whiteBG,
+                width: 1,
+              ),
+            ),
+            boxShadow: [
+              BoxShadow(
+                color: context.appColors.whiteBG,
+                offset: const Offset(0, 1),
+                blurRadius: 1,
+                spreadRadius: 0,
+              ),
+            ]
+        ),
+        child: Column(
+            crossAxisAlignment: CrossAxisAlignment.start,
+            children: [
+              MyTextView(
+                'Service',
+                fontSize: 16,
+                textColor: context.appColors.textBlack,
+                textAlign: TextAlign.center,
+                isFontMedium: true,
+                marginBottom: 11,
+              ),
+              Row(
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  const MyAssetImage(
+                    Assets.serviceServiceAvatorIcon,
+                    width: 28.5,
+                    height: 28.5,
+                  ),
+                  const SizedBox(width: 15.5),
+                  Column(
+                      crossAxisAlignment: CrossAxisAlignment.start,
+                      children: [
+                        MyTextView(
+                          'House Cleaning Services',
+                          fontSize: 14,
+                          textColor: context.appColors.textBlack,
+                          isFontRegular: true,
+                        ),
+                      ]
+                  )
+                ],
+              )
+            ]
+        )
+    );
+  }
+
+  Widget _buildCardAddress(BuildContext context, ServicePaySuccessState state, WidgetRef ref,) {
+    return Container(
+        width: double.infinity,
+        padding: const EdgeInsets.only(left: 20, right: 20, top: 15, bottom: 15),
+        decoration: BoxDecoration(
+            borderRadius: BorderRadius.circular(5),
+            border: Border(
+              bottom: BorderSide(
+                color: context.appColors.whiteBG,
+                width: 1,
+              ),
+            ),
+            boxShadow: [
+              BoxShadow(
+                color: context.appColors.whiteBG,
+                offset: const Offset(0, 1),
+                blurRadius: 1,
+                spreadRadius: 0,
+              ),
+            ]
+        ),
+        child: Column(
+            crossAxisAlignment: CrossAxisAlignment.start,
+            children: [
+              MyTextView(
+                'Address',
+                fontSize: 16,
+                textColor: context.appColors.textBlack,
+                textAlign: TextAlign.center,
+                isFontMedium: true,
+                marginBottom: 11,
+              ),
+              Row(
+                crossAxisAlignment: CrossAxisAlignment.center,
+                children: [
+                  const MyAssetImage(
+                    Assets.serviceLocationIcon,
+                    width: 28.5,
+                    height: 28.5,
+                  ),
+                  const SizedBox(width: 15.5),
+                  Column(
+                      crossAxisAlignment: CrossAxisAlignment.start,
+                      children: [
+                        MyTextView(
+                          '705 Qiming Huijin Building',
+                          fontSize: 14,
+                          textColor: context.appColors.textBlack,
+                          isFontRegular: true,
+                        ),
+                        MyTextView(
+                          'Sundy  +6588991122',
+                          fontSize: 14,
+                          textColor: context.appColors.textBlack,
+                          isFontRegular: true,
+                          marginTop: 5,
+                        )
+                      ]
+                  )
+                ],
+              )
+            ]
+        )
+    );
+  }
+
+  Widget _buildCardPayment(BuildContext context, ServicePaySuccessState state, WidgetRef ref,) {
+    return Container(
+      width: double.infinity,
+      padding: const EdgeInsets.only(left: 20, right: 20, top: 15, bottom: 15),
+      decoration: BoxDecoration(
+          borderRadius: BorderRadius.circular(5),
+          border: Border(
+            bottom: BorderSide(
+              color: context.appColors.whiteBG,
+              width: 1,
+            ),
+          ),
+          boxShadow: [
+            BoxShadow(
+              color: context.appColors.whiteBG,
+              offset: const Offset(0, 1),
+              blurRadius: 1,
+              spreadRadius: 0,
+            ),
+          ]
+      ),
+      child: Column(
+        children: [
+          Row(
+            children: [
+              MyTextView(
+                'Payment',
+                fontSize: 16,
+                textColor: context.appColors.textBlack,
+                textAlign: TextAlign.center,
+                isFontMedium: true,
+                marginBottom: 11,
+              ),
+            ],
+          ),
+          Row(
+            crossAxisAlignment: CrossAxisAlignment.center,
+            mainAxisSize: MainAxisSize.max,
+            children: [
+              const MyAssetImage(
+                Assets.servicePaymentIcon,
+                width: 28.5,
+                height: 28.5,
+              ),
+              const SizedBox(width: 15.5),
+              Expanded(
+                child: Column(
+                  crossAxisAlignment: CrossAxisAlignment.start,
+                  children: [
+                    MyTextView(
+                      'Daily cleaning for 2 hours',
+                      fontSize: 14,
+                      textColor: context.appColors.textBlack,
+                      isFontRegular: true,
+                    ),
+                    Row(
+                      mainAxisAlignment: MainAxisAlignment.spaceBetween, // 设置为 spaceBetween
+                      children: [
+                        MyTextView(
+                          'Total',
+                          fontSize: 14,
+                          textColor: context.appColors.textBlack,
+                          isFontRegular: true,
+                          marginTop: 5,
+                        ),
+                        MyTextView(
+                          '\$40.00',
+                          fontSize: 14,
+                          textColor: context.appColors.textBlack,
+                          isFontRegular: true,
+                        ),
+                      ],
+                    ),
+                  ],
+                ),
+              ),
+            ],
+          ),
+        ],
+      ),
+    );
+  }
 }