浏览代码

feat:结算中心模块顺序改版、支付方式UI逻辑处理

“wangdongchao” 1 年之前
父节点
当前提交
0aa8c5ec43
共有 39 个文件被更改,包括 885 次插入45 次删除
  1. 22 4
      Asteria.xcodeproj/project.pbxproj
  2. 6 0
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/Contents.json
  3. 22 0
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_down.imageset/Contents.json
  4. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_down.imageset/checkout_arrow_down@2x.png
  5. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_down.imageset/checkout_arrow_down@3x.png
  6. 22 0
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_up.imageset/Contents.json
  7. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_up.imageset/checkout_arrow_up@2x.png
  8. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_up.imageset/checkout_arrow_up@3x.png
  9. 22 0
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_pay_paypal.imageset/Contents.json
  10. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_pay_paypal.imageset/checkout_pay_paypal@2x.png
  11. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_pay_paypal.imageset/checkout_pay_paypal@3x.png
  12. 22 0
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_afterpay.imageset/Contents.json
  13. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_afterpay.imageset/pay_icon_afterpay@2x.png
  14. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_afterpay.imageset/pay_icon_afterpay@3x.png
  15. 22 0
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_kla.imageset/Contents.json
  16. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_kla.imageset/pay_icon_kla@2x.png
  17. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_kla.imageset/pay_icon_kla@3x.png
  18. 22 0
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_paypal.imageset/Contents.json
  19. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_paypal.imageset/pay_icon_paypal@2x.png
  20. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_paypal.imageset/pay_icon_paypal@3x.png
  21. 22 0
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_visa.imageset/Contents.json
  22. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_visa.imageset/pay_icon_visa@2x.png
  23. 二进制
      Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_visa.imageset/pay_icon_visa@3x.png
  24. 6 0
      Asteria/Fuction/Cart/Cart.xcassets/Contents.json
  25. 54 29
      Asteria/Fuction/Cart/Cart_CheckoutC.m
  26. 3 0
      Asteria/Fuction/Cart/Checkout/ASCheckoutAddressCell.h
  27. 22 0
      Asteria/Fuction/Cart/Checkout/ASCheckoutBottomView.h
  28. 107 0
      Asteria/Fuction/Cart/Checkout/ASCheckoutBottomView.m
  29. 25 0
      Asteria/Fuction/Cart/Checkout/ASCheckoutCommentCell.h
  30. 73 0
      Asteria/Fuction/Cart/Checkout/ASCheckoutCommentCell.m
  31. 17 0
      Asteria/Fuction/Cart/Checkout/ASCheckoutGoodsItemCell.h
  32. 315 0
      Asteria/Fuction/Cart/Checkout/ASCheckoutGoodsItemCell.m
  33. 48 4
      Asteria/Fuction/Cart/Checkout/ASCheckoutPaymentCell.m
  34. 3 3
      Asteria/Fuction/Cart/Checkout/ASCheckoutPointApplyCell.m
  35. 2 3
      Asteria/Fuction/Cart/Checkout/ASCheckoutTopView.m
  36. 3 1
      Asteria/Fuction/Cart/Checkout/CartCheckTableV.h
  37. 10 1
      Asteria/Fuction/Cart/Checkout/CartCheckTableV.m
  38. 10 0
      Asteria/Fuction/Cart/M/ASCheckoutModel.h
  39. 5 0
      Asteria/Fuction/Cart/M/ASCheckoutModel.m

+ 22 - 4
Asteria.xcodeproj/project.pbxproj

@@ -191,6 +191,10 @@
 		8810F5182BEC548D00346FD4 /* ASCheckoutAddressCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5172BEC548D00346FD4 /* ASCheckoutAddressCell.m */; };
 		8810F51B2BEC54B400346FD4 /* ASCheckoutShipMethodCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F51A2BEC54B400346FD4 /* ASCheckoutShipMethodCell.m */; };
 		8810F51E2BEC565F00346FD4 /* UILabel+Create.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F51C2BEC565F00346FD4 /* UILabel+Create.m */; };
+		8810F5212BEDABFA00346FD4 /* ASCheckoutCommentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5202BEDABFA00346FD4 /* ASCheckoutCommentCell.m */; };
+		8810F5232BEDF31500346FD4 /* Cart.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8810F5222BEDF31500346FD4 /* Cart.xcassets */; };
+		8810F5262BEDF9F900346FD4 /* ASCheckoutBottomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5252BEDF9F900346FD4 /* ASCheckoutBottomView.m */; };
+		8810F5292BEE0DEA00346FD4 /* ASCheckoutGoodsItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5282BEE0DEA00346FD4 /* ASCheckoutGoodsItemCell.m */; };
 		8C24ECE114420CDEE7B9B22B /* Pods_Asteria.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54DCE8001991D89B696E7D44 /* Pods_Asteria.framework */; };
 		9A1247942A1B082300126226 /* Fuction_Tool.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A1247932A1B082300126226 /* Fuction_Tool.m */; };
 		9A1247972A1B0A2800126226 /* AS_ForgotC.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A1247962A1B0A2800126226 /* AS_ForgotC.m */; };
@@ -247,7 +251,6 @@
 		9A98E5282B5A280700E8C5C1 /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A98E5272B5A280700E8C5C1 /* SafariServices.framework */; };
 		9A98E52A2B5A281600E8C5C1 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A98E5292B5A281600E8C5C1 /* QuartzCore.framework */; };
 		9A98E52C2B5A282800E8C5C1 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A98E52B2B5A282800E8C5C1 /* CoreText.framework */; };
-		9AA0534A2B6E193D004B90BC /* Cart.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9AA053492B6E193D004B90BC /* Cart.xcassets */; };
 		9AACEE922B7F137D00223466 /* MyCartPayTypeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AACEE912B7F137D00223466 /* MyCartPayTypeCell.m */; };
 		9AACEE952B7F473200223466 /* Cart_CheckoutC.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AACEE942B7F473200223466 /* Cart_CheckoutC.m */; };
 		9AC2CC222B3A673B005187BD /* ASGoodsDetailsVM.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AC2CC212B3A673B005187BD /* ASGoodsDetailsVM.m */; };
@@ -696,6 +699,13 @@
 		8810F51A2BEC54B400346FD4 /* ASCheckoutShipMethodCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASCheckoutShipMethodCell.m; sourceTree = "<group>"; };
 		8810F51C2BEC565F00346FD4 /* UILabel+Create.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+Create.m"; sourceTree = "<group>"; };
 		8810F51D2BEC565F00346FD4 /* UILabel+Create.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+Create.h"; sourceTree = "<group>"; };
+		8810F51F2BEDABFA00346FD4 /* ASCheckoutCommentCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASCheckoutCommentCell.h; sourceTree = "<group>"; };
+		8810F5202BEDABFA00346FD4 /* ASCheckoutCommentCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASCheckoutCommentCell.m; sourceTree = "<group>"; };
+		8810F5222BEDF31500346FD4 /* Cart.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Cart.xcassets; sourceTree = "<group>"; };
+		8810F5242BEDF9F900346FD4 /* ASCheckoutBottomView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASCheckoutBottomView.h; sourceTree = "<group>"; };
+		8810F5252BEDF9F900346FD4 /* ASCheckoutBottomView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASCheckoutBottomView.m; sourceTree = "<group>"; };
+		8810F5272BEE0DEA00346FD4 /* ASCheckoutGoodsItemCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASCheckoutGoodsItemCell.h; sourceTree = "<group>"; };
+		8810F5282BEE0DEA00346FD4 /* ASCheckoutGoodsItemCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASCheckoutGoodsItemCell.m; sourceTree = "<group>"; };
 		9A1247922A1B082300126226 /* Fuction_Tool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fuction_Tool.h; sourceTree = "<group>"; };
 		9A1247932A1B082300126226 /* Fuction_Tool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Fuction_Tool.m; sourceTree = "<group>"; };
 		9A1247952A1B0A2800126226 /* AS_ForgotC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AS_ForgotC.h; sourceTree = "<group>"; };
@@ -784,7 +794,6 @@
 		9A98E5272B5A280700E8C5C1 /* SafariServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SafariServices.framework; path = System/Library/Frameworks/SafariServices.framework; sourceTree = SDKROOT; };
 		9A98E5292B5A281600E8C5C1 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
 		9A98E52B2B5A282800E8C5C1 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
-		9AA053492B6E193D004B90BC /* Cart.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Cart.xcassets; sourceTree = "<group>"; };
 		9AACEE902B7F137D00223466 /* MyCartPayTypeCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyCartPayTypeCell.h; sourceTree = "<group>"; };
 		9AACEE912B7F137D00223466 /* MyCartPayTypeCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyCartPayTypeCell.m; sourceTree = "<group>"; };
 		9AACEE932B7F473200223466 /* Cart_CheckoutC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Cart_CheckoutC.h; sourceTree = "<group>"; };
@@ -2034,7 +2043,7 @@
 				9A78E0132B6389FC00CA4E32 /* Cart_MyCartC.m */,
 				9AACEE932B7F473200223466 /* Cart_CheckoutC.h */,
 				9AACEE942B7F473200223466 /* Cart_CheckoutC.m */,
-				9AA053492B6E193D004B90BC /* Cart.xcassets */,
+				8810F5222BEDF31500346FD4 /* Cart.xcassets */,
 			);
 			path = Cart;
 			sourceTree = "<group>";
@@ -2418,6 +2427,10 @@
 				9AFCDAC12B809C5B003D3573 /* CartCheckTableV.m */,
 				8810F5072BEB159600346FD4 /* ASCheckoutTopView.h */,
 				8810F5082BEB159600346FD4 /* ASCheckoutTopView.m */,
+				8810F5242BEDF9F900346FD4 /* ASCheckoutBottomView.h */,
+				8810F5252BEDF9F900346FD4 /* ASCheckoutBottomView.m */,
+				8810F5272BEE0DEA00346FD4 /* ASCheckoutGoodsItemCell.h */,
+				8810F5282BEE0DEA00346FD4 /* ASCheckoutGoodsItemCell.m */,
 				8810F50A2BEB590C00346FD4 /* ASCheckoutPointApplyCell.h */,
 				8810F50B2BEB590C00346FD4 /* ASCheckoutPointApplyCell.m */,
 				8810F5162BEC548D00346FD4 /* ASCheckoutAddressCell.h */,
@@ -2426,6 +2439,8 @@
 				8810F51A2BEC54B400346FD4 /* ASCheckoutShipMethodCell.m */,
 				8810F5102BEB685500346FD4 /* ASCheckoutPaymentCell.h */,
 				8810F5112BEB685500346FD4 /* ASCheckoutPaymentCell.m */,
+				8810F51F2BEDABFA00346FD4 /* ASCheckoutCommentCell.h */,
+				8810F5202BEDABFA00346FD4 /* ASCheckoutCommentCell.m */,
 			);
 			path = Checkout;
 			sourceTree = "<group>";
@@ -2552,7 +2567,7 @@
 				814F5D0A2A11B76F003847A9 /* Roboto-BoldItalic.ttf in Resources */,
 				817244AA29F3B2EE005FA9C9 /* Assets.xcassets in Resources */,
 				9A5C645B2A1206E500CBB185 /* common.xcassets in Resources */,
-				9AA0534A2B6E193D004B90BC /* Cart.xcassets in Resources */,
+				8810F5232BEDF31500346FD4 /* Cart.xcassets in Resources */,
 				81E257F62A12259B004EEF71 /* UserCenter.xcassets in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2696,6 +2711,7 @@
 				81E5EE972A4A822D0075695F /* ASVipCenterCollectCell.m in Sources */,
 				81C796272A4FD898003083B8 /* ASBirthdayTreatViewController.m in Sources */,
 				81717D372A3D322700648139 /* KWHisCollectHeaderView.m in Sources */,
+				8810F5212BEDABFA00346FD4 /* ASCheckoutCommentCell.m in Sources */,
 				9AD346132A08D60F005CA070 /* ZFLoadingView.m in Sources */,
 				9ACBEC212A14585300A8F97A /* CTMediator+ASTargerts.m in Sources */,
 				8134C1AD2A13094F006EB0EC /* Target_userCenter.m in Sources */,
@@ -2783,6 +2799,7 @@
 				9AD346022A08D60F005CA070 /* ZFPlayerView.m in Sources */,
 				9A78E01C2B639F4700CA4E32 /* CartTotalsM.m in Sources */,
 				81DFA55D2A46C46D00DA708B /* ASWebViewController.m in Sources */,
+				8810F5292BEE0DEA00346FD4 /* ASCheckoutGoodsItemCell.m in Sources */,
 				81BEA6832A2D7CF3009D36C4 /* UITableView+ASBase.m in Sources */,
 				81C7963A2A5517F7003083B8 /* KWSwitchButton.m in Sources */,
 				81717C992A3BF1DD00648139 /* ASHomeAlertWindow.m in Sources */,
@@ -2807,6 +2824,7 @@
 				81DFA5602A46CC8E00DA708B /* CTMediator+ASWebView.m in Sources */,
 				81C3B44A29F6661500D79294 /* ASBaseNavController.m in Sources */,
 				9AD3460C2A08D60F005CA070 /* ZFVolumeBrightnessView.m in Sources */,
+				8810F5262BEDF9F900346FD4 /* ASCheckoutBottomView.m in Sources */,
 				81DFA5752A47D97C00DA708B /* ASCouponsListViewController.m in Sources */,
 				9AD346072A08D60F005CA070 /* UIViewController+ZFPlayerRotation.m in Sources */,
 				8810F5182BEC548D00346FD4 /* ASCheckoutAddressCell.m in Sources */,

+ 6 - 0
Asteria/Fuction/Cart/Cart.xcassets/Checkout/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 22 - 0
Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_down.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "checkout_arrow_down@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "checkout_arrow_down@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_down.imageset/checkout_arrow_down@2x.png


二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_down.imageset/checkout_arrow_down@3x.png


+ 22 - 0
Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_up.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "checkout_arrow_up@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "checkout_arrow_up@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_up.imageset/checkout_arrow_up@2x.png


二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_arrow_up.imageset/checkout_arrow_up@3x.png


+ 22 - 0
Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_pay_paypal.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "checkout_pay_paypal@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "checkout_pay_paypal@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_pay_paypal.imageset/checkout_pay_paypal@2x.png


二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/checkout_pay_paypal.imageset/checkout_pay_paypal@3x.png


+ 22 - 0
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_afterpay.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "pay_icon_afterpay@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "pay_icon_afterpay@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_afterpay.imageset/pay_icon_afterpay@2x.png


二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_afterpay.imageset/pay_icon_afterpay@3x.png


+ 22 - 0
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_kla.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "pay_icon_kla@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "pay_icon_kla@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_kla.imageset/pay_icon_kla@2x.png


二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_kla.imageset/pay_icon_kla@3x.png


+ 22 - 0
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_paypal.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "pay_icon_paypal@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "pay_icon_paypal@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_paypal.imageset/pay_icon_paypal@2x.png


二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_paypal.imageset/pay_icon_paypal@3x.png


+ 22 - 0
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_visa.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "pay_icon_visa@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "pay_icon_visa@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_visa.imageset/pay_icon_visa@2x.png


二进制
Asteria/Fuction/Cart/Cart.xcassets/Checkout/pay_icon_visa.imageset/pay_icon_visa@3x.png


+ 6 - 0
Asteria/Fuction/Cart/Cart.xcassets/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 54 - 29
Asteria/Fuction/Cart/Cart_CheckoutC.m

@@ -9,6 +9,7 @@
 #import "ASAddressListViewController.h"
 
 #import "ASCheckoutTopView.h"
+#import "ASCheckoutBottomView.h"
 #import "CartCheckTableV.h"
 
 #import "CartVM.h"
@@ -19,6 +20,8 @@
 @property (nonatomic, strong) CartVM *VM;
 
 @property (nonatomic, strong) ASCheckoutTopView *topView;
+@property (nonatomic, strong) ASCheckoutBottomView *bottomView;
+
 
 @property (nonatomic, strong) CartCheckTableV *TableV;
 @property (nonatomic, strong) MyCartCouponCellData *couponCellM;
@@ -26,11 +29,12 @@
 
 @property (nonatomic, strong) ASCheckoutPointData *pointCellM;
 @property (nonatomic, strong) ASCheckoutAddressData *addressCellM;
-
+@property (nonatomic, strong) ASCheckoutCommentData *commentCellM;
 
 //存放支付方式
 @property (nonatomic, strong) NSArray *paymentArray;
-
+//选中支付方式
+@property (nonatomic, strong) ASCheckoutPaymentModel *paymentModel;
 
 
 @end
@@ -52,14 +56,11 @@
 - (void)initSubviews {
     [super initSubviews];
     
-    //顶部
-    [self.view addSubview:self.topView];
-    
-    
-    
     IPhoneXHeigh
-    [self setupTableV:[CartCheckTableV class] Frame:CGRectMake(0, CGRectGetMaxY(self.topView.frame) , KScreenWidth, KScreenHeight-securityBottom_H - 65 - CGRectGetMaxY(self.topView.frame))];
+    [self setupTableV:[CartCheckTableV class] Frame:CGRectMake(0, securitytop_Y , KScreenWidth, KScreenHeight - securitytop_Y)];
     self.TableV.backgroundColor = [UIColor colorWithHexString:@"#F8F8F8"];
+    self.TableV.tableHeaderView = self.topView;
+    self.TableV.tableFooterView = self.bottomView;
     
     @weakify(self)
     self.TableV.tapClose = ^(NSInteger num, id data) {
@@ -90,6 +91,11 @@
             }else if(num == 1){//取消使用积分
                 [self requestCancelUsePoint];
             }
+        } else if ([data isKindOfClass:[ASCheckoutCommentData class]]) {
+            ASCheckoutCommentData *commentData = (ASCheckoutCommentData *)data;
+            if(num ==0){ //使用积分
+                self.commentCellM.commentStr = commentData.commentStr;
+            }
         }
     };
     
@@ -112,6 +118,10 @@
         if(sucessOrFail){
             // 更新支付方式
             self.paymentArray = arry;
+            if (self.paymentArray.count > 0) {
+                self.paymentModel = self.paymentArray[0];
+                [self.bottomView setBottomPayStyle:self.paymentModel.code];
+            }
             //首次进入展示购物车数据UI
             [self updateData];
         }
@@ -150,9 +160,8 @@
                 self.addressCellM.shipmethodPrice = shipMethodDic[@"amount"];
                 self.addressCellM.shipmethodSymbol = self.totalsM.currency_symbol;
             }
-            
+            [self reqNet_Cart_cartsMineTotals];
         }
-        [self updateData];
         
     } else if ([mark isEqualToString:Chectout_getShipMethod]) {
         
@@ -187,45 +196,42 @@
     [self.TableV.infodata removeAllObjects];
     self.TableV.infodata = [NSMutableArray arrayWithArray:self.totalsM.items];
     
-    self.totalCellM.total_segments = [NSMutableArray arrayWithArray:self.totalsM.total_segments];
-    self.totalCellM.currency_symbol = self.totalsM.currency_symbol;
-    [self.TableV.infodata addObject:self.totalCellM];
+    //邮寄地址--邮寄方式
+    [self.TableV.infodata addObject:self.addressCellM];
     
+    //优惠券
     self.couponCellM.couponAry =[NSMutableArray arrayWithArray: [ASNetTools shared].xxx_couponAry];
     self.couponCellM.coupon_code = self.totalsM.coupon_code;
     self.couponCellM.discount_amount = self.totalsM.discount_amount;
     self.couponCellM.currency_symbol = self.totalsM.currency_symbol;
     [self.TableV.infodata addObject:self.couponCellM];
      
-    
+    //积分
     NSDictionary *pointScaleDic = [Current_normalTool dicFromjsonStr:[self.totalsM.extension_attributes objectForKey:@"mw_earn_points_data"]];
-    
     if (pointScaleDic.count > 0) {
         self.pointCellM.pointScale = [[pointScaleDic allValues] objectAtIndex:0];
         self.pointCellM.priceScale = [[pointScaleDic allKeys] objectAtIndex:0];
     }
-    
-//    self.pointCellM.pointCountInput = @"20";
     self.pointCellM.usePoint = [NSString stringWithFormat:@"%@", [self.totalsM.extension_attributes objectForKey:@"mw_rwrdpoints_amnt"]];
     self.pointCellM.usePrice = [NSString stringWithFormat:@"%@", [self.totalsM.extension_attributes objectForKey:@"mw_rwrdpoints_cur_amnt"]];
     self.pointCellM.pointBalance = [ASUserInfoManager shared].userPoints;
     self.pointCellM.priceSymbol = self.totalsM.currency_symbol;
     [self.TableV.infodata addObject:self.pointCellM];
     
-    //邮寄地址--邮寄方式
-    [self.TableV.infodata addObject:self.addressCellM];
-    
+    //备注
+    [self.TableV.infodata addObject:self.commentCellM];
     
-    
-//    MyCartPayTypeCellData *data = [[MyCartPayTypeCellData alloc]init];
-//    data.final_prices_f = [self.totalsM.subtotal floatValue];
-//    data.currency_symbol = self.totalsM.currency_symbol;
-//    [self.TableV.infodata addObject:data];
+    //价格明细
+    self.totalCellM.total_segments = [NSMutableArray arrayWithArray:self.totalsM.total_segments];
+    self.totalCellM.currency_symbol = self.totalsM.currency_symbol;
+    [self.TableV.infodata addObject:self.totalCellM];
     
     //支付方式数据
     [self.TableV.infodata addObjectsFromArray:self.paymentArray];
     
     
+    
+    
     [self.TableV reloadData];
 }
 
@@ -251,6 +257,8 @@
                 ASCheckoutPaymentModel *tempModel = (ASCheckoutPaymentModel *)itemModel;
                 if (index.row == i) {
                     tempModel.isSelect = YES;
+                    self.paymentModel = tempModel;
+                    [self.bottomView setBottomPayStyle:tempModel.code];
                 } else {
                     tempModel.isSelect = NO;
                 }
@@ -368,23 +376,40 @@
     }
     return _addressCellM;
 }
-
+- (ASCheckoutCommentData *)commentCellM {
+    if (!_commentCellM) {
+        _commentCellM = [[ASCheckoutCommentData alloc] init];
+        _commentCellM.commentStr = @"";
+    }
+    return _commentCellM;
+}
 
 - (ASCheckoutTopView *)topView {
     if (!_topView) {
-        IPhoneXHeigh
-        _topView = [[ASCheckoutTopView alloc] initWithFrame:CGRectMake(0, securitytop_Y, KScreenWidth, 60)];
+//        IPhoneXHeigh
+        _topView = [[ASCheckoutTopView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 60)];
         @weakify(self)
         _topView.isFlodBlock = ^(BOOL isFlod) {
             @strongify(self)
             self.TableV.isFlod = isFlod;
             [self.TableV reloadData];
         };
-//
     }
     return _topView;
 }
 
+- (ASCheckoutBottomView *)bottomView {
+    if (!_bottomView) {
+        _bottomView = [[ASCheckoutBottomView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 100)];
+        @weakify(self)
+        _bottomView.bottomBlock = ^{
+            @strongify(self)
+            [self.view makeToast:@"调起支付"];
+        };
+    }
+    return _bottomView;
+}
+
 #pragma mark - **************** reqNet ****************
 
 

+ 3 - 0
Asteria/Fuction/Cart/Checkout/ASCheckoutAddressCell.h

@@ -11,8 +11,11 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface ASCheckoutAddressData : NSObject
 
+//地址
 @property (nonatomic, copy) NSString *addressId;
 @property (nonatomic, copy) NSString *addressInfoStr;
+//邮寄方式
+@property (nonatomic, strong) NSArray *shipMethodArray;
 @property (nonatomic, copy) NSString *shipmethodStr;
 @property (nonatomic, copy) NSString *shipmethodPrice;
 @property (nonatomic, copy) NSString *shipmethodSymbol;

+ 22 - 0
Asteria/Fuction/Cart/Checkout/ASCheckoutBottomView.h

@@ -0,0 +1,22 @@
+//
+//  ASCheckoutBottomView.h
+//  Asteria
+//
+//  Created by xingyu on 2024/5/10.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef void(^ASCheckoutBottomBlock)(void);
+
+@interface ASCheckoutBottomView : UIView
+
+@property (nonatomic, copy) ASCheckoutBottomBlock bottomBlock;
+
+- (void)setBottomPayStyle:(NSString *)payCode;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 107 - 0
Asteria/Fuction/Cart/Checkout/ASCheckoutBottomView.m

@@ -0,0 +1,107 @@
+//
+//  ASCheckoutBottomView.m
+//  Asteria
+//
+//  Created by xingyu on 2024/5/10.
+//
+
+#import "ASCheckoutBottomView.h"
+
+@interface ASCheckoutBottomView()
+
+@property (nonatomic, strong) UIView *backView;
+@property (nonatomic, strong) UILabel *titleLab;
+@property (nonatomic, strong) UIImageView *titleImageView;
+
+@end
+
+@implementation ASCheckoutBottomView
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    if (self = [super initWithFrame:frame]) {
+        
+        self.backgroundColor = [UIColor colorWithHexString:@"#F8F8F8"];
+        [self addSubview:self.backView];
+        [self.backView addSubview:self.titleLab];
+        [self.backView addSubview:self.titleImageView];
+        
+        [self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.mas_equalTo(10);
+            make.right.mas_equalTo(-10);
+            make.top.mas_equalTo(15);
+            make.height.mas_equalTo(45);
+        }];
+        
+        [self.titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.center.equalTo(self.backView);
+        }];
+        
+        [self.titleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.center.equalTo(self.backView);
+            make.width.mas_equalTo(103);
+            make.height.mas_equalTo(38);
+        }];
+        
+        self.backView.userInteractionEnabled = YES;
+        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(_payClickAction)];
+        [self.backView addGestureRecognizer:tap];
+        
+    }
+    return self;
+}
+
+- (void)setBottomPayStyle:(NSString *)payCode {
+    
+    if ([payCode isEqualToString:@"paypal_express"]) {//paypal
+        self.titleImageView.hidden = NO;
+        self.titleLab.hidden = YES;
+        self.titleImageView.image = [UIImage imageNamed:@"checkout_pay_paypal"];
+        
+        self.backView.backgroundColor = [UIColor colorWithHexString:@"#FFC43A"];
+    }
+//    else if ([payCode isEqualToString:@"stripe_payments"]) {//visa
+//        
+//    }  else if ([payCode isEqualToString:@"afterpay_payment"]) {//afterpay
+//        
+//    }  else if ([payCode isEqualToString:@"klarna_kco"]) {//klarna
+//        
+//    }
+    else {
+        self.titleImageView.hidden = YES;
+        self.titleLab.hidden = NO;
+        self.titleLab.text = @"pay securely now";
+        self.backView.backgroundColor = [UIColor colorWithHexString:@"#B2000F"];
+    }
+}
+
+- (void)_payClickAction {
+    if (self.bottomBlock) {
+        self.bottomBlock();
+    }
+}
+
+- (UIView *)backView {
+    if (!_backView) {
+        _backView = [[UIView alloc] init];
+        TT_ViewRadius(_backView, 4);
+    }
+    return _backView;
+}
+
+-(UILabel *)titleLab{
+    if(!_titleLab){
+        _titleLab = [UILabel labelCreateWithText:@"pay securely now" font:[UIFont fontWithName:Rob_Regular size:16] textColor:Col_FFF];
+        _titleLab.adjustsFontSizeToFitWidth = YES;
+    }
+    return _titleLab;
+}
+
+- (UIImageView *)titleImageView{
+    if(!_titleImageView){
+        _titleImageView = [[UIImageView alloc] init];
+        _titleImageView.contentMode = UIViewContentModeScaleAspectFit;
+    }
+    return _titleImageView;
+}
+
+@end

+ 25 - 0
Asteria/Fuction/Cart/Checkout/ASCheckoutCommentCell.h

@@ -0,0 +1,25 @@
+//
+//  ASCheckoutCommentCell.h
+//  Asteria
+//
+//  Created by xingyu on 2024/5/10.
+//
+
+#import <WMBase/WMBase.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ASCheckoutCommentData : NSObject
+
+@property (nonatomic, copy) NSString *commentStr;
+
+
+@end
+
+@interface ASCheckoutCommentCell : TT_BaseCell
+
+@property (nonatomic, strong) ASCheckoutCommentData *commentData;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 73 - 0
Asteria/Fuction/Cart/Checkout/ASCheckoutCommentCell.m

@@ -0,0 +1,73 @@
+//
+//  ASCheckoutCommentCell.m
+//  Asteria
+//
+//  Created by xingyu on 2024/5/10.
+//
+
+#import "ASCheckoutCommentCell.h"
+
+@implementation ASCheckoutCommentData
+
+@end
+
+@interface ASCheckoutCommentCell()<UITextFieldDelegate>
+
+@property (nonatomic, strong) TT_CustonTF  *commentTF;
+
+@end
+
+@implementation ASCheckoutCommentCell
+
+- (void)setupSubviewS {
+    self.backgroundColor = [UIColor colorWithHexString:@"#F8F8F8"];
+    
+    UIView *backView = [[UIView alloc] init];
+    TT_ViewRadius(backView, 4);
+    backView.backgroundColor = [UIColor whiteColor];
+    [self.contentView addSubview:backView];
+    [backView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.top.mas_equalTo(10);
+        make.right.mas_equalTo(-10);
+        make.bottom.mas_equalTo(0);
+    }];
+    
+    UILabel *titleLab = [UILabel labelCreateWithText:@"Comment" font:[UIFont fontWithName:Rob_Bold size:16] textColor:Col_000];
+    [backView addSubview:titleLab];
+    [titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(10);
+        make.top.mas_equalTo(20);
+    }];
+    
+    [backView addSubview:self.commentTF];
+    [self.commentTF mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(10);
+        make.right.mas_equalTo(-10);
+        make.top.equalTo(titleLab.mas_bottom).offset(20);
+        make.height.mas_equalTo(45);
+        make.bottom.mas_equalTo(-20);
+    }];
+    
+}
+
+
+- (void)textFieldDidEndEditing:(UITextField *)textField {
+    self.commentData.commentStr = textField.text;
+    if(self.currencyparameterClose){
+        self.currencyparameterClose(0,self.commentData);
+    }
+}
+
+-(TT_CustonTF *)commentTF{
+    if(!_commentTF){
+        _commentTF = [[TT_CustonTF alloc] init];
+        _commentTF.delegate = self;
+        _commentTF.placeholder = @"Fill in your message";
+        _commentTF.font = [UIFont fontWithName:Rob_Regular size:14];
+        _commentTF.textColor = Col_000;
+        TT_ViewBorderRadius(_commentTF, 4, 1, Col_666);
+    }
+    return _commentTF;
+}
+
+@end

+ 17 - 0
Asteria/Fuction/Cart/Checkout/ASCheckoutGoodsItemCell.h

@@ -0,0 +1,17 @@
+//
+//  ASCheckoutGoodsItemCell.h
+//  Asteria
+//
+//  Created by xingyu on 2024/5/10.
+//
+
+#import <WMBase/WMBase.h>
+#import "CartTotalsM.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ASCheckoutGoodsItemCell : TT_BaseCell
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 315 - 0
Asteria/Fuction/Cart/Checkout/ASCheckoutGoodsItemCell.m

@@ -0,0 +1,315 @@
+//
+//  ASCheckoutGoodsItemCell.m
+//  Asteria
+//
+//  Created by xingyu on 2024/5/10.
+//
+
+#import "ASCheckoutGoodsItemCell.h"
+#import "QtyCountV.h"
+#import "AlertMyCartDeleteV.h"
+@interface ASCheckoutGoodsItemCell ()
+@property (nonatomic, strong) CartTotalsItemsM *itemM;
+@property (nonatomic, strong) UIView *bgV;
+@property (nonatomic, strong) UIStackView *stackV;
+
+@property (nonatomic, strong) UIView *topV;
+@property (nonatomic, strong) UIImageView *leftImg;
+@property (nonatomic, strong) UILabel *nameLab;
+@property (nonatomic, strong) UIButton *closeBtn;
+@property (nonatomic, strong) QMUILabel *optionsLab;
+@property (nonatomic, strong) QMUILabel *gitfLab;
+
+@property (nonatomic, strong) UIStackView *rowStackV;
+@property (nonatomic, strong) QMUILabel *priceLab;
+@property (nonatomic, strong) QtyCountV *countV;
+@property (nonatomic, strong) QMUILabel *bgDesLab;
+@end
+
+@implementation ASCheckoutGoodsItemCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+}
+- (void)setupSubviewS{
+//    self.contentView.backgroundColor = [UIColor colorWithHexString:@"#F8F8F8"];
+    
+    self.contentView.backgroundColor = ThemeLightColor;
+    
+    [self.contentView addSubview:self.bgV];
+    [self.bgV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.edges.equalTo(self.contentView).insets(UIEdgeInsetsMake(0, 10, 10, 10));
+    }];
+    
+    [self.bgV addSubview:self.stackV];
+    [self.stackV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.edges.equalTo(self.bgV).insets(UIEdgeInsetsMake(20, 10, 15, 10));
+    }];
+    
+    [self.stackV addArrangedSubview:self.topV];
+    [self.stackV addArrangedSubview:self.rowStackV];
+    [self.stackV addArrangedSubview:self.bgDesLab];
+    [self.topV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.width.mas_equalTo(KScreenWidth-40);
+        make.height.mas_equalTo(86+10);
+    }];
+    [self.rowStackV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.equalTo(self.stackV);
+        make.height.mas_equalTo(32);
+    }];
+    [self.bgDesLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.height.mas_equalTo(23);
+        make.width.mas_greaterThanOrEqualTo(86);
+    }];
+    
+    [self.topV addSubview:self.leftImg];
+    [self.topV addSubview:self.nameLab];
+    [self.topV addSubview:self.closeBtn];
+    [self.topV addSubview:self.optionsLab];
+    [self.topV addSubview:self.gitfLab];
+    [self.leftImg mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.top.mas_equalTo(0);
+        make.width.height.mas_equalTo(86);
+    }];
+    [self.closeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.right.top.mas_equalTo(0);
+        make.width.height.mas_offset(40);
+    }];
+    [self.nameLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.mas_equalTo(0);
+        make.left.equalTo(self.leftImg.mas_right).offset(10);
+        make.right.equalTo(self.closeBtn.mas_left).offset(-10);
+        make.height.mas_equalTo(36);
+    }];
+    [self.optionsLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.equalTo(self.nameLab.mas_bottom).offset(10);;
+        make.left.equalTo(self.leftImg.mas_right).offset(10);
+        make.right.equalTo(self.closeBtn.mas_left).offset(-10);
+    }];
+    [self.gitfLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.equalTo(self.leftImg.mas_right).offset(10);
+        make.bottom.equalTo(self.leftImg);
+        make.width.mas_equalTo(86);
+        make.height.mas_equalTo(23);
+    }];
+    
+    [self.rowStackV addArrangedSubview:self.priceLab];
+    [self.rowStackV addArrangedSubview:self.countV];
+    [self.priceLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.height.mas_equalTo(20);
+    }];
+    [self.countV mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.width.mas_equalTo(self.countV.mj_w);
+        make.height.mas_equalTo(self.countV.mj_h);
+    }];
+    [self subViewsTapBlock];
+}
+- (void)subViewsTapBlock{
+    @weakify(self)
+    self.countV.ViewtapClose = ^(NSInteger num, id  _Nonnull data) {//0 - ; 1+
+       @strongify(self)
+        NSString *qtyStr = (NSString *)data;
+        CartTotalsItemsM *itemM =[[CartTotalsItemsM alloc]init];
+        itemM =  self.itemM;
+        itemM.qty = qtyStr;
+        if(self.currencyparameterClose){
+            self.currencyparameterClose(1,itemM);
+        }
+    };
+}
+
+- (void)configData:(id)Data{
+    CartTotalsItemsM *itemM = (CartTotalsItemsM *)Data;
+    self.itemM = itemM;
+    NSString *imgStr =  [NSString stringWithFormat:@"https:%@%@%@",HostPath,ProductImgPath,itemM.image];
+    [self.leftImg sd_setImageWithURL:[NSURL URLWithString:imgStr] placeholderImage:UIImageDefaultImg_SD];
+    self.nameLab.text = itemM.name;
+    
+    
+    NSArray *array = [Current_normalTool arrFromjsonStr:itemM.options];
+    
+    NSString *optionStr = @"";
+    for (int i = 0; i < array.count; i++) {
+        NSDictionary *dic = [array objectAtIndex:i];
+        optionStr = [NSString stringWithFormat:@"%@%@:%@", optionStr, dic[@"label"], dic[@"value"]];
+        
+        if (i < array.count - 1) {
+            optionStr = [NSString stringWithFormat:@"%@\n", optionStr];
+        }
+    }
+    self.optionsLab.text = optionStr;
+    
+    
+    self.priceLab.attributedText = [ASCheckoutGoodsItemCell tool_changePriceAtr:itemM];
+    
+    self.closeBtn.hidden = itemM.isGift;
+    self.optionsLab.hidden = itemM.isGift;
+    self.gitfLab.hidden = !itemM.isGift;
+    self.rowStackV.hidden = itemM.isGift;
+
+    if(itemM.isGift){
+        self.bgDesLab.hidden = YES;
+    }else{
+        self.bgDesLab.hidden = NO;
+        self.bgDesLab.text = [NSString stringWithFormat:@"SAVE %@%.2f",itemM.currency_symbol,[itemM.initial_price floatValue]-[itemM.price floatValue]];
+        self.countV.numLab.text = MM_str(itemM.qty);
+        [self.countV xxx_changeBtnIsEnable:YES num:[self.countV.numLab.text integerValue]];
+    }
+}
+
+#pragma mark - **************** handle ****************
+-(void)handle_CloseEvent:(UIButton *)btn{ //进入删除弹窗
+    AlertMyCartDeleteV *alertV = [[AlertMyCartDeleteV alloc]initWithAlertVtitle:[[NSMutableAttributedString alloc] initWithString:@"Do You Want To Remove It?"]];
+    alertV.ViewtapClose = ^(NSInteger num, id  _Nonnull data) {
+        if(num ==1){
+            if(self.currencyparameterClose){
+              self.currencyparameterClose(0,self.itemM);
+          }
+        }
+    };
+}
+#pragma mark - **************** tool ****************
++(NSMutableAttributedString *)tool_changePriceAtr:(CartTotalsItemsM *)model{
+    NSMutableAttributedString *priceAtr = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@%@",model.currency_symbol,model.price]];
+    [priceAtr addAttribute: NSForegroundColorAttributeName value:[UIColor colorWithHexString:@"#0B0B0B"] range:NSMakeRange(0, priceAtr.length)];
+    [priceAtr addAttribute:NSFontAttributeName value:[UIFont fontWithName:Rob_Bold size:20] range:NSMakeRange(0, priceAtr.length)];
+    [priceAtr appendAttributedString:[[NSAttributedString alloc]initWithString:@"  "]];
+    NSMutableAttributedString *priceAtrSub1 = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@%@",model.currency_symbol,model.initial_price]];
+    [priceAtrSub1 addAttribute:NSForegroundColorAttributeName
+                    value:[UIColor colorWithHexString:@"#8c8c8c"]
+                    range:NSMakeRange(0, priceAtrSub1.length)];
+    [priceAtrSub1 addAttribute:NSFontAttributeName
+                    value:[UIFont fontWithName:Rob_Regular size:14]
+                    range:NSMakeRange(0, priceAtrSub1.length)];
+    [priceAtrSub1 addAttribute:NSStrikethroughStyleAttributeName
+                    value:[NSNumber numberWithInteger:NSUnderlineStyleSingle]
+                    range:NSMakeRange(0, priceAtrSub1.length)];
+    [priceAtr appendAttributedString:priceAtrSub1];
+    return  priceAtr;
+}
+
+#pragma mark - **************** lazy ****************
+- (UIView *)bgV {
+    if (!_bgV) {
+        _bgV = [[UIView alloc] init];
+        _bgV.backgroundColor = [UIColor colorWithHexString:@"#FFFFFF"];
+        _bgV.layer.cornerRadius = 4;
+        _bgV.clipsToBounds = YES;
+    }
+    return _bgV;
+}
+- (UIStackView *)stackV { ///根据高度进行变化
+    if (!_stackV) {
+        UIStackView *stv = [[UIStackView alloc] init];
+        stv.axis = UILayoutConstraintAxisVertical;
+        stv.distribution = UIStackViewDistributionFill;
+        stv.alignment = UIStackViewAlignmentLeading;
+        stv.spacing = 5;
+        _stackV = stv;
+    }
+    return _stackV;
+}
+-(UIImageView *)leftImg{
+    if(!_leftImg){
+        _leftImg = [[UIImageView alloc]init];
+    }
+    return _leftImg;
+}
+-(UILabel *)nameLab{
+    if(!_nameLab){
+        _nameLab = [[UILabel alloc]init];
+        _nameLab.font = [UIFont fontWithName:Rob_Regular size:12];
+        _nameLab.textColor = [UIColor colorWithHexString:@"#000000"];
+        _nameLab.numberOfLines =2;
+    }
+    return _nameLab;
+}
+
+-(UIButton *)closeBtn{
+    if(!_closeBtn){
+        _closeBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+        [_closeBtn setImage:[UIImage imageNamed:@"base_close_black"] forState:UIControlStateNormal];
+        [_closeBtn addTarget:self action:@selector(handle_CloseEvent:) forControlEvents:UIControlEventTouchUpInside];
+    }
+    return _closeBtn;
+}
+-(QtyCountV *)countV{
+    if(!_countV){
+        _countV = [[QtyCountV alloc]initWithFrame:CGRectMake(0, 0, 32*2+46, 32)];
+        _countV.goodsmaxNum = 10;
+    }
+    return _countV;
+}
+- (QMUILabel *)optionsLab {
+    if (!_optionsLab) {
+        _optionsLab = [[QMUILabel alloc] initWithFrame:CGRectZero];
+        _optionsLab.textAlignment = NSTextAlignmentLeft;
+        _optionsLab.textColor = [UIColor colorWithHexString:@"#B2B2B2"];
+        _optionsLab.numberOfLines = 0;
+        _optionsLab.font = [UIFont fontWithName:Rob_Regular size:12];
+    }
+    return  _optionsLab;
+}
+
+- (QMUILabel *)priceLab {
+    if (!_priceLab) {
+        _priceLab = [[QMUILabel alloc] initWithFrame:CGRectZero];
+        _priceLab.textAlignment = NSTextAlignmentLeft;
+        _priceLab.textColor = [UIColor colorWithHexString:@"#0B0B0B"];
+        _priceLab.font = [UIFont fontWithName:Rob_Bold size:14];
+    }
+    return  _priceLab;
+}
+
+- (QMUILabel *)bgDesLab {
+    if (!_bgDesLab) {
+        _bgDesLab = [[QMUILabel alloc] initWithFrame:CGRectZero];
+        _bgDesLab.textAlignment = NSTextAlignmentCenter;
+        _bgDesLab.backgroundColor = ThemeLightColor;
+        _bgDesLab.textColor = [UIColor colorWithHexString:@"#000000"];
+        _bgDesLab.font = [UIFont fontWithName:Rob_Regular size:12];
+        _bgDesLab.contentEdgeInsets = UIEdgeInsetsMake(0, 15, 0, 15);
+    }
+    return  _bgDesLab;
+}
+
+- (QMUILabel *)gitfLab {
+    if (!_gitfLab) {
+        _gitfLab = [[QMUILabel alloc] initWithFrame:CGRectZero];
+        _gitfLab.textAlignment = NSTextAlignmentCenter;
+        _gitfLab.textColor = [UIColor colorWithHexString:@"#000000"];
+        _gitfLab.font = [UIFont fontWithName:Rob_Regular size:12];
+        _gitfLab.text = @"Gift";
+        _gitfLab.backgroundColor = ThemeLightColor;
+    }
+    return  _gitfLab;
+}
+
+
+- (UIView *)topV {
+    if (!_topV) {
+        _topV = [[UIView alloc] init];
+    }
+    return _topV;
+}
+
+
+- (UIStackView *)rowStackV {
+    if (!_rowStackV) {
+        _rowStackV = [[UIStackView alloc] init];
+        UIStackView *stv = [[UIStackView alloc] init];
+        stv.axis = UILayoutConstraintAxisHorizontal;
+        stv.distribution = UIStackViewDistributionFill;
+        stv.alignment = UIStackViewAlignmentCenter;
+    }
+    return _rowStackV;
+}
+
+
+
+
+@end

+ 48 - 4
Asteria/Fuction/Cart/Checkout/ASCheckoutPaymentCell.m

@@ -12,6 +12,7 @@
 
 @property (nonatomic, strong) UIView *bgView;
 @property (nonatomic, strong) UILabel *titleLab;
+@property (nonatomic, strong) UIImageView *titleImageView;
 
 @property (nonatomic, strong) UIImageView *selectImageView;
 
@@ -34,6 +35,7 @@
     self.backgroundColor = [UIColor colorWithHexString:@"#F8F8F8"];
     [self.contentView  addSubview:self.bgView];
     [self.bgView addSubview:self.titleLab];
+    [self.bgView addSubview:self.titleImageView];
     [self.bgView addSubview:self.selectImageView];
     
     
@@ -43,11 +45,18 @@
         make.bottom.mas_equalTo(0);
     }];
     [self.titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.mas_equalTo(10);
+        make.left.mas_equalTo(15);
         make.top.mas_equalTo(20);
-        make.height.mas_equalTo(20);
+        make.height.mas_equalTo(30);
         make.right.mas_equalTo(-100);
-        make.bottom.mas_equalTo(-20);
+        make.bottom.mas_equalTo(-15);
+    }];
+    
+    [self.titleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(15);
+        make.top.mas_equalTo(20);
+        make.height.mas_equalTo(30);
+        make.bottom.mas_equalTo(-15);
     }];
     
     [self.selectImageView mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -60,7 +69,34 @@
 
 - (void)configData:(id)Data{
     ASCheckoutPaymentModel *model = (ASCheckoutPaymentModel *)Data;
-    self.titleLab.text = model.title;
+    
+    self.titleImageView.hidden = NO;
+    self.titleLab.hidden = YES;
+    if ([model.code isEqualToString:@"paypal_express"]) {//paypal
+        self.titleImageView.image = [UIImage imageNamed:@"pay_icon_paypal"];
+        [self.titleImageView mas_updateConstraints:^(MASConstraintMaker *make) {
+            make.width.mas_equalTo(72);
+        }];
+    } else if ([model.code isEqualToString:@"stripe_payments"]) {//visa
+        self.titleImageView.image = [UIImage imageNamed:@"pay_icon_visa"];
+        [self.titleImageView mas_updateConstraints:^(MASConstraintMaker *make) {
+            make.width.mas_equalTo(202);
+        }];
+    }  else if ([model.code isEqualToString:@"afterpay_payment"]) {//afterpay
+        self.titleImageView.image = [UIImage imageNamed:@"pay_icon_afterpay"];
+        [self.titleImageView mas_updateConstraints:^(MASConstraintMaker *make) {
+            make.width.mas_equalTo(88);
+        }];
+    }  else if ([model.code isEqualToString:@"klarna_kco"]) {//klarna
+        self.titleImageView.image = [UIImage imageNamed:@"pay_icon_kla"];
+        [self.titleImageView mas_updateConstraints:^(MASConstraintMaker *make) {
+            make.width.mas_equalTo(60);
+        }];
+    } else {
+        self.titleImageView.hidden = YES;
+        self.titleLab.hidden = NO;
+        self.titleLab.text = model.title;
+    }
     
     if (model.isSelect) {
         _selectImageView.image = [UIImage imageNamed:@"base_radio_select"];
@@ -90,6 +126,14 @@
     return _titleLab;
 }
 
+- (UIImageView *)titleImageView{
+    if(!_titleImageView){
+        _titleImageView = [[UIImageView alloc] init];
+        _titleImageView.contentMode = UIViewContentModeScaleAspectFit;
+    }
+    return _titleImageView;
+}
+
 - (UIImageView *)selectImageView{
     if(!_selectImageView){
         _selectImageView = [[UIImageView alloc] init];

+ 3 - 3
Asteria/Fuction/Cart/Checkout/ASCheckoutPointApplyCell.m

@@ -69,7 +69,7 @@
     }];
     [self.codeTF mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.top.bottom.equalTo(applyTmpV);
-        make.width.mas_equalTo(self.codeTF.mj_w);
+        make.width.mas_equalTo(KScreenWidth-20-95);
     }];
     [self.applyBtn mas_makeConstraints:^(MASConstraintMaker *make) {
         make.right.top.bottom.equalTo(applyTmpV);
@@ -115,7 +115,7 @@
         self.applyBtn.selected = NO;
     }
     
-    NSString *pointStr = [NSString stringWithFormat:@"You have %@ Reward Points available", model.pointBalance];
+    NSString *pointStr = [NSString stringWithFormat:@"You have %@ Reward Points available.", model.pointBalance];
     NSString *pointLastStr = [NSString stringWithFormat:@"%@ point = %@%@. Input points value below to redeem.", model.pointScale, model.priceSymbol, model.priceScale];
     
     NSMutableAttributedString *couponStr = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@%@", pointStr, pointLastStr]];
@@ -154,7 +154,7 @@
 
 -(TT_CustonTF *)codeTF{
     if(!_codeTF){
-        _codeTF = [[TT_CustonTF alloc]initWithFrame:CGRectMake(10, 0, KScreenWidth-20-95, 45)];
+        _codeTF = [[TT_CustonTF alloc] init];
         _codeTF.keyboardType = UIKeyboardTypeNumberPad;
         _codeTF.placeholder = @"Enter Your Reward Points";
         _codeTF.font = [UIFont fontWithName:Rob_Regular size:14];

+ 2 - 3
Asteria/Fuction/Cart/Checkout/ASCheckoutTopView.m

@@ -24,8 +24,8 @@
         }];
         
         _arrowBtn = [UIButton buttonWithType:UIButtonTypeCustom];
-        [_arrowBtn setTitle:@"收起" forState:UIControlStateNormal];
-        [_arrowBtn setTitle:@"展开" forState:UIControlStateSelected];
+        [_arrowBtn setImage:[UIImage imageNamed:@"checkout_arrow_up"] forState:UIControlStateNormal];
+        [_arrowBtn setImage:[UIImage imageNamed:@"checkout_arrow_down"] forState:UIControlStateSelected];
         _arrowBtn.titleLabel.font = [UIFont fontWithName:Rob_Bold size:12];
         [_arrowBtn addTarget:self action:@selector(_isFlodClick:) forControlEvents:UIControlEventTouchUpInside];
         [_arrowBtn setTitleColor:_0B0B0B forState:0];
@@ -45,7 +45,6 @@
             make.right.equalTo(_arrowBtn.mas_left).offset(-6);
             make.centerY.equalTo(self);
         }];
-        
     }
     return self;
 }

+ 3 - 1
Asteria/Fuction/Cart/Checkout/CartCheckTableV.h

@@ -8,7 +8,8 @@
 #import <WMBase/WMBase.h>
 #import "CartTotalsM.h"
 
-#import "MyCartItemCell.h"
+//#import "MyCartItemCell.h"
+#import "ASCheckoutGoodsItemCell.h"
 #import "MyCartCouponCell.h"
 #import "MyCartGrandTotalCell.h"
 #import "GoodsSizePayMentCell.h"
@@ -18,6 +19,7 @@
 #import "ASCheckoutPointApplyCell.h"
 #import "ASCheckoutAddressCell.h"
 #import "ASCheckoutPaymentCell.h"
+#import "ASCheckoutCommentCell.h"
 
 NS_ASSUME_NONNULL_BEGIN
 

+ 10 - 1
Asteria/Fuction/Cart/Checkout/CartCheckTableV.m

@@ -12,7 +12,7 @@
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
     NSObject *objectM = self.infodata[indexPath.row];
     if([objectM isKindOfClass:[CartTotalsItemsM class]]){
-        MyCartItemCell *cell = [MyCartItemCell cellWithTableView:tableView CellClass:[MyCartItemCell class]];
+        ASCheckoutGoodsItemCell *cell = [ASCheckoutGoodsItemCell cellWithTableView:tableView CellClass:[ASCheckoutGoodsItemCell class]];
         
         [cell configData:(CartTotalsItemsM *)objectM];
         @weakify(self)
@@ -70,6 +70,15 @@
         MyCartPayTypeCell *cell = [MyCartPayTypeCell cellWithTableView:tableView CellClass:[MyCartPayTypeCell class]];
         [cell configData:(MyCartPayTypeCellData *)objectM];
         return cell;
+    }else if([objectM isKindOfClass:[ASCheckoutCommentData class]]){
+        ASCheckoutCommentCell *cell = [ASCheckoutCommentCell cellWithTableView:tableView CellClass:[ASCheckoutCommentCell class]];
+//        [cell configData:(ASCheckoutCommentData *)objectM];
+        @weakify(self)
+        cell.currencyparameterClose = ^(NSInteger type, id Data) {
+            @strongify(self)
+            [self generaltriggermethodType:type data:Data];
+        };
+        return cell;
     }
     return  nil;
 }

+ 10 - 0
Asteria/Fuction/Cart/M/ASCheckoutModel.h

@@ -22,4 +22,14 @@ NS_ASSUME_NONNULL_BEGIN
 
 @end
 
+//运输方式model
+@interface ASCheckoutShipMethodModel : NSObject
+
+@property (nonatomic, copy) NSString *method_title;
+@property (nonatomic, copy) NSString *carrier_title;
+@property (nonatomic, copy) NSString *amount;
+@property (nonatomic, assign) BOOL isSelect;
+
+@end
+
 NS_ASSUME_NONNULL_END

+ 5 - 0
Asteria/Fuction/Cart/M/ASCheckoutModel.m

@@ -16,3 +16,8 @@
 @implementation ASCheckoutPaymentModel
 
 @end
+
+@implementation ASCheckoutShipMethodModel
+
+@end
+