瀏覽代碼

Merge branch 'master' of http://gogs.hnwmzp.cn/nzk1/Asteria-APP

# Conflicts:
#	Asteria.xcodeproj/project.pbxproj
Abel 1 年之前
父節點
當前提交
16b12592b6
共有 28 個文件被更改,包括 929 次插入19 次删除
  1. 98 12
      Asteria.xcodeproj/project.pbxproj
  2. 28 0
      Asteria/ASUI/Tools/ASCommonUtils.h
  3. 37 0
      Asteria/ASUI/Tools/ASCommonUtils.m
  4. 18 0
      Asteria/Fuction/UserCenter/Orders/Controller/ASOrderDetailsViewController.h
  5. 127 0
      Asteria/Fuction/UserCenter/Orders/Controller/ASOrderDetailsViewController.m
  6. 0 0
      Asteria/Fuction/UserCenter/Orders/Controller/ASOrderListSubController.h
  7. 9 1
      Asteria/Fuction/UserCenter/Orders/ASOrderListSubController.m
  8. 0 0
      Asteria/Fuction/UserCenter/Orders/Controller/ASOrderListViewController.h
  9. 0 0
      Asteria/Fuction/UserCenter/Orders/Controller/ASOrderListViewController.m
  10. 48 0
      Asteria/Fuction/UserCenter/Orders/Model/ASOrderDetailsModel.h
  11. 42 0
      Asteria/Fuction/UserCenter/Orders/Model/ASOrderDetailsModel.m
  12. 19 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsInfoCell.h
  13. 144 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsInfoCell.m
  14. 19 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsItemsCell.h
  15. 124 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsItemsCell.m
  16. 19 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsPriceCell.h
  17. 122 0
      Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsPriceCell.m
  18. 1 1
      Asteria/Fuction/UserCenter/Orders/ASOrderListCell.h
  19. 1 1
      Asteria/Fuction/UserCenter/Orders/ASOrderListCell.m
  20. 22 0
      Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderDetailsVM.h
  21. 33 0
      Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderDetailsVM.m
  22. 0 0
      Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderListViewModel.h
  23. 0 0
      Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderListViewModel.m
  24. 10 2
      Asteria/Fuction/UserCenter/UserCenterHome/ASUserCenterViewController.m
  25. 2 0
      Asteria/Fuction/UserCenter/UserCenterHome/models/KWMineHomeOrderModel.h
  26. 2 1
      Asteria/Fuction/UserCenter/UserCenterHome/views/KWMineHomeOrderListCell.h
  27. 1 1
      Asteria/Fuction/UserCenter/UserCenterHome/views/KWMineHomeOrderListCell.m
  28. 3 0
      Asteria/PreFixHeader.h

+ 98 - 12
Asteria.xcodeproj/project.pbxproj

@@ -203,6 +203,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 */; };
+		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 */; };
@@ -730,6 +741,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>"; };
+		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>"; };
@@ -1482,14 +1515,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 */,
+				8810F55D2BF5EBF400346FD4 /* Controller */,
+				8810F5562BF5EBF400346FD4 /* Model */,
+				8810F54E2BF5EBF400346FD4 /* View */,
+				8810F5532BF5EBF400346FD4 /* ViewModel */,
 			);
 			path = Orders;
 			sourceTree = "<group>";
@@ -1515,6 +1544,8 @@
 			children = (
 				819900202A020A6F006FE68C /* LYTools.h */,
 				819900212A020A6F006FE68C /* LYTools.m */,
+				8810F53D2BF5949000346FD4 /* ASCommonUtils.h */,
+				8810F53E2BF5949000346FD4 /* ASCommonUtils.m */,
 			);
 			path = Tools;
 			sourceTree = "<group>";
@@ -1863,6 +1894,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 = (
@@ -2745,6 +2824,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 */,
@@ -2759,7 +2839,6 @@
 				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 */,
@@ -2787,6 +2866,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 */,
@@ -2820,6 +2900,7 @@
 				81CE28942AF490C20012AA45 /* ASGiftCardTableView.m in Sources */,
 				81FC41A32BEB4D6E00EB0A85 /* InTableScrollView.m in Sources */,
 				816020132A2EE5A200E4A8F1 /* ASCategaryCollectCell.m in Sources */,
+				8810F5622BF5EBF400346FD4 /* ASOrderDetailsVM.m in Sources */,
 				8193D5CB2BEA2A0800B9AB11 /* ASMineAddressModel.m in Sources */,
 				81C796422A551FE9003083B8 /* KWTextField.m in Sources */,
 				9AD346012A08D60F005CA070 /* ZFFloatView.m in Sources */,
@@ -2827,7 +2908,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 */,
@@ -2851,7 +2931,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 */,
@@ -2890,16 +2969,17 @@
 				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 */,
@@ -2920,6 +3000,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 */,
@@ -2943,6 +3024,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 */,
@@ -2965,6 +3047,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 */,
@@ -2974,6 +3057,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 */,
@@ -2994,12 +3078,14 @@
 				819349352BF5A679009FDDB2 /* ASJumpModel.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

+ 18 - 0
Asteria/Fuction/UserCenter/Orders/Controller/ASOrderDetailsViewController.h

@@ -0,0 +1,18 @@
+//
+//  ASOrderDetailsViewController.h
+//  Asteria
+//
+//  Created by xingyu on 2024/5/15.
+//
+
+#import "ASBaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ASOrderDetailsViewController : ASBaseViewController
+
+@property (nonatomic, copy) NSString *orderId;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 127 - 0
Asteria/Fuction/UserCenter/Orders/Controller/ASOrderDetailsViewController.m

@@ -0,0 +1,127 @@
+//
+//  ASOrderDetailsViewController.m
+//  Asteria
+//
+//  Created by xingyu on 2024/5/15.
+//
+
+#import "ASOrderDetailsViewController.h"
+
+#import "ASOrderDetailsVM.h"
+
+#import "ASOrderDetailsModel.h"
+
+#import "ASOrderDetailsInfoCell.h"
+#import "ASOrderDetailsItemsCell.h"
+#import "ASOrderDetailsPriceCell.h"
+
+@interface ASOrderDetailsViewController ()<UITableViewDelegate, UITableViewDataSource>
+
+@property (nonatomic, strong) UITableView *tableView;
+
+@property (nonatomic, strong) ASOrderDetailsVM *orderDetailsVM;
+
+@property (nonatomic, strong) ASOrderDetailsModel *orderDetailsModel;
+
+@end
+
+@implementation ASOrderDetailsViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    
+    self.titleStr = @"Orders inf";
+    self.statusBgV.backgroundColor = Col_FFF;
+    self.customNavBar.backgroundColor = Col_FFF;
+    
+    self.orderDetailsVM = [ASOrderDetailsVM new];
+    
+    [self requestOrderDetailsData];
+    
+    
+}
+
+- (void)requestOrderDetailsData {
+    [MBProgressHUD showHUDAddedTo:self.view animated:true];
+    @weakify(self)
+    [self.orderDetailsVM getOrderDetailsWithOrderid:self.orderId complete:^(ASOrderDetailsModel *orderModel) {
+        @strongify(self)
+        [MBProgressHUD hideHUDForView:self.view animated:true];
+        
+        self.orderDetailsModel = orderModel;
+        
+        [self loadSubV];
+        
+        [self checkEmpty];
+    }];
+}
+
+- (void)checkEmpty {
+    if (!self.orderDetailsModel) {
+        [self showEmptyV: self.tableView];
+    } else {
+        [self hiddenEmpty];
+    }
+}
+
+#pragma mark - UITableViewDelegate,UITableViewDataSource
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
+    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 {
+    
+    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
+- (void)loadSubV {
+    [self.view addSubview:self.tableView];
+    [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.equalTo(self.customNavBar.mas_bottom);
+        make.leading.trailing.bottom.equalTo(self.view);
+    }];
+}
+
+// MARK: - subvs
+- (UITableView *)tableView {
+    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;
+        _tableView.estimatedRowHeight = 50;
+    }
+    return _tableView;
+}
+
+
+@end

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


+ 9 - 1
Asteria/Fuction/UserCenter/Orders/ASOrderListSubController.m

@@ -9,6 +9,8 @@
 #import "ASOrderListCell.h"
 #import "ASOrderListViewModel.h"
 
+#import "ASOrderDetailsViewController.h"
+
 @interface ASOrderListSubController ()<UITableViewDelegate, UITableViewDataSource>
 
 @property (nonatomic, strong) UITableView *tableV;
@@ -125,7 +127,8 @@
     KWMineHomeOrderModel *m = self.orderArr[indexPath.row];
     [cell setData:m];
     @weakify(self);
-    [cell setViewOrderCall:^(NSInteger type){
+    [cell setViewOrderCall:^(NSInteger type, KWMineHomeOrderModel *model){
+        @strongify(self)
         // type 0: view Order 1: trackOrder 2: reorder  3: pay now
         if (![ASUserInfoManager.shared isLogin]) {
             [self popAndToLogin];
@@ -133,6 +136,11 @@
         }
         // 查看订单
         NSLog(@"查看订单 view order");
+        
+        ASOrderDetailsViewController *orderDetailsVC = [[ASOrderDetailsViewController alloc] init];
+        orderDetailsVC.orderId = model.entity_id;
+        [self.navigationController pushViewController:orderDetailsVC animated:YES];
+        
         //            KWM_OrderViewC *vc = [[KWM_OrderViewC alloc]init];
         //            vc.order_id = m.orderId;
         //            [[Current_normalTool topViewController].navigationController pushViewController:vc animated:YES];

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

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

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

+ 144 - 0
Asteria/Fuction/UserCenter/Orders/View/ASOrderDetailsInfoCell.m

@@ -0,0 +1,144 @@
+//
+//  ASOrderDetailsInfoCell.m
+//  Asteria
+//
+//  Created by xingyu on 2024/5/15.
+//
+
+#import "ASOrderDetailsInfoCell.h"
+
+@interface ASOrderDetailsInfoCell()
+
+@property (nonatomic, strong) UIView *backView;
+@property (nonatomic, strong) UIView *lineView;
+
+
+@end
+
+@implementation ASOrderDetailsInfoCell
+
+- (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.top.mas_equalTo(10);
+            make.bottom.right.mas_equalTo(-10);
+        }];
+        
+        UILabel *infoLab = [UILabel labelCreateWithText:@"order information" font:[UIFont fontWithName:Rob_Regular size:12] textColor:_0B0B0B];
+        [_backView addSubview:infoLab];
+        [infoLab mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.mas_equalTo (10);
+            make.top.mas_equalTo(28);
+        }];
+        
+        _lineView = [[UIView alloc] init];
+        _lineView.backgroundColor = _F4F4F4;
+        [_backView addSubview:_lineView];
+        [_lineView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.mas_equalTo(10);
+            make.right.mas_equalTo(-10);
+            make.height.mas_equalTo(1);
+            make.top.equalTo(infoLab.mas_bottom).offset(22);
+        }];
+        
+        
+        
+    }
+    return self;
+}
+
+- (void)setOrderModel:(ASOrderDetailsModel *)orderModel {
+    _orderModel = orderModel;
+    
+    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 *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++) {
+        
+        UILabel *rightLab = [UILabel labelCreateWithText:valueArray[i] font:[UIFont fontWithName:Rob_Regular size:12] textColor:_0B0B0B];
+        rightLab.numberOfLines = 0;
+        [_backView addSubview:rightLab];
+
+        if (i == 0) {
+            [rightLab mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.right.mas_equalTo(-10);
+                make.left.mas_equalTo(140);
+                make.top.mas_equalTo(_lineView.mas_bottom).offset(20);
+            }];
+        } else {
+            [rightLab mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.right.mas_equalTo(-10);
+                make.left.mas_equalTo(140);
+                make.top.mas_equalTo(tempLab.mas_bottom).offset(20);
+            }];
+        }
+        
+        tempLab = rightLab;
+        
+        UILabel *leftLab = [UILabel labelCreateWithText:titleArray[i] font:[UIFont fontWithName:Rob_Regular size:12] textColor:_0B0B0B];
+        [_backView addSubview:leftLab];
+        [leftLab mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.mas_equalTo(10);
+            make.centerY.mas_equalTo(rightLab);
+        }]; 
+        
+    }
+    
+    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);
+    }];
+    
+}
+
+@end

+ 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

+ 1 - 1
Asteria/Fuction/UserCenter/Orders/ASOrderListCell.h

@@ -13,7 +13,7 @@ NS_ASSUME_NONNULL_BEGIN
 @interface ASOrderListCell : UITableViewCell
 
 // type 0: view Order 1: trackOrder 2: reorder  3: pay now 
-@property (nonatomic, copy) void(^viewOrderCall)(NSInteger type) ;
+@property (nonatomic, copy) void(^viewOrderCall)(NSInteger type, KWMineHomeOrderModel *model) ;
 
 - (void)setData:(KWMineHomeOrderModel *)model;
 

+ 1 - 1
Asteria/Fuction/UserCenter/Orders/ASOrderListCell.m

@@ -339,7 +339,7 @@
 -(void)viewBtAction:(UIButton *)bt {
     
     if (self.viewOrderCall) {
-        self.viewOrderCall(bt.tag-10000);
+        self.viewOrderCall(bt.tag-10000, self.m);
     }
     
 }

+ 22 - 0
Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderDetailsVM.h

@@ -0,0 +1,22 @@
+//
+//  ASOrderDetailsVM.h
+//  Asteria
+//
+//  Created by xingyu on 2024/5/15.
+//
+
+#import <Foundation/Foundation.h>
+#import "ASOrderDetailsModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ASOrderDetailsVM : NSObject
+
+///获取购物车列表
+#define Order_details          BaseRequestrUrl(@"orders")
+
+- (void)getOrderDetailsWithOrderid:(NSString *)orderid complete:(void(^)(ASOrderDetailsModel *))completeBlock;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 33 - 0
Asteria/Fuction/UserCenter/Orders/ViewModel/ASOrderDetailsVM.m

@@ -0,0 +1,33 @@
+//
+//  ASOrderDetailsVM.m
+//  Asteria
+//
+//  Created by xingyu on 2024/5/15.
+//
+
+#import "ASOrderDetailsVM.h"
+
+@implementation ASOrderDetailsVM
+
+
+- (void)getOrderDetailsWithOrderid:(NSString *)orderid complete:(void(^)(ASOrderDetailsModel *))completeBlock {
+    NSMutableDictionary *para = [NSMutableDictionary dictionaryWithDictionary: @{
+        @"url": [NSString stringWithFormat:@"/V1/orders/%@", orderid],
+    }];
+    [ASNetTools.shared postWithPath:getAllOrders param:para success:^(id _Nonnull json) {
+        NSLog(@"---orderDetails---result:%@------",json);
+        
+        ASOrderDetailsModel *orderModel = [ASOrderDetailsModel mj_objectWithKeyValues:json];
+        for (ASOrderDetailsItemModel *itemModel in orderModel.items) {
+            itemModel.currency_symbol = orderModel.currency_symbol;
+        }
+        
+        completeBlock(orderModel);
+        
+    } faild:^(NSString * _Nonnull code, NSString * _Nonnull msg) {
+        NSLog(@"---orderDetails---code:%@--msg:%@----", code, msg);
+        completeBlock(nil);
+    }];
+}
+
+@end

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


+ 10 - 2
Asteria/Fuction/UserCenter/UserCenterHome/ASUserCenterViewController.m

@@ -18,6 +18,7 @@
 #import "ASSettingViewController.h"
 #import "ASUserCenterViewModel.h"
 #import "ASOrderListViewController.h"
+#import "ASOrderDetailsViewController.h"
 
 
 @interface ASUserCenterViewController ()<UITableViewDelegate,UITableViewDataSource>
@@ -156,17 +157,24 @@
         KWMineHomeOrderModel *m = self.orderArr[indexPath.row];
         [cell setData:m];
         @weakify(self);
-        [cell setViewOrderCall:^{
+        cell.viewOrderCall = ^(NSInteger type, KWMineHomeOrderModel * _Nonnull model) {
+            @strongify(self)
             if (![ASUserInfoManager.shared isLogin]) {
                 [self popAndToLogin];
                 return;
             }
             // 查看订单
             NSLog(@"查看订单 view order");
+            
+            ASOrderDetailsViewController *orderDetailsVC = [[ASOrderDetailsViewController alloc] init];
+            orderDetailsVC.orderId = model.entity_id;
+            [self.navigationController pushViewController:orderDetailsVC animated:YES];
+            
 //            KWM_OrderViewC *vc = [[KWM_OrderViewC alloc]init];
 //            vc.order_id = m.orderId;
 //            [[Current_normalTool topViewController].navigationController pushViewController:vc animated:YES];
-        }];
+        };
+        
         return cell;
     }
     KWMineMoreProductsCell *cell = [tableView dequeueReusableCellWithIdentifier:@"KWMineMoreProductsCell" forIndexPath:indexPath];

+ 2 - 0
Asteria/Fuction/UserCenter/UserCenterHome/models/KWMineHomeOrderModel.h

@@ -16,6 +16,8 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, copy) NSString *state;
 /// 编号
 @property (nonatomic, copy) NSString *increment_id;
+/// 订单id
+@property (nonatomic, copy) NSString *entity_id;
 /// 时间
 @property (nonatomic, copy) NSString *created_at;
 /// 金额

+ 2 - 1
Asteria/Fuction/UserCenter/UserCenterHome/views/KWMineHomeOrderListCell.h

@@ -13,7 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface KWMineHomeOrderListCell : UITableViewCell
 
-@property (nonatomic, copy) btnClickBlock viewOrderCall;
+@property (nonatomic, copy) void(^viewOrderCall)(NSInteger type, KWMineHomeOrderModel *model) ;
+//@property (nonatomic, copy) btnClickBlock viewOrderCall;
 
 - (void)setData:(KWMineHomeOrderModel *)model;
 

+ 1 - 1
Asteria/Fuction/UserCenter/UserCenterHome/views/KWMineHomeOrderListCell.m

@@ -189,7 +189,7 @@
 -(void)viewBtAction {
     
     if (self.viewOrderCall) {
-        self.viewOrderCall();
+        self.viewOrderCall(0, self.m);
     }
     
 }

+ 3 - 0
Asteria/PreFixHeader.h

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