Browse Source

Merge branch 'feature/nanxinlin' into develop

南鑫林 6 years ago
parent
commit
1ff18f5dd6
71 changed files with 1917 additions and 43 deletions
  1. 4 4
      RainbowPlanet/Podfile.lock
  2. 169 5
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  3. 84 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderButtonTableViewCell.swift
  4. 89 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderDeliveryModeAndButtonTableViewCell.swift
  5. 87 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderDeliveryModeAndTimeTableViewCell.swift
  6. 59 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderDeliveryModeTableViewCell.swift
  7. 137 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderProductTableViewCell.swift
  8. 85 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderShopAndStatusTableViewCell.swift
  9. 90 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderTotalAmountTableViewCell.swift
  10. 21 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderView.swift
  11. 30 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/ViewController/OrderViewController.swift
  12. 85 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailBottomView.swift
  13. 98 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailContactAddressTableViewCell.swift
  14. 70 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailExpressSelfMentionTableViewCell.swift
  15. 88 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailInfoTableViewCell.swift
  16. 80 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailStatusTableViewCell.swift
  17. 21 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailView.swift
  18. 30 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/ViewController/OrderDetailViewController.swift
  19. 78 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderRefunddetails/View/OrderRefunddetailsStatusTableViewCell.swift
  20. 62 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderRefunddetails/View/OrderRefunddetailsTipsTableViewCell.swift
  21. 21 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderRefunddetails/View/OrderRefunddetailsView.swift
  22. 30 0
      RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderRefunddetails/ViewController/OrderRefunddetailsViewController.swift
  23. 38 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/Cell/ProductDetailProductSku/ProductDetailProductSkuLabelCollectionViewCell.swift
  24. 0 2
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/Cell/ProductDetailProductSku/ProductDetailProductSkuTableViewCell.swift
  25. 0 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailSkuView/ProductDetailHeader/ProductDetailFSPagerViewCell.swift
  26. 0 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailSkuView/ProductDetailHeader/ProductDetailSectionHeader.swift
  27. 0 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailSkuView/ProductDetailHeader/ProductDetailTableViewHeaderView.swift
  28. 142 29
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailSkuView/ProductDetailSkuView.swift
  29. 5 1
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailView.swift
  30. 1 1
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/ViewController/ProductDetailViewController.swift
  31. 0 1
      RainbowPlanet/RainbowPlanet/Service/Model/ProductModel/ProductDetailModel.swift
  32. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/Contents.json
  33. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_bg.imageset/Contents.json
  34. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_bg.imageset/order_bg.png
  35. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_bg.imageset/order_bg@2x.png
  36. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_bg.imageset/order_bg@3x.png
  37. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_coord.imageset/Contents.json
  38. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_coord.imageset/order_coord.png
  39. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_coord.imageset/order_coord@2x.png
  40. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_coord.imageset/order_coord@3x.png
  41. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_de.imageset/Contents.json
  42. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_de.imageset/order_de.png
  43. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_de.imageset/order_de@2x.png
  44. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_de.imageset/order_de@3x.png
  45. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_done.imageset/Contents.json
  46. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_done.imageset/order_done.png
  47. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_done.imageset/order_done@2x.png
  48. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_done.imageset/order_done@3x.png
  49. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_good.imageset/Contents.json
  50. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_good.imageset/order_good.png
  51. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_good.imageset/order_good@2x.png
  52. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_good.imageset/order_good@3x.png
  53. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_payment.imageset/Contents.json
  54. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_payment.imageset/order_payment.png
  55. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_payment.imageset/order_payment@2x.png
  56. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_payment.imageset/order_payment@3x.png
  57. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick.imageset/Contents.json
  58. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick.imageset/order_pick.png
  59. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick.imageset/order_pick@2x.png
  60. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick.imageset/order_pick@3x.png
  61. 23 0
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick_been.imageset/Contents.json
  62. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick_been.imageset/order_pick_been.png
  63. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick_been.imageset/order_pick_been@2x.png
  64. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick_been.imageset/order_pick_been@3x.png
  65. 6 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/Contents.json
  66. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/product_detail_top.imageset/Contents.json
  67. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/product_detail_top.imageset/product_detail_top.png
  68. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/product_detail_top.imageset/product_detail_top@2x.png
  69. 0 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/product_detail_top.imageset/product_detail_top@3x.png
  70. 1 0
      RainbowPlanet/RainbowPlanet/Tools/Extension/Extension+NSRange.swift
  71. 22 0
      RainbowPlanet/RainbowPlanet/Tools/SwiftProgressHUD/SwiftProgressHUD.swift

+ 4 - 4
RainbowPlanet/Podfile.lock

@@ -8,7 +8,7 @@ PODS:
     - FMDB/standard (= 2.7.5)
   - FMDB/standard (2.7.5)
   - FSPagerView (0.8.2)
-  - FWPopupView (4.0.3):
+  - FWPopupView (4.0.5):
     - SnapKit
   - IQKeyboardManagerSwift (6.3.0)
   - JXSegmentedView (0.0.11)
@@ -24,7 +24,7 @@ PODS:
     - Moya/Core
     - RxSwift (~> 4.0)
   - ObjectMapper (3.4.2)
-  - PPBadgeViewSwift (3.0.0)
+  - PPBadgeViewSwift (3.1.0)
   - Realm (3.15.0):
     - Realm/Headers (= 3.15.0)
   - Realm/Headers (3.15.0)
@@ -140,7 +140,7 @@ SPEC CHECKSUMS:
   DeviceKit: 72d36709552d4b3582abd76a53949148acad9811
   FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
   FSPagerView: 816a18842306973cc7cc6df8a5332272f7815c30
-  FWPopupView: 3f6073a7aadc55cd34fbd30a1a96591d060c05d7
+  FWPopupView: 0444d6bcb569072d09565ab818589a280f9f0c6a
   IQKeyboardManagerSwift: a8228c257614af98743b4cd8584637025f36358f
   JXSegmentedView: cb5f8841f64255ba86c68a8cbab24da72a75b11c
   KeychainAccess: 3b1bf8a77eb4c6ea1ce9404c292e48f948954c6b
@@ -150,7 +150,7 @@ SPEC CHECKSUMS:
   MJRefresh: ed450d6eb9d3346a2cb033ab7eb6de090aeef437
   Moya: f4a4b80ff2f8a4ffc208dfb31cd91636622fee6e
   ObjectMapper: 0d4402610f4e468903ae64629eec4784531e5c51
-  PPBadgeViewSwift: b769847e864f46115cb2cd0c6764b4e3eb04f73e
+  PPBadgeViewSwift: 18a219a9897f418342c22dd1a54f7b18ac56546b
   Realm: 9b834e1be6062f544805252c812348872dc5d4ed
   RealmSwift: 8a41886f8ab6efef9eb8df97de2f2bb911561a79
   Result: bd966fac789cc6c1563440b348ab2598cc24d5c7

+ 169 - 5
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -17,7 +17,7 @@
 		A70B2C252286C03800B2449F /* NXLPageControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C242286C03800B2449F /* NXLPageControl.swift */; };
 		A70B2C272286C5D600B2449F /* ProductDetailFSPagerViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C262286C5D600B2449F /* ProductDetailFSPagerViewCell.swift */; };
 		A70B2C292286D77200B2449F /* ProductDetailProductInfoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C282286D77200B2449F /* ProductDetailProductInfoTableViewCell.swift */; };
-		A70B2C2D2286E29900B2449F /* Product.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A70B2C2C2286E29900B2449F /* Product.xcassets */; };
+		A70B2C2D2286E29900B2449F /* ProductModule.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A70B2C2C2286E29900B2449F /* ProductModule.xcassets */; };
 		A70B2C3322880BB700B2449F /* ProductDetailProductSkuTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C3222880BB700B2449F /* ProductDetailProductSkuTableViewCell.swift */; };
 		A70B2C35228815F700B2449F /* ProductDetailProductSkuLabelCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C34228815F700B2449F /* ProductDetailProductSkuLabelCollectionViewCell.swift */; };
 		A70B2C372288177300B2449F /* ProductDetailProductSkuIconCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C362288177300B2449F /* ProductDetailProductSkuIconCollectionViewCell.swift */; };
@@ -281,6 +281,27 @@
 		A7DC467F22783A47001F3EFC /* EditExpressAddressTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7DC467E22783A47001F3EFC /* EditExpressAddressTableViewCell.swift */; };
 		A7FF1555228AC27600A85748 /* ProductAllCommentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1554228AC27600A85748 /* ProductAllCommentView.swift */; };
 		A7FF1557228AC3E800A85748 /* ProductAllCommentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1556228AC3E800A85748 /* ProductAllCommentViewController.swift */; };
+		A7FF1560228C693D00A85748 /* OrderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF155F228C693D00A85748 /* OrderViewController.swift */; };
+		A7FF1564228C696B00A85748 /* OrderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1563228C696B00A85748 /* OrderView.swift */; };
+		A7FF1566228C6DF200A85748 /* OrderShopAndStatusTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1565228C6DF200A85748 /* OrderShopAndStatusTableViewCell.swift */; };
+		A7FF1568228C6E2300A85748 /* OrderDeliveryModeAndTimeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1567228C6E2300A85748 /* OrderDeliveryModeAndTimeTableViewCell.swift */; };
+		A7FF156A228C6E3600A85748 /* OrderProductTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1569228C6E3600A85748 /* OrderProductTableViewCell.swift */; };
+		A7FF156C228C6E5E00A85748 /* OrderTotalAmountTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF156B228C6E5E00A85748 /* OrderTotalAmountTableViewCell.swift */; };
+		A7FF156E228C6EAE00A85748 /* OrderDeliveryModeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF156D228C6EAE00A85748 /* OrderDeliveryModeTableViewCell.swift */; };
+		A7FF1570228C6EF200A85748 /* OrderDeliveryModeAndButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF156F228C6EF200A85748 /* OrderDeliveryModeAndButtonTableViewCell.swift */; };
+		A7FF1572228C7D4600A85748 /* OrderButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1571228C7D4600A85748 /* OrderButtonTableViewCell.swift */; };
+		A7FF1577228C824300A85748 /* OrderModule.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A7FF1576228C824300A85748 /* OrderModule.xcassets */; };
+		A7FF1579228C82CE00A85748 /* OrderDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1578228C82CE00A85748 /* OrderDetailViewController.swift */; };
+		A7FF157B228C82E000A85748 /* OrderDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF157A228C82E000A85748 /* OrderDetailView.swift */; };
+		A7FF157D228C837100A85748 /* OrderDetailStatusTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF157C228C837100A85748 /* OrderDetailStatusTableViewCell.swift */; };
+		A7FF1583228C843700A85748 /* OrderDetailExpressSelfMentionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1582228C843700A85748 /* OrderDetailExpressSelfMentionTableViewCell.swift */; };
+		A7FF1585228C847300A85748 /* OrderDetailContactAddressTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1584228C847300A85748 /* OrderDetailContactAddressTableViewCell.swift */; };
+		A7FF1587228C851100A85748 /* OrderDetailInfoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1586228C851100A85748 /* OrderDetailInfoTableViewCell.swift */; };
+		A7FF1589228C854900A85748 /* OrderDetailBottomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1588228C854900A85748 /* OrderDetailBottomView.swift */; };
+		A7FF158C228C911C00A85748 /* OrderRefunddetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF158B228C911C00A85748 /* OrderRefunddetailsViewController.swift */; };
+		A7FF1590228C914600A85748 /* OrderRefunddetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF158F228C914600A85748 /* OrderRefunddetailsView.swift */; };
+		A7FF1592228C918100A85748 /* OrderRefunddetailsStatusTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1591228C918100A85748 /* OrderRefunddetailsStatusTableViewCell.swift */; };
+		A7FF1594228C919A00A85748 /* OrderRefunddetailsTipsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7FF1593228C919A00A85748 /* OrderRefunddetailsTipsTableViewCell.swift */; };
 		BD20F1CB2283C12000677D8E /* ShoppingCartListNoneItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1CA2283C12000677D8E /* ShoppingCartListNoneItemCell.swift */; };
 		BD20F1CD2283C51300677D8E /* ShoppingCartFinishPayController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1CC2283C51300677D8E /* ShoppingCartFinishPayController.swift */; };
 		BD20F1CF2283CE2300677D8E /* ShoppingCartFinishPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1CE2283CE2300677D8E /* ShoppingCartFinishPayView.swift */; };
@@ -341,7 +362,7 @@
 		A70B2C242286C03800B2449F /* NXLPageControl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NXLPageControl.swift; sourceTree = "<group>"; };
 		A70B2C262286C5D600B2449F /* ProductDetailFSPagerViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailFSPagerViewCell.swift; sourceTree = "<group>"; };
 		A70B2C282286D77200B2449F /* ProductDetailProductInfoTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailProductInfoTableViewCell.swift; sourceTree = "<group>"; };
-		A70B2C2C2286E29900B2449F /* Product.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Product.xcassets; sourceTree = "<group>"; };
+		A70B2C2C2286E29900B2449F /* ProductModule.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = ProductModule.xcassets; sourceTree = "<group>"; };
 		A70B2C3222880BB700B2449F /* ProductDetailProductSkuTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailProductSkuTableViewCell.swift; sourceTree = "<group>"; };
 		A70B2C34228815F700B2449F /* ProductDetailProductSkuLabelCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailProductSkuLabelCollectionViewCell.swift; sourceTree = "<group>"; };
 		A70B2C362288177300B2449F /* ProductDetailProductSkuIconCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailProductSkuIconCollectionViewCell.swift; sourceTree = "<group>"; };
@@ -619,6 +640,27 @@
 		A7E03A30F40582782EC5DA89 /* Pods_RainbowPlanetTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RainbowPlanetTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		A7FF1554228AC27600A85748 /* ProductAllCommentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductAllCommentView.swift; sourceTree = "<group>"; };
 		A7FF1556228AC3E800A85748 /* ProductAllCommentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductAllCommentViewController.swift; sourceTree = "<group>"; };
+		A7FF155F228C693D00A85748 /* OrderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderViewController.swift; sourceTree = "<group>"; };
+		A7FF1563228C696B00A85748 /* OrderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderView.swift; sourceTree = "<group>"; };
+		A7FF1565228C6DF200A85748 /* OrderShopAndStatusTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderShopAndStatusTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF1567228C6E2300A85748 /* OrderDeliveryModeAndTimeTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderDeliveryModeAndTimeTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF1569228C6E3600A85748 /* OrderProductTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderProductTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF156B228C6E5E00A85748 /* OrderTotalAmountTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderTotalAmountTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF156D228C6EAE00A85748 /* OrderDeliveryModeTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderDeliveryModeTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF156F228C6EF200A85748 /* OrderDeliveryModeAndButtonTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderDeliveryModeAndButtonTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF1571228C7D4600A85748 /* OrderButtonTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderButtonTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF1576228C824300A85748 /* OrderModule.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = OrderModule.xcassets; sourceTree = "<group>"; };
+		A7FF1578228C82CE00A85748 /* OrderDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderDetailViewController.swift; sourceTree = "<group>"; };
+		A7FF157A228C82E000A85748 /* OrderDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderDetailView.swift; sourceTree = "<group>"; };
+		A7FF157C228C837100A85748 /* OrderDetailStatusTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderDetailStatusTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF1582228C843700A85748 /* OrderDetailExpressSelfMentionTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderDetailExpressSelfMentionTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF1584228C847300A85748 /* OrderDetailContactAddressTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderDetailContactAddressTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF1586228C851100A85748 /* OrderDetailInfoTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderDetailInfoTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF1588228C854900A85748 /* OrderDetailBottomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderDetailBottomView.swift; sourceTree = "<group>"; };
+		A7FF158B228C911C00A85748 /* OrderRefunddetailsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderRefunddetailsViewController.swift; sourceTree = "<group>"; };
+		A7FF158F228C914600A85748 /* OrderRefunddetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderRefunddetailsView.swift; sourceTree = "<group>"; };
+		A7FF1591228C918100A85748 /* OrderRefunddetailsStatusTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderRefunddetailsStatusTableViewCell.swift; sourceTree = "<group>"; };
+		A7FF1593228C919A00A85748 /* OrderRefunddetailsTipsTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderRefunddetailsTipsTableViewCell.swift; sourceTree = "<group>"; };
 		BD20F1CA2283C12000677D8E /* ShoppingCartListNoneItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartListNoneItemCell.swift; sourceTree = "<group>"; };
 		BD20F1CC2283C51300677D8E /* ShoppingCartFinishPayController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartFinishPayController.swift; sourceTree = "<group>"; };
 		BD20F1CE2283CE2300677D8E /* ShoppingCartFinishPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartFinishPayView.swift; sourceTree = "<group>"; };
@@ -785,7 +827,6 @@
 			isa = PBXGroup;
 			children = (
 				A70B2C702289016600B2449F /* ProductDetailSkuView */,
-				A70B2C3B228819E900B2449F /* ProductDetailHeader */,
 				A70B2C39228819CA00B2449F /* Cell */,
 				A70B2C1F2286B54500B2449F /* ProductDetailView.swift */,
 			);
@@ -957,6 +998,7 @@
 			children = (
 				A70B2C722289019200B2449F /* ProductDetailSkuView.swift */,
 				A70B2C74228920BA00B2449F /* ProductDetailSkuSectionHeaerCollectionReusableView.swift */,
+				A70B2C3B228819E900B2449F /* ProductDetailHeader */,
 			);
 			path = ProductDetailSkuView;
 			sourceTree = "<group>";
@@ -1856,6 +1898,7 @@
 		A77F2CA22232010F001BD3F6 /* Modules */ = {
 			isa = PBXGroup;
 			children = (
+				A7FF155A228C689C00A85748 /* OrderModule */,
 				A77F2CAE2232010F001BD3F6 /* RegisterLoginModule */,
 				A77F2CA32232010F001BD3F6 /* ShoppingMallModule */,
 				A77F2CAF2232010F001BD3F6 /* ShoppingCartModule */,
@@ -1978,7 +2021,8 @@
 				A71AF0BD226F1792001730FE /* ShoppingMallModule.xcassets */,
 				BD20F1D72283D2AA00677D8E /* ShoppingCartModule.xcassets */,
 				A7CC74DD22703B4A003C4F38 /* MineModule.xcassets */,
-				A70B2C2C2286E29900B2449F /* Product.xcassets */,
+				A70B2C2C2286E29900B2449F /* ProductModule.xcassets */,
+				A7FF1576228C824300A85748 /* OrderModule.xcassets */,
 				A729B5A92266F6FD004AE098 /* Launch Screen.storyboard */,
 				A77F2C6C2231FB4A001BD3F6 /* Info.plist */,
 			);
@@ -2535,6 +2579,105 @@
 			path = ViewController;
 			sourceTree = "<group>";
 		};
+		A7FF155A228C689C00A85748 /* OrderModule */ = {
+			isa = PBXGroup;
+			children = (
+				A7FF155B228C68B200A85748 /* Order */,
+				A7FF155C228C68C900A85748 /* OrderDetail */,
+				A7FF158A228C910600A85748 /* OrderRefunddetails */,
+			);
+			path = OrderModule;
+			sourceTree = "<group>";
+		};
+		A7FF155B228C68B200A85748 /* Order */ = {
+			isa = PBXGroup;
+			children = (
+				A7FF155E228C692000A85748 /* View */,
+				A7FF155D228C691900A85748 /* ViewController */,
+			);
+			path = Order;
+			sourceTree = "<group>";
+		};
+		A7FF155C228C68C900A85748 /* OrderDetail */ = {
+			isa = PBXGroup;
+			children = (
+				A7FF1573228C81DD00A85748 /* View */,
+				A7FF1574228C81E300A85748 /* ViewController */,
+			);
+			path = OrderDetail;
+			sourceTree = "<group>";
+		};
+		A7FF155D228C691900A85748 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A7FF155F228C693D00A85748 /* OrderViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A7FF155E228C692000A85748 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A7FF1563228C696B00A85748 /* OrderView.swift */,
+				A7FF1565228C6DF200A85748 /* OrderShopAndStatusTableViewCell.swift */,
+				A7FF1567228C6E2300A85748 /* OrderDeliveryModeAndTimeTableViewCell.swift */,
+				A7FF1569228C6E3600A85748 /* OrderProductTableViewCell.swift */,
+				A7FF156B228C6E5E00A85748 /* OrderTotalAmountTableViewCell.swift */,
+				A7FF156D228C6EAE00A85748 /* OrderDeliveryModeTableViewCell.swift */,
+				A7FF156F228C6EF200A85748 /* OrderDeliveryModeAndButtonTableViewCell.swift */,
+				A7FF1571228C7D4600A85748 /* OrderButtonTableViewCell.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		A7FF1573228C81DD00A85748 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A7FF157A228C82E000A85748 /* OrderDetailView.swift */,
+				A7FF157C228C837100A85748 /* OrderDetailStatusTableViewCell.swift */,
+				A7FF1584228C847300A85748 /* OrderDetailContactAddressTableViewCell.swift */,
+				A7FF1582228C843700A85748 /* OrderDetailExpressSelfMentionTableViewCell.swift */,
+				A7FF1586228C851100A85748 /* OrderDetailInfoTableViewCell.swift */,
+				A7FF1588228C854900A85748 /* OrderDetailBottomView.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		A7FF1574228C81E300A85748 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A7FF1578228C82CE00A85748 /* OrderDetailViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A7FF158A228C910600A85748 /* OrderRefunddetails */ = {
+			isa = PBXGroup;
+			children = (
+				A7FF158E228C913000A85748 /* ViewController */,
+				A7FF158D228C912200A85748 /* View */,
+			);
+			path = OrderRefunddetails;
+			sourceTree = "<group>";
+		};
+		A7FF158D228C912200A85748 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A7FF158F228C914600A85748 /* OrderRefunddetailsView.swift */,
+				A7FF1591228C918100A85748 /* OrderRefunddetailsStatusTableViewCell.swift */,
+				A7FF1593228C919A00A85748 /* OrderRefunddetailsTipsTableViewCell.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		A7FF158E228C913000A85748 /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A7FF158B228C911C00A85748 /* OrderRefunddetailsViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
 		BD3474F722859788000908C5 /* ShoppingCartPayOrder */ = {
 			isa = PBXGroup;
 			children = (
@@ -2785,12 +2928,13 @@
 			buildActionMask = 2147483647;
 			files = (
 				A7CC74DE22703B4A003C4F38 /* MineModule.xcassets in Resources */,
-				A70B2C2D2286E29900B2449F /* Product.xcassets in Resources */,
+				A70B2C2D2286E29900B2449F /* ProductModule.xcassets in Resources */,
 				A71AF0BE226F1792001730FE /* ShoppingMallModule.xcassets in Resources */,
 				A7778C9722438F5D00C7C47A /* AlipaySDK.bundle in Resources */,
 				A7190167227543DB00104A50 /* baidu_cityid_rel.json in Resources */,
 				A77F2C682231FB4A001BD3F6 /* Assets.xcassets in Resources */,
 				A72C01232275404A0065E0C3 /* province_city_area.json in Resources */,
+				A7FF1577228C824300A85748 /* OrderModule.xcassets in Resources */,
 				BD20F1D82283D2AA00677D8E /* ShoppingCartModule.xcassets in Resources */,
 				A7778C9922438F5D00C7C47A /* README.txt in Resources */,
 				A729B5AA2266F6FD004AE098 /* Launch Screen.storyboard in Resources */,
@@ -2960,6 +3104,7 @@
 				A72A72BE22321DE000B21995 /* Extension+RxTimer.swift in Sources */,
 				A7CC74EA22706ACD003C4F38 /* MessageViewController.swift in Sources */,
 				BDF47D7E22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift in Sources */,
+				A7FF1589228C854900A85748 /* OrderDetailBottomView.swift in Sources */,
 				BD7AB83D228438020030646A /* OrderPayExpressInfoShowCell.swift in Sources */,
 				A72A72C422321DE000B21995 /* Extension+CAGradientLayer.swift in Sources */,
 				A7778CA72243A05400C7C47A /* IQKeyboardManagerSwiftManager.swift in Sources */,
@@ -2987,6 +3132,7 @@
 				A7636AC52268139C00374F9E /* LocationViewController.swift in Sources */,
 				A7D46090227617D200A5A54E /* SQLModel.swift in Sources */,
 				A72C01222275404A0065E0C3 /* ProvinceCityAreaModel.swift in Sources */,
+				A7FF1579228C82CE00A85748 /* OrderDetailViewController.swift in Sources */,
 				A7C3DD1C226422D200FA262E /* SwiftMoyaNetWorkServiceSMS.swift in Sources */,
 				A72A7386223396CB00B21995 /* SwiftMoyaNetWorkManager.swift in Sources */,
 				A70B2C252286C03800B2449F /* NXLPageControl.swift in Sources */,
@@ -2997,9 +3143,11 @@
 				A77F2CCA223209F2001BD3F6 /* BaseTabbarViewController.swift in Sources */,
 				A70B2C1D2286B52400B2449F /* ProductDetailViewController.swift in Sources */,
 				A7CC75332271ABB0003C4F38 /* AddressManagerViewController.swift in Sources */,
+				A7FF158C228C911C00A85748 /* OrderRefunddetailsViewController.swift in Sources */,
 				A7CC750D227157DA003C4F38 /* MessageDetailesView.swift in Sources */,
 				BD7AB83622841A8B0030646A /* ShoppingCartPayOrderItemCell.swift in Sources */,
 				A71AA519227219D7008FF1A5 /* EditExpressAddressViewController.swift in Sources */,
+				A7FF1568228C6E2300A85748 /* OrderDeliveryModeAndTimeTableViewCell.swift in Sources */,
 				A71738A822897E96000AEA6A /* SwiftMoyaNetWorkServiceShop.swift in Sources */,
 				BD20F1CD2283C51300677D8E /* ShoppingCartFinishPayController.swift in Sources */,
 				A729B5B022671310004AE098 /* MobileLoginView.swift in Sources */,
@@ -3012,6 +3160,7 @@
 				A70B2C042283D06B00B2449F /* ProductFloorFullLeftHeaderCollectionReusableView.swift in Sources */,
 				A7B4E721228151F40012914A /* ProductFloorTitleView.swift in Sources */,
 				A729B5AD2266FF45004AE098 /* BindPhoneNumberView.swift in Sources */,
+				A7FF1592228C918100A85748 /* OrderRefunddetailsStatusTableViewCell.swift in Sources */,
 				A7CC74E62270628B003C4F38 /* DeliveryMethodTypeModel.swift in Sources */,
 				A71AA51F22729F35008FF1A5 /* AuthorizationSwift.swift in Sources */,
 				A7A98E3622802AD7005306E9 /* ShoppingMallBannerFSPagerViewCell.swift in Sources */,
@@ -3036,11 +3185,13 @@
 				A77F2CC3223203BA001BD3F6 /* AppDelegate+Window.swift in Sources */,
 				A7824B062271F25400ABA381 /* EditAddressTableViewCell.swift in Sources */,
 				A70B2C4C228845E800B2449F /* ProductDetailParameterTableViewCell.swift in Sources */,
+				A7FF156A228C6E3600A85748 /* OrderProductTableViewCell.swift in Sources */,
 				A70EBBC022561179000AD74F /* Extension+UITableView.swift in Sources */,
 				A72A72B022321DE000B21995 /* CGView.swift in Sources */,
 				A7A98E0B227EBD04005306E9 /* CategorySearchView.swift in Sources */,
 				A72A73142232475E00B21995 /* AlipayManager.swift in Sources */,
 				A7824B042271F10300ABA381 /* EditSelfMentionContactsView.swift in Sources */,
+				A7FF1566228C6DF200A85748 /* OrderShopAndStatusTableViewCell.swift in Sources */,
 				A7A98E332280272A005306E9 /* ShoppingMallBannerTableViewCell.swift in Sources */,
 				A7B4E754228278320012914A /* ShoppingMallFloorTableViewCell.swift in Sources */,
 				BD3474F522857B85000908C5 /* CommonPayHeader.swift in Sources */,
@@ -3068,9 +3219,11 @@
 				A72A72AF22321DE000B21995 /* AppInfo.swift in Sources */,
 				A7D460942276854500A5A54E /* BaiduToCity2Model.swift in Sources */,
 				A72A72D422321E2700B21995 /* EnumMacro.swift in Sources */,
+				A7FF157D228C837100A85748 /* OrderDetailStatusTableViewCell.swift in Sources */,
 				A7A98E41228046C5005306E9 /* ShoppingMallSepcialTableViewCell.swift in Sources */,
 				A70B2C5E22886F4D00B2449F /* ShopViewTableViewCell.swift in Sources */,
 				A7CC753A2271B98B003C4F38 /* AddressManagerAddTableViewCell.swift in Sources */,
+				A7FF1570228C6EF200A85748 /* OrderDeliveryModeAndButtonTableViewCell.swift in Sources */,
 				A71AF0AC226EDE37001730FE /* SearchNavigationbarView.swift in Sources */,
 				A70B2C6D2288815E00B2449F /* PickViewOneComponentsView.swift in Sources */,
 				BDD4FB1422840954006FE833 /* ShoppingCartOrderPayView.swift in Sources */,
@@ -3092,6 +3245,7 @@
 				A72A72A922321DE000B21995 /* NumberKeyboard.swift in Sources */,
 				A79057082276FEB00037F823 /* SelfMentionContactsModel.swift in Sources */,
 				A70B2C272286C5D600B2449F /* ProductDetailFSPagerViewCell.swift in Sources */,
+				A7FF1585228C847300A85748 /* OrderDetailContactAddressTableViewCell.swift in Sources */,
 				A72A72AA22321DE000B21995 /* Log.swift in Sources */,
 				A72A72B622321DE000B21995 /* Extension+NSRange.swift in Sources */,
 				A75414FD224B5F28002480B5 /* MobileLoginViewController.swift in Sources */,
@@ -3107,6 +3261,7 @@
 				A7A98E02227E8900005306E9 /* ProductSearchListModel.swift in Sources */,
 				A7A98E17227EED76005306E9 /* SpecialViewController.swift in Sources */,
 				A7778CB32244D73400C7C47A /* RegisterLoginViewController.swift in Sources */,
+				A7FF157B228C82E000A85748 /* OrderDetailView.swift in Sources */,
 				BD7AB8432284390B0030646A /* OrderPaySelfPickInfoCell.swift in Sources */,
 				A7CC752F2271A1F2003C4F38 /* SetPasswordView.swift in Sources */,
 				A7A98E09227EB8DD005306E9 /* CategoryView.swift in Sources */,
@@ -3120,6 +3275,7 @@
 				A72A72BD22321DE000B21995 /* Extension+UIColor.swift in Sources */,
 				A7A98E05227EB891005306E9 /* CategoryViewController.swift in Sources */,
 				A77F2CC822320627001BD3F6 /* WRCustomNavigationBar.swift in Sources */,
+				A7FF1564228C696B00A85748 /* OrderView.swift in Sources */,
 				A7CC74EF22706CCA003C4F38 /* MessageView.swift in Sources */,
 				A70B2C072284305400B2449F /* ProductModel.swift in Sources */,
 				A7CC74E0227042A4003C4F38 /* MineServiceTableViewCell.swift in Sources */,
@@ -3132,6 +3288,7 @@
 				A775CBFE2237493600EBDCF8 /* ShoppingMallNavigationBarView.swift in Sources */,
 				A71AA5212272E527008FF1A5 /* Extension+UINavigationController.swift in Sources */,
 				A7CC751822716202003C4F38 /* SetView.swift in Sources */,
+				A7FF1594228C919A00A85748 /* OrderRefunddetailsTipsTableViewCell.swift in Sources */,
 				A7B4E73A228192D20012914A /* CMSTemplateModel.swift in Sources */,
 				A72A72C622321DE000B21995 /* WebView.swift in Sources */,
 				A72A72D122321E2700B21995 /* HTMLURLMacro.swift in Sources */,
@@ -3148,7 +3305,9 @@
 				A71AF0BC226F099B001730FE /* ProductHBigTableViewCell.swift in Sources */,
 				A7A98E3C228036D7005306E9 /* ShoppingMallCategoryCollectionViewCell.swift in Sources */,
 				A71AF0AA226EDDF5001730FE /* SearchView.swift in Sources */,
+				A7FF1583228C843700A85748 /* OrderDetailExpressSelfMentionTableViewCell.swift in Sources */,
 				A7A98E0E227EC0C6005306E9 /* CategoryTableViewCell.swift in Sources */,
+				A7FF1572228C7D4600A85748 /* OrderButtonTableViewCell.swift in Sources */,
 				A7B4E72F2281773F0012914A /* ProductFloorCenterTitleView.swift in Sources */,
 				A7284A542252FB5C000BAEC4 /* PaginationModel.swift in Sources */,
 				A72A72D022321E2700B21995 /* FontMacro.swift in Sources */,
@@ -3166,7 +3325,9 @@
 				A71AF0B8226EF9EC001730FE /* SearchResultNavigationbarView.swift in Sources */,
 				A70B2C5A22886ADF00B2449F /* ShopViewController.swift in Sources */,
 				A70B2C3E228825B100B2449F /* ProductDetailEvaluationTableViewCell.swift in Sources */,
+				A7FF1590228C914600A85748 /* OrderRefunddetailsView.swift in Sources */,
 				A79057022276C9770037F823 /* SetPasswordModel.swift in Sources */,
+				A7FF1560228C693D00A85748 /* OrderViewController.swift in Sources */,
 				A729B5B42267254B004AE098 /* PasswordLoginViewController.swift in Sources */,
 				A7B4E7582282897B0012914A /* ProductFloorLeftHeaderCollectionReusableView.swift in Sources */,
 				A7D4608E227616F800A5A54E /* SQLiteManager.swift in Sources */,
@@ -3175,6 +3336,7 @@
 				A729B5A82266F2E0004AE098 /* AlertSheetView.swift in Sources */,
 				A7CC75382271ADD6003C4F38 /* AddressManagerSelfMentionExpressHeaderView.swift in Sources */,
 				A738D66F225D9BD900EEE860 /* UMLoginModel.swift in Sources */,
+				A7FF156C228C6E5E00A85748 /* OrderTotalAmountTableViewCell.swift in Sources */,
 				A71738A622897892000AEA6A /* SwiftMoyaServiceShopApi.swift in Sources */,
 				A72A726722321DBD00B21995 /* LocationModel.swift in Sources */,
 				A7A98E10227EC531005306E9 /* ProductHSmallTableViewCell.swift in Sources */,
@@ -3208,6 +3370,7 @@
 				A7CC753E2271C4C2003C4F38 /* AddressManagerExpressTableViewCell.swift in Sources */,
 				A7778CDD2246121500C7C47A /* PhoneCountryAreaListMdoel.swift in Sources */,
 				A72A733522325A4B00B21995 /* AppDelegate+HandleOpen.swift in Sources */,
+				A7FF156E228C6EAE00A85748 /* OrderDeliveryModeTableViewCell.swift in Sources */,
 				A72A72AC22321DE000B21995 /* Regex.swift in Sources */,
 				A7778CC52246035700C7C47A /* PhoneCountryAreaViewController.swift in Sources */,
 				A72A72CF22321E2700B21995 /* NotificationCenterMacro.swift in Sources */,
@@ -3215,6 +3378,7 @@
 				A71901702275EF9900104A50 /* NXLRealm.swift in Sources */,
 				BDD4FB1722840DD3006FE833 /* OrderPayAcountView.swift in Sources */,
 				A7CC753C2271C177003C4F38 /* AddressManagerSelfMentionTableViewCell.swift in Sources */,
+				A7FF1587228C851100A85748 /* OrderDetailInfoTableViewCell.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

+ 84 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderButtonTableViewCell.swift

@@ -0,0 +1,84 @@
+//
+//  OrderButtonTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderButtonTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> OrderButtonTableViewCell {
+        let ID = "OrderButtonTableViewCell"
+        tableView.register(OrderButtonTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderButtonTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderButtonTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(oneButton)
+        addSubview(twoButton)
+    }
+    
+    private func setupLayouts() {
+
+        oneButton.snp.remakeConstraints { (make) in
+            make.top.equalTo(14)
+            make.height.equalTo(28)
+            make.width.greaterThanOrEqualTo(90)
+            make.right.equalTo(-14)
+            make.bottom.equalTo(-14)
+        }
+        twoButton.snp.remakeConstraints { (make) in
+            make.centerY.equalTo(oneButton)
+            make.height.equalTo(28)
+            make.width.greaterThanOrEqualTo(90)
+        }
+        
+    }
+    
+    private lazy var addressLabel: UILabel = {
+        let addressLabel = UILabel()
+        addressLabel.textColor = kfe352bColor
+        addressLabel.font = kRegularFont13
+        addressLabel.text = "自提地址:碑林区建设西路新城南门柜机"
+        return addressLabel
+    }()
+    
+    private lazy var oneButton: UIButton = {
+        let oneButton = UIButton(type: UIButton.ButtonType.custom)
+        oneButton.cornerRadius = 14
+        oneButton.masksToBounds = true
+        oneButton.titleLabel?.font = kRegularFont14
+        return oneButton
+    }()
+    
+    private lazy var twoButton: UIButton = {
+        let twoButton = UIButton(type: UIButton.ButtonType.custom)
+        twoButton.cornerRadius = 14
+        twoButton.masksToBounds = true
+        twoButton.titleLabel?.font = kRegularFont14
+        return twoButton
+    }()
+
+}

+ 89 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderDeliveryModeAndButtonTableViewCell.swift

@@ -0,0 +1,89 @@
+//
+//  OrderDeliveryModeAndButtonTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderDeliveryModeAndButtonTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> UITableViewCell {
+        let ID = "OrderDeliveryModeAndButtonTableViewCell"
+        tableView.register(OrderDeliveryModeAndButtonTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderDeliveryModeAndButtonTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderDeliveryModeAndButtonTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(addressLabel)
+        addSubview(oneButton)
+        addSubview(twoButton)
+    }
+    
+    private func setupLayouts() {
+        addressLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(14)
+            make.left.equalTo(12)
+            make.right.equalTo(-14)
+        }
+        oneButton.snp.remakeConstraints { (make) in
+            make.top.equalTo(addressLabel.snp.bottom).offset(14)
+            make.height.equalTo(28)
+            make.width.greaterThanOrEqualTo(90)
+            make.right.equalTo(-14)
+            make.bottom.equalTo(-14)
+        }
+        twoButton.snp.remakeConstraints { (make) in
+            make.centerY.equalTo(oneButton)
+            make.height.equalTo(28)
+            make.width.greaterThanOrEqualTo(90)
+        }
+        
+    }
+    
+    private lazy var addressLabel: UILabel = {
+        let addressLabel = UILabel()
+        addressLabel.textColor = kfe352bColor
+        addressLabel.font = kRegularFont13
+        addressLabel.text = "自提地址:碑林区建设西路新城南门柜机"
+        return addressLabel
+    }()
+    
+    private lazy var oneButton: UIButton = {
+        let oneButton = UIButton(type: UIButton.ButtonType.custom)
+        oneButton.cornerRadius = 14
+        oneButton.masksToBounds = true
+        oneButton.titleLabel?.font = kRegularFont14
+        return oneButton
+    }()
+    
+    private lazy var twoButton: UIButton = {
+        let twoButton = UIButton(type: UIButton.ButtonType.custom)
+        twoButton.cornerRadius = 14
+        twoButton.masksToBounds = true
+        twoButton.titleLabel?.font = kRegularFont14
+        return twoButton
+    }()
+
+}

+ 87 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderDeliveryModeAndTimeTableViewCell.swift

@@ -0,0 +1,87 @@
+//
+//  OrderDeliveryModeAndTimeTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderDeliveryModeAndTimeTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> OrderDeliveryModeAndTimeTableViewCell {
+        let ID = "OrderDeliveryModeAndTimeTableViewCell"
+        tableView.register(OrderDeliveryModeAndTimeTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderDeliveryModeAndTimeTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderDeliveryModeAndTimeTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(deliveryModeLabel)
+        addSubview(timeLabel)
+        addSubview(lineLabel)
+    }
+    
+    private func setupLayouts() {
+        deliveryModeLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.height.equalTo(20)
+            make.left.equalTo(14)
+        }
+        timeLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(-14)
+        }
+        lineLabel.snp.makeConstraints { (make) in
+            make.bottom.equalToSuperview()
+            make.height.equalTo(1)
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+        }
+    }
+    
+    private lazy var deliveryModeLabel: UILabel = {
+        let deliveryModeLabel = UILabel()
+        deliveryModeLabel.backgroundColor = kf5f5f5Color
+        deliveryModeLabel.textColor = k333333Color
+        deliveryModeLabel.font = kRegularFont13
+        deliveryModeLabel.text = "  自提  "
+        deliveryModeLabel.cornerRadius = 10
+        deliveryModeLabel.masksToBounds = true
+        return deliveryModeLabel
+    }()
+    
+    private lazy var timeLabel: UILabel = {
+        let timeLabel = UILabel()
+        timeLabel.textColor = k333333Color
+        timeLabel.font = kRegularFont13
+        timeLabel.text = "2019年3月28日  19:23:34"
+        return timeLabel
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+
+}

+ 59 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderDeliveryModeTableViewCell.swift

@@ -0,0 +1,59 @@
+//
+//  OrderDeliveryModeTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderDeliveryModeTableViewCell: UITableViewCell {
+
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> UITableViewCell {
+        let ID = "OrderDeliveryModeTableViewCell"
+        tableView.register(OrderDeliveryModeTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderDeliveryModeTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderDeliveryModeTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(addressLabel)
+    }
+    
+    private func setupLayouts() {
+        addressLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(14)
+            make.left.equalTo(12)
+            make.bottom.equalTo(-12)
+            make.right.equalTo(-14)
+        }
+    }
+    
+    private lazy var addressLabel: UILabel = {
+        let addressLabel = UILabel()
+        addressLabel.textColor = kfe352bColor
+        addressLabel.font = kRegularFont13
+        addressLabel.text = "自提地址:碑林区建设西路新城南门柜机"
+        return addressLabel
+    }()
+
+}

+ 137 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderProductTableViewCell.swift

@@ -0,0 +1,137 @@
+//
+//  OrderProductTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderProductTableViewCell: UITableViewCell {
+
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> UITableViewCell {
+        let ID = "OrderProductTableViewCell"
+        tableView.register(OrderProductTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderProductTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderProductTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(productImageView)
+        addSubview(titleLabel)
+        addSubview(timeLabel)
+        addSubview(skuLabel)
+        addSubview(priceLabel)
+        addSubview(numberLabel)
+        addSubview(lineLabel)
+    }
+    
+    private func setupLayouts() {
+        productImageView.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.centerY.equalToSuperview()
+            make.size.equalTo(80)
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(productImageView.snp.right).offset(12)
+            make.top.equalTo(20)
+            make.right.equalTo(priceLabel.snp.left).offset(-12)
+            make.height.equalTo(20)
+        }
+        timeLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(titleLabel.snp.left).offset(8)
+            make.left.equalTo(titleLabel)
+            make.height.equalTo(17)
+        }
+        skuLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(timeLabel.snp.left).offset(8)
+            make.left.equalTo(titleLabel)
+            make.height.equalTo(17)
+        }
+        priceLabel.snp.makeConstraints { (make) in
+            make.centerY.equalTo(titleLabel)
+            make.right.equalTo(-14)
+        }
+        numberLabel.snp.makeConstraints { (make) in
+            make.centerY.equalTo(timeLabel)
+            make.right.equalTo(-14)
+        }
+        lineLabel.snp.makeConstraints { (make) in
+            make.bottom.equalToSuperview()
+            make.height.equalTo(1)
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+        }
+    }
+    
+    private lazy var productImageView: UIImageView = {
+        let productImageView = UIImageView()
+        productImageView.image = kImage(name: "pic_preload")
+        return productImageView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "果雪语 眉山脐橙4斤装 新鲜脐"
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kBoldFont14
+        return titleLabel
+    }()
+    
+    private lazy var timeLabel: UILabel = {
+        let timeLabel = UILabel()
+        timeLabel.text = "预计配送时间:次日达"
+        timeLabel.textColor = k666666Color
+        timeLabel.font = kRegularFont12
+        return timeLabel
+    }()
+    
+    private lazy var skuLabel: UILabel = {
+        let skuLabel = UILabel()
+        skuLabel.text = "规格:3个装"
+        skuLabel.textColor = k999999Color
+        skuLabel.font = kRegularFont12
+        return skuLabel
+    }()
+    
+    private lazy var priceLabel: UILabel = {
+        let priceLabel = UILabel()
+        priceLabel.text = "¥258"
+        priceLabel.textColor = k333333Color
+        priceLabel.font = kRegularFont14
+        return priceLabel
+    }()
+    
+    private lazy var numberLabel: UILabel = {
+        let numberLabel = UILabel()
+        numberLabel.text = "x1"
+        numberLabel.textColor = k999999Color
+        numberLabel.font = kRegularFont13
+        return numberLabel
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+}

+ 85 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderShopAndStatusTableViewCell.swift

@@ -0,0 +1,85 @@
+//
+//  OrderShopAndStatusTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderShopAndStatusTableViewCell: UITableViewCell {
+
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> UITableViewCell {
+        let ID = "OrderShopAndStatusTableViewCell"
+        tableView.register(OrderShopAndStatusTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderShopAndStatusTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderShopAndStatusTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(shopButton)
+        addSubview(statusLabel)
+        addSubview(lineLabel)
+    }
+    
+    private func setupLayouts() {
+        shopButton.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(14)
+        }
+        shopButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.right, imageTitleSpace: 5)
+        statusLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.right.equalTo(-14)
+        }
+        lineLabel.snp.makeConstraints { (make) in
+            make.bottom.equalToSuperview()
+            make.height.equalTo(1)
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+        }
+    }
+    
+    private lazy var shopButton: UIButton = {
+        let shopButton = UIButton(type: UIButton.ButtonType.custom)
+        shopButton.setTitle("彩虹星球专营", for: UIControl.State.normal)
+        shopButton.setTitleColor(k333333Color, for: UIControl.State.normal)
+        shopButton.titleLabel?.font = kRegularFont14
+        shopButton.setImage(kImage(name: "my_arrows_unfold"), for: UIControl.State.normal)
+        return shopButton
+    }()
+    
+    private lazy var statusLabel: UILabel = {
+        let statusLabel = UILabel()
+        statusLabel.text = "订单状态"
+        statusLabel.font = kRegularFont14
+        statusLabel.textColor = kFFA42FColor
+        return statusLabel
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+
+}

+ 90 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderTotalAmountTableViewCell.swift

@@ -0,0 +1,90 @@
+//
+//  OrderTotalAmountTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderTotalAmountTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> UITableViewCell {
+        let ID = "OrderTotalAmountTableViewCell"
+        tableView.register(OrderTotalAmountTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderTotalAmountTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderTotalAmountTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(moneyLabel)
+        addSubview(numberLabel)
+        addSubview(lineLabel)
+        
+    }
+    
+    private func setupLayouts() {
+        moneyLabel.snp.remakeConstraints { (make) in
+            make.right.equalTo(-14)
+            make.centerY.equalToSuperview()
+            make.width.lessThanOrEqualTo(5)
+        }
+        numberLabel.snp.remakeConstraints { (make) in
+            make.right.equalTo(moneyLabel.snp.left)
+            make.centerY.equalToSuperview()
+            make.right.equalTo(-14)
+        }
+        lineLabel.snp.makeConstraints { (make) in
+            make.bottom.equalToSuperview()
+            make.height.equalTo(1)
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+        }
+    }
+    
+    private lazy var moneyLabel: UILabel = {
+        let moneyLabel = UILabel()
+        moneyLabel.text = "¥258"
+        moneyLabel.textColor = kfe352bColor
+        moneyLabel.font = kBoldFont13
+        return moneyLabel
+    }()
+    
+    private lazy var numberLabel: UILabel = {
+        let numberLabel = UILabel()
+        numberLabel.textColor = k999999Color
+        numberLabel.font = kRegularFont14
+        let str = "共1件商品,合计"
+        let attributedString = NSMutableAttributedString.init(string: str)
+        let range = str.range(of: "1")
+        attributedString.changeForegroundColor(k333333Color, range: NSRange(range!, in: "1"))
+        numberLabel.attributedText = attributedString
+        return numberLabel
+    }()
+    
+    private lazy var lineLabel: UILabel = {
+        let lineLabel = UILabel()
+        lineLabel.backgroundColor = kf5f5f5Color
+        return lineLabel
+    }()
+
+}

+ 21 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/View/OrderView.swift

@@ -0,0 +1,21 @@
+//
+//  OrderListView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderView: BaseView {
+
+    /*
+    // Only override draw() if you perform custom drawing.
+    // An empty implementation adversely affects performance during animation.
+    override func draw(_ rect: CGRect) {
+        // Drawing code
+    }
+    */
+
+}

+ 30 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/ViewController/OrderViewController.swift

@@ -0,0 +1,30 @@
+//
+//  OrderListViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/15.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderViewController: BaseViewController {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+        // Do any additional setup after loading the view.
+    }
+    
+
+    /*
+    // MARK: - Navigation
+
+    // In a storyboard-based application, you will often want to do a little preparation before navigation
+    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+        // Get the new view controller using segue.destination.
+        // Pass the selected object to the new view controller.
+    }
+    */
+
+}

+ 85 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailBottomView.swift

@@ -0,0 +1,85 @@
+//
+//  OrderDetailBottomView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderDetailBottomView: BaseView {
+
+
+    override func setupViews() {
+        addSubview(oneButton)
+        addSubview(twoButton)
+        addSubview(threeButton)
+        addSubview(leftButton)
+    }
+    
+    override func setupLayouts() {
+        oneButton.snp.remakeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.height.equalTo(36)
+            make.width.greaterThanOrEqualTo(90)
+            make.right.equalTo(-14)
+        }
+        twoButton.snp.remakeConstraints { (make) in
+            make.right.equalTo(oneButton.snp.left).offset(-12)
+            make.centerY.equalToSuperview()
+            make.height.equalTo(36)
+            make.width.greaterThanOrEqualTo(90)
+        }
+        threeButton.snp.makeConstraints { (make) in
+            make.right.equalTo(twoButton.snp.left).offset(-12)
+            make.centerY.equalToSuperview()
+            make.height.equalTo(36)
+            make.width.greaterThanOrEqualTo(90)
+        }
+        leftButton.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(20)
+        }
+    }
+    
+    private lazy var addressLabel: UILabel = {
+        let addressLabel = UILabel()
+        addressLabel.textColor = kfe352bColor
+        addressLabel.font = kRegularFont13
+        addressLabel.text = "自提地址:碑林区建设西路新城南门柜机"
+        return addressLabel
+    }()
+    
+    private lazy var oneButton: UIButton = {
+        let oneButton = UIButton(type: UIButton.ButtonType.custom)
+        oneButton.cornerRadius = 18
+        oneButton.masksToBounds = true
+        oneButton.titleLabel?.font = kRegularFont15
+        return oneButton
+    }()
+    
+    private lazy var twoButton: UIButton = {
+        let twoButton = UIButton(type: UIButton.ButtonType.custom)
+        twoButton.cornerRadius = 18
+        twoButton.masksToBounds = true
+        twoButton.titleLabel?.font = kRegularFont15
+        return twoButton
+    }()
+    
+    private lazy var threeButton: UIButton = {
+        let threeButton = UIButton(type: UIButton.ButtonType.custom)
+        threeButton.cornerRadius = 18
+        threeButton.masksToBounds = true
+        threeButton.titleLabel?.font = kRegularFont15
+        return threeButton
+    }()
+    
+    private lazy var leftButton: UIButton = {
+        let leftButton = UIButton(type: UIButton.ButtonType.custom)
+        leftButton.titleLabel?.font = kRegularFont15
+        return leftButton
+    }()
+
+
+}

+ 98 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailContactAddressTableViewCell.swift

@@ -0,0 +1,98 @@
+//
+//  OrderDetailContactAddressTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderDetailContactAddressTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> UITableViewCell {
+        let ID = "OrderDetailContactAddressTableViewCell"
+        tableView.register(OrderDetailContactAddressTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderDetailContactAddressTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderDetailContactAddressTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(addressImageView)
+        addSubview(contactLabel)
+        addSubview(addressTitleLabel)
+        addSubview(addressContentLabel)
+    }
+    
+    private func setupLayouts() {
+        addressImageView.snp.makeConstraints { (make) in
+            make.top.left.equalTo(14)
+            make.size.equalTo(16)
+        }
+        contactLabel.snp.makeConstraints { (make) in
+            make.centerY.equalTo(addressImageView)
+            make.left.equalTo(addressImageView.snp.right).offset(14)
+            make.right.equalTo(-14)
+            make.height.equalTo(21)
+        }
+        addressTitleLabel.snp.remakeConstraints { (make) in
+            make.top.equalTo(contactLabel.snp.bottom).offset(8)
+            make.left.equalTo(contactLabel)
+            make.width.greaterThanOrEqualTo(10)
+        }
+        addressContentLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(addressTitleLabel)
+            make.left.equalTo(addressTitleLabel.snp.right)
+            make.right.bottom.equalTo(-14)
+        }
+    }
+    
+    private lazy var addressImageView: UIImageView = {
+        let addressImageView = UIImageView()
+        addressImageView.image = kImage(name: "order_coord")
+        return addressImageView
+    }()
+    
+    private lazy var contactLabel: UILabel = {
+        let contactLabel = UILabel()
+        contactLabel.textColor = k333333Color
+        contactLabel.font = kBoldFont15
+        contactLabel.text = "图图   158****7201"
+        return contactLabel
+    }()
+    
+    private lazy var addressTitleLabel: UILabel = {
+        let addressTitleLabel = UILabel()
+        addressTitleLabel.textColor = k666666Color
+        addressTitleLabel.font = kRegularFont13
+        addressTitleLabel.text = "自提地址:"
+        return addressTitleLabel
+    }()
+    
+    private lazy var addressContentLabel: UILabel = {
+        let addressContentLabel = UILabel()
+        addressContentLabel.textColor = k666666Color
+        addressContentLabel.font = kRegularFont13
+        addressContentLabel.text = "西安市碑林区建设西路新城智能柜机"
+        return addressContentLabel
+    }()
+
+}

+ 70 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailExpressSelfMentionTableViewCell.swift

@@ -0,0 +1,70 @@
+//
+//  OrderDetailExpressTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderDetailExpressSelfMentionTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> OrderDetailExpressSelfMentionTableViewCell {
+        let ID = "OrderDetailExpressSelfMentionTableViewCell"
+        tableView.register(OrderDetailExpressSelfMentionTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderDetailExpressSelfMentionTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderDetailExpressSelfMentionTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(titleLabel)
+        addSubview(contentLabel)
+    }
+    
+    private func setupLayouts() {
+        titleLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(14)
+        }
+        contentLabel.snp.makeConstraints { (make) in
+            make.centerY.equalTo(titleLabel)
+            make.left.equalTo(80)
+        }
+    }
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k999999Color
+        titleLabel.font = kRegularFont13
+        titleLabel.text = "配送方式"
+        return titleLabel
+    }()
+    
+    private lazy var contentLabel: UILabel = {
+        let contentLabel = UILabel()
+        contentLabel.textColor = k333333Color
+        contentLabel.font = kRegularFont13
+        contentLabel.text = "快递"
+        return contentLabel
+    }()
+
+}

+ 88 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailInfoTableViewCell.swift

@@ -0,0 +1,88 @@
+//
+//  OrderDetailInfoTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderDetailInfoTableViewCell: UITableViewCell {
+
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> OrderDetailInfoTableViewCell {
+        let ID = "OrderDetailInfoTableViewCell"
+        tableView.register(OrderDetailInfoTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderDetailInfoTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderDetailInfoTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(titleLabel)
+        addSubview(contentLabel)
+        addSubview(copyButton)
+    }
+    
+    private func setupLayouts() {
+        titleLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(14)
+        }
+        contentLabel.snp.makeConstraints { (make) in
+            make.centerY.equalTo(titleLabel)
+            make.left.equalTo(titleLabel.snp.right).offset(14)
+        }
+        copyButton.snp.makeConstraints { (make) in
+            make.centerY.equalTo(titleLabel)
+            make.right.equalTo(-14)
+        }
+    }
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k999999Color
+        titleLabel.font = kRegularFont13
+        titleLabel.text = "订单编码"
+        return titleLabel
+    }()
+    
+    private lazy var contentLabel: UILabel = {
+        let contentLabel = UILabel()
+        contentLabel.textColor = k333333Color
+        contentLabel.font = kRegularFont13
+        contentLabel.text = "666000201512351"
+        return contentLabel
+    }()
+    
+    private lazy var copyButton: UIButton = {
+        let copyButton = UIButton(type: UIButton.ButtonType.custom)
+        copyButton.setTitle("复制", for: UIControl.State.normal)
+        copyButton.setTitleColor(k333333Color, for: UIControl.State.normal)
+        copyButton.titleLabel?.font = kRegularFont12
+        copyButton.cornerRadius = 8
+        copyButton.masksToBounds = true
+        copyButton.layer.borderColor = k333333Color.cgColor
+        copyButton.layer.borderWidth = 1
+        return copyButton
+    }()
+
+}

+ 80 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailStatusTableViewCell.swift

@@ -0,0 +1,80 @@
+//
+//  OrderDetailStatusTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderDetailStatusTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> OrderDetailStatusTableViewCell {
+        let ID = "OrderDetailStatusTableViewCell"
+        tableView.register(OrderDetailStatusTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderDetailStatusTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderDetailStatusTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(bgImageView)
+        addSubview(statusLabel)
+        addSubview(statusImageView)
+    }
+    
+    private func setupLayouts() {
+        bgImageView.snp.makeConstraints { (make) in
+            make.edges.equalToSuperview()
+        }
+        statusLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(20)
+        }
+        statusImageView.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.right.equalTo(-40)
+        }
+    }
+    
+    lazy var bgImageView: UIImageView = {
+        let bgImageView = UIImageView()
+        bgImageView.image = kImage(name: "order_bg")
+        return bgImageView
+    }()
+    
+    private lazy var statusLabel: UILabel = {
+        let statusLabel = UILabel()
+        statusLabel.textColor = kffffffColor
+        statusLabel.font = kBoldFont20
+        statusLabel.text = "已关闭"
+        return statusLabel
+    }()
+    
+    private lazy var statusImageView: UIImageView = {
+        let statusImageView = UIImageView()
+        statusImageView.image = kImage(name: "order_good")
+        return statusImageView
+    }()
+    
+
+
+}

+ 21 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/View/OrderDetailView.swift

@@ -0,0 +1,21 @@
+//
+//  OrderDetailView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderDetailView: BaseView {
+
+    /*
+    // Only override draw() if you perform custom drawing.
+    // An empty implementation adversely affects performance during animation.
+    override func draw(_ rect: CGRect) {
+        // Drawing code
+    }
+    */
+
+}

+ 30 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/ViewController/OrderDetailViewController.swift

@@ -0,0 +1,30 @@
+//
+//  OrderDetailViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderDetailViewController: BaseViewController {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+        // Do any additional setup after loading the view.
+    }
+    
+
+    /*
+    // MARK: - Navigation
+
+    // In a storyboard-based application, you will often want to do a little preparation before navigation
+    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+        // Get the new view controller using segue.destination.
+        // Pass the selected object to the new view controller.
+    }
+    */
+
+}

+ 78 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderRefunddetails/View/OrderRefunddetailsStatusTableViewCell.swift

@@ -0,0 +1,78 @@
+//
+//  OrderRefunddetailsStatusTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderRefunddetailsStatusTableViewCell: UITableViewCell {
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> UITableViewCell {
+        let ID = "OrderRefunddetailsStatusTableViewCell"
+        tableView.register(OrderRefunddetailsStatusTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderRefunddetailsStatusTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderRefunddetailsStatusTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        backgroundColor = kf7f8faColor
+        addSubview(statusButton)
+        addSubview(moneyLabel)
+    }
+    
+    private func setupLayouts() {
+        statusButton.snp.makeConstraints { (make) in
+            make.top.equalTo(30)
+            make.centerX.equalToSuperview()
+        }
+        statusButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 6)
+        moneyLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(statusButton.snp.bottom).offset(8)
+            make.centerX.equalToSuperview()
+        }
+    }
+    
+    lazy var statusButton : UIButton = {
+        let statusButton = UIButton(type: UIButton.ButtonType.custom)
+        statusButton.setImage(kImage(name: ""), for: UIControl.State.normal)
+        statusButton.setTitle("退款中", for: UIControl.State.normal)
+        statusButton.setTitleColor(k333333Color, for: UIControl.State.normal)
+        statusButton.titleLabel?.font = kBoldFont20
+        return statusButton
+    }()
+    
+    lazy var moneyLabel: UILabel = {
+        let moneyLabel = UILabel()
+        moneyLabel.textColor = k999999Color
+        moneyLabel.font = kRegularFont16
+        let str = "退款金额 ¥50"
+        let attributedString = NSMutableAttributedString.init(string: str)
+        let range = str.range(of: "¥50")
+        attributedString.changeForegroundColor(kfe352bColor, range: NSRange(range!, in: "¥50"))
+        attributedString.changeSystemFont(kBoldFont16, range: NSRange(range!, in: "¥50"))
+        moneyLabel.attributedText = attributedString
+        return moneyLabel
+    }()
+
+}

+ 62 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderRefunddetails/View/OrderRefunddetailsTipsTableViewCell.swift

@@ -0,0 +1,62 @@
+//
+//  OrderRefunddetailsTipsTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderRefunddetailsTipsTableViewCell: UITableViewCell {
+
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> UITableViewCell {
+        let ID = "OrderRefunddetailsTipsTableViewCell"
+        tableView.register(OrderRefunddetailsTipsTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderRefunddetailsTipsTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderRefunddetailsTipsTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+        addSubview(tipsLabel)
+    }
+    
+    private func setupLayouts() {
+        tipsLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(16)
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+            make.bottom.equalTo(-16)
+        }
+    }
+
+    lazy var tipsLabel: UILabel = {
+        let tipsLabel = UILabel()
+        tipsLabel.textColor = k999999Color
+        tipsLabel.font = kRegularFont14
+        tipsLabel.numberOfLines = 0
+        let str = "注:您的退款申请已经提交成功!\n彩虹星球会在48小时内处理您的退款信息,请耐心等待,退款将根据支付方式原路退回。"
+        let attributedString = NSMutableAttributedString.init(string: str)
+        attributedString.changeAllLineSpacing(3)
+        tipsLabel.attributedText = attributedString
+        return tipsLabel
+    }()
+}

+ 21 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderRefunddetails/View/OrderRefunddetailsView.swift

@@ -0,0 +1,21 @@
+//
+//  OrderRefunddetailsView.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderRefunddetailsView: BaseView {
+
+    /*
+    // Only override draw() if you perform custom drawing.
+    // An empty implementation adversely affects performance during animation.
+    override func draw(_ rect: CGRect) {
+        // Drawing code
+    }
+    */
+
+}

+ 30 - 0
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderRefunddetails/ViewController/OrderRefunddetailsViewController.swift

@@ -0,0 +1,30 @@
+//
+//  OrderRefunddetailsViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class OrderRefunddetailsViewController: BaseViewController {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+        // Do any additional setup after loading the view.
+    }
+    
+
+    /*
+    // MARK: - Navigation
+
+    // In a storyboard-based application, you will often want to do a little preparation before navigation
+    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+        // Get the new view controller using segue.destination.
+        // Pass the selected object to the new view controller.
+    }
+    */
+
+}

+ 38 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/Cell/ProductDetailProductSku/ProductDetailProductSkuLabelCollectionViewCell.swift

@@ -56,10 +56,48 @@ class ProductDetailProductSkuLabelCollectionViewCell: UICollectionViewCell {
         return titleLabel
     }()
     
+//    var skuModelMainkey : String? {
+//        didSet {
+//            
+//        }
+//    }
+    
     var productDetailSpecValueModel: ProductDetailSpecValueModel? {
         didSet {
             titleLabel.text = productDetailSpecValueModel?.value
+            if productDetailSkuModels?.isEmpty ?? true {
+                self.backgroundColor = kf5f5f5Color
+                self.layer.cornerRadius = 4
+                self.layer.masksToBounds = true
+                self.layer.borderColor = kf5f5f5Color.cgColor
+                self.layer.borderWidth = 1
+                titleLabel.textColor = k666666Color
+                
+            }else {
+                for productDetailSkuModel in productDetailSkuModels! {
+                    if  (productDetailSkuModel.key ?? "").contains("\(productDetailSpecValueModel?.id ?? 0)"){
+                        self.backgroundColor = kf5f5f5Color
+                        self.layer.cornerRadius = 4
+                        self.layer.masksToBounds = true
+                        self.layer.borderColor = kf5f5f5Color.cgColor
+                        self.layer.borderWidth = 1
+                        titleLabel.textColor = k333333Color
+                    }else {
+                        self.backgroundColor = kf5f5f5Color
+                        self.layer.cornerRadius = 4
+                        self.layer.masksToBounds = true
+                        self.layer.borderColor = kf5f5f5Color.cgColor
+                        self.layer.borderWidth = 1
+                        titleLabel.textColor = k999999Color
+                    }
+                }
+            }
         }
     }
     
+    var productDetailSkuModels : [ProductDetailSkuModel]? {
+        didSet {
+            
+        }
+    }
 }

+ 0 - 2
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/Cell/ProductDetailProductSku/ProductDetailProductSkuTableViewCell.swift

@@ -275,6 +275,4 @@ extension ProductDetailProductSkuTableViewCell: UICollectionViewDelegateFlowLayo
             return 0
         }
     }
-
-
 }

RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailHeader/ProductDetailFSPagerViewCell.swift → RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailSkuView/ProductDetailHeader/ProductDetailFSPagerViewCell.swift


RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailHeader/ProductDetailSectionHeader.swift → RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailSkuView/ProductDetailHeader/ProductDetailSectionHeader.swift


RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailHeader/ProductDetailTableViewHeaderView.swift → RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailSkuView/ProductDetailHeader/ProductDetailTableViewHeaderView.swift


+ 142 - 29
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailSkuView/ProductDetailSkuView.swift

@@ -104,42 +104,45 @@ class ProductDetailSkuView: FWPopupView {
             make.centerY.left.equalToSuperview()
         }
         limitLabel.snp.makeConstraints { (make) in
-            make.centerY.left.equalTo(buyNumberLabel)
+            make.centerY.equalTo(buyNumberLabel)
+            make.left.equalTo(buyNumberLabel.snp.right)
         }
         
-        plusButton.snp.makeConstraints { (make) in
+        buyNumberBgView.snp.remakeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.height.equalTo(22)
+            make.width.greaterThanOrEqualTo(10)
+            make.right.equalTo(0)
+        }
+        
+        plusButton.snp.remakeConstraints { (make) in
             make.top.bottom.right.equalToSuperview()
-            make.width.equalTo(buyNumberBgView.height)
+            make.width.equalTo(22)
         }
-        oneVLine.snp.makeConstraints { (make) in
+        oneVLine.snp.remakeConstraints { (make) in
             make.top.bottom.equalToSuperview()
             make.width.equalTo(1)
             make.right.equalTo(plusButton.snp.left)
         }
         
-        numberLabel.snp.makeConstraints { (make) in
+        numberLabel.snp.remakeConstraints { (make) in
             make.top.bottom.equalToSuperview()
             make.width.greaterThanOrEqualTo(36)
             make.right.equalTo(oneVLine.snp.left)
         }
         
-        twoVLine.snp.makeConstraints { (make) in
+        twoVLine.snp.remakeConstraints { (make) in
             make.top.bottom.equalToSuperview()
             make.width.equalTo(1)
             make.right.equalTo(numberLabel.snp.left)
         }
-        reduceButton.snp.makeConstraints { (make) in
+        reduceButton.snp.remakeConstraints { (make) in
             make.top.bottom.equalToSuperview()
             make.right.equalTo(twoVLine.snp.left)
             make.width.equalTo(22)
+            make.left.equalTo(buyNumberBgView)
         }
-        
-        buyNumberBgView.snp.makeConstraints { (make) in
-            make.centerY.equalToSuperview()
-            make.height.equalTo(22)
-            make.right.equalTo(plusButton)
-            make.left.equalTo(reduceButton)
-        }
+
         collectionView.snp.makeConstraints { (make) in
             make.top.equalTo(topBgView.snp.bottom)
             make.bottom.equalTo(bottomBgView.snp.top)
@@ -238,30 +241,62 @@ class ProductDetailSkuView: FWPopupView {
         let buyNumberBgView = UIView()
         buyNumberBgView.cornerRadius = 2
         buyNumberBgView.masksToBounds = true
+        buyNumberBgView.layer.borderColor = kf5f5f5Color.cgColor
+        buyNumberBgView.layer.borderWidth = 1
         return buyNumberBgView
     }()
     
     lazy var plusButton : UIButton = {
         let plusButton = UIButton(type: UIButton.ButtonType.custom)
-        plusButton.setTitle("+", for: UIControl.State.normal)
+        plusButton.setTitle(" + ", for: UIControl.State.normal)
         plusButton.setTitleColor(k333333Color, for: UIControl.State.normal)
         plusButton.titleLabel?.font = kMediumFont13
+        plusButton.contentVerticalAlignment = .center
+        plusButton.contentHorizontalAlignment = .center
+        plusButton.rx.tap.subscribe(onNext: {
+             [weak self](data) in
+            
+            if self?.productDetailModel?.limitNumber ?? 0 > 0 {
+                
+                if self?.productCount ?? 1 <= self?.productDetailModel?.limitNumber ?? 0 && self?.productCount ?? 1 < self?.productDetailSkuModel?.stock ?? 0 {
+                    self?.productCount += 1
+                    self?.numberLabel.text = "\(self?.productCount ?? 0)"
+                }else {
+                    SwiftProgressHUD.shared().showText("该数量已超库存数量",view: self!)
+                }
+            }else {
+                self?.productCount += 1
+                self?.numberLabel.text = "\(self?.productCount ?? 0)"
+            }
+        }).disposed(by: disposeBag)
         return plusButton
     }()
     
     lazy var reduceButton : UIButton = {
         let reduceButton = UIButton(type: UIButton.ButtonType.custom)
-        reduceButton.setTitle("-", for: UIControl.State.normal)
+        reduceButton.setTitle(" - ", for: UIControl.State.normal)
         reduceButton.setTitleColor(k333333Color, for: UIControl.State.normal)
         reduceButton.titleLabel?.font = kMediumFont13
+        reduceButton.contentVerticalAlignment = .center
+        reduceButton.contentHorizontalAlignment = .center
+        reduceButton.rx.tap.subscribe(onNext: {
+            [weak self] (data) in
+            if self?.productCount ?? 1 <= 1 {
+                SwiftProgressHUD.shared().showText("该数量已是最低数量",view: self!)
+            }else {
+                self?.productCount -= 1
+                self?.numberLabel.text = "\(self?.productCount ?? 0)"
+            }
+        }).disposed(by: disposeBag)
         return reduceButton
     }()
     
     lazy var numberLabel : UILabel = {
         let numberLabel = UILabel()
-        numberLabel.text = "  99  "
+        numberLabel.text = "\(productCount)"
         numberLabel.textColor = k333333Color
         numberLabel.font = kMediumFont13
+        numberLabel.textAlignment = .center
         return numberLabel
     }()
     
@@ -279,6 +314,8 @@ class ProductDetailSkuView: FWPopupView {
     
     lazy var sureButton: UIButton = {
         let sureButton = UIButton(type: UIButton.ButtonType.custom)
+        sureButton.setBackgroundImage(UIImage.imageWithColor(color: kFFA42FColor), for: UIControl.State.normal)
+        sureButton.setBackgroundImage(UIImage.imageWithColor(color: kf5f5f5Color), for: UIControl.State.disabled)
         sureButton.backgroundColor = kFFA42FColor
         sureButton.setTitle("确  认", for: UIControl.State.normal)
         sureButton.setTitleColor(UIColor.white, for: UIControl.State.normal)
@@ -286,30 +323,66 @@ class ProductDetailSkuView: FWPopupView {
         return sureButton
     }()
     
+    var skuModelMainkey = ""
+    var skuIdArray : Array<String>?
+    var productCount : Int = 1
+    var productDetailSkuModel : ProductDetailSkuModel?
+    let first = PublishSubject<Int>()
+    let second = PublishSubject<Int>()
+    
     var productDetailModel : ProductDetailModel? {
         didSet {
             productImageView.kf.setImage(with: kURLImage(name: productDetailModel?.img ?? "pic_preload")
                 , placeholder: kImage(name: "pic_preload"))
-            for skuModel in (productDetailModel?.sku)! {
-                if skuModel.isMain == 1 {
-                    priceLabel.text = "¥\(skuModel.price ?? 0)"
-                    stockLabel.text = "库存\(skuModel.stock ?? 0)件"
+            if !(productDetailModel?.sku?.isEmpty ?? true) {
+                for skuModel in (productDetailModel?.sku)! {
+                    if skuModel.isMain == 1 {
+                        priceLabel.text = "¥\(skuModel.price ?? 0)"
+                        stockLabel.text = "库存\(skuModel.stock ?? 0)件"
+                        if productDetailModel?.limitNumber ?? 0 > 0 {
+                            limitLabel.text = "(每人限购\(productDetailModel?.limitNumber ?? 0)件)"
+                            limitLabel.isHidden = false
+                        }else {
+                            limitLabel.isHidden = true
+                        }
+                        if !(productDetailModel?.spec?.isEmpty ?? true) {
+                            skuIdArray = Array<String>.init(repeating: "", count: productDetailModel?.spec?.count ?? 0)
+                            skuIdArray = skuModelMainkey.components(separatedBy: "_")
+                        }
+                        skuModelMainkey = skuModel.key ?? ""
+                        productDetailSkuModel = skuModel
+                    }
                 }
             }
         }
     }
     
+//    func observableString() {
+//        Observable.combineLatest(Observable.just(productCount),Observable.just(productCount)) {
+//             [weak self] (textValue,textValue1) -> Bool in
+//            let textValue = textValue as Int
+//            if textValue > self?.productDetailSkuModel?.stock ?? 0  {
+//                    return false
+//                }else {
+//                    return true
+//                }
+//            }.subscribe(onNext: {
+//                [weak self] isEmpty in
+//                self?.sureButton.isEnabled = isEmpty
+//            }).disposed(by: self.disposeBag)
+//    }
+    
     static func productDetailSkuView(productDetailModel : ProductDetailModel) {
         let view = ProductDetailSkuView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: kScreenHeight - 76 - kNavBarTotalHeight))
         view.productDetailModel = productDetailModel
-        let vProperty = FWPopupViewProperty()
-        vProperty.popupCustomAlignment = .bottomCenter
-        vProperty.popupAnimationType = .frame
-        vProperty.maskViewColor = UIColor(white: 0, alpha: 0.5)
-        vProperty.touchWildToHide = "1"
-        vProperty.popupViewEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
-        vProperty.animationDuration = 0.2
-        view.vProperty = vProperty
+        let vProperty1 = FWPopupViewProperty()
+        vProperty1.popupCustomAlignment = .bottomCenter
+        vProperty1.popupAnimationType = .frame
+        vProperty1.maskViewColor = UIColor(white: 0, alpha: 0.5)
+        vProperty1.touchWildToHide = "1"
+        vProperty1.popupViewEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
+        vProperty1.animationDuration = 0.2
+        view.vProperty = vProperty1
         view.show()
     }
     
@@ -329,11 +402,51 @@ extension ProductDetailSkuView: UICollectionViewDelegateFlowLayout,UICollectionV
     
     func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
         let cell = ProductDetailProductSkuLabelCollectionViewCell.cellWith(collectionView: collectionView, indexPath: indexPath)
+//        cell.skuModelMainkey = skuModelMainkey
+        cell.productDetailSkuModels = productDetailModel?.sku
         cell.productDetailSpecValueModel = (productDetailModel?.spec?[indexPath.section].value?[indexPath.row])!
+
         return cell
         
     }
     
+    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+        let cell = collectionView.cellForItem(at: indexPath) as! ProductDetailProductSkuLabelCollectionViewCell
+        
+//        var tempSkuIdArray = skuIdArray
+//        var tempSkuModelMainkey = skuModelMainkey
+//        tempSkuIdArray![indexPath.section] = "\(cell.productDetailSpecValueModel?.id ?? 0)"
+//        tempSkuModelMainkey = (tempSkuIdArray?.joined(separator: "_"))!
+//
+//        for skuModel in (productDetailModel?.sku)! {
+//            if skuModel.key == skuModelMainkey {
+//                skuIdArray?.removeAll()
+//                skuIdArray = tempSkuIdArray
+//                skuModelMainkey = tempSkuModelMainkey
+//                productDetailSkuModel = skuModel
+//                priceLabel.text = "¥\(skuModel.price ?? 0)"
+//                stockLabel.text = "库存\(skuModel.stock ?? 0)件"
+//
+////                if self.productCount > skuModel.stock ?? 0 {
+////                    if skuModel.stock == 0 {
+////                        numberLabel.text = "1"
+////                    }else {
+////                        numberLabel.text = "\(skuModel.stock ?? 0)"
+////                    }
+////                }else{
+////                    if skuModel.stock == 0 {
+////                        numberLabel.text = "1"
+////                    }else {
+////                        numberLabel.text = "\(self.productCount)"
+////                    }
+////                }
+//                collectionView.reloadSections([indexPath.section])
+//            }else {
+//                SwiftProgressHUD.shared().showText("暂时没有该规格的商品",view: self)
+//            }
+//        }
+    }
+    
     func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
         return UIEdgeInsets(top: 0, left: 14, bottom: 10, right: 14)
     }

+ 5 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailView.swift

@@ -197,7 +197,11 @@ extension ProductDetailView : UITableViewDelegate, UITableViewDataSource {
     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
         switch section {
         case 2:
-            return productCommentListModel?.data?.isEmpty ?? true ? 0 :  1
+            if productCommentListModel != nil {
+                return productCommentListModel?.data?.isEmpty ?? true ? 0 :  1
+            }
+            return 0
+            
         case 5:
             return productDetailModel?.parameter?.isEmpty ?? true ? 0 :  productDetailModel?.parameter?.count ?? 0
         default:

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/ViewController/ProductDetailViewController.swift

@@ -50,7 +50,7 @@ class ProductDetailViewController: BaseViewController {
             [weak self] (page) in
             self?.productDetailApi()
             self?.productListApi()
-            self?.productCommentListApi()
+//            self?.productCommentListApi()
         }
         
         observe = NotificationCenter.default.addObserver(forName: NSNotification.Name("ProductDetailView"), object: nil, queue: OperationQueue.main) {[weak self] (notification) in

+ 0 - 1
RainbowPlanet/RainbowPlanet/Service/Model/ProductModel/ProductDetailModel.swift

@@ -199,7 +199,6 @@ class ProductDetailSpecValueModel : NSObject, Mappable{
     
     var id : Int?
     var value : String?
-    var isMain : Int?
     
     class func newInstance(map: Map) -> Mappable?{
         return ProductDetailSpecValueModel()

RainbowPlanet/RainbowPlanet/Supporting Files/Product.xcassets/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/Contents.json


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_bg.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_bg.imageset/order_bg.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_bg.imageset/order_bg@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_bg.imageset/order_bg@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_coord.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_coord.imageset/order_coord.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_coord.imageset/order_coord@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_coord.imageset/order_coord@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_de.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_de.imageset/order_de.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_de.imageset/order_de@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_de.imageset/order_de@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_done.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_done.imageset/order_done.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_done.imageset/order_done@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_done.imageset/order_done@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_good.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_good.imageset/order_good.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_good.imageset/order_good@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_good.imageset/order_good@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_payment.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_payment.imageset/order_payment.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_payment.imageset/order_payment@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_payment.imageset/order_payment@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick.imageset/order_pick.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick.imageset/order_pick@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick.imageset/order_pick@3x.png


+ 23 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick_been.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick_been.imageset/order_pick_been.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick_been.imageset/order_pick_been@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/OrderModule.xcassets/order_pick_been.imageset/order_pick_been@3x.png


+ 6 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/Contents.json

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

RainbowPlanet/RainbowPlanet/Supporting Files/Product.xcassets/product_detail_top.imageset/Contents.json → RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/product_detail_top.imageset/Contents.json


RainbowPlanet/RainbowPlanet/Supporting Files/Product.xcassets/product_detail_top.imageset/product_detail_top.png → RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/product_detail_top.imageset/product_detail_top.png


RainbowPlanet/RainbowPlanet/Supporting Files/Product.xcassets/product_detail_top.imageset/product_detail_top@2x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/product_detail_top.imageset/product_detail_top@2x.png


RainbowPlanet/RainbowPlanet/Supporting Files/Product.xcassets/product_detail_top.imageset/product_detail_top@3x.png → RainbowPlanet/RainbowPlanet/Supporting Files/ProductModule.xcassets/product_detail_top.imageset/product_detail_top@3x.png


+ 1 - 0
RainbowPlanet/RainbowPlanet/Tools/Extension/Extension+NSRange.swift

@@ -19,4 +19,5 @@ extension NSRange {
         let endIndex = string.index(startIndex, offsetBy: self.length)
         return startIndex..<endIndex
     }
+    
 }

+ 22 - 0
RainbowPlanet/RainbowPlanet/Tools/SwiftProgressHUD/SwiftProgressHUD.swift

@@ -76,6 +76,28 @@ class SwiftProgressHUD: NSObject {
         hud.hide(animated: true, afterDelay: TimeInterval(afterDelay))
 
     }
+    
+    /// 只显示文本
+    ///
+    /// - Parameter title: 显示的标题
+    func showText(_ title: String = "",view:UIView,textAlignment :NSTextAlignment = .center) {
+        hide()
+        let hud = MBProgressHUD.showAdded(to: view, animated: true)
+        hud.mode = .text
+        hud.detailsLabel.text = title
+        hud.detailsLabel.textAlignment = textAlignment
+        hud.detailsLabel.font = kRegularFont15
+        hud.detailsLabel.textColor = UIColor.white
+        hud.bezelView.style = .solidColor
+        hud.bezelView.backgroundColor = UIColor.init(white: 0, alpha: 0.7)
+        hud.animationType = .zoom
+        hud.removeFromSuperViewOnHide = true
+        hud.margin = 10
+        //HUD窗口显示1秒后自动隐藏
+        hud.hide(animated: true, afterDelay: TimeInterval(afterDelay))
+        
+    }
+    
 
     /// 显示成功消息
     ///