Browse Source

feat:订单详情页面

“wangdongchao” 1 year ago
parent
commit
f5b6e312a9
26 changed files with 607 additions and 106 deletions
  1. 98 48
      Asteria.xcodeproj/project.pbxproj
  2. 28 0
      Asteria/ASUI/Tools/ASCommonUtils.h
  3. 37 0
      Asteria/ASUI/Tools/ASCommonUtils.m
  4. 0 25
      Asteria/Fuction/UserCenter/Orders/ASOrderDetailsModel.h
  5. 0 21
      Asteria/Fuction/UserCenter/Orders/ASOrderDetailsModel.m
  6. 0 0
      Asteria/Fuction/UserCenter/Orders/Controller/ASOrderDetailsViewController.h
  7. 28 9
      Asteria/Fuction/UserCenter/Orders/ASOrderDetailsViewController.m
  8. 0 0
      Asteria/Fuction/UserCenter/Orders/Controller/ASOrderListSubController.h
  9. 0 0
      Asteria/Fuction/UserCenter/Orders/Controller/ASOrderListSubController.m
  10. 0 0
      Asteria/Fuction/UserCenter/Orders/Controller/ASOrderListViewController.h
  11. 0 0
      Asteria/Fuction/UserCenter/Orders/Controller/ASOrderListViewController.m
  12. 48 0
      Asteria/Fuction/UserCenter/Orders/Model/ASOrderDetailsModel.h
  13. 42 0
      Asteria/Fuction/UserCenter/Orders/Model/ASOrderDetailsModel.m
  14. 0 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsInfoCell.h
  15. 36 3
      Asteria/Fuction/UserCenter/Orders/ASOrderDetailsInfoCell.m
  16. 19 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsItemsCell.h
  17. 124 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsItemsCell.m
  18. 19 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsPriceCell.h
  19. 122 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsPriceCell.m
  20. 0 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderListCell.h
  21. 0 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderListCell.m
  22. 0 0
      Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderDetailsVM.h
  23. 3 0
      Asteria/Fuction/UserCenter/Orders/ASOrderDetailsVM.m
  24. 0 0
      Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderListViewModel.h
  25. 0 0
      Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderListViewModel.m
  26. 3 0
      Asteria/PreFixHeader.h

+ 98 - 48
Asteria.xcodeproj/project.pbxproj

@@ -124,10 +124,6 @@
 		8186564A2A5BE9790049D861 /* ASSearchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 818656492A5BE9790049D861 /* ASSearchViewController.m */; };
 		8186564D2A5BF6010049D861 /* ASCategoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8186564C2A5BF6010049D861 /* ASCategoryViewController.m */; };
 		81932E2B29F7539B007C37AF /* UIColor+AS.m in Sources */ = {isa = PBXBuildFile; fileRef = 81932E2A29F7539B007C37AF /* UIColor+AS.m */; };
-		819349192BF1EB59009FDDB2 /* ASOrderListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 819349182BF1EB59009FDDB2 /* ASOrderListViewController.m */; };
-		8193491C2BF1EB6F009FDDB2 /* ASOrderListSubController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8193491B2BF1EB6F009FDDB2 /* ASOrderListSubController.m */; };
-		819349212BF218B6009FDDB2 /* ASOrderListViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 819349202BF218B6009FDDB2 /* ASOrderListViewModel.m */; };
-		819349262BF34722009FDDB2 /* ASOrderListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 819349252BF34722009FDDB2 /* ASOrderListCell.m */; };
 		8193D5C82BEA299F00B9AB11 /* ASAddressListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8193D5C72BEA299F00B9AB11 /* ASAddressListViewController.m */; };
 		8193D5CB2BEA2A0800B9AB11 /* ASMineAddressModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8193D5CA2BEA2A0800B9AB11 /* ASMineAddressModel.m */; };
 		8193D5CE2BEA2B8E00B9AB11 /* ASAddressViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8193D5CD2BEA2B8E00B9AB11 /* ASAddressViewModel.m */; };
@@ -201,10 +197,17 @@
 		8810F5292BEE0DEA00346FD4 /* ASCheckoutGoodsItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5282BEE0DEA00346FD4 /* ASCheckoutGoodsItemCell.m */; };
 		8810F52C2BF1A1CD00346FD4 /* ASAddGiftGoodsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F52B2BF1A1CD00346FD4 /* ASAddGiftGoodsView.m */; };
 		8810F5302BF3678400346FD4 /* ASPaypalManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F52F2BF3678400346FD4 /* ASPaypalManager.m */; };
-		8810F5332BF497C400346FD4 /* ASOrderDetailsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5322BF497C400346FD4 /* ASOrderDetailsViewController.m */; };
-		8810F5362BF4998E00346FD4 /* ASOrderDetailsVM.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5352BF4998E00346FD4 /* ASOrderDetailsVM.m */; };
-		8810F5392BF4A6E900346FD4 /* ASOrderDetailsModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5382BF4A6E900346FD4 /* ASOrderDetailsModel.m */; };
-		8810F53C2BF4ABC300346FD4 /* ASOrderDetailsInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F53B2BF4ABC300346FD4 /* ASOrderDetailsInfoCell.m */; };
+		8810F53F2BF5949000346FD4 /* ASCommonUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F53E2BF5949000346FD4 /* ASCommonUtils.m */; };
+		8810F55E2BF5EBF400346FD4 /* ASOrderDetailsInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5472BF5EBF400346FD4 /* ASOrderDetailsInfoCell.m */; };
+		8810F55F2BF5EBF400346FD4 /* ASOrderDetailsItemsCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5492BF5EBF400346FD4 /* ASOrderDetailsItemsCell.m */; };
+		8810F5602BF5EBF400346FD4 /* ASOrderDetailsPriceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F54B2BF5EBF400346FD4 /* ASOrderDetailsPriceCell.m */; };
+		8810F5612BF5EBF400346FD4 /* ASOrderListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F54D2BF5EBF400346FD4 /* ASOrderListCell.m */; };
+		8810F5622BF5EBF400346FD4 /* ASOrderDetailsVM.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5502BF5EBF400346FD4 /* ASOrderDetailsVM.m */; };
+		8810F5632BF5EBF400346FD4 /* ASOrderListViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5522BF5EBF400346FD4 /* ASOrderListViewModel.m */; };
+		8810F5642BF5EBF400346FD4 /* ASOrderDetailsModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5552BF5EBF400346FD4 /* ASOrderDetailsModel.m */; };
+		8810F5652BF5EBF400346FD4 /* ASOrderDetailsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F5582BF5EBF400346FD4 /* ASOrderDetailsViewController.m */; };
+		8810F5662BF5EBF400346FD4 /* ASOrderListSubController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F55A2BF5EBF400346FD4 /* ASOrderListSubController.m */; };
+		8810F5672BF5EBF400346FD4 /* ASOrderListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8810F55C2BF5EBF400346FD4 /* ASOrderListViewController.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 */; };
@@ -574,14 +577,6 @@
 		8186564C2A5BF6010049D861 /* ASCategoryViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASCategoryViewController.m; sourceTree = "<group>"; };
 		81932E2929F7539B007C37AF /* UIColor+AS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIColor+AS.h"; sourceTree = "<group>"; };
 		81932E2A29F7539B007C37AF /* UIColor+AS.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIColor+AS.m"; sourceTree = "<group>"; };
-		819349172BF1EB59009FDDB2 /* ASOrderListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASOrderListViewController.h; sourceTree = "<group>"; };
-		819349182BF1EB59009FDDB2 /* ASOrderListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASOrderListViewController.m; sourceTree = "<group>"; };
-		8193491A2BF1EB6F009FDDB2 /* ASOrderListSubController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASOrderListSubController.h; sourceTree = "<group>"; };
-		8193491B2BF1EB6F009FDDB2 /* ASOrderListSubController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASOrderListSubController.m; sourceTree = "<group>"; };
-		8193491F2BF218B6009FDDB2 /* ASOrderListViewModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASOrderListViewModel.h; sourceTree = "<group>"; };
-		819349202BF218B6009FDDB2 /* ASOrderListViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASOrderListViewModel.m; sourceTree = "<group>"; };
-		819349242BF34722009FDDB2 /* ASOrderListCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASOrderListCell.h; sourceTree = "<group>"; };
-		819349252BF34722009FDDB2 /* ASOrderListCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASOrderListCell.m; sourceTree = "<group>"; };
 		8193D5C62BEA299F00B9AB11 /* ASAddressListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASAddressListViewController.h; sourceTree = "<group>"; };
 		8193D5C72BEA299F00B9AB11 /* ASAddressListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASAddressListViewController.m; sourceTree = "<group>"; };
 		8193D5C92BEA2A0800B9AB11 /* ASMineAddressModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASMineAddressModel.h; sourceTree = "<group>"; };
@@ -728,14 +723,28 @@
 		8810F52B2BF1A1CD00346FD4 /* ASAddGiftGoodsView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASAddGiftGoodsView.m; sourceTree = "<group>"; };
 		8810F52E2BF3678400346FD4 /* ASPaypalManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASPaypalManager.h; sourceTree = "<group>"; };
 		8810F52F2BF3678400346FD4 /* ASPaypalManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASPaypalManager.m; sourceTree = "<group>"; };
-		8810F5312BF497C400346FD4 /* ASOrderDetailsViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASOrderDetailsViewController.h; sourceTree = "<group>"; };
-		8810F5322BF497C400346FD4 /* ASOrderDetailsViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASOrderDetailsViewController.m; sourceTree = "<group>"; };
-		8810F5342BF4998E00346FD4 /* ASOrderDetailsVM.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASOrderDetailsVM.h; sourceTree = "<group>"; };
-		8810F5352BF4998E00346FD4 /* ASOrderDetailsVM.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASOrderDetailsVM.m; sourceTree = "<group>"; };
-		8810F5372BF4A6E900346FD4 /* ASOrderDetailsModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASOrderDetailsModel.h; sourceTree = "<group>"; };
-		8810F5382BF4A6E900346FD4 /* ASOrderDetailsModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASOrderDetailsModel.m; sourceTree = "<group>"; };
-		8810F53A2BF4ABC300346FD4 /* ASOrderDetailsInfoCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASOrderDetailsInfoCell.h; sourceTree = "<group>"; };
-		8810F53B2BF4ABC300346FD4 /* ASOrderDetailsInfoCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASOrderDetailsInfoCell.m; sourceTree = "<group>"; };
+		8810F53D2BF5949000346FD4 /* ASCommonUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASCommonUtils.h; sourceTree = "<group>"; };
+		8810F53E2BF5949000346FD4 /* ASCommonUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASCommonUtils.m; sourceTree = "<group>"; };
+		8810F5462BF5EBF400346FD4 /* ASOrderDetailsInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASOrderDetailsInfoCell.h; sourceTree = "<group>"; };
+		8810F5472BF5EBF400346FD4 /* ASOrderDetailsInfoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASOrderDetailsInfoCell.m; sourceTree = "<group>"; };
+		8810F5482BF5EBF400346FD4 /* ASOrderDetailsItemsCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASOrderDetailsItemsCell.h; sourceTree = "<group>"; };
+		8810F5492BF5EBF400346FD4 /* ASOrderDetailsItemsCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASOrderDetailsItemsCell.m; sourceTree = "<group>"; };
+		8810F54A2BF5EBF400346FD4 /* ASOrderDetailsPriceCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASOrderDetailsPriceCell.h; sourceTree = "<group>"; };
+		8810F54B2BF5EBF400346FD4 /* ASOrderDetailsPriceCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASOrderDetailsPriceCell.m; sourceTree = "<group>"; };
+		8810F54C2BF5EBF400346FD4 /* ASOrderListCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASOrderListCell.h; sourceTree = "<group>"; };
+		8810F54D2BF5EBF400346FD4 /* ASOrderListCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASOrderListCell.m; sourceTree = "<group>"; };
+		8810F54F2BF5EBF400346FD4 /* ASOrderDetailsVM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASOrderDetailsVM.h; sourceTree = "<group>"; };
+		8810F5502BF5EBF400346FD4 /* ASOrderDetailsVM.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASOrderDetailsVM.m; sourceTree = "<group>"; };
+		8810F5512BF5EBF400346FD4 /* ASOrderListViewModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASOrderListViewModel.h; sourceTree = "<group>"; };
+		8810F5522BF5EBF400346FD4 /* ASOrderListViewModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASOrderListViewModel.m; sourceTree = "<group>"; };
+		8810F5542BF5EBF400346FD4 /* ASOrderDetailsModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASOrderDetailsModel.h; sourceTree = "<group>"; };
+		8810F5552BF5EBF400346FD4 /* ASOrderDetailsModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASOrderDetailsModel.m; sourceTree = "<group>"; };
+		8810F5572BF5EBF400346FD4 /* ASOrderDetailsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASOrderDetailsViewController.h; sourceTree = "<group>"; };
+		8810F5582BF5EBF400346FD4 /* ASOrderDetailsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASOrderDetailsViewController.m; sourceTree = "<group>"; };
+		8810F5592BF5EBF400346FD4 /* ASOrderListSubController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASOrderListSubController.h; sourceTree = "<group>"; };
+		8810F55A2BF5EBF400346FD4 /* ASOrderListSubController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASOrderListSubController.m; sourceTree = "<group>"; };
+		8810F55B2BF5EBF400346FD4 /* ASOrderListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASOrderListViewController.h; sourceTree = "<group>"; };
+		8810F55C2BF5EBF400346FD4 /* ASOrderListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASOrderListViewController.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>"; };
@@ -1488,22 +1497,10 @@
 		819349162BF1EB11009FDDB2 /* Orders */ = {
 			isa = PBXGroup;
 			children = (
-				819349172BF1EB59009FDDB2 /* ASOrderListViewController.h */,
-				819349182BF1EB59009FDDB2 /* ASOrderListViewController.m */,
-				8193491A2BF1EB6F009FDDB2 /* ASOrderListSubController.h */,
-				8193491B2BF1EB6F009FDDB2 /* ASOrderListSubController.m */,
-				8193491F2BF218B6009FDDB2 /* ASOrderListViewModel.h */,
-				819349202BF218B6009FDDB2 /* ASOrderListViewModel.m */,
-				819349242BF34722009FDDB2 /* ASOrderListCell.h */,
-				819349252BF34722009FDDB2 /* ASOrderListCell.m */,
-				8810F5312BF497C400346FD4 /* ASOrderDetailsViewController.h */,
-				8810F5322BF497C400346FD4 /* ASOrderDetailsViewController.m */,
-				8810F5342BF4998E00346FD4 /* ASOrderDetailsVM.h */,
-				8810F5352BF4998E00346FD4 /* ASOrderDetailsVM.m */,
-				8810F5372BF4A6E900346FD4 /* ASOrderDetailsModel.h */,
-				8810F5382BF4A6E900346FD4 /* ASOrderDetailsModel.m */,
-				8810F53A2BF4ABC300346FD4 /* ASOrderDetailsInfoCell.h */,
-				8810F53B2BF4ABC300346FD4 /* ASOrderDetailsInfoCell.m */,
+				8810F55D2BF5EBF400346FD4 /* Controller */,
+				8810F5562BF5EBF400346FD4 /* Model */,
+				8810F54E2BF5EBF400346FD4 /* View */,
+				8810F5532BF5EBF400346FD4 /* ViewModel */,
 			);
 			path = Orders;
 			sourceTree = "<group>";
@@ -1529,6 +1526,8 @@
 			children = (
 				819900202A020A6F006FE68C /* LYTools.h */,
 				819900212A020A6F006FE68C /* LYTools.m */,
+				8810F53D2BF5949000346FD4 /* ASCommonUtils.h */,
+				8810F53E2BF5949000346FD4 /* ASCommonUtils.m */,
 			);
 			path = Tools;
 			sourceTree = "<group>";
@@ -1873,6 +1872,54 @@
 			path = PayManager;
 			sourceTree = "<group>";
 		};
+		8810F54E2BF5EBF400346FD4 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				8810F54C2BF5EBF400346FD4 /* ASOrderListCell.h */,
+				8810F54D2BF5EBF400346FD4 /* ASOrderListCell.m */,
+				8810F5462BF5EBF400346FD4 /* ASOrderDetailsInfoCell.h */,
+				8810F5472BF5EBF400346FD4 /* ASOrderDetailsInfoCell.m */,
+				8810F5482BF5EBF400346FD4 /* ASOrderDetailsItemsCell.h */,
+				8810F5492BF5EBF400346FD4 /* ASOrderDetailsItemsCell.m */,
+				8810F54A2BF5EBF400346FD4 /* ASOrderDetailsPriceCell.h */,
+				8810F54B2BF5EBF400346FD4 /* ASOrderDetailsPriceCell.m */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		8810F5532BF5EBF400346FD4 /* ViewModel */ = {
+			isa = PBXGroup;
+			children = (
+				8810F5512BF5EBF400346FD4 /* ASOrderListViewModel.h */,
+				8810F5522BF5EBF400346FD4 /* ASOrderListViewModel.m */,
+				8810F54F2BF5EBF400346FD4 /* ASOrderDetailsVM.h */,
+				8810F5502BF5EBF400346FD4 /* ASOrderDetailsVM.m */,
+			);
+			path = ViewModel;
+			sourceTree = "<group>";
+		};
+		8810F5562BF5EBF400346FD4 /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				8810F5542BF5EBF400346FD4 /* ASOrderDetailsModel.h */,
+				8810F5552BF5EBF400346FD4 /* ASOrderDetailsModel.m */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
+		8810F55D2BF5EBF400346FD4 /* Controller */ = {
+			isa = PBXGroup;
+			children = (
+				8810F5592BF5EBF400346FD4 /* ASOrderListSubController.h */,
+				8810F55A2BF5EBF400346FD4 /* ASOrderListSubController.m */,
+				8810F55B2BF5EBF400346FD4 /* ASOrderListViewController.h */,
+				8810F55C2BF5EBF400346FD4 /* ASOrderListViewController.m */,
+				8810F5572BF5EBF400346FD4 /* ASOrderDetailsViewController.h */,
+				8810F5582BF5EBF400346FD4 /* ASOrderDetailsViewController.m */,
+			);
+			path = Controller;
+			sourceTree = "<group>";
+		};
 		9A1247912A1B07F400126226 /* Tool */ = {
 			isa = PBXGroup;
 			children = (
@@ -2755,6 +2802,7 @@
 				9A2415BC2B6784A500A6E903 /* MyCartItemCell.m in Sources */,
 				81354BF22A287B120082C93A /* KWMineHomeOrderModel.m in Sources */,
 				9A2415B92B677DDF00A6E903 /* Target_Cart.m in Sources */,
+				8810F5672BF5EBF400346FD4 /* ASOrderListViewController.m in Sources */,
 				81E73EBD2B1AABF300C10938 /* ASGiftCardListViewModel.m in Sources */,
 				9A31EE002B469A73009F11EE /* AS_GoodsReviewsListC.m in Sources */,
 				9AD345F82A08D60F005CA070 /* ZFPlayerGestureControl.m in Sources */,
@@ -2764,13 +2812,11 @@
 				9A3F5CAF2B3BC11000DDB6A7 /* AlertMyCartDeleteV.m in Sources */,
 				81717C912A3BE39C00648139 /* ASProductSortFilterView.m in Sources */,
 				9AACEE952B7F473200223466 /* Cart_CheckoutC.m in Sources */,
-				8810F53C2BF4ABC300346FD4 /* ASOrderDetailsInfoCell.m in Sources */,
 				81C7962E2A539F4D003083B8 /* ASMessageListCell.m in Sources */,
 				81717D382A3D322700648139 /* KWNoHisWordsCell.m in Sources */,
 				9A2415BF2B678A1100A6E903 /* QtyCountV.m in Sources */,
 				9AD345FA2A08D60F005CA070 /* ZFLandscapeWindow.m in Sources */,
 				81E257EE2A120756004EEF71 /* ASUserCenterTopView.m in Sources */,
-				819349262BF34722009FDDB2 /* ASOrderListCell.m in Sources */,
 				81C326622A36B33B002EF442 /* ASHomeActiveView.m in Sources */,
 				81DFA56A2A46D82200DA708B /* ASPointDetailTableView.m in Sources */,
 				9AD346042A08D60F005CA070 /* ZFKVOController.m in Sources */,
@@ -2798,6 +2844,7 @@
 				81C796242A4FD63A003083B8 /* ASVipCouponsViewController.m in Sources */,
 				9AEFA7DE2B649F4000AE1974 /* MyCarlTableV.m in Sources */,
 				8810F5302BF3678400346FD4 /* ASPaypalManager.m in Sources */,
+				8810F53F2BF5949000346FD4 /* ASCommonUtils.m in Sources */,
 				9AFCDAC22B809C5B003D3573 /* CartCheckTableV.m in Sources */,
 				9AC2CC222B3A673B005187BD /* ASGoodsDetailsVM.m in Sources */,
 				816020252A2F1C9E00E4A8F1 /* ASHomeMainListModel.m in Sources */,
@@ -2831,7 +2878,7 @@
 				81CE28942AF490C20012AA45 /* ASGiftCardTableView.m in Sources */,
 				81FC41A32BEB4D6E00EB0A85 /* InTableScrollView.m in Sources */,
 				816020132A2EE5A200E4A8F1 /* ASCategaryCollectCell.m in Sources */,
-				8810F5362BF4998E00346FD4 /* ASOrderDetailsVM.m in Sources */,
+				8810F5622BF5EBF400346FD4 /* ASOrderDetailsVM.m in Sources */,
 				8193D5CB2BEA2A0800B9AB11 /* ASMineAddressModel.m in Sources */,
 				81C796422A551FE9003083B8 /* KWTextField.m in Sources */,
 				9AD346012A08D60F005CA070 /* ZFFloatView.m in Sources */,
@@ -2839,7 +2886,6 @@
 				9AD345F92A08D60F005CA070 /* ZFPlayerController.m in Sources */,
 				9AD345AC2A08D59A005CA070 /* WKM_goodsBanner.m in Sources */,
 				9AE3674D2B6CDDE50068F10B /* MyCartGrandTotalCell.m in Sources */,
-				819349212BF218B6009FDDB2 /* ASOrderListViewModel.m in Sources */,
 				81EC476F2A33F82C00516573 /* ASHomeImgCell.m in Sources */,
 				81717D3A2A3D322700648139 /* KWHisAndHotWordsView.m in Sources */,
 				81DFA5592A4681E900DA708B /* ASPointEranCell.m in Sources */,
@@ -2863,7 +2909,6 @@
 				9AD364D12A05EC7800452C7A /* AS_TabBarViewController.m in Sources */,
 				9AD345FB2A08D60F005CA070 /* ZFOrientationObserver.m in Sources */,
 				9AD346192A08D679005CA070 /* GoodsBannerModel.m in Sources */,
-				819349192BF1EB59009FDDB2 /* ASOrderListViewController.m in Sources */,
 				81717C942A3BE4E000648139 /* ASProductListSortFilterCell.m in Sources */,
 				81056D5C2B60F571009219A3 /* ASHelpListUrlModel.m in Sources */,
 				9AD346082A08D60F005CA070 /* ZFIJKPlayerManager.m in Sources */,
@@ -2902,21 +2947,21 @@
 				9AD346072A08D60F005CA070 /* UIViewController+ZFPlayerRotation.m in Sources */,
 				8810F5182BEC548D00346FD4 /* ASCheckoutAddressCell.m in Sources */,
 				81C796462A5542B2003083B8 /* ASHelpListViewController.m in Sources */,
+				8810F5642BF5EBF400346FD4 /* ASOrderDetailsModel.m in Sources */,
 				8160200D2A2DD5C000E4A8F1 /* CTMediator+UserCenter.m in Sources */,
 				81DFA5712A46D95400DA708B /* ASPointDetailCell.m in Sources */,
 				9ACBEC2B2A14CCA300A8F97A /* ThirdPartService.m in Sources */,
 				81C3265F2A36B284002EF442 /* ASProductListViewController.m in Sources */,
+				8810F5632BF5EBF400346FD4 /* ASOrderListViewModel.m in Sources */,
 				9AD346142A08D60F005CA070 /* ZFSpeedLoadingView.m in Sources */,
 				81E5EE902A498FC90075695F /* ASVipCenterViewController.m in Sources */,
 				81C7963F2A551FB0003083B8 /* ASInfomationSetController.m in Sources */,
 				8131A27C2B365F7700A191BE /* ASProductListCategoryModel.m in Sources */,
 				9A98E5072B5A15A500E8C5C1 /* QDSingleImagePickerPreviewViewController.m in Sources */,
-				8193491C2BF1EB6F009FDDB2 /* ASOrderListSubController.m in Sources */,
 				9AD346062A08D60F005CA070 /* ZFReachabilityManager.m in Sources */,
 				81717CA52A3C0A5000648139 /* KWProductFilterItemCell.m in Sources */,
 				812021252B185A610026B8B5 /* ASCouponsListViewModel.m in Sources */,
 				9AD345FE2A08D60F005CA070 /* UIScrollView+ZFPlayer.m in Sources */,
-				8810F5392BF4A6E900346FD4 /* ASOrderDetailsModel.m in Sources */,
 				9A65DE512A132FB700BB1269 /* LoginThirdAuthV.m in Sources */,
 				9A788C442A08A663003E0025 /* Target_Goods.m in Sources */,
 				8131A2902B38FF3B00A191BE /* APInputAlertView.m in Sources */,
@@ -2932,6 +2977,7 @@
 				81DFA5632A46CD6000DA708B /* Target_WebView.m in Sources */,
 				81354BF52A287BED0082C93A /* KWMineHomeOrderSubView.m in Sources */,
 				9AD345A82A08D571005CA070 /* TYCyclePagerView.m in Sources */,
+				8810F55F2BF5EBF400346FD4 /* ASOrderDetailsItemsCell.m in Sources */,
 				9AD346202A08E30E005CA070 /* SelectVCollectionViewCell.m in Sources */,
 				81601FFB2A2DC78300E4A8F1 /* WMZBannerOverLayout.m in Sources */,
 				81354C002A2899CB0082C93A /* KWMineMoreProductModel.m in Sources */,
@@ -2955,6 +3001,7 @@
 				81EC47752A3423FC00516573 /* ASHomeLookingCell.m in Sources */,
 				9AD3460E2A08D60F005CA070 /* ZFNetworkSpeedMonitor.m in Sources */,
 				8810F50C2BEB590C00346FD4 /* ASCheckoutPointApplyCell.m in Sources */,
+				8810F5662BF5EBF400346FD4 /* ASOrderListSubController.m in Sources */,
 				81AA11DC2B23FF71008EB5C7 /* ASCurrencyManager.m in Sources */,
 				9AD346052A08D60F005CA070 /* ZFLandscapeViewController.m in Sources */,
 				9ADA8A1E2B4E481E00BACDEA /* GoodsReviewsWriteC.m in Sources */,
@@ -2977,6 +3024,7 @@
 				8193D5CE2BEA2B8E00B9AB11 /* ASAddressViewModel.m in Sources */,
 				9A35203A2B479BAA00D097CB /* YJLAttributesLabel.m in Sources */,
 				816020102A2EE55F00E4A8F1 /* ASCategaryListCell.m in Sources */,
+				8810F55E2BF5EBF400346FD4 /* ASOrderDetailsInfoCell.m in Sources */,
 				9AD3460B2A08D60F005CA070 /* UIView+ZFFrame.m in Sources */,
 				81E257FD2A12340E004EEF71 /* ASEnterItemV.m in Sources */,
 				81C3B45529F66C1700D79294 /* UIView+PublicInit.m in Sources */,
@@ -2986,6 +3034,7 @@
 				8160200A2A2DD59E00E4A8F1 /* CTMediator+Home.m in Sources */,
 				81717C9C2A3BF1F100648139 /* ASHomeAlertViewController.m in Sources */,
 				8810F5092BEB159600346FD4 /* ASCheckoutTopView.m in Sources */,
+				8810F5612BF5EBF400346FD4 /* ASOrderListCell.m in Sources */,
 				9AD345FC2A08D60F005CA070 /* ZFPlayerLogManager.m in Sources */,
 				8193D5C82BEA299F00B9AB11 /* ASAddressListViewController.m in Sources */,
 				9A78E0142B6389FC00CA4E32 /* Cart_MyCartC.m in Sources */,
@@ -2999,19 +3048,20 @@
 				81717D1F2A3C4AE000648139 /* KWMoneyTypeHeadView.m in Sources */,
 				9A3520412B48000F00D097CB /* GoodsReviewsListM.m in Sources */,
 				9AD4D39E2B48F5680086D6FB /* NSMutableAttributedString+RYText.m in Sources */,
-				8810F5332BF497C400346FD4 /* ASOrderDetailsViewController.m in Sources */,
 				81EC47782A3426CE00516573 /* ASHomeLookingCollCell.m in Sources */,
 				81DFA5782A47F28D00DA708B /* ASCouponListCell.m in Sources */,
 				8160201C2A2F101C00E4A8F1 /* ASHomeTipCell.m in Sources */,
 				9A8BED332B6B86A30080DA36 /* MyCartCouponCell.m in Sources */,
 				81717D1E2A3C4AE000648139 /* KWSearchMainTypeTableView.m in Sources */,
 				81EC47662A33035D00516573 /* ASHomeNewInCellTableViewCell.m in Sources */,
+				8810F5602BF5EBF400346FD4 /* ASOrderDetailsPriceCell.m in Sources */,
 				9AD346162A08D60F005CA070 /* UIImageView+ZFCache.m in Sources */,
 				81717D1D2A3C4AE000648139 /* KWSearchSubTypeHeadView.m in Sources */,
 				9AD345A92A08D571005CA070 /* TYCyclePagerTransformLayout.m in Sources */,
 				8193D5D12BEA2F3100B9AB11 /* ASMineAddressCell.m in Sources */,
 				815DA3D92A39575100616EF7 /* ASProductListImageCell.m in Sources */,
 				815DA3DC2A39625200616EF7 /* ASProductListTypeDesCell.m in Sources */,
+				8810F5652BF5EBF400346FD4 /* ASOrderDetailsViewController.m in Sources */,
 				81932E2B29F7539B007C37AF /* UIColor+AS.m in Sources */,
 				9A35203E2B47FF2300D097CB /* GoodsReviewsListTableV.m in Sources */,
 				9ACBEC282A1472AF00A8F97A /* LoginSignUpV.m in Sources */,

+ 28 - 0
Asteria/ASUI/Tools/ASCommonUtils.h

@@ -0,0 +1,28 @@
+//
+//  ASCommonUtils.h
+//  Asteria
+//
+//  Created by xingyu on 2024/5/16.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+#define AS_String_valid(str) [ASCommonUtils validString:str]
+#define AS_Array_valid(arr) [ASCommonUtils validArray:arr]
+#define AS_Dict_valid(dic) [ASCommonUtils validNSDictionary:dic]
+#define AS_String_NotNull(str) [ASCommonUtils stringNullFormat:str]
+
+@interface ASCommonUtils : NSObject
+
+/** 验证数据合法 */
++ (BOOL)validString:(NSString *)str;
++ (BOOL)validArray:(NSArray *)arr;
++ (BOOL)validNSDictionary:(NSDictionary *)dic;
+//将不合法字符串转化为@""
++ (NSString *)stringNullFormat:(NSString *)string;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 37 - 0
Asteria/ASUI/Tools/ASCommonUtils.m

@@ -0,0 +1,37 @@
+//
+//  ASCommonUtils.m
+//  Asteria
+//
+//  Created by xingyu on 2024/5/16.
+//
+
+#import "ASCommonUtils.h"
+
+@implementation ASCommonUtils
+
++ (BOOL)validString:(NSString *)str {
+    
+    return ([str isKindOfClass:[NSString class]] && str.length > 0 && ![str isEqualToString:@"(null)"]  && ![str isKindOfClass:[NSNull class]] && str != nil);
+}
+
++ (BOOL)validArray:(NSArray *)arr {
+    
+    return ([arr isKindOfClass:[NSArray class]] && arr.count > 0);
+}
+
++ (BOOL)validNSDictionary:(NSDictionary *)dic {
+    
+    return ([dic isKindOfClass:[NSDictionary class]] && dic.count > 0);
+}
+
+//将不合法字符串转化为@""
++ (NSString *)stringNullFormat:(NSString *)str {
+    
+    if (str.length < 1 || [str isEqualToString:@"(null)"] || [str isKindOfClass:[NSNull class]] || str == nil) {
+        return @"";
+    }
+    return str;
+}
+
+
+@end

+ 0 - 25
Asteria/Fuction/UserCenter/Orders/ASOrderDetailsModel.h

@@ -1,25 +0,0 @@
-//
-//  ASOrderDetailsModel.h
-//  Asteria
-//
-//  Created by xingyu on 2024/5/15.
-//
-
-#import <Foundation/Foundation.h>
-#import "KWMineHomeOrderModel.h"
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface ASOrderDetailsModel : NSObject
-
-//内部包含邮寄地址(shipping_assignments)、运输方式、支付方式
-@property (nonatomic, strong) NSDictionary *extension_attributes;
-@property (nonatomic, copy) NSString *shipping_description; //邮寄地址
-@property (nonatomic, copy) NSString *increment_id; //订单号
-@property (nonatomic, copy) NSString *created_at; //订单创建时间
-@property (nonatomic, copy) NSString *status; //订单状态
-@property (nonatomic, strong) NSArray<KWMineOrderProInfoModel *> *items;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 21
Asteria/Fuction/UserCenter/Orders/ASOrderDetailsModel.m

@@ -1,21 +0,0 @@
-//
-//  ASOrderDetailsModel.m
-//  Asteria
-//
-//  Created by xingyu on 2024/5/15.
-//
-
-#import "ASOrderDetailsModel.h"
-
-@implementation ASOrderDetailsModel
-
-+ (NSDictionary *)mj_objectClassInArray{
-    return @{
-        
-        @"items" : [KWMineOrderProInfoModel class],
-        
-    };
-}
-
-
-@end

Asteria/Fuction/UserCenter/Orders/ASOrderDetailsViewController.h → Asteria/Fuction/UserCenter/Orders/Controller/ASOrderDetailsViewController.h


+ 28 - 9
Asteria/Fuction/UserCenter/Orders/ASOrderDetailsViewController.m

@@ -12,6 +12,8 @@
 #import "ASOrderDetailsModel.h"
 
 #import "ASOrderDetailsInfoCell.h"
+#import "ASOrderDetailsItemsCell.h"
+#import "ASOrderDetailsPriceCell.h"
 
 @interface ASOrderDetailsViewController ()<UITableViewDelegate, UITableViewDataSource>
 
@@ -36,8 +38,7 @@
     
     [self requestOrderDetailsData];
     
-//    [self.view addSubview:self.tableView];
-    [self loadSubV];
+    
 }
 
 - (void)requestOrderDetailsData {
@@ -49,7 +50,7 @@
         
         self.orderDetailsModel = orderModel;
         
-        [self.tableView reloadData];
+        [self loadSubV];
         
         [self checkEmpty];
     }];
@@ -66,20 +67,35 @@
 #pragma mark - UITableViewDelegate,UITableViewDataSource
 
 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
-    return 1;
+    return 3;
 }
 
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+    if (section == 1) {
+        return self.orderDetailsModel.items.count;
+    }
     return 1;
 }
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     
-    ASOrderDetailsInfoCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ASOrderDetailsInfoCell" forIndexPath:indexPath];
-    cell.orderModel = self.orderDetailsModel;
-    
-    return cell;
-    
+    if (indexPath.section == 0) {
+        ASOrderDetailsInfoCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ASOrderDetailsInfoCell" forIndexPath:indexPath];
+        cell.orderModel = self.orderDetailsModel;
+        return cell;
+    } else if (indexPath.section == 1) {
+        ASOrderDetailsItemsCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ASOrderDetailsItemsCell" forIndexPath:indexPath];
+        NSArray *itemArr = self.orderDetailsModel.items;
+        ASOrderDetailsItemModel *itemModel = itemArr[indexPath.row];
+        
+        cell.itemModel = itemModel;
+        
+        return cell;
+    } else {
+        ASOrderDetailsPriceCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ASOrderDetailsPriceCell" forIndexPath:indexPath];
+        cell.orderModel = self.orderDetailsModel;
+        return cell;
+    }
 }
 
 // MARK: - loadSubv
@@ -96,6 +112,9 @@
     if (!_tableView) {
         _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
         [_tableView registerClass:[ASOrderDetailsInfoCell class] forCellReuseIdentifier:@"ASOrderDetailsInfoCell"];
+        [_tableView registerClass:[ASOrderDetailsItemsCell class] forCellReuseIdentifier:@"ASOrderDetailsItemsCell"];
+        [_tableView registerClass:[ASOrderDetailsPriceCell class] forCellReuseIdentifier:@"ASOrderDetailsPriceCell"];
+        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
         _tableView.delegate = self;
         _tableView.dataSource = self;
         _tableView.backgroundColor = _F8F8F8;

Asteria/Fuction/UserCenter/Orders/ASOrderListSubController.h → Asteria/Fuction/UserCenter/Orders/Controller/ASOrderListSubController.h


Asteria/Fuction/UserCenter/Orders/ASOrderListSubController.m → Asteria/Fuction/UserCenter/Orders/Controller/ASOrderListSubController.m


Asteria/Fuction/UserCenter/Orders/ASOrderListViewController.h → Asteria/Fuction/UserCenter/Orders/Controller/ASOrderListViewController.h


Asteria/Fuction/UserCenter/Orders/ASOrderListViewController.m → Asteria/Fuction/UserCenter/Orders/Controller/ASOrderListViewController.m


+ 48 - 0
Asteria/Fuction/UserCenter/Orders/Model/ASOrderDetailsModel.h

@@ -0,0 +1,48 @@
+//
+//  ASOrderDetailsModel.h
+//  Asteria
+//
+//  Created by xingyu on 2024/5/15.
+//
+
+#import <Foundation/Foundation.h>
+@class ASOrderDetailsItemModel;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ASOrderDetailsModel : NSObject
+
+//内部包含邮寄地址(shipping_assignments)、运输方式、支付方式
+@property (nonatomic, strong) NSDictionary *extension_attributes;
+
+@property (nonatomic, copy) NSString *shipping_description; //邮寄方式
+@property (nonatomic, copy) NSString *increment_id; //订单号
+@property (nonatomic, copy) NSString *created_at; //订单创建时间
+@property (nonatomic, copy) NSString *status; //订单状态
+@property (nonatomic, strong) NSArray<ASOrderDetailsItemModel *> *items;
+@property (nonatomic, copy) NSString *currency_symbol; //币种符号
+
+
+@property (nonatomic, copy) NSString *subtotal;//初始总价格
+@property (nonatomic, copy) NSString *discount_amount;//优惠券
+@property (nonatomic, copy) NSString *shipping_tax_amount;//邮费
+@property (nonatomic, copy) NSString *grand_total;//最终价格
+
+
+
+@end
+
+@interface ASOrderDetailsItemModel : NSObject
+
+@property (nonatomic, copy) NSString *image;
+@property (nonatomic, copy) NSString *sku;
+@property (nonatomic, copy) NSString *name;
+@property (nonatomic, copy) NSString *price;
+@property (nonatomic, copy) NSString *original_price;
+@property (nonatomic, copy) NSString *product_id;
+@property (nonatomic, copy) NSString *qty_ordered;
+@property (nonatomic, copy) NSString *currency_symbol;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 42 - 0
Asteria/Fuction/UserCenter/Orders/Model/ASOrderDetailsModel.m

@@ -0,0 +1,42 @@
+//
+//  ASOrderDetailsModel.m
+//  Asteria
+//
+//  Created by xingyu on 2024/5/15.
+//
+
+#import "ASOrderDetailsModel.h"
+
+@implementation ASOrderDetailsModel
+
++ (NSDictionary *)mj_objectClassInArray{
+    return @{
+        
+        @"items" : [ASOrderDetailsItemModel class],
+        
+    };
+}
+
++ (NSDictionary *)mj_replacedKeyFromPropertyName {
+    return @{
+        @"currency_symbol":@"extension_attributes.currency_symbol"
+        
+    };
+}
+
+
+
+@end
+
+
+@implementation ASOrderDetailsItemModel
+
++ (NSDictionary *)mj_replacedKeyFromPropertyName {
+    return @{
+        @"image":@"extension_attributes.image",
+        @"sku":@"extension_attributes.sku"
+    };
+}
+
+
+@end

Asteria/Fuction/UserCenter/Orders/ASOrderDetailsInfoCell.h → Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsInfoCell.h


+ 36 - 3
Asteria/Fuction/UserCenter/Orders/ASOrderDetailsInfoCell.m

@@ -30,7 +30,6 @@
         [_backView mas_makeConstraints:^(MASConstraintMaker *make) {
             make.left.top.mas_equalTo(10);
             make.bottom.right.mas_equalTo(-10);
-//            make.height.mas_equalTo(200);
         }];
         
         UILabel *infoLab = [UILabel labelCreateWithText:@"order information" font:[UIFont fontWithName:Rob_Regular size:12] textColor:_0B0B0B];
@@ -59,10 +58,44 @@
 - (void)setOrderModel:(ASOrderDetailsModel *)orderModel {
     _orderModel = orderModel;
     
-    NSArray *titleArray = @[@"ship to:", @"order number:", @"status:", @"order date:", @"shipping method:", @"Payment method:"];
+    if (_orderModel == nil) {
+        return;
+    }
+    
+    NSString *addressStr = @"";
+    NSString *payMethodStr = @"";
+    
+    NSDictionary *extension_attributes = _orderModel.extension_attributes;
+    if (AS_Dict_valid(extension_attributes)) {
+        NSArray *addresArr = [extension_attributes objectForKey:@"shipping_assignments"];
+        if (AS_Array_valid(addresArr)) {
+            NSDictionary *shipping_assignments = addresArr[0];
+            NSDictionary *addresDic = [shipping_assignments objectForKey:@"shipping"];
+            NSDictionary *addresDic1 = [addresDic objectForKey:@"address"];
+            ASAddressModel *addressModel = [ASAddressModel mj_objectWithKeyValues:addresDic1];
+            
+            addressStr = [NSString stringWithFormat:@"%@ %@ %@ %@,%@ tel:%@", AS_String_NotNull(addressModel.firstname), AS_String_NotNull(addressModel.lastname), [addressModel.street componentsJoinedByString:@" "], AS_String_NotNull(addressModel.city), AS_String_NotNull(addressModel.postcode), AS_String_NotNull(addressModel.telephone)];
+        }
+        
+        //支付方式
+        NSArray *payInfoArr = [extension_attributes objectForKey:@"payment_additional_info"];
+        
+        for (int i = 0; i < payInfoArr.count; i++) {
+            NSDictionary *payDic = payInfoArr[i];
+            if ([payDic[@"key"] isEqualToString:@"method_title"]) {
+                payMethodStr = AS_String_NotNull(payDic[@"value"]);
+                break;
+            }
+        }
+    }
+    
+    
     
-    NSArray *valueArray = @[@"Alessandro  6263378809  12941 Ramona Blvd Unit A&B  Irwindale Arizona  91706 United States", @"600465290", @"Processing", @"September 24,2020", @"Same day delivery (Order before 10:30 am)", @"Paypal-express"];
     
+    NSArray *titleArray = @[@"ship to:", @"order number:", @"status:", @"order date:", @"shipping method:", @"Payment method:"];
+    
+    NSArray *valueArray = @[addressStr, AS_String_NotNull(_orderModel.increment_id), AS_String_NotNull(_orderModel.status), AS_String_NotNull(_orderModel.created_at), AS_String_NotNull(_orderModel.shipping_description), payMethodStr];
+        
     UILabel *tempLab = nil;
     for (int i = 0; i < titleArray.count; i++) {
         

+ 19 - 0
Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsItemsCell.h

@@ -0,0 +1,19 @@
+//
+//  ASOrderDetailsItemsCell.h
+//  Asteria
+//
+//  Created by xingyu on 2024/5/16.
+//
+
+#import <UIKit/UIKit.h>
+#import "ASOrderDetailsModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ASOrderDetailsItemsCell : UITableViewCell
+
+@property (nonatomic, strong) ASOrderDetailsItemModel *itemModel;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 124 - 0
Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsItemsCell.m

@@ -0,0 +1,124 @@
+//
+//  ASOrderDetailsItemsCell.m
+//  Asteria
+//
+//  Created by xingyu on 2024/5/16.
+//
+
+#import "ASOrderDetailsItemsCell.h"
+
+@interface ASOrderDetailsItemsCell()
+
+@property (nonatomic, strong) UIImageView *goodsImage;
+@property (nonatomic, strong) UILabel *nameLab;
+@property (nonatomic, strong) UILabel *countLab;
+@property (nonatomic, strong) UILabel *realPriceLab;
+@property (nonatomic, strong) UILabel *priceLab;
+@property (nonatomic, strong) UILabel *optLab;
+
+
+@end
+
+@implementation ASOrderDetailsItemsCell
+
+- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
+    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
+        self.selectionStyle = UITableViewCellSelectionStyleNone;
+        self.contentView.backgroundColor = _F8F8F8;
+        
+        UIView *backView = [[UIView alloc] init];
+        backView.backgroundColor = Col_FFF;
+        TT_ViewRadius(backView, 3);
+        [self.contentView addSubview:backView];
+        [backView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.mas_equalTo(10);
+            make.top.mas_equalTo(5);
+            make.right.mas_equalTo(-10);
+            make.bottom.mas_equalTo(0);
+        }];
+        
+        _goodsImage = [[UIImageView alloc] init];
+        _goodsImage.contentMode = UIViewContentModeScaleAspectFill;
+        TT_ViewRadius(_goodsImage, 4);
+        [backView addSubview:_goodsImage];
+        [_goodsImage mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.mas_equalTo(10);
+            make.top.mas_equalTo(20);
+            make.width.height.mas_equalTo(86);
+        }];
+        
+        _nameLab = [UILabel labelCreateWithText:@"sdafhasjkfah" font:[UIFont fontWithName:Rob_Regular size:12] textColor:Col_000];
+        _nameLab.numberOfLines = 2;
+        [backView addSubview:_nameLab];
+        [_nameLab mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.top.mas_equalTo(20);
+            make.right.mas_equalTo(-10);
+            make.left.equalTo(_goodsImage.mas_right).offset(10);
+        }];
+        
+        _countLab = [UILabel labelCreateWithText:@"x1" font:[UIFont fontWithName:Rob_Bold size:14] textColor:Col_000];
+        [backView addSubview:_countLab];
+        [_countLab mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.bottom.mas_equalTo(_goodsImage.mas_bottom).offset(0);
+            make.left.equalTo(_goodsImage.mas_right).offset(10);
+        }];
+        
+        _priceLab = [UILabel labelCreateWithText:@"123" font:[UIFont fontWithName:Rob_Regular size:12] textColor:[UIColor colorWithHexString:@"#8c8c8c"]];
+        [backView addSubview:_priceLab];
+        [_priceLab mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.centerY.mas_equalTo(_countLab);
+            make.right.mas_equalTo(-10);
+        }];
+        
+        _realPriceLab = [UILabel labelCreateWithText:@"" font:[UIFont fontWithName:Rob_Bold size:14] textColor:_0B0B0B];
+        [backView addSubview:_realPriceLab];
+        [_realPriceLab mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.centerY.mas_equalTo(_countLab);
+            make.right.mas_equalTo(_priceLab.mas_left).offset(-6);
+        }];
+        
+        _optLab = [UILabel labelCreateWithText:@"" font:[UIFont fontWithName:Rob_Regular size:12] textColor:_0B0B0B];
+        _optLab.numberOfLines = 0;
+        [backView addSubview:_optLab];
+        [_optLab mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.top.mas_equalTo(_goodsImage.mas_bottom).offset(18);
+            make.bottom.mas_equalTo(-20);
+            make.right.mas_equalTo(-10);
+            make.left.mas_equalTo(10);
+        }];
+    }
+    return self;
+}
+
+- (void)setItemModel:(ASOrderDetailsItemModel *)itemModel {
+    _itemModel = itemModel;
+    
+    NSString *imageAllStr = [NSString stringWithFormat:@"https:%@%@%@",HostPath,ProductImgPath,AS_String_NotNull(_itemModel.image)];
+    [self.goodsImage sd_setImageWithURL:[NSURL URLWithString:imageAllStr] placeholderImage:UIImageDefaultImg_SD];
+    
+    _nameLab.text = AS_String_NotNull(_itemModel.name);
+    _countLab.text = [NSString stringWithFormat:@"X%@", AS_String_NotNull(_itemModel.qty_ordered)];
+    _realPriceLab.text = [NSString stringWithFormat:@"%@%@", AS_String_NotNull(_itemModel.currency_symbol), AS_String_NotNull(_itemModel.price)];
+    
+    NSMutableAttributedString *priceAtr = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@%@",AS_String_NotNull(_itemModel.currency_symbol),  AS_String_NotNull(_itemModel.original_price)]];
+    [priceAtr addAttribute:NSStrikethroughStyleAttributeName
+                    value:[NSNumber numberWithInteger:NSUnderlineStyleSingle]
+                    range:NSMakeRange(0, priceAtr.length)];
+    _priceLab.attributedText = priceAtr;
+    
+    
+    NSArray *array = [Current_normalTool arrFromjsonStr:_itemModel.sku];
+    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:@"%@ ", optionStr];
+        }
+    }
+    self.optLab.text = optionStr;
+    
+}
+
+@end

+ 19 - 0
Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsPriceCell.h

@@ -0,0 +1,19 @@
+//
+//  ASOrderDetailsPriceCell.h
+//  Asteria
+//
+//  Created by xingyu on 2024/5/16.
+//
+
+#import <UIKit/UIKit.h>
+#import "ASOrderDetailsModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ASOrderDetailsPriceCell : UITableViewCell
+
+@property (nonatomic, strong) ASOrderDetailsModel *orderModel;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 122 - 0
Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsPriceCell.m

@@ -0,0 +1,122 @@
+//
+//  ASOrderDetailsPriceCell.m
+//  Asteria
+//
+//  Created by xingyu on 2024/5/16.
+//
+
+#import "ASOrderDetailsPriceCell.h"
+
+@interface ASOrderDetailsPriceCell()
+
+@property (nonatomic, strong) UIView *backView;
+
+@end
+
+@implementation ASOrderDetailsPriceCell
+
+- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
+    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
+        
+        self.selectionStyle = UITableViewCellSelectionStyleNone;
+        self.contentView.backgroundColor = _F8F8F8;
+        
+        _backView = [[UIView alloc] init];
+        _backView.backgroundColor = Col_FFF;
+        TT_ViewRadius(_backView, 3);
+        [self.contentView addSubview:_backView];
+        [_backView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.mas_equalTo(10);
+            make.top.mas_equalTo(5);
+            make.right.mas_equalTo(-10);
+            make.bottom.mas_equalTo(-20);
+        }];
+        
+    }
+    return self;
+}
+
+- (void)setOrderModel:(ASOrderDetailsModel *)orderModel {
+    _orderModel = orderModel;
+    
+    NSMutableArray *listArr = [[NSMutableArray alloc] initWithCapacity:1];
+    
+    if (AS_String_valid(_orderModel.subtotal)) {
+        NSDictionary *dic = @{@"title":@"Subtotal", @"value":_orderModel.subtotal};
+        [listArr addObject:dic];
+    }
+    if (AS_String_valid(_orderModel.shipping_tax_amount)) {
+        NSDictionary *dic = @{@"title":@"Shipping", @"value":_orderModel.shipping_tax_amount};
+        [listArr addObject:dic];
+    }
+    if (AS_String_valid(_orderModel.discount_amount)) {
+        NSDictionary *dic = @{@"title":@"Gift Card", @"value":_orderModel.discount_amount};
+        [listArr addObject:dic];
+    }
+    
+    UILabel *tempLab = nil;
+    
+    for (int i = 0; i < listArr.count; i++) {
+        NSDictionary *dic = listArr[i];
+        
+        UILabel *rightLab = [UILabel labelCreateWithText:dic[@"value"] font:[UIFont fontWithName:Rob_Regular size:14] textColor:_0B0B0B];
+        rightLab.textAlignment = NSTextAlignmentRight;
+        [_backView addSubview:rightLab];
+        if (i == 0) {
+            [rightLab mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.top.mas_equalTo(20);
+                make.right.mas_equalTo(-10);
+                make.height.mas_equalTo(19);
+            }];
+        } else {
+            [rightLab mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.top.mas_equalTo(tempLab.mas_bottom).offset(10);
+                make.right.mas_equalTo(-10);
+                make.height.mas_equalTo(19);
+            }];
+        }
+        tempLab = rightLab;
+        
+        UILabel *leftLab = [UILabel labelCreateWithText:dic[@"title"] font:[UIFont fontWithName:Rob_Regular size:14] textColor:_0B0B0B];
+        [_backView addSubview:leftLab];
+        [leftLab mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.centerY.mas_equalTo(rightLab);;
+            make.left.mas_equalTo(10);
+            make.right.equalTo(rightLab.mas_left).offset(-6);
+        }];
+    }
+    
+    UIView *lineView1 = [[UIView alloc] init];
+    lineView1.backgroundColor = _F4F4F4;
+    [_backView addSubview:lineView1];
+    [lineView1 mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(10);
+        make.right.mas_equalTo(-10);
+        make.height.mas_equalTo(1);
+        make.top.equalTo(tempLab.mas_bottom).offset(20);
+//        make.bottom.mas_equalTo(-20);
+    }];
+    
+    
+    UILabel *grandRightLab = [UILabel labelCreateWithText:AS_String_NotNull(_orderModel.grand_total) font:[UIFont fontWithName:Rob_Bold size:24] textColor:Col_000];
+    grandRightLab.textAlignment = NSTextAlignmentRight;
+    [_backView addSubview:grandRightLab];
+    [grandRightLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.mas_equalTo(lineView1.mas_bottom).offset(15);
+        make.right.mas_equalTo(-10);
+        make.height.mas_equalTo(30);
+        make.bottom.mas_equalTo(-15);
+    }];
+    
+    UILabel *grandLeftLab = [UILabel labelCreateWithText:@"Grand Total" font:[UIFont fontWithName:Rob_Bold size:14] textColor:Col_000];
+    [_backView addSubview:grandLeftLab];
+    [grandLeftLab mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.centerY.mas_equalTo(grandRightLab);;
+        make.left.mas_equalTo(10);
+        make.right.equalTo(grandRightLab.mas_left).offset(-6);
+    }];
+    
+    
+}
+
+@end

Asteria/Fuction/UserCenter/Orders/ASOrderListCell.h → Asteria/Fuction/UserCenter/Orders/View/ASOrderListCell.h


Asteria/Fuction/UserCenter/Orders/ASOrderListCell.m → Asteria/Fuction/UserCenter/Orders/View/ASOrderListCell.m


Asteria/Fuction/UserCenter/Orders/ASOrderDetailsVM.h → Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderDetailsVM.h


+ 3 - 0
Asteria/Fuction/UserCenter/Orders/ASOrderDetailsVM.m

@@ -18,6 +18,9 @@
         NSLog(@"---orderDetails---result:%@------",json);
         
         ASOrderDetailsModel *orderModel = [ASOrderDetailsModel mj_objectWithKeyValues:json];
+        for (ASOrderDetailsItemModel *itemModel in orderModel.items) {
+            itemModel.currency_symbol = orderModel.currency_symbol;
+        }
         
         completeBlock(orderModel);
         

Asteria/Fuction/UserCenter/Orders/ASOrderListViewModel.h → Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderListViewModel.h


Asteria/Fuction/UserCenter/Orders/ASOrderListViewModel.m → Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderListViewModel.m


+ 3 - 0
Asteria/PreFixHeader.h

@@ -30,6 +30,9 @@
 ///Third 添加的本地三方库
 #import "NSMutableAttributedString+RYText.h"
 
+//工具类
+#import "ASCommonUtils.h"
+
 
 //所有功能模块需要依赖的 项目(需变化)特定内容,相关内容和不变化的Base无关
 #import "ProjectConfigDefine.h"