Browse Source

Merge branch 'feature/liuxuqing' into develop

南鑫林 6 years ago
parent
commit
b85f74d58e
37 changed files with 2772 additions and 57 deletions
  1. 144 8
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  2. 2 0
      RainbowPlanet/RainbowPlanet/Macro/ColorMacro.swift
  3. 76 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/OrderPayAcountView.swift
  4. 103 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartAccountView.swift
  5. 131 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartFinishPay/ShoppingCartPayFailureCell.swift
  6. 158 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartFinishPay/ShoppingCartPaySuccessCell.swift
  7. 92 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartFinishPayView.swift
  8. 168 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartHotSale/ProductSlidingTopBottomCollectionViewCell.swift
  9. 142 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartHotSale/ShoppingCartHotSaleTableViewCell.swift
  10. 118 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartList/ShoppingCartListNoneItemCell.swift
  11. 204 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartList/ShoppingCartListTableViewCell.swift
  12. 70 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartList/ShoppingCartListTableViewHeader.swift
  13. 107 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/AdressCell/OrderPayExpressAddInfoCell.swift
  14. 144 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/AdressCell/OrderPayExpressInfoShowCell.swift
  15. 96 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/AdressCell/OrderPaySelfPickAddInfoCell.swift
  16. 115 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/AdressCell/OrderPaySelfPickAddressCell.swift
  17. 99 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/AdressCell/OrderPaySelfPickInfoCell.swift
  18. 107 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/ShoppingCartPayOrderFooter.swift
  19. 68 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/ShoppingCartPayOrderHeader.swift
  20. 149 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/ShoppingCartPayOrderItemCell.swift
  21. 127 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPayView.swift
  22. 137 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartView.swift
  23. 53 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/ViewController/ShoppingCartFinishPayController.swift
  24. 53 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/ViewController/ShoppingCartPayOrderController.swift
  25. 36 12
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/ViewController/ShoppingCartViewController.swift
  26. 0 36
      RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/ViewController/ShoppingCartViewController.xib
  27. 1 1
      RainbowPlanet/RainbowPlanet/Service/Model/UserModel/DeliveryMethodTypeModel.swift
  28. 6 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/Contents.json
  29. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/orderPay_separateLine.imageset/Contents.json
  30. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/orderPay_separateLine.imageset/orderPay_separateLine@2x.png
  31. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/orderPay_separateLine.imageset/orderPay_separateLine@3x.png
  32. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_failure.imageset/Contents.json
  33. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_failure.imageset/shopping_cart_trade_failure@2x.png
  34. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_failure.imageset/shopping_cart_trade_failure@3x.png
  35. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_finish.imageset/Contents.json
  36. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_finish.imageset/shopping_cart_trade_finish@2x.png
  37. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_finish.imageset/shopping_cart_trade_finish@3x.png

+ 144 - 8
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -146,7 +146,6 @@
 		A77F2CA02231FE45001BD3F6 /* BaseWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77F2C9F2231FE45001BD3F6 /* BaseWebViewController.swift */; };
 		A77F2CB52232010F001BD3F6 /* ShoppingMallViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77F2CA72232010F001BD3F6 /* ShoppingMallViewController.swift */; };
 		A77F2CB72232010F001BD3F6 /* MineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77F2CAD2232010F001BD3F6 /* MineViewController.swift */; };
-		A77F2CB82232010F001BD3F6 /* ShoppingCartViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A77F2CB22232010F001BD3F6 /* ShoppingCartViewController.xib */; };
 		A77F2CB92232010F001BD3F6 /* ShoppingCartViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77F2CB32232010F001BD3F6 /* ShoppingCartViewController.swift */; };
 		A77F2CC3223203BA001BD3F6 /* AppDelegate+Window.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77F2CC2223203BA001BD3F6 /* AppDelegate+Window.swift */; };
 		A77F2CC722320627001BD3F6 /* WRNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77F2CC522320627001BD3F6 /* WRNavigationBar.swift */; };
@@ -185,7 +184,7 @@
 		A7A98E41228046C5005306E9 /* ShoppingMallSepcialTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A98E40228046C4005306E9 /* ShoppingMallSepcialTableViewCell.swift */; };
 		A7A98E4322804851005306E9 /* ShoppingMallSepcialFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A98E4222804851005306E9 /* ShoppingMallSepcialFlowLayout.swift */; };
 		A7A98E4522804C63005306E9 /* ShoppingMallSepcialCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A98E4422804C63005306E9 /* ShoppingMallSepcialCollectionViewCell.swift */; };
-		A7B4E71A22811F770012914A /* ShoppingCarModoule.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A7B4E71922811F770012914A /* ShoppingCarModoule.xcassets */; };
+		A7B4E71D22812DD70012914A /* ShoppingMallSlidingLeftRightTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B4E71C22812DD70012914A /* ShoppingMallSlidingLeftRightTableViewCell.swift */; };
 		A7B4E71F228131720012914A /* ShoppingMallSlidingLeftRightCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B4E71E228131720012914A /* ShoppingMallSlidingLeftRightCollectionViewCell.swift */; };
 		A7B4E721228151F40012914A /* ProductFloorTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B4E720228151F40012914A /* ProductFloorTitleView.swift */; };
 		A7B4E723228154750012914A /* ProductFloorBannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B4E722228154750012914A /* ProductFloorBannerView.swift */; };
@@ -247,6 +246,29 @@
 		A7D46092227619CD00A5A54E /* BaiduToCityFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D46091227619CC00A5A54E /* BaiduToCityFactory.swift */; };
 		A7D460942276854500A5A54E /* BaiduToCity2Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D460932276854500A5A54E /* BaiduToCity2Model.swift */; };
 		A7DC467F22783A47001F3EFC /* EditExpressAddressTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7DC467E22783A47001F3EFC /* EditExpressAddressTableViewCell.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 */; };
+		BD20F1D32283D0ED00677D8E /* ShoppingCartPaySuccessCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1D22283D0ED00677D8E /* ShoppingCartPaySuccessCell.swift */; };
+		BD20F1D52283D15500677D8E /* ShoppingCartPayFailureCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1D42283D15500677D8E /* ShoppingCartPayFailureCell.swift */; };
+		BD20F1D82283D2AA00677D8E /* ShoppingCartModule.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BD20F1D72283D2AA00677D8E /* ShoppingCartModule.xcassets */; };
+		BD7AB83622841A8B0030646A /* ShoppingCartPayOrderItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD7AB83522841A8B0030646A /* ShoppingCartPayOrderItemCell.swift */; };
+		BD7AB838228420310030646A /* ShoppingCartPayOrderHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD7AB837228420310030646A /* ShoppingCartPayOrderHeader.swift */; };
+		BD7AB83A2284288D0030646A /* ShoppingCartPayOrderFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD7AB8392284288D0030646A /* ShoppingCartPayOrderFooter.swift */; };
+		BD7AB83D228438020030646A /* OrderPayExpressInfoShowCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD7AB83C228438020030646A /* OrderPayExpressInfoShowCell.swift */; };
+		BD7AB83F228438290030646A /* OrderPayExpressAddInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD7AB83E228438290030646A /* OrderPayExpressAddInfoCell.swift */; };
+		BD7AB841228438C80030646A /* OrderPaySelfPickAddressCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD7AB840228438C80030646A /* OrderPaySelfPickAddressCell.swift */; };
+		BD7AB8432284390B0030646A /* OrderPaySelfPickInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD7AB8422284390B0030646A /* OrderPaySelfPickInfoCell.swift */; };
+		BD7AB8452284398A0030646A /* OrderPaySelfPickAddInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD7AB8442284398A0030646A /* OrderPaySelfPickAddInfoCell.swift */; };
+		BDD4FB1222840597006FE833 /* ShoppingCartPayOrderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDD4FB1122840597006FE833 /* ShoppingCartPayOrderController.swift */; };
+		BDD4FB1422840954006FE833 /* ShoppingCartOrderPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDD4FB1322840954006FE833 /* ShoppingCartOrderPayView.swift */; };
+		BDD4FB1722840DD3006FE833 /* OrderPayAcountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDD4FB1622840DD3006FE833 /* OrderPayAcountView.swift */; };
+		BDF47D7A228271F600941AB9 /* ShoppingCartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D79228271F600941AB9 /* ShoppingCartView.swift */; };
+		BDF47D7E22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D7D22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift */; };
+		BDF47D80228288F900941AB9 /* ShoppingCartAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D7F228288F900941AB9 /* ShoppingCartAccountView.swift */; };
+		BDF47D822282B3D100941AB9 /* ShoppingCartHotSaleTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D812282B3D100941AB9 /* ShoppingCartHotSaleTableViewCell.swift */; };
+		BDF47D852282C59F00941AB9 /* ShoppingCartListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D842282C59F00941AB9 /* ShoppingCartListTableViewCell.swift */; };
+		BDF47D872282C92200941AB9 /* ShoppingCartListTableViewHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D862282C92200941AB9 /* ShoppingCartListTableViewHeader.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -419,7 +441,6 @@
 		A77F2C9F2231FE45001BD3F6 /* BaseWebViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseWebViewController.swift; sourceTree = "<group>"; };
 		A77F2CA72232010F001BD3F6 /* ShoppingMallViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShoppingMallViewController.swift; sourceTree = "<group>"; };
 		A77F2CAD2232010F001BD3F6 /* MineViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MineViewController.swift; sourceTree = "<group>"; };
-		A77F2CB22232010F001BD3F6 /* ShoppingCartViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ShoppingCartViewController.xib; sourceTree = "<group>"; };
 		A77F2CB32232010F001BD3F6 /* ShoppingCartViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShoppingCartViewController.swift; sourceTree = "<group>"; };
 		A77F2CC2223203BA001BD3F6 /* AppDelegate+Window.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AppDelegate+Window.swift"; sourceTree = "<group>"; };
 		A77F2CC522320627001BD3F6 /* WRNavigationBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WRNavigationBar.swift; sourceTree = "<group>"; };
@@ -459,6 +480,7 @@
 		A7A98E40228046C4005306E9 /* ShoppingMallSepcialTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingMallSepcialTableViewCell.swift; sourceTree = "<group>"; };
 		A7A98E4222804851005306E9 /* ShoppingMallSepcialFlowLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingMallSepcialFlowLayout.swift; sourceTree = "<group>"; };
 		A7A98E4422804C63005306E9 /* ShoppingMallSepcialCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingMallSepcialCollectionViewCell.swift; sourceTree = "<group>"; };
+		A7B4E71C22812DD70012914A /* ShoppingMallSlidingLeftRightTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingMallSlidingLeftRightTableViewCell.swift; sourceTree = "<group>"; };
 		A7B4E71922811F770012914A /* ShoppingCarModoule.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = ShoppingCarModoule.xcassets; sourceTree = "<group>"; };
 		A7B4E71E228131720012914A /* ShoppingMallSlidingLeftRightCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingMallSlidingLeftRightCollectionViewCell.swift; sourceTree = "<group>"; };
 		A7B4E720228151F40012914A /* ProductFloorTitleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductFloorTitleView.swift; sourceTree = "<group>"; };
@@ -522,7 +544,30 @@
 		A7D460932276854500A5A54E /* BaiduToCity2Model.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaiduToCity2Model.swift; sourceTree = "<group>"; };
 		A7DC467E22783A47001F3EFC /* EditExpressAddressTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditExpressAddressTableViewCell.swift; sourceTree = "<group>"; };
 		A7E03A30F40582782EC5DA89 /* Pods_RainbowPlanetTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RainbowPlanetTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		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>"; };
+		BD20F1D22283D0ED00677D8E /* ShoppingCartPaySuccessCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartPaySuccessCell.swift; sourceTree = "<group>"; };
+		BD20F1D42283D15500677D8E /* ShoppingCartPayFailureCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartPayFailureCell.swift; sourceTree = "<group>"; };
+		BD20F1D72283D2AA00677D8E /* ShoppingCartModule.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = ShoppingCartModule.xcassets; sourceTree = "<group>"; };
+		BD7AB83522841A8B0030646A /* ShoppingCartPayOrderItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartPayOrderItemCell.swift; sourceTree = "<group>"; };
+		BD7AB837228420310030646A /* ShoppingCartPayOrderHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartPayOrderHeader.swift; sourceTree = "<group>"; };
+		BD7AB8392284288D0030646A /* ShoppingCartPayOrderFooter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartPayOrderFooter.swift; sourceTree = "<group>"; };
+		BD7AB83C228438020030646A /* OrderPayExpressInfoShowCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderPayExpressInfoShowCell.swift; sourceTree = "<group>"; };
+		BD7AB83E228438290030646A /* OrderPayExpressAddInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderPayExpressAddInfoCell.swift; sourceTree = "<group>"; };
+		BD7AB840228438C80030646A /* OrderPaySelfPickAddressCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderPaySelfPickAddressCell.swift; sourceTree = "<group>"; };
+		BD7AB8422284390B0030646A /* OrderPaySelfPickInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderPaySelfPickInfoCell.swift; sourceTree = "<group>"; };
+		BD7AB8442284398A0030646A /* OrderPaySelfPickAddInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderPaySelfPickAddInfoCell.swift; sourceTree = "<group>"; };
 		BD9052C044FD3AE4E62D3929 /* Pods-RainbowPlanet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RainbowPlanet.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RainbowPlanet/Pods-RainbowPlanet.debug.xcconfig"; sourceTree = "<group>"; };
+		BDD4FB1122840597006FE833 /* ShoppingCartPayOrderController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartPayOrderController.swift; sourceTree = "<group>"; };
+		BDD4FB1322840954006FE833 /* ShoppingCartOrderPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartOrderPayView.swift; sourceTree = "<group>"; };
+		BDD4FB1622840DD3006FE833 /* OrderPayAcountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderPayAcountView.swift; sourceTree = "<group>"; };
+		BDF47D79228271F600941AB9 /* ShoppingCartView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartView.swift; sourceTree = "<group>"; };
+		BDF47D7D22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductSlidingTopBottomCollectionViewCell.swift; sourceTree = "<group>"; };
+		BDF47D7F228288F900941AB9 /* ShoppingCartAccountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartAccountView.swift; sourceTree = "<group>"; };
+		BDF47D812282B3D100941AB9 /* ShoppingCartHotSaleTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartHotSaleTableViewCell.swift; sourceTree = "<group>"; };
+		BDF47D842282C59F00941AB9 /* ShoppingCartListTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartListTableViewCell.swift; sourceTree = "<group>"; };
+		BDF47D862282C92200941AB9 /* ShoppingCartListTableViewHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartListTableViewHeader.swift; sourceTree = "<group>"; };
 		D469F6C3768252BCB7001EDD /* Pods_RainbowPlanet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RainbowPlanet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 /* End PBXFileReference section */
 
@@ -1560,6 +1605,7 @@
 			isa = PBXGroup;
 			children = (
 				A7284A672253BE35000BAEC4 /* Reactor */,
+				BDF47D782282645900941AB9 /* View */,
 				A77F2CB12232010F001BD3F6 /* ViewController */,
 			);
 			path = ShoppingCart;
@@ -1568,8 +1614,9 @@
 		A77F2CB12232010F001BD3F6 /* ViewController */ = {
 			isa = PBXGroup;
 			children = (
-				A77F2CB22232010F001BD3F6 /* ShoppingCartViewController.xib */,
 				A77F2CB32232010F001BD3F6 /* ShoppingCartViewController.swift */,
+				BDD4FB1122840597006FE833 /* ShoppingCartPayOrderController.swift */,
+				BD20F1CC2283C51300677D8E /* ShoppingCartFinishPayController.swift */,
 			);
 			path = ViewController;
 			sourceTree = "<group>";
@@ -1579,8 +1626,8 @@
 			children = (
 				A77F2C672231FB4A001BD3F6 /* Assets.xcassets */,
 				A71AF0BD226F1792001730FE /* ShoppingMallModule.xcassets */,
+				BD20F1D72283D2AA00677D8E /* ShoppingCartModule.xcassets */,
 				A7CC74DD22703B4A003C4F38 /* MineModule.xcassets */,
-				A7B4E71922811F770012914A /* ShoppingCarModoule.xcassets */,
 				A729B5A92266F6FD004AE098 /* Launch Screen.storyboard */,
 				A77F2C6C2231FB4A001BD3F6 /* Info.plist */,
 			);
@@ -2134,6 +2181,73 @@
 			path = FMDB;
 			sourceTree = "<group>";
 		};
+		BD20F1D12283D09E00677D8E /* ShoppingCartFinishPay */ = {
+			isa = PBXGroup;
+			children = (
+				BD20F1D22283D0ED00677D8E /* ShoppingCartPaySuccessCell.swift */,
+				BD20F1D42283D15500677D8E /* ShoppingCartPayFailureCell.swift */,
+			);
+			path = ShoppingCartFinishPay;
+			sourceTree = "<group>";
+		};
+		BD7AB83B228437940030646A /* AdressCell */ = {
+			isa = PBXGroup;
+			children = (
+				BD7AB83C228438020030646A /* OrderPayExpressInfoShowCell.swift */,
+				BD7AB83E228438290030646A /* OrderPayExpressAddInfoCell.swift */,
+				BD7AB8442284398A0030646A /* OrderPaySelfPickAddInfoCell.swift */,
+				BD7AB840228438C80030646A /* OrderPaySelfPickAddressCell.swift */,
+				BD7AB8422284390B0030646A /* OrderPaySelfPickInfoCell.swift */,
+			);
+			path = AdressCell;
+			sourceTree = "<group>";
+		};
+		BDD4FB1522840A69006FE833 /* ShoppingCartOrderPay */ = {
+			isa = PBXGroup;
+			children = (
+				BD7AB83B228437940030646A /* AdressCell */,
+				BD7AB837228420310030646A /* ShoppingCartPayOrderHeader.swift */,
+				BD7AB8392284288D0030646A /* ShoppingCartPayOrderFooter.swift */,
+				BD7AB83522841A8B0030646A /* ShoppingCartPayOrderItemCell.swift */,
+			);
+			path = ShoppingCartOrderPay;
+			sourceTree = "<group>";
+		};
+		BDF47D782282645900941AB9 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				BDF47D882282D94D00941AB9 /* ShoppingCartList */,
+				BDF47D832282BF4300941AB9 /* ShoppingCartHotSale */,
+				BDD4FB1522840A69006FE833 /* ShoppingCartOrderPay */,
+				BD20F1D12283D09E00677D8E /* ShoppingCartFinishPay */,
+				BDF47D79228271F600941AB9 /* ShoppingCartView.swift */,
+				BDF47D7F228288F900941AB9 /* ShoppingCartAccountView.swift */,
+				BDD4FB1322840954006FE833 /* ShoppingCartOrderPayView.swift */,
+				BDD4FB1622840DD3006FE833 /* OrderPayAcountView.swift */,
+				BD20F1CE2283CE2300677D8E /* ShoppingCartFinishPayView.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		BDF47D832282BF4300941AB9 /* ShoppingCartHotSale */ = {
+			isa = PBXGroup;
+			children = (
+				BDF47D812282B3D100941AB9 /* ShoppingCartHotSaleTableViewCell.swift */,
+				BDF47D7D22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift */,
+			);
+			path = ShoppingCartHotSale;
+			sourceTree = "<group>";
+		};
+		BDF47D882282D94D00941AB9 /* ShoppingCartList */ = {
+			isa = PBXGroup;
+			children = (
+				BDF47D862282C92200941AB9 /* ShoppingCartListTableViewHeader.swift */,
+				BDF47D842282C59F00941AB9 /* ShoppingCartListTableViewCell.swift */,
+				BD20F1CA2283C12000677D8E /* ShoppingCartListNoneItemCell.swift */,
+			);
+			path = ShoppingCartList;
+			sourceTree = "<group>";
+		};
 		FA8AAFBADE8BD144A5C36FDB /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
@@ -2224,7 +2338,7 @@
 			attributes = {
 				LastSwiftUpdateCheck = 1010;
 				LastUpgradeCheck = 1010;
-				ORGANIZATIONNAME = "南鑫林";
+				ORGANIZATIONNAME = RainbowPlanet;
 				TargetAttributes = {
 					A77F2C5C2231FB49001BD3F6 = {
 						CreatedOnToolsVersion = 10.1;
@@ -2276,13 +2390,12 @@
 			buildActionMask = 2147483647;
 			files = (
 				A7CC74DE22703B4A003C4F38 /* MineModule.xcassets in Resources */,
-				A77F2CB82232010F001BD3F6 /* ShoppingCartViewController.xib in Resources */,
-				A7B4E71A22811F770012914A /* ShoppingCarModoule.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 */,
+				BD20F1D82283D2AA00677D8E /* ShoppingCartModule.xcassets in Resources */,
 				A7778C9922438F5D00C7C47A /* README.txt in Resources */,
 				A729B5AA2266F6FD004AE098 /* Launch Screen.storyboard in Resources */,
 			);
@@ -2432,7 +2545,9 @@
 			files = (
 				A72A72BA22321DE000B21995 /* Extension+String.swift in Sources */,
 				A77F2CA02231FE45001BD3F6 /* BaseWebViewController.swift in Sources */,
+				BD20F1D52283D15500677D8E /* ShoppingCartPayFailureCell.swift in Sources */,
 				A72A72C022321DE000B21995 /* Extension+UIView.swift in Sources */,
+				BD7AB83A2284288D0030646A /* ShoppingCartPayOrderFooter.swift in Sources */,
 				A72A72C522321DE000B21995 /* WKWebViewConfig.swift in Sources */,
 				A72A72BB22321DE000B21995 /* Extension+UILabel.swift in Sources */,
 				A77F2C9E2231FDDC001BD3F6 /* BaseViewController.swift in Sources */,
@@ -2445,9 +2560,12 @@
 				A7B4E7352281907A0012914A /* CMSModel.swift in Sources */,
 				A72A72BE22321DE000B21995 /* Extension+RxTimer.swift in Sources */,
 				A7CC74EA22706ACD003C4F38 /* MessageViewController.swift in Sources */,
+				BDF47D7E22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift in Sources */,
+				BD7AB83D228438020030646A /* OrderPayExpressInfoShowCell.swift in Sources */,
 				A72A72C422321DE000B21995 /* Extension+CAGradientLayer.swift in Sources */,
 				A7778CA72243A05400C7C47A /* IQKeyboardManagerSwiftManager.swift in Sources */,
 				A7B4E738228191CC0012914A /* CommondModel.swift in Sources */,
+				BD7AB841228438C80030646A /* OrderPaySelfPickAddressCell.swift in Sources */,
 				A7CC74D4226FF1AA003C4F38 /* MineView.swift in Sources */,
 				A71AA5152272160A008FF1A5 /* ExpressAddressListTableViewCell.swift in Sources */,
 				A72A72B722321DE000B21995 /* Extension+NSMutableAttributedString.swift in Sources */,
@@ -2456,6 +2574,7 @@
 				A7284A7322546460000BAEC4 /* SwiftMoyaServicePayApi.swift in Sources */,
 				A7A98DFF227E8501005306E9 /* SwiftMoyaNetWorkServiceProduct.swift in Sources */,
 				A7CC74DC2270352F003C4F38 /* MineOrderCollectionViewCell.swift in Sources */,
+				BDD4FB1222840597006FE833 /* ShoppingCartPayOrderController.swift in Sources */,
 				A7284404224DBFBD00F82F30 /* UserModel.swift in Sources */,
 				A7CC74D822700359003C4F38 /* MineTableViewHeaderView.swift in Sources */,
 				A71D2A602265673A00A55D16 /* RegisterLoginView.swift in Sources */,
@@ -2471,10 +2590,14 @@
 				A7A98E12227ECA11005306E9 /* ProductSearchModel.swift in Sources */,
 				A71AF0B0226EF185001730FE /* SearchCollectionViewCell.swift in Sources */,
 				A7A98E1D227EF1CB005306E9 /* SpecialBannerView.swift in Sources */,
+				BDF47D852282C59F00941AB9 /* ShoppingCartListTableViewCell.swift in Sources */,
 				A77F2CCA223209F2001BD3F6 /* BaseTabbarViewController.swift in Sources */,
 				A7CC75332271ABB0003C4F38 /* AddressManagerViewController.swift in Sources */,
 				A7CC750D227157DA003C4F38 /* MessageDetailesView.swift in Sources */,
+				A7B4E72B2281752B0012914A /* ShoppingMallBarChartTableViewCell.swift in Sources */,
+				BD7AB83622841A8B0030646A /* ShoppingCartPayOrderItemCell.swift in Sources */,
 				A71AA519227219D7008FF1A5 /* EditExpressAddressViewController.swift in Sources */,
+				BD20F1CD2283C51300677D8E /* ShoppingCartFinishPayController.swift in Sources */,
 				A729B5B022671310004AE098 /* MobileLoginView.swift in Sources */,
 				A71AA50C2272126A008FF1A5 /* EditAddressFooterView.swift in Sources */,
 				A7CC7528227196C4003C4F38 /* AccountSecuritySetTableViewCell.swift in Sources */,
@@ -2486,6 +2609,7 @@
 				A71AA51F22729F35008FF1A5 /* AuthorizationSwift.swift in Sources */,
 				A7A98E3622802AD7005306E9 /* ShoppingMallBannerFSPagerViewCell.swift in Sources */,
 				A7824AFD2271EAC900ABA381 /* SelfMentionContactsListTableViewCell.swift in Sources */,
+				BD7AB83F228438290030646A /* OrderPayExpressAddInfoCell.swift in Sources */,
 				A7CC74DA22702E41003C4F38 /* MineOrderTableViewCell.swift in Sources */,
 				A77F2CB92232010F001BD3F6 /* ShoppingCartViewController.swift in Sources */,
 				A72A72B822321DE000B21995 /* Extension+UserDefaults.swift in Sources */,
@@ -2518,6 +2642,7 @@
 				A7CC7526227196A8003C4F38 /* AccountSecurityTableViewCell.swift in Sources */,
 				A7CC74F122706FE3003C4F38 /* MessageOneCollectionViewCell.swift in Sources */,
 				A72A72D622321E2700B21995 /* ThirdPartyMacro.swift in Sources */,
+				BDF47D80228288F900941AB9 /* ShoppingCartAccountView.swift in Sources */,
 				A7284401224DBB7700F82F30 /* SwiftMoyaNetWorkServiceUser.swift in Sources */,
 				A7B4E728228160BA0012914A /* ShoppingMallRightSideleftPictureCollectionViewCell.swift in Sources */,
 				A72843FC224DB6B800F82F30 /* SwiftMoyaServiceUserApi.swift in Sources */,
@@ -2532,11 +2657,14 @@
 				A7A98E41228046C5005306E9 /* ShoppingMallSepcialTableViewCell.swift in Sources */,
 				A7CC753A2271B98B003C4F38 /* AddressManagerAddTableViewCell.swift in Sources */,
 				A71AF0AC226EDE37001730FE /* SearchNavigationbarView.swift in Sources */,
+				BDD4FB1422840954006FE833 /* ShoppingCartOrderPayView.swift in Sources */,
 				A7CC75432271E038003C4F38 /* SelfMentionContactsListViewController.swift in Sources */,
+				BDF47D872282C92200941AB9 /* ShoppingCartListTableViewHeader.swift in Sources */,
 				A7778CDF22461BAD00C7C47A /* PhoneCountryAreaSectionHeaderView.swift in Sources */,
 				A7A98E2D22801642005306E9 /* SwiftMoyaServiceCMSApi.swift in Sources */,
 				A7A98E3122801B10005306E9 /* ShoppingMallListView.swift in Sources */,
 				A7CC751A22716254003C4F38 /* SetTableViewCell.swift in Sources */,
+				BD20F1D32283D0ED00677D8E /* ShoppingCartPaySuccessCell.swift in Sources */,
 				A71AA52822732173008FF1A5 /* SwiftMoyaNetWorkServiceConfig.swift in Sources */,
 				A775CC0322377C6500EBDCF8 /* EmptyView.swift in Sources */,
 				A72A72A922321DE000B21995 /* NumberKeyboard.swift in Sources */,
@@ -2553,6 +2681,7 @@
 				A7A98E02227E8900005306E9 /* ProductSearchListModel.swift in Sources */,
 				A7A98E17227EED76005306E9 /* SpecialViewController.swift in Sources */,
 				A7778CB32244D73400C7C47A /* RegisterLoginViewController.swift in Sources */,
+				BD7AB8432284390B0030646A /* OrderPaySelfPickInfoCell.swift in Sources */,
 				A7CC752F2271A1F2003C4F38 /* SetPasswordView.swift in Sources */,
 				A7A98E09227EB8DD005306E9 /* CategoryView.swift in Sources */,
 				A7CC75362271AC14003C4F38 /* AddressManagerView.swift in Sources */,
@@ -2598,6 +2727,7 @@
 				A71AA52622732068008FF1A5 /* SwiftMoyaServiceConfigApi.swift in Sources */,
 				A77F2C982231FD25001BD3F6 /* BaseNavigationViewController.swift in Sources */,
 				A7A98E1B227EEE49005306E9 /* SpecialView.swift in Sources */,
+				BDF47D7A228271F600941AB9 /* ShoppingCartView.swift in Sources */,
 				A7824AFB2271EA2600ABA381 /* SelfMentionContactsListView.swift in Sources */,
 				A72A72AB22321DE000B21995 /* SwiftProgressHUD.swift in Sources */,
 				A7CC751C22716426003C4F38 /* SetLogoutTableViewCell.swift in Sources */,
@@ -2616,14 +2746,19 @@
 				A72A726722321DBD00B21995 /* LocationModel.swift in Sources */,
 				A7A98E10227EC531005306E9 /* ProductHSmallTableViewCell.swift in Sources */,
 				A7A98DFD227E84F4005306E9 /* SwiftMoyaServiceProductApi.swift in Sources */,
+				BD7AB8452284398A0030646A /* OrderPaySelfPickAddInfoCell.swift in Sources */,
 				A72A72D222321E2700B21995 /* Common.swift in Sources */,
 				A71AF0A6226EDDC8001730FE /* SearchViewController.swift in Sources */,
+				BD20F1CF2283CE2300677D8E /* ShoppingCartFinishPayView.swift in Sources */,
 				A7A98E4322804851005306E9 /* ShoppingMallSepcialFlowLayout.swift in Sources */,
 				A79057062276EA3D0037F823 /* OpenCityListModel.swift in Sources */,
+				BD7AB838228420310030646A /* ShoppingCartPayOrderHeader.swift in Sources */,
 				A7824B002271F0DD00ABA381 /* EditSelfMentionContactsViewController.swift in Sources */,
 				A7CC751F227190C5003C4F38 /* AccountSecurityViewController.swift in Sources */,
 				A7284440224DFACD00F82F30 /* InfoModel.swift in Sources */,
 				A72A72B522321DE000B21995 /* Extension+UITextView.swift in Sources */,
+				BDF47D822282B3D100941AB9 /* ShoppingCartHotSaleTableViewCell.swift in Sources */,
+				BD20F1CB2283C12000677D8E /* ShoppingCartListNoneItemCell.swift in Sources */,
 				A7B4E756228281620012914A /* ShoppingMallSlidingLeftRightBgCollectionViewCell.swift in Sources */,
 				A757C92E22744ACE00226355 /* AddressManagerListModel.swift in Sources */,
 				A7541502224C5ECB002480B5 /* BaiduMapManager.swift in Sources */,
@@ -2642,6 +2777,7 @@
 				A72A72CF22321E2700B21995 /* NotificationCenterMacro.swift in Sources */,
 				A72A72BF22321DE000B21995 /* Extension+UIButton.swift in Sources */,
 				A71901702275EF9900104A50 /* NXLRealm.swift in Sources */,
+				BDD4FB1722840DD3006FE833 /* OrderPayAcountView.swift in Sources */,
 				A7CC753C2271C177003C4F38 /* AddressManagerSelfMentionTableViewCell.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;

+ 2 - 0
RainbowPlanet/RainbowPlanet/Macro/ColorMacro.swift

@@ -105,3 +105,5 @@ let kFE5706Color = UIColor(hexString: "FE5706")
 let kFFF1EBColor = UIColor(hexString: "FFF1EB")
 
 let kD2D3D5Color = UIColor(hexString: "D2D3D5")
+
+let kfee5e4Color = UIColor(hexString: "fee5e4")

+ 76 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/OrderPayAcountView.swift

@@ -0,0 +1,76 @@
+//
+//  OrderPayAcountView.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  订单支付--结算View
+
+import UIKit
+import RxSwift
+import RxCocoa
+
+class OrderPayAcountView: BaseView {
+    
+    override func setupViews() {
+        self.backgroundColor = kffffffColor
+        addSubview(accountBtn)
+        addSubview(priceLabel)
+        addSubview(prePriceLabel)
+    }
+    
+    override func setupLayouts() {
+        accountBtn.snp.makeConstraints { (make) in
+            make.right.equalToSuperview().offset(-14)
+            make.centerY.equalToSuperview()
+            make.width.equalTo(100)
+            make.height.equalTo(37)
+        }
+        
+        priceLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.right.equalTo(accountBtn.snp_left).offset(-12)
+            make.height.equalTo(25)
+        }
+        
+        prePriceLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.right.equalTo(priceLabel.snp_left).offset(-1)
+        }
+        
+    }
+    
+    private lazy var accountBtn: UIButton = {
+        let accountBtn = UIButton(type: UIButton.ButtonType.custom)
+        accountBtn.backgroundColor = kFFA42FColor
+        accountBtn.setTitle("提交订单", for: UIControl.State.normal)
+        accountBtn.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        accountBtn.titleLabel?.font = kScaleRegularFont15
+        accountBtn.cornerRadius = 18
+        accountBtn.masksToBounds = true
+        accountBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
+            //            if let forgetPasswordBlock = self?.forgetPasswordBlock {
+            //                forgetPasswordBlock()
+            //            }
+            print("点击了提交订单")
+        }).disposed(by: disposeBag)
+        return accountBtn
+    }()
+    
+    private lazy var priceLabel: UILabel = {
+        let priceLabel = UILabel()
+        priceLabel.text = "¥324"
+        priceLabel.textColor = kFE352BColor
+        priceLabel.font = kScaleBoldFont18
+        return priceLabel
+    }()
+    
+    private lazy var prePriceLabel: UILabel = {
+        let prePriceLabel = UILabel()
+        prePriceLabel.text = "合计"
+        prePriceLabel.textColor = k333333Color
+        prePriceLabel.font = kScaleRegularFont16
+        return prePriceLabel
+    }()
+    
+}

+ 103 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartAccountView.swift

@@ -0,0 +1,103 @@
+//
+//  ShoppingCartAccountView.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/8.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  购物车--首页结算View
+
+import UIKit
+import RxSwift
+import RxCocoa
+
+class ShoppingCartAccountView: BaseView {
+    
+    override func setupViews() {
+        self.backgroundColor = kffffffColor
+        addSubview(allSelectBtn)
+        addSubview(accountBtn)
+        addSubview(priceLabel)
+        addSubview(prePriceLabel)
+    }
+    
+    override func setupLayouts() {
+        allSelectBtn.snp.makeConstraints { (make) in
+            make.left.equalToSuperview().offset(10)
+            make.centerY.equalToSuperview()
+            make.height.equalTo(30)
+            make.width.equalTo(54)
+        }
+
+        accountBtn.snp.makeConstraints { (make) in
+            make.right.equalToSuperview().offset(-14)
+            make.centerY.equalToSuperview()
+            make.width.equalTo(100)
+            make.height.equalTo(37)
+        }
+
+        priceLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.right.equalTo(accountBtn.snp_left).offset(-12)
+            make.height.equalTo(25)
+        }
+
+        prePriceLabel.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.right.equalTo(priceLabel.snp_left).offset(-1)
+        }
+        
+    }
+    
+    private lazy var allSelectBtn: UIButton = {
+        let allSelectBtn = UIButton(type: UIButton.ButtonType.custom)
+        allSelectBtn.setTitle("全选", for: UIControl.State.normal)
+        allSelectBtn.setTitleColor(k333333Color, for: UIControl.State.normal)
+        allSelectBtn.setTitleColor(k666666Color, for: UIControl.State.selected)
+        allSelectBtn.setImage(UIImage.imageWithColor(color: kDisabledButtonColor), for: UIControl.State.selected)
+        allSelectBtn.setImage(UIImage.imageWithColor(color: kEnabledButtonColor), for: UIControl.State.normal)
+        allSelectBtn.titleLabel?.font = kScaleRegularFont16
+        allSelectBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
+            
+//            if let loginBlock = self?.loginBlock {
+//                loginBlock((self?.phoneNumber)!,(self?.password)!)
+//            }
+            print("点击了全选")
+            
+        }).disposed(by: disposeBag)
+        return allSelectBtn
+    }()
+    
+    private lazy var accountBtn: UIButton = {
+        let accountBtn = UIButton(type: UIButton.ButtonType.custom)
+        accountBtn.backgroundColor = kFFA42FColor
+        accountBtn.setTitle("结算(0)", for: UIControl.State.normal)
+        accountBtn.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        accountBtn.titleLabel?.font = kScaleRegularFont15
+        accountBtn.cornerRadius = 18
+        accountBtn.masksToBounds = true
+        accountBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
+//            if let forgetPasswordBlock = self?.forgetPasswordBlock {
+//                forgetPasswordBlock()
+//            }
+            print("点击了结算")
+        }).disposed(by: disposeBag)
+        return accountBtn
+    }()
+    
+    private lazy var priceLabel: UILabel = {
+        let priceLabel = UILabel()
+        priceLabel.text = "¥0.00"
+        priceLabel.textColor = kFE352BColor
+        priceLabel.font = kScaleBoldFont18
+        return priceLabel
+    }()
+    
+    private lazy var prePriceLabel: UILabel = {
+        let prePriceLabel = UILabel()
+        prePriceLabel.text = "合计"
+        prePriceLabel.textColor = k333333Color
+        prePriceLabel.font = kScaleRegularFont16
+        return prePriceLabel
+    }()
+    
+}

+ 131 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartFinishPay/ShoppingCartPayFailureCell.swift

@@ -0,0 +1,131 @@
+//
+//  ShoppingCartPayFailureCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  购物车--支付失败Cell
+
+import UIKit
+import RxSwift
+import RxCocoa
+
+class ShoppingCartPayFailureCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> ShoppingCartPayFailureCell {
+        let ID = "ShoppingCartPayFailureCell"
+        tableView.register(ShoppingCartPayFailureCell.self, forCellReuseIdentifier: ID)
+        let cell : ShoppingCartPayFailureCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! ShoppingCartPayFailureCell
+        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(statusImageView)
+        addSubview(titleLabel)
+        addSubview(describeLabel)
+        addSubview(jumpButton)
+    }
+    
+    private func setupLayouts() {
+        statusImageView.snp.makeConstraints { (make) in
+            make.top.equalTo(32)
+            make.centerX.equalToSuperview()
+            make.size.equalTo(50)
+        }
+        
+        titleLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(statusImageView.snp.bottom).offset(20)
+            make.centerX.equalToSuperview()
+            make.height.equalTo(31)
+        }
+        
+        describeLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(titleLabel.snp.bottom).offset(12)
+            make.centerX.equalToSuperview()
+            make.height.equalTo(19)
+        }
+        
+        jumpButton.snp.makeConstraints { (make) in
+            make.top.equalTo(describeLabel.snp.bottom).offset(20)
+            make.bottom.equalToSuperview().offset(-30)
+            make.centerX.equalToSuperview()
+            make.left.equalTo(24)
+            make.right.equalTo(-24)
+        }
+        
+    }
+    
+    lazy var statusImageView : UIImageView = {
+        let statusImageView = UIImageView()
+        statusImageView.image = kImage(name: "shopping_cart_trade_failure")
+        return statusImageView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "支付失败"
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kBoldFont22
+        titleLabel.textAlignment = .center
+        return titleLabel
+    }()
+    
+    private lazy var describeLabel: UILabel = {
+        let describeLabel = UILabel()
+        describeLabel.text = "20秒未支付,系统自动判断失败"
+        describeLabel.textColor = k666666Color
+        describeLabel.font = kRegularFont13
+        describeLabel.textAlignment = .center
+        return describeLabel
+    }()
+    
+    private lazy var jumpButton: UIButton = {
+        let jumpButton = UIButton(type: UIButton.ButtonType.custom)
+        jumpButton.backgroundColor = kFFA42FColor
+        jumpButton.setTitle("重新支付", for: UIControl.State.normal)
+        jumpButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        jumpButton.titleLabel?.font = kRegularFont16
+        jumpButton.cornerRadius = 18
+        jumpButton.masksToBounds = true
+        //        jumpButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+        //            //            if let forgetPasswordBlock = self?.forgetPasswordBlock {
+        //            //                forgetPasswordBlock()
+        //            //            }
+        //            print("点击了跳转到首页")
+        //        }).disposed(by: disposeBag)
+        return jumpButton
+    }()
+    
+}

+ 158 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartFinishPay/ShoppingCartPaySuccessCell.swift

@@ -0,0 +1,158 @@
+//
+//  ShoppingCartPaySuccessCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  购物车--支付成功Cell
+
+import UIKit
+import RxSwift
+import RxCocoa
+
+class ShoppingCartPaySuccessCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> ShoppingCartPaySuccessCell {
+        let ID = "ShoppingCartPaySuccessCell"
+        tableView.register(ShoppingCartPaySuccessCell.self, forCellReuseIdentifier: ID)
+        let cell : ShoppingCartPaySuccessCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! ShoppingCartPaySuccessCell
+        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(statusImageView)
+        addSubview(titleLabel)
+        addSubview(describeLabel)
+        addSubview(jumpButton)
+        addSubview(orderButton)
+    }
+    
+    private func setupLayouts() {
+        statusImageView.snp.makeConstraints { (make) in
+            make.top.equalTo(32)
+            make.centerX.equalToSuperview()
+            make.size.equalTo(50)
+        }
+        
+        titleLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(statusImageView.snp.bottom).offset(20)
+            make.centerX.equalToSuperview()
+            make.height.equalTo(31)
+        }
+        
+        describeLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(titleLabel.snp.bottom).offset(12)
+            make.centerX.equalToSuperview()
+            make.height.equalTo(19)
+        }
+        
+        jumpButton.snp.makeConstraints { (make) in
+            make.top.equalTo(describeLabel.snp.bottom).offset(20)
+            make.bottom.equalToSuperview().offset(-73)
+            make.centerX.equalToSuperview()
+            make.left.equalTo(24)
+            make.right.equalTo(-24)
+        }
+        
+        orderButton.snp.makeConstraints { (make) in
+            make.top.equalTo(jumpButton.snp.bottom).offset(20)
+            make.right.equalTo(-24)
+            make.width.equalTo(56)
+            make.height.equalTo(24)
+        }
+        
+        orderButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.bottom, imageTitleSpace: 2)
+        
+    }
+    
+    lazy var statusImageView : UIImageView = {
+        let statusImageView = UIImageView()
+        statusImageView.image = kImage(name: "shopping_cart_trade_finish")
+        return statusImageView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "支付完成"
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kBoldFont22
+        titleLabel.textAlignment = .center
+        return titleLabel
+    }()
+    
+    private lazy var describeLabel: UILabel = {
+        let describeLabel = UILabel()
+        describeLabel.text = "订单整装待发,请注意查收!"
+        describeLabel.textColor = k666666Color
+        describeLabel.font = kRegularFont13
+        describeLabel.textAlignment = .center
+        return describeLabel
+    }()
+    
+    private lazy var jumpButton: UIButton = {
+        let jumpButton = UIButton(type: UIButton.ButtonType.custom)
+        jumpButton.backgroundColor = kFFA42FColor
+        jumpButton.setTitle("继续逛一逛", for: UIControl.State.normal)
+        jumpButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        jumpButton.titleLabel?.font = kRegularFont16
+        jumpButton.cornerRadius = 18
+        jumpButton.masksToBounds = true
+        //        jumpButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+        //            //            if let forgetPasswordBlock = self?.forgetPasswordBlock {
+        //            //                forgetPasswordBlock()
+        //            //            }
+        //            print("点击了跳转到首页")
+        //        }).disposed(by: disposeBag)
+        return jumpButton
+    }()
+    
+    private lazy var orderButton: UIButton = {
+        let orderButton = UIButton(type: UIButton.ButtonType.custom)
+        orderButton.backgroundColor = kffffffColor
+        orderButton.setTitle("查看订单", for: UIControl.State.normal)
+        orderButton.setTitleColor(k333333Color, for: UIControl.State.normal)
+        orderButton.setImage(UIImage.imageWithColor(color: k333333Color), for: UIControl.State.normal)
+        orderButton.titleLabel?.font = kRegularFont14
+        
+//        orderButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+//            //            if let forgetPasswordBlock = self?.forgetPasswordBlock {
+//            //                forgetPasswordBlock()
+//            //            }
+//            print("点击了跳转到首页")
+//        }).disposed(by: disposeBag)
+        return orderButton
+    }()
+    
+}

+ 92 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartFinishPayView.swift

@@ -0,0 +1,92 @@
+//
+//  ShoppingCartFinishPayView.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  购物车--支付完成View
+
+import UIKit
+
+class ShoppingCartFinishPayView: BaseView {
+    
+    override func setupViews() {
+        self.backgroundColor = kf7f8faColor
+        addSubview(tableView)
+        let emptyView =  EmptyView.shared.diyCustomEmptyViewStyle2(iconStr: "page04", titleStr: "当前暂无数据")
+        emptyView.contentViewY = kScaleValue(value: 182)
+        tableView.ly_emptyView = emptyView
+        tableView.ly_startLoading()
+    }
+    
+    override func setupLayouts() {
+        tableView.snp.makeConstraints { (make) in
+            make.edges.equalToSuperview()
+        }
+    }
+    
+    lazy var tableView: UITableView = {
+        let tableView = UITableView(frame: CGRect.zero, style: UITableView.Style.grouped)
+        tableView.separatorStyle = .none
+        tableView.backgroundColor = kf7f8faColor
+        tableView.dataSource = self
+        tableView.delegate = self
+        tableView.estimatedRowHeight = 0.000001
+        tableView.estimatedSectionFooterHeight = 0.000001
+        tableView.estimatedSectionHeaderHeight = 0.000001
+        return tableView
+    }()
+    
+}
+
+extension ShoppingCartFinishPayView : UITableViewDelegate, UITableViewDataSource {
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return 2
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return 1
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        switch indexPath.section {
+        case 0:
+            // 支付成功
+            let cell = ShoppingCartPaySuccessCell.cellWith(tableView: tableView, indexPath: indexPath)
+            // 支付失败
+//            let cell = ShoppingCartPayFailureCell.cellWith(tableView: tableView, indexPath: indexPath)
+            return cell
+        case 1:
+            let cell = ShoppingCartHotSaleTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            cell.frame = tableView.bounds
+            cell.layoutIfNeeded()
+            cell.reloadData()
+            return cell
+            
+        default:
+            return UITableViewCell()
+        }
+        
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        return  UITableView.automaticDimension
+    }
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        return 10
+    }
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0.000001
+    }
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+}

+ 168 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartHotSale/ProductSlidingTopBottomCollectionViewCell.swift

@@ -0,0 +1,168 @@
+//
+//  ProductSlidingTopBottomCollectionViewCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/8.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class ProductSlidingTopBottomCollectionViewCell: UICollectionViewCell {
+    class func cellWith(collectionView:UICollectionView,indexPath:IndexPath) -> ProductSlidingTopBottomCollectionViewCell {
+        let ID = "ProductSlidingTopBottomCollectionViewCell"
+        collectionView.register(ProductSlidingTopBottomCollectionViewCell.self, forCellWithReuseIdentifier: ID)
+        let cell : ProductSlidingTopBottomCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: ID, for: indexPath) as! ProductSlidingTopBottomCollectionViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    //MARK: - indexPath
+    var indexPath: IndexPath?{
+        didSet {
+            
+        }
+    }
+    //MARK: - 初始化
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        backgroundColor = UIColor.white
+        cornerRadius = 4
+        masksToBounds = true
+        setupViews()
+        setupLayouts()
+        
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    //MRAK: - 设置View
+    private func setupViews() {
+        addSubview(iconImagView)
+        addSubview(titleLabel)
+        addSubview(sellNumberLabel)
+        addSubview(sellPriceLabel)
+        addSubview(markPriceLabel)
+        addSubview(plusButton)
+        addSubview(shopingCarButton)
+    }
+    
+    private func setupLayouts() {
+        iconImagView.snp.makeConstraints { (make) in
+            make.top.left.right.equalToSuperview()
+            make.height.equalTo(150 * kScaleWidth)
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(10)
+            make.top.equalTo(iconImagView.snp.bottom).offset(10)
+            make.right.equalTo(-10)
+            make.height.equalTo(23)
+        }
+        sellNumberLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(titleLabel.snp.bottom).offset(15)
+            make.left.right.equalTo(titleLabel)
+            make.height.equalTo(13)
+        }
+        sellPriceLabel.snp.remakeConstraints { (make) in
+            make.left.equalTo(titleLabel)
+            make.bottom.equalTo(-10)
+            make.height.equalTo(19)
+        }
+        markPriceLabel.snp.remakeConstraints { (make) in
+            make.left.equalTo(sellPriceLabel.snp.right).offset(5)
+            make.bottom.equalTo(-10)
+            make.height.equalTo(13)
+        }
+        plusButton.snp.makeConstraints { (make) in
+            make.right.equalTo(-10)
+            make.bottom.equalTo(-10)
+            make.size.equalTo(25)
+        }
+        
+        shopingCarButton.snp.makeConstraints { (make) in
+            make.right.equalTo(-10)
+            make.bottom.equalTo(-10)
+            make.width.equalTo(100)
+            make.height.equalTo(31)
+        }
+        
+    }
+    
+    private lazy var iconImagView: UIImageView = {
+        let iconImagView = UIImageView()
+        iconImagView.image = kImage(name: "pic_preload")
+        return iconImagView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "海南冰糖心木瓜 1个装"
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kScaleMediumFont15
+        titleLabel.textAlignment = .left
+        titleLabel.numberOfLines = 1
+        return titleLabel
+    }()
+    
+    private lazy var sellNumberLabel: UILabel = {
+        let sellNumberLabel = UILabel()
+        sellNumberLabel.text = "已售2400件"
+        sellNumberLabel.textColor = k999999Color
+        sellNumberLabel.font = kScaleRegularFont12
+        return sellNumberLabel
+    }()
+    
+    private lazy var sellPriceLabel: UILabel = {
+        let sellPriceLabel = UILabel()
+        sellPriceLabel.text = "¥11.8"
+        sellPriceLabel.textColor = kfe352bColor
+        sellPriceLabel.font = kScaleBoldFont15
+        sellPriceLabel.textAlignment = .left
+        return sellPriceLabel
+    }()
+    
+    private lazy var markPriceLabel: UILabel = {
+        let markPriceLabel = UILabel()
+        markPriceLabel.text = "¥24.4"
+        markPriceLabel.textColor = kbbbbbbColor
+        markPriceLabel.font = kScaleRegularFont13
+        let attrString = NSMutableAttributedString(string: "¥24.4")
+        attrString.changeStrikethrough(atAllStyle: NSUnderlineStyle.single, color: kbbbbbbColor)
+        markPriceLabel.attributedText = attrString
+        return markPriceLabel
+    }()
+    
+    private lazy var plusButton: UIButton = {
+        let plusButton = UIButton(type: UIButton.ButtonType.custom)
+        plusButton.setImage(kImage(name: "shopping_mall_plus"), for: UIControl.State.normal)
+        return plusButton
+    }()
+    
+    private lazy var shopingCarButton: UIButton = {
+        let shopingCarButton = UIButton(type: UIButton.ButtonType.custom)
+        shopingCarButton.setTitle("加入购物车", for: UIControl.State.normal)
+        shopingCarButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        shopingCarButton.titleLabel?.font = kMediumFont14
+        shopingCarButton.backgroundColor = kFFAC33Color
+        shopingCarButton.cornerRadius = 31/2
+        shopingCarButton.masksToBounds = true
+        shopingCarButton.isHidden = true
+        return shopingCarButton
+    }()
+    
+    //    var productSearchModel: ProductSearchModel? {
+    //        didSet {
+    //            iconImagView.kf.setImage(with: kURLImage(name: productSearchModel?.img ?? "pic_preload"), placeholder: kImage(name: "pic_preload"))
+    //            titleLabel.text = productSearchModel?.nameSkuName
+    //            detailTitleLabel.text = productSearchModel?.saleName
+    //            sellNumberLabel.text = "已售\(productSearchModel?.totalCount ?? 0)件"
+    //            sellPriceLabel.text = "¥\(productSearchModel?.price ?? 0)"
+    //            let attributeString = NSMutableAttributedString(string:"¥\(productSearchModel?.originPrice ?? 0)")
+    //            attributeString.changeStrikethrough(atAllStyle: NSUnderlineStyle.single, color: kbbbbbbColor)
+    //            markPriceLabel.attributedText = attributeString
+    //
+    //        }
+    //    }
+    
+}

+ 142 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartHotSale/ShoppingCartHotSaleTableViewCell.swift

@@ -0,0 +1,142 @@
+//
+//  ShoppingCartHotSaleTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/8.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class ShoppingCartHotSaleTableViewCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> ShoppingCartHotSaleTableViewCell {
+        let ID = "ShoppingCartHotSaleTableViewCell"
+        tableView.register(ShoppingCartHotSaleTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : ShoppingCartHotSaleTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! ShoppingCartHotSaleTableViewCell
+        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
+        cornerRadius = 4
+        masksToBounds = true
+        backgroundColor = kf7f8faColor
+        addSubview(titleView)
+        addSubview(collectionView)
+    }
+    
+    private func setupLayouts() {
+        titleView.snp.remakeConstraints { (make) in
+            make.top.left.right.equalToSuperview()
+            make.height.equalTo(39)
+        }
+        collectionView.snp.makeConstraints { (make) in
+            make.top.equalTo(39)
+            make.left.right.equalToSuperview()
+            make.height.equalTo(200)
+        }
+    }
+    
+    private lazy var titleView: UIView = {
+        let titleView = UIView()
+        
+        let titleLabel = UILabel()
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kBoldFont16
+        titleLabel.text = "超值热卖"
+        titleView.addSubview(titleLabel)
+        titleLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(10)
+            make.centerX.equalToSuperview()
+            make.height.equalTo(23)
+        }
+        return titleView
+    }()
+    
+    private lazy var collectionView: UICollectionView = {
+        let collectionView = UICollectionView.init(frame: CGRect.zero, collectionViewLayout: collectionViewLayout)
+        collectionView.backgroundColor = kf7f8faColor
+        collectionView.delegate = self;
+        collectionView.dataSource = self;
+        collectionView.showsVerticalScrollIndicator = false
+        collectionView.showsHorizontalScrollIndicator = false
+        return collectionView
+    }()
+    
+    private lazy var collectionViewLayout: UICollectionViewFlowLayout = {
+        let collectionViewLayout = UICollectionViewFlowLayout.init()
+        collectionViewLayout.minimumLineSpacing = 10
+        collectionViewLayout.minimumInteritemSpacing = 0
+        return collectionViewLayout
+    }()
+    
+    //加载数据
+    func reloadData() {
+        //collectionView重新加载数据
+        self.collectionView.reloadData()
+        //更新collectionView的高度约束
+        let contentSize = self.collectionView.collectionViewLayout.collectionViewContentSize
+        collectionView.snp.remakeConstraints { (make) in
+            make.top.equalTo(39)
+            make.left.right.equalToSuperview()
+            make.height.equalTo(contentSize.height)
+            make.bottom.equalToSuperview()
+        }
+        self.collectionView.collectionViewLayout.invalidateLayout()
+    }
+    
+}
+
+extension ShoppingCartHotSaleTableViewCell: UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
+    func numberOfSections(in collectionView: UICollectionView) -> Int {
+        return 1
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+        return 9
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+        let cell = ProductSlidingTopBottomCollectionViewCell.cellWith(collectionView: collectionView, indexPath: indexPath)
+        return cell
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+        return CGSize(width:170 * kScaleWidth, height: 170 * kScaleWidth + 80)
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
+        return UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0)
+    }
+    
+}

+ 118 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartList/ShoppingCartListNoneItemCell.swift

@@ -0,0 +1,118 @@
+//
+//  ShoppingCartListNoneItemCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  购物车--无商品の缺省Cell
+
+import UIKit
+import RxSwift
+import RxCocoa
+
+class ShoppingCartListNoneItemCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> ShoppingCartListNoneItemCell {
+        let ID = "ShoppingCartListNoneItemCell"
+        tableView.register(ShoppingCartListNoneItemCell.self, forCellReuseIdentifier: ID)
+        let cell : ShoppingCartListNoneItemCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! ShoppingCartListNoneItemCell
+        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(iconImageView)
+        addSubview(titleLabel)
+        addSubview(jumpButton)
+    }
+    
+    private func setupLayouts() {
+        iconImageView.snp.makeConstraints { (make) in
+            make.top.equalTo(30)
+            make.centerX.equalToSuperview()
+            make.width.equalTo(200)
+            make.height.equalTo(140)
+        }
+        
+        titleLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(iconImageView.snp.bottom).offset(16)
+            make.centerX.equalToSuperview()
+            make.left.equalToSuperview().offset(30)
+            make.right.equalToSuperview().offset(-30)
+        }
+        
+        jumpButton.snp.makeConstraints { (make) in
+            make.top.equalTo(titleLabel.snp.bottom).offset(30)
+            make.bottom.equalToSuperview().offset(-30)
+            make.centerX.equalToSuperview()
+            make.width.equalTo(160)
+            make.height.equalTo(36)
+        }
+        
+    }
+    
+    lazy var iconImageView : UIImageView = {
+        let iconImageView = UIImageView()
+        iconImageView.image = kImage(name: "page05")
+        return iconImageView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "购物车内无商品"
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kRegularFont14
+        titleLabel.textAlignment = .center
+        return titleLabel
+    }()
+    
+    private lazy var jumpButton: UIButton = {
+        let jumpButton = UIButton(type: UIButton.ButtonType.custom)
+        jumpButton.backgroundColor = kFFA42FColor
+        jumpButton.setTitle("到首页逛逛", for: UIControl.State.normal)
+        jumpButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        jumpButton.titleLabel?.font = kRegularFont16
+        jumpButton.cornerRadius = 18
+        jumpButton.masksToBounds = true
+//        jumpButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+//            //            if let forgetPasswordBlock = self?.forgetPasswordBlock {
+//            //                forgetPasswordBlock()
+//            //            }
+//            print("点击了跳转到首页")
+//        }).disposed(by: disposeBag)
+        return jumpButton
+    }()
+    
+}
+

+ 204 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartList/ShoppingCartListTableViewCell.swift

@@ -0,0 +1,204 @@
+//
+//  ShoppingCartListTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/8.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  购物车--商品列表Cell
+
+import UIKit
+
+class ShoppingCartListTableViewCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> ShoppingCartListTableViewCell {
+        let ID = "ShoppingCartListTableViewCell"
+        tableView.register(ShoppingCartListTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : ShoppingCartListTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! ShoppingCartListTableViewCell
+        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
+//        cornerRadius = 4
+//        masksToBounds = true
+        
+        addSubview(selectedButton)
+        addSubview(iconImagView)
+        addSubview(titleLabel)
+        addSubview(deliveryTime)
+        addSubview(sellScaleLabel)
+        addSubview(sellNumberLabel)
+        addSubview(sellPriceLabel)
+        addSubview(plusButton)
+        addSubview(numberLabel)
+        addSubview(reduceButton)
+        
+    }
+    
+    private func setupLayouts() {
+        selectedButton.snp.makeConstraints { (make) in
+            make.left.equalTo(10)
+            make.top.equalTo(50)
+            make.bottom.equalTo(-80)
+            make.size.equalTo(18)
+        }
+        iconImagView.snp.makeConstraints { (make) in
+            make.left.equalToSuperview().offset(40)
+            make.centerY.equalToSuperview()
+            make.width.height.equalTo(92)
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(iconImagView.snp_right).offset(10)
+            make.top.equalTo(14)
+            make.right.equalTo(-26)
+            make.height.equalTo(20)
+        }
+        deliveryTime.snp.makeConstraints { (make) in
+            make.top.equalTo(titleLabel.snp.bottom).offset(8)
+            make.right.left.equalTo(titleLabel)
+            make.height.equalTo(17)
+        }
+        sellScaleLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(deliveryTime.snp.bottom).offset(8)
+            make.left.right.equalTo(deliveryTime)
+            make.height.equalTo(17)
+        }
+        sellNumberLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(sellScaleLabel.snp.bottom).offset(4)
+            make.left.right.equalTo(sellScaleLabel)
+            make.height.equalTo(17)
+        }
+        sellPriceLabel.snp.remakeConstraints { (make) in
+            make.top.equalTo(sellNumberLabel.snp.bottom).offset(8)
+            make.left.equalTo(sellNumberLabel.snp_left).offset(-4)
+            make.height.equalTo(23)
+        }
+        
+        plusButton.snp.makeConstraints { (make) in
+            make.centerY.equalTo(sellPriceLabel)
+            make.right.equalTo(-14)
+            make.size.equalTo(20)
+        }
+
+        numberLabel.snp.makeConstraints { (make) in
+            make.top.bottom.equalTo(plusButton)
+            make.right.equalTo(plusButton.snp.left)
+            make.width.greaterThanOrEqualTo(50)
+        }
+
+        reduceButton.snp.makeConstraints { (make) in
+            make.right.equalTo(numberLabel.snp.left)
+            make.top.width.bottom.equalTo(plusButton)
+        }
+        
+    }
+    
+    private lazy var selectedButton: UIButton = {
+        let selectedButton = UIButton(type: UIButton.ButtonType.custom)
+        selectedButton.setImage(kImage(name: "my_address_uncheck"), for: UIControl.State.normal)
+        selectedButton.setImage(kImage(name: "my_address_check"), for: UIControl.State.selected)
+        return selectedButton
+    }()
+
+    private lazy var iconImagView: UIImageView = {
+        let iconImagView = UIImageView()
+        iconImagView.image = kImage(name: "pic_preload")
+        return iconImagView
+    }()
+
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "妈妈冬装外套棉袄短款"
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kBoldFont14
+        titleLabel.textAlignment = .left
+        titleLabel.numberOfLines = 1
+        return titleLabel
+    }()
+
+    private lazy var deliveryTime: UILabel = {
+        let deliveryTime = UILabel()
+        deliveryTime.text = "预计配送时间:次日达"
+        deliveryTime.textColor = k666666Color
+        deliveryTime.font = kRegularFont12
+        deliveryTime.textAlignment = .left
+        return deliveryTime
+    }()
+
+    private lazy var sellScaleLabel: UILabel = {
+        let sellScaleLabel = UILabel()
+        sellScaleLabel.text = "规格:3个装"
+        sellScaleLabel.textColor = k999999Color
+        sellScaleLabel.font = kRegularFont12
+        return sellScaleLabel
+    }()
+
+    private lazy var sellNumberLabel: UILabel = {
+        let sellNumberLabel = UILabel()
+        sellNumberLabel.text = "x1"
+        sellNumberLabel.textColor = k999999Color
+        sellNumberLabel.font = kRegularFont12
+        return sellNumberLabel
+    }()
+
+    private lazy var sellPriceLabel: UILabel = {
+        let sellPriceLabel = UILabel()
+        sellPriceLabel.text = "¥11.8"
+        sellPriceLabel.textColor = kfe352bColor
+        sellPriceLabel.font = kBoldFont15
+        sellPriceLabel.textAlignment = .left
+        return sellPriceLabel
+    }()
+    
+    private lazy var plusButton: UIButton = {
+        let plusButton = UIButton(type: UIButton.ButtonType.custom)
+        plusButton.setImage(kImage(name: "shopping_mall_plus"), for: UIControl.State.normal)
+        return plusButton
+    }()
+
+    private lazy var numberLabel: UILabel = {
+        let numberLabel = UILabel()
+        numberLabel.text = "1"
+        numberLabel.textAlignment = .center
+        numberLabel.font = kRegularFont14
+        numberLabel.textColor = k333333Color
+        return numberLabel
+    }()
+
+    private lazy var reduceButton: UIButton = {
+        let reduceButton = UIButton(type: UIButton.ButtonType.custom)
+        reduceButton.setImage(kImage(name: "home_btn_buy_subtract"), for: UIControl.State.normal)
+        return reduceButton
+    }()
+    
+}

+ 70 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartList/ShoppingCartListTableViewHeader.swift

@@ -0,0 +1,70 @@
+//
+//  ShoppingCartListTableViewHeader.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/8.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  购物车--商品列表Header
+
+import UIKit
+import RxSwift
+import RxCocoa
+
+class ShoppingCartListTableViewHeader: BaseView {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    override func setupViews() {
+        self.backgroundColor = kffffffColor
+        addSubview(separateView)
+        addSubview(titleButton)
+    }
+    
+    override func setupLayouts() {
+        separateView.snp.makeConstraints { (make) in
+            make.left.top.right.equalToSuperview()
+            make.height.equalTo(10)
+        }
+        
+        titleButton.snp.makeConstraints { (make) in
+            make.left.equalToSuperview().offset(10)
+            make.centerY.equalToSuperview()
+        }
+    }
+    
+    private lazy var separateView: UIView = {
+        let separateView = UIView()
+        separateView.backgroundColor = kf7f8faColor
+        return separateView
+    }()
+    
+    private lazy var titleButton: UIButton = {
+        let titleButton = UIButton(type: UIButton.ButtonType.custom)
+        titleButton.setTitle("彩虹星球专营", for: UIControl.State.normal)
+        titleButton.setTitleColor(k333333Color, for: UIControl.State.normal)
+        titleButton.setTitleColor(k666666Color, for: UIControl.State.selected)
+        titleButton.setImage(UIImage.imageWithColor(color: kDisabledButtonColor), for: UIControl.State.selected)
+        titleButton.setImage(UIImage.imageWithColor(color: kEnabledButtonColor), for: UIControl.State.normal)
+        titleButton.titleLabel?.font = kScaleRegularFont14
+        titleButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            
+            //            if let loginBlock = self?.loginBlock {
+            //                loginBlock((self?.phoneNumber)!,(self?.password)!)
+            //            }
+            print("点击了全选当前section")
+            
+        }).disposed(by: disposeBag)
+        return titleButton
+    }()
+    
+}

+ 107 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/AdressCell/OrderPayExpressAddInfoCell.swift

@@ -0,0 +1,107 @@
+//
+//  OrderPayExpressAddInfoCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  订单支付--添加快递信息Cell
+
+import UIKit
+
+class OrderPayExpressAddInfoCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> OrderPayExpressAddInfoCell {
+        let ID = "OrderPayExpressAddInfoCell"
+        tableView.register(OrderPayExpressAddInfoCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderPayExpressAddInfoCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderPayExpressAddInfoCell
+        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(plusImageView)
+        addSubview(titleLabel)
+        addSubview(arrowImageView)
+        addSubview(sepLineImageView)
+    }
+    
+    private func setupLayouts() {
+        plusImageView.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.width.height.equalTo(18)
+            make.top.equalToSuperview().offset(37)
+            make.bottom.equalToSuperview().offset(-38)
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(plusImageView.snp_right).offset(8)
+            make.height.equalTo(23)
+            make.centerY.equalTo(plusImageView)
+        }
+        arrowImageView.snp.makeConstraints { (make) in
+            make.centerY.equalTo(plusImageView)
+            make.right.equalTo(-14)
+            make.width.equalTo(8)
+            make.height.equalTo(14)
+        }
+        sepLineImageView.snp.makeConstraints { (make) in
+            make.left.right.bottom.equalToSuperview()
+            make.height.equalTo(1)
+        }
+    }
+    
+    private lazy var plusImageView: UIImageView = {
+        let plusImageView = UIImageView()
+        plusImageView.image = kImage(name: "my_address_add")
+        return plusImageView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "添加快递收货地址"
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kBoldFont16
+        return titleLabel
+    }()
+    
+    private lazy var arrowImageView: UIImageView = {
+        let arrowImageView = UIImageView()
+        arrowImageView.image = kImage(name: "my_arrows_unfold")
+        return arrowImageView
+    }()
+    
+    private lazy var sepLineImageView: UIImageView = {
+        let sepLineImageView = UIImageView()
+        sepLineImageView.image = kImage(name: "orderPay_separateLine")
+        return sepLineImageView
+    }()
+    
+}

+ 144 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/AdressCell/OrderPayExpressInfoShowCell.swift

@@ -0,0 +1,144 @@
+//
+//  OrderPayExpressInfoShowCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  订单支付--快递信息Cell
+
+import UIKit
+
+class OrderPayExpressInfoShowCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> OrderPayExpressInfoShowCell {
+        let ID = "OrderPayExpressInfoShowCell"
+        tableView.register(OrderPayExpressInfoShowCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderPayExpressInfoShowCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderPayExpressInfoShowCell
+        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(nameLabel)
+        addSubview(phoneLabel)
+        addSubview(typeLabel)
+        addSubview(titleLabel)
+        addSubview(arrowImageView)
+        addSubview(sepLineImageView)
+    }
+    
+    private func setupLayouts() {
+        nameLabel.snp.remakeConstraints { (make) in
+            make.left.equalTo(14)
+            make.width.lessThanOrEqualTo(67)
+            make.height.equalTo(20)
+            make.top.equalToSuperview().offset(20)
+            make.bottom.equalToSuperview().offset(-50)
+        }
+        phoneLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(nameLabel.snp_right).offset(10)
+            make.height.equalTo(20)
+            make.centerY.equalTo(nameLabel)
+        }
+        typeLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(nameLabel.snp_bottom).offset(10)
+            make.left.equalTo(14)
+            make.width.equalTo(40)
+            make.height.equalTo(20)
+        }
+        arrowImageView.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.right.equalTo(-14)
+            make.width.equalTo(8)
+            make.height.equalTo(14)
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(typeLabel.snp_right).offset(4)
+            make.right.equalTo(arrowImageView.snp_left).offset(-20)
+            make.height.equalTo(20)
+            make.centerY.equalTo(typeLabel)
+        }
+        sepLineImageView.snp.makeConstraints { (make) in
+            make.left.right.bottom.equalToSuperview()
+            make.height.equalTo(1)
+        }
+    }
+    
+    private lazy var nameLabel: UILabel = {
+        let nameLabel = UILabel()
+        nameLabel.text = "范德炮"
+        nameLabel.textColor = k333333Color
+        nameLabel.font = kBoldFont16
+        return nameLabel
+    }()
+    
+    private lazy var phoneLabel: UILabel = {
+        let phoneLabel = UILabel()
+        phoneLabel.text = "158xxxx5481"
+        phoneLabel.textColor = k333333Color
+        phoneLabel.font = kBoldFont16
+        return phoneLabel
+    }()
+    
+    private lazy var typeLabel: UILabel = {
+        let typeLabel = UILabel()
+        typeLabel.text = "快递"
+        typeLabel.textAlignment = .center
+        typeLabel.backgroundColor = kfee5e4Color
+        typeLabel.textColor = kfe352bColor
+        typeLabel.font = kRegularFont13
+        typeLabel.cornerRadius = 10
+        typeLabel.masksToBounds = true
+        return typeLabel
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "西安市碑林区xxxxxx"
+        titleLabel.textColor = k666666Color
+        titleLabel.font = kRegularFont14
+        return titleLabel
+    }()
+    
+    private lazy var arrowImageView: UIImageView = {
+        let arrowImageView = UIImageView()
+        arrowImageView.image = kImage(name: "my_arrows_unfold")
+        return arrowImageView
+    }()
+    
+    private lazy var sepLineImageView: UIImageView = {
+        let sepLineImageView = UIImageView()
+        sepLineImageView.image = kImage(name: "orderPay_separateLine")
+        return sepLineImageView
+    }()
+    
+}

+ 96 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/AdressCell/OrderPaySelfPickAddInfoCell.swift

@@ -0,0 +1,96 @@
+//
+//  OrderPaySelfPickAddInfoCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  订单支付--自提添加收货人信息Cell
+
+import UIKit
+
+class OrderPaySelfPickAddInfoCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> OrderPaySelfPickAddInfoCell {
+        let ID = "OrderPaySelfPickAddInfoCell"
+        tableView.register(OrderPaySelfPickAddInfoCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderPaySelfPickAddInfoCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderPaySelfPickAddInfoCell
+        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(plusImageView)
+        addSubview(titleLabel)
+        addSubview(arrowImageView)
+    }
+    
+    private func setupLayouts() {
+        plusImageView.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.width.height.equalTo(18)
+            make.top.equalToSuperview().offset(15)
+            make.bottom.equalToSuperview().offset(-15)
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(plusImageView.snp_right).offset(8)
+            make.height.equalTo(20)
+            make.centerY.equalTo(plusImageView)
+        }
+        arrowImageView.snp.makeConstraints { (make) in
+            make.centerY.equalTo(plusImageView)
+            make.right.equalTo(-14)
+            make.width.equalTo(8)
+            make.height.equalTo(14)
+        }
+    }
+    
+    private lazy var plusImageView: UIImageView = {
+        let plusImageView = UIImageView()
+        plusImageView.image = kImage(name: "my_address_add")
+        return plusImageView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "添加收货人信息"
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kBoldFont14
+        return titleLabel
+    }()
+    
+    private lazy var arrowImageView: UIImageView = {
+        let arrowImageView = UIImageView()
+        arrowImageView.image = kImage(name: "my_arrows_unfold")
+        return arrowImageView
+    }()
+    
+}

+ 115 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/AdressCell/OrderPaySelfPickAddressCell.swift

@@ -0,0 +1,115 @@
+//
+//  OrderPaySelfPickAddressCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  订单支付--自提地址信息Cell
+
+import UIKit
+
+class OrderPaySelfPickAddressCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> OrderPaySelfPickAddressCell {
+        let ID = "OrderPaySelfPickAddressCell"
+        tableView.register(OrderPaySelfPickAddressCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderPaySelfPickAddressCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderPaySelfPickAddressCell
+        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(typeLabel)
+        addSubview(titleLabel)
+        addSubview(arrowImageView)
+        addSubview(sepLineImageView)
+    }
+    
+    private func setupLayouts() {
+        typeLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.width.equalTo(40)
+            make.height.equalTo(20)
+            make.top.equalToSuperview().offset(14)
+            make.bottom.equalToSuperview().offset(-14)
+        }
+        arrowImageView.snp.makeConstraints { (make) in
+            make.centerY.equalTo(typeLabel)
+            make.right.equalTo(-14)
+            make.width.equalTo(8)
+            make.height.equalTo(14)
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(typeLabel.snp_right).offset(8)
+            make.right.equalTo(arrowImageView.snp_left).offset(-20)
+            make.height.equalTo(20)
+            make.centerY.equalTo(typeLabel)
+        }
+        sepLineImageView.snp.makeConstraints { (make) in
+            make.left.right.bottom.equalToSuperview()
+            make.height.equalTo(1)
+        }
+    }
+    
+    private lazy var typeLabel: UILabel = {
+        let typeLabel = UILabel()
+        typeLabel.text = "自提"
+        typeLabel.textAlignment = .center
+        typeLabel.backgroundColor = kfee5e4Color
+        typeLabel.textColor = kfe352bColor
+        typeLabel.font = kRegularFont13
+        typeLabel.cornerRadius = 10
+        typeLabel.masksToBounds = true
+        return typeLabel
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "西安市碑林区xxxxxx"
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kRegularFont14
+        return titleLabel
+    }()
+    
+    private lazy var arrowImageView: UIImageView = {
+        let arrowImageView = UIImageView()
+        arrowImageView.image = kImage(name: "my_arrows_unfold")
+        return arrowImageView
+    }()
+    
+    private lazy var sepLineImageView: UIImageView = {
+        let sepLineImageView = UIImageView()
+        sepLineImageView.image = kImage(name: "orderPay_separateLine")
+        return sepLineImageView
+    }()
+    
+}

+ 99 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/AdressCell/OrderPaySelfPickInfoCell.swift

@@ -0,0 +1,99 @@
+//
+//  OrderPaySelfPickInfoCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  订单支付--自提个人信息Cell
+
+import UIKit
+
+class OrderPaySelfPickInfoCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> OrderPaySelfPickInfoCell {
+        let ID = "OrderPaySelfPickInfoCell"
+        tableView.register(OrderPaySelfPickInfoCell.self, forCellReuseIdentifier: ID)
+        let cell : OrderPaySelfPickInfoCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! OrderPaySelfPickInfoCell
+        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(nameLabel)
+        addSubview(phoneLabel)
+        addSubview(arrowImageView)
+    }
+    
+    private func setupLayouts() {
+        nameLabel.snp.remakeConstraints { (make) in
+            make.left.equalTo(14)
+            make.width.lessThanOrEqualTo(56)
+            make.height.equalTo(20)
+            make.top.equalToSuperview().offset(14)
+            make.bottom.equalToSuperview().offset(-14)
+        }
+        phoneLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(nameLabel.snp_right).offset(12)
+            make.height.equalTo(20)
+            make.centerY.equalTo(nameLabel)
+        }
+        arrowImageView.snp.makeConstraints { (make) in
+            make.centerY.equalTo(nameLabel)
+            make.right.equalTo(-14)
+            make.width.equalTo(8)
+            make.height.equalTo(14)
+        }
+    }
+    
+    private lazy var nameLabel: UILabel = {
+        let nameLabel = UILabel()
+        nameLabel.text = "范德彪"
+        nameLabel.textColor = k333333Color
+        nameLabel.font = kRegularFont14
+        return nameLabel
+    }()
+    
+    private lazy var phoneLabel: UILabel = {
+        let phoneLabel = UILabel()
+        phoneLabel.text = "158xxxx5481"
+        phoneLabel.textColor = k333333Color
+        phoneLabel.font = kRegularFont14
+        return phoneLabel
+    }()
+    
+    private lazy var arrowImageView: UIImageView = {
+        let arrowImageView = UIImageView()
+        arrowImageView.image = kImage(name: "my_arrows_unfold")
+        return arrowImageView
+    }()
+    
+}

+ 107 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/ShoppingCartPayOrderFooter.swift

@@ -0,0 +1,107 @@
+//
+//  ShoppingCartPayOrderFooter.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  订单支付--商品列表Footer
+
+import UIKit
+import RxSwift
+import RxCocoa
+
+class ShoppingCartPayOrderFooter: BaseView {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    override func setupViews() {
+        self.backgroundColor = kffffffColor
+        addSubview(msgLabel)
+        addSubview(msgTextField)
+        addSubview(priceLabel)
+        addSubview(numberLabel)
+    }
+    
+    override func setupLayouts() {
+        msgLabel.snp.makeConstraints { (make) in
+            make.left.top.equalToSuperview().offset(14)
+            make.width.equalTo(56)
+            make.height.equalTo(20)
+        }
+        
+        msgTextField.snp.makeConstraints { (make) in
+            make.centerY.equalTo(msgLabel)
+            make.left.equalTo(msgLabel.snp_right).offset(11)
+            make.right.equalTo(-14)
+            make.height.equalTo(28)
+        }
+        
+        priceLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(msgTextField.snp_bottom).offset(20)
+            make.right.equalTo(msgTextField)
+            make.height.equalTo(20)
+        }
+        
+        numberLabel.snp.makeConstraints { (make) in
+            make.right.equalTo(priceLabel.snp_left)
+            make.centerY.equalTo(priceLabel)
+            make.height.equalTo(priceLabel)
+        }
+    }
+    
+    private lazy var msgLabel: UILabel = {
+        let msgLabel = UILabel()
+        msgLabel.text = "买家留言"
+        msgLabel.textColor = k333333Color
+        msgLabel.font = kRegularFont14
+        msgLabel.textAlignment = .left
+        return msgLabel
+    }()
+    
+    private lazy var msgTextField : UITextField = {
+        let msgTextField = UITextField()
+        msgTextField.placeholder = "单行输入"
+        msgTextField.borderStyle = .roundedRect
+        msgTextField.textColor = k666666Color
+        msgTextField.font = kRegularFont12
+        msgTextField.clearButtonMode = .whileEditing
+        msgTextField.sizeToFit()
+        msgTextField.tintColor = kFFA42FColor
+        
+        msgTextField.rx.text.changed.subscribe(onNext: { [weak self] (text) in
+//            self?.msgTextField.text = String(text?.prefix(11) ?? "") as String
+//            self?.phoneNumber = self?.msgTextField.text ?? ""
+//            self?.observableString()
+        }).disposed(by: disposeBag)
+        return msgTextField
+    }()
+    
+    private lazy var priceLabel: UILabel = {
+        let priceLabel = UILabel()
+        priceLabel.text = "合计"
+        priceLabel.textColor = k999999Color
+        priceLabel.font = kRegularFont14
+        priceLabel.textAlignment = .right
+        return priceLabel
+    }()
+    
+    private lazy var numberLabel: UILabel = {
+        let numberLabel = UILabel()
+        numberLabel.text = "共x件商品,"
+        numberLabel.textColor = k999999Color
+        numberLabel.font = kRegularFont14
+        numberLabel.textAlignment = .right
+        return numberLabel
+    }()
+    
+}

+ 68 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/ShoppingCartPayOrderHeader.swift

@@ -0,0 +1,68 @@
+//
+//  ShoppingCartPayOrderHeader.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  订单支付--商品列表Header
+
+import UIKit
+import RxSwift
+import RxCocoa
+
+class ShoppingCartPayOrderHeader: BaseView {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    override func setupViews() {
+        self.backgroundColor = kffffffColor
+        addSubview(separateView)
+        addSubview(titleButton)
+    }
+    
+    override func setupLayouts() {
+        separateView.snp.makeConstraints { (make) in
+            make.left.top.right.equalToSuperview()
+            make.height.equalTo(10)
+        }
+        
+        titleButton.snp.makeConstraints { (make) in
+            make.left.equalToSuperview().offset(10)
+            make.centerY.equalToSuperview()
+        }
+    }
+    
+    private lazy var separateView: UIView = {
+        let separateView = UIView()
+        separateView.backgroundColor = kf7f8faColor
+        return separateView
+    }()
+    
+    private lazy var titleButton: UIButton = {
+        let titleButton = UIButton(type: UIButton.ButtonType.custom)
+        titleButton.setTitle("彩虹星球专营", for: UIControl.State.normal)
+        titleButton.setTitleColor(k333333Color, for: UIControl.State.normal)
+        titleButton.setTitleColor(k666666Color, for: UIControl.State.selected)
+        titleButton.titleLabel?.font = kScaleRegularFont14
+        titleButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            
+            //            if let loginBlock = self?.loginBlock {
+            //                loginBlock((self?.phoneNumber)!,(self?.password)!)
+            //            }
+            print("点击了当前店铺Header")
+            
+        }).disposed(by: disposeBag)
+        return titleButton
+    }()
+    
+}

+ 149 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPay/ShoppingCartPayOrderItemCell.swift

@@ -0,0 +1,149 @@
+//
+//  ShoppingCartPayOrderItemCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  订单支付--商品列表Cell
+
+import UIKit
+
+class ShoppingCartPayOrderItemCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> ShoppingCartPayOrderItemCell {
+        let ID = "ShoppingCartPayOrderItemCell"
+        tableView.register(ShoppingCartPayOrderItemCell.self, forCellReuseIdentifier: ID)
+        let cell : ShoppingCartPayOrderItemCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! ShoppingCartPayOrderItemCell
+        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
+        //        cornerRadius = 4
+        //        masksToBounds = true
+        
+        addSubview(iconImagView)
+        addSubview(titleLabel)
+        addSubview(deliveryTime)
+        addSubview(sellScaleLabel)
+        addSubview(sellNumberLabel)
+        addSubview(sellPriceLabel)
+        
+    }
+    
+    private func setupLayouts() {
+        iconImagView.snp.makeConstraints { (make) in
+            make.top.left.equalToSuperview().offset(14)
+            make.width.height.equalTo(92)
+            make.bottom.equalToSuperview().offset(-14)
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(iconImagView.snp_right).offset(10)
+            make.top.equalTo(14)
+            make.right.equalTo(-26)
+            make.height.equalTo(20)
+        }
+        deliveryTime.snp.makeConstraints { (make) in
+            make.top.equalTo(titleLabel.snp.bottom).offset(8)
+            make.right.left.equalTo(titleLabel)
+            make.height.equalTo(17)
+        }
+        sellScaleLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(deliveryTime.snp.bottom).offset(8)
+            make.left.right.equalTo(deliveryTime)
+            make.height.equalTo(17)
+        }
+        sellNumberLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(sellScaleLabel.snp.bottom).offset(4)
+            make.left.equalTo(sellScaleLabel)
+            make.height.equalTo(17)
+        }
+        sellPriceLabel.snp.remakeConstraints { (make) in
+            make.right.equalTo(-14)
+            make.height.equalTo(20)
+            make.centerY.equalTo(sellNumberLabel)
+        }
+        
+    }
+    
+    private lazy var iconImagView: UIImageView = {
+        let iconImagView = UIImageView()
+        iconImagView.image = kImage(name: "pic_preload")
+        return iconImagView
+    }()
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "妈妈冬装外套棉袄短款"
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kBoldFont14
+        titleLabel.textAlignment = .left
+        titleLabel.numberOfLines = 1
+        return titleLabel
+    }()
+    
+    private lazy var deliveryTime: UILabel = {
+        let deliveryTime = UILabel()
+        deliveryTime.text = "预计配送时间:次日达"
+        deliveryTime.textColor = k666666Color
+        deliveryTime.font = kRegularFont12
+        deliveryTime.textAlignment = .left
+        return deliveryTime
+    }()
+    
+    private lazy var sellScaleLabel: UILabel = {
+        let sellScaleLabel = UILabel()
+        sellScaleLabel.text = "规格:3个装"
+        sellScaleLabel.textColor = k999999Color
+        sellScaleLabel.font = kRegularFont12
+        return sellScaleLabel
+    }()
+    
+    private lazy var sellNumberLabel: UILabel = {
+        let sellNumberLabel = UILabel()
+        sellNumberLabel.text = "x1"
+        sellNumberLabel.textColor = k999999Color
+        sellNumberLabel.font = kRegularFont12
+        return sellNumberLabel
+    }()
+    
+    private lazy var sellPriceLabel: UILabel = {
+        let sellPriceLabel = UILabel()
+        sellPriceLabel.text = "¥258"
+        sellPriceLabel.textColor = k333333Color
+        sellPriceLabel.font = kRegularFont14
+        sellPriceLabel.textAlignment = .left
+        return sellPriceLabel
+    }()
+    
+}

+ 127 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartOrderPayView.swift

@@ -0,0 +1,127 @@
+//
+//  ShoppingCartOrderPayView.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  购物车--订单支付View
+
+import UIKit
+
+class ShoppingCartOrderPayView: BaseView {
+    
+    override func setupViews() {
+        self.backgroundColor = kf7f8faColor
+        addSubview(accountView)
+        addSubview(tableView)
+        let emptyView =  EmptyView.shared.diyCustomEmptyViewStyle2(iconStr: "page04", titleStr: "当前暂无数据")
+        emptyView.contentViewY = kScaleValue(value: 182)
+        tableView.ly_emptyView = emptyView
+        tableView.ly_startLoading()
+    }
+    
+    override func setupLayouts() {
+        accountView.snp.makeConstraints { (make) in
+            make.left.right.equalToSuperview()
+            make.bottom.equalTo(-kSafeTabBarHeight)
+            make.height.equalTo(48)
+        }
+        tableView.snp.makeConstraints { (make) in
+            make.edges.equalToSuperview()
+            make.bottom.equalTo(accountView.snp_top).offset(-20)
+        }
+    }
+    
+    lazy var accountView: OrderPayAcountView = {
+        let accountView = OrderPayAcountView()
+        return accountView
+    }()
+    
+    lazy var tableView: UITableView = {
+        let tableView = UITableView(frame: CGRect.zero, style: UITableView.Style.grouped)
+        tableView.separatorStyle = .none
+        tableView.backgroundColor = kf7f8faColor
+        tableView.dataSource = self
+        tableView.delegate = self
+        tableView.estimatedRowHeight = 0.000001
+        tableView.estimatedSectionFooterHeight = 0.000001
+        tableView.estimatedSectionHeaderHeight = 0.000001
+        return tableView
+    }()
+    
+}
+
+extension ShoppingCartOrderPayView : UITableViewDelegate, UITableViewDataSource {
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return 3
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        if section == 0 {
+            return 1
+        } else {
+            return 2
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        if indexPath.section == 0 {
+            // 快递添加地址
+//            let cell = OrderPayExpressAddInfoCell.cellWith(tableView: tableView, indexPath: indexPath)
+            // 自提添加收货人信息
+//            let cell = OrderPaySelfPickAddInfoCell.cellWith(tableView: tableView, indexPath: indexPath)
+            // 自提地址信息
+//            let cell = OrderPaySelfPickAddressCell.cellWith(tableView: tableView, indexPath: indexPath)
+            // 自提个人信息
+//            let cell = OrderPaySelfPickInfoCell.cellWith(tableView: tableView, indexPath: indexPath)
+            // 快递
+            let cell = OrderPayExpressInfoShowCell.cellWith(tableView: tableView, indexPath: indexPath)
+            
+            
+            return cell
+            
+        } else {
+            let cell = ShoppingCartPayOrderItemCell.cellWith(tableView: tableView, indexPath: indexPath)
+            return cell
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        return  UITableView.automaticDimension
+    }
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        if section == 0 {
+            return 10
+        } else {
+            return 48
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        if section == 0 {
+            return nil
+        } else {
+            let headerView = ShoppingCartPayOrderHeader(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 48))
+            return headerView
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        if section == 0 {
+            return 0.000001
+        } else {
+            return 88
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        if section == 0 {
+            return nil
+        } else {
+            let footerView = ShoppingCartPayOrderFooter(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 88))
+            return footerView
+        }
+    }
+    
+}

+ 137 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartView.swift

@@ -0,0 +1,137 @@
+//
+//  ShoppingCartView.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/8.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  购物车--首页View
+
+import UIKit
+
+class ShoppingCartView: BaseView {
+    
+    override func setupViews() {
+        self.backgroundColor = kf7f8faColor
+        addSubview(accountView)
+        addSubview(tableView)
+        let emptyView =  EmptyView.shared.diyCustomEmptyViewStyle2(iconStr: "page04", titleStr: "当前暂无数据")
+        emptyView.contentViewY = kScaleValue(value: 182)
+        tableView.ly_emptyView = emptyView
+        tableView.ly_startLoading()
+    }
+    
+    override func setupLayouts() {
+        accountView.snp.makeConstraints { (make) in
+            make.left.right.bottom.equalToSuperview()
+            make.height.equalTo(48)
+        }
+        tableView.snp.makeConstraints { (make) in
+            make.edges.equalToSuperview()
+            make.bottom.equalTo(accountView.snp_top).offset(-20)
+        }
+    }
+    
+    lazy var accountView: ShoppingCartAccountView = {
+        let accountView = ShoppingCartAccountView()
+        return accountView
+    }()
+    
+    lazy var tableView: UITableView = {
+        let tableView = UITableView(frame: CGRect.zero, style: UITableView.Style.grouped)
+        tableView.separatorStyle = .none
+        tableView.backgroundColor = kf7f8faColor
+        tableView.dataSource = self
+        tableView.delegate = self
+        tableView.estimatedRowHeight = 0.000001
+        tableView.estimatedSectionFooterHeight = 0.000001
+        tableView.estimatedSectionHeaderHeight = 0.000001
+        return tableView
+    }()
+
+}
+
+extension ShoppingCartView : UITableViewDelegate, UITableViewDataSource {
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return 4
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        switch section {
+        case 0:
+            return 1
+        case 1:
+            return 3
+        case 2:
+            return 2
+        case 3:
+            return 1
+        default:
+            return 1
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        switch indexPath.section {
+        case 0:
+            let cell = ShoppingCartListNoneItemCell.cellWith(tableView: tableView, indexPath: indexPath)
+            return cell
+        case 1:
+            let cell = ShoppingCartListTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            return cell
+        case 2:
+            let cell = ShoppingCartListTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            return cell
+        case 3:
+            let cell = ShoppingCartHotSaleTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            cell.frame = tableView.bounds
+            cell.layoutIfNeeded()
+            cell.reloadData()
+            return cell
+            
+        default:
+            return UITableViewCell()
+        }
+        
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        switch indexPath.section {
+        case 0:
+            return  UITableView.automaticDimension
+        case 1:
+            return  UITableView.automaticDimension
+        case 2:
+            return  UITableView.automaticDimension
+        case 3:
+            return  UITableView.automaticDimension
+        default:
+            return 0
+        }
+        
+    }
+    
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        if section == 0 || section == 3 {
+            return 10
+        } else {
+            return 48
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        if section == 3 || section == 0 {
+            return nil
+        } else {
+            let headerView = ShoppingCartListTableViewHeader(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 48))
+            return headerView
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0.000001
+    }
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        return nil
+    }
+    
+}

+ 53 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/ViewController/ShoppingCartFinishPayController.swift

@@ -0,0 +1,53 @@
+//
+//  ShoppingCartFinishPayController.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  购物车--支付完成Vc
+
+import UIKit
+import RxSwift
+
+class ShoppingCartFinishPayController: BaseViewController {
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+        setupData()
+    }
+    
+    override func setupViews() {
+        navigationBar.title = "支付成功"
+        
+    }
+    
+    override func setupLayouts() {
+        
+    }
+    
+    override func setupData() {
+        //TODO:获取热销列表
+        //        SwiftMoyaNetWorkServiceCMS.shared().cmsTemplateSetTemplateNameApi {
+        //            [weak self] (data) -> (Void) in
+        //            self?.setShoppingCartView()
+        self.setFinishPayView()
+        //        }
+    }
+    
+    /// 添加view
+    func setFinishPayView() {
+        view.addSubview(finishPayView)
+        finishPayView.snp.makeConstraints { (make) in
+            make.bottom.left.right.equalToSuperview()
+            make.top.equalTo(kNavBarTotalHeight)
+        }
+    }
+    
+    private lazy var finishPayView: ShoppingCartFinishPayView = {
+        let finishPayView = ShoppingCartFinishPayView()
+        return finishPayView
+    }()
+    
+}

+ 53 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/ViewController/ShoppingCartPayOrderController.swift

@@ -0,0 +1,53 @@
+//
+//  ShoppingCartPayOrderController.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/9.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  购物车--订单支付
+
+import UIKit
+import RxSwift
+
+class ShoppingCartPayOrderController: BaseViewController {
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+        setupData()
+    }
+    
+    override func setupViews() {
+        navigationBar.title = "订单支付"
+        
+    }
+    
+    override func setupLayouts() {
+        
+    }
+    
+    override func setupData() {
+        //TODO:获取订单列表
+        //        SwiftMoyaNetWorkServiceCMS.shared().cmsTemplateSetTemplateNameApi {
+        //            [weak self] (data) -> (Void) in
+        //            self?.setShoppingCartView()
+        self.setOrderPayView()
+        //        }
+    }
+    
+    /// 添加view
+    func setOrderPayView() {
+        view.addSubview(orderPayView)
+        orderPayView.snp.makeConstraints { (make) in
+            make.bottom.left.right.equalToSuperview()
+            make.top.equalTo(kNavBarTotalHeight)
+        }
+    }
+    
+    private lazy var orderPayView: ShoppingCartOrderPayView = {
+        let orderPayView = ShoppingCartOrderPayView()
+        return orderPayView
+    }()
+    
+}

+ 36 - 12
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/ViewController/ShoppingCartViewController.swift

@@ -3,27 +3,51 @@
 //  RainbowPlanet
 //
 //  Created by 南鑫林 on 2019/3/7.
-//  Copyright © 2019 南鑫林. All rights reserved.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
 //
 
 import UIKit
+import RxSwift
 
 class ShoppingCartViewController: BaseViewController {
 
     override func viewDidLoad() {
         super.viewDidLoad()
-
-        // Do any additional setup after loading the view.
+        setupViews()
+        setupLayouts()
+        setupData()
     }
-
-    /*
-    // 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.
+    
+    override func setupViews() {
+        navigationBar.title = "购物车"
+        
+    }
+    
+    override func setupLayouts() {
+        
+    }
+    
+    override func setupData() {
+        //TODO:获取购物车列表
+//        SwiftMoyaNetWorkServiceCMS.shared().cmsTemplateSetTemplateNameApi {
+//            [weak self] (data) -> (Void) in
+//            self?.setShoppingCartView()
+        self.setShoppingCartView()
+//        }
+    }
+    
+    /// 添加view
+    func setShoppingCartView() {
+        view.addSubview(shoppingCartView)
+        shoppingCartView.snp.makeConstraints { (make) in
+            make.bottom.left.right.equalToSuperview()
+            make.top.equalTo(kNavBarTotalHeight)
+        }
     }
-    */
+    
+    private lazy var shoppingCartView: ShoppingCartView = {
+        let shoppingCartView = ShoppingCartView()
+        return shoppingCartView
+    }()
 
 }

+ 0 - 36
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/ViewController/ShoppingCartViewController.xib

@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
-    <device id="retina4_7" orientation="portrait">
-        <adaptation id="fullscreen"/>
-    </device>
-    <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
-        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ShoppingCartViewController" customModule="RainbowPlanet" customModuleProvider="target">
-            <connections>
-                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
-            </connections>
-        </placeholder>
-        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
-            <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-            <subviews>
-                <textField opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="6MV-62-dMb">
-                    <rect key="frame" x="128" y="179" width="97" height="30"/>
-                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                    <nil key="textColor"/>
-                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                    <textInputTraits key="textInputTraits"/>
-                </textField>
-            </subviews>
-            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
-            <point key="canvasLocation" x="-14" y="54"/>
-        </view>
-    </objects>
-</document>

+ 1 - 1
RainbowPlanet/RainbowPlanet/Service/Model/UserModel/DeliveryMethodTypeModel.swift

@@ -9,7 +9,7 @@
 import UIKit
 import ObjectMapper
 
-/// 存储是否为快递/字体
+/// 存储是否为快递/自提
 class DeliveryMethodTypeModel : NSObject, NSCoding, Mappable{
     
     private static let _sharedInstance = DeliveryMethodTypeModel()

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

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

+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/orderPay_separateLine.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/orderPay_separateLine.imageset/orderPay_separateLine@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/orderPay_separateLine.imageset/orderPay_separateLine@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_failure.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_failure.imageset/shopping_cart_trade_failure@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_failure.imageset/shopping_cart_trade_failure@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_finish.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_finish.imageset/shopping_cart_trade_finish@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/ShoppingCartModule.xcassets/shopping_cart_trade_finish.imageset/shopping_cart_trade_finish@3x.png