Commit d711926b by 刘卓鑫

提交多彩洗衣代码

parent 73552bc3
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
1C0210C12318AF730074D691 /* ZXOpenBlueToothView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C0210C02318AF730074D691 /* ZXOpenBlueToothView.m */; }; 1C0210C12318AF730074D691 /* ZXOpenBlueToothView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C0210C02318AF730074D691 /* ZXOpenBlueToothView.m */; };
1C03A9F62269BDBA00D39B93 /* APIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C03A9F52269BDBA00D39B93 /* APIManager.m */; }; 1C03A9F62269BDBA00D39B93 /* APIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C03A9F52269BDBA00D39B93 /* APIManager.m */; };
1C32C15F234C3A9500DBA2E1 /* ZXAliMaMaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C32C15E234C3A9500DBA2E1 /* ZXAliMaMaViewController.m */; }; 1C32C15F234C3A9500DBA2E1 /* ZXAliMaMaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C32C15E234C3A9500DBA2E1 /* ZXAliMaMaViewController.m */; };
1C364F64237292C0006BC78D /* DCWashBluetoothManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C364F63237292C0006BC78D /* DCWashBluetoothManager.m */; };
1C37F70A2366B8260019A2A7 /* BUADTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C37F7092366B8260019A2A7 /* BUADTool.m */; }; 1C37F70A2366B8260019A2A7 /* BUADTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C37F7092366B8260019A2A7 /* BUADTool.m */; };
1C3940FA230A7BDC005048EB /* run.gif in Resources */ = {isa = PBXBuildFile; fileRef = 1C3940F9230A7BDC005048EB /* run.gif */; }; 1C3940FA230A7BDC005048EB /* run.gif in Resources */ = {isa = PBXBuildFile; fileRef = 1C3940F9230A7BDC005048EB /* run.gif */; };
1C39411C230BC9D5005048EB /* ZXRSReportViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C3940FD230BC9D5005048EB /* ZXRSReportViewController.m */; }; 1C39411C230BC9D5005048EB /* ZXRSReportViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C3940FD230BC9D5005048EB /* ZXRSReportViewController.m */; };
...@@ -67,35 +68,6 @@ ...@@ -67,35 +68,6 @@
1C88540D22C1C5EF00A03328 /* ZXAppointBathService.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C88540C22C1C5EF00A03328 /* ZXAppointBathService.m */; }; 1C88540D22C1C5EF00A03328 /* ZXAppointBathService.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C88540C22C1C5EF00A03328 /* ZXAppointBathService.m */; };
1C88541022C1ECEB00A03328 /* ZXAppointBathModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C88540F22C1ECEB00A03328 /* ZXAppointBathModel.m */; }; 1C88541022C1ECEB00A03328 /* ZXAppointBathModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C88540F22C1ECEB00A03328 /* ZXAppointBathModel.m */; };
1C8AF5402362C1CC00E592E4 /* ZXSearchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8AF53F2362C1CC00E592E4 /* ZXSearchViewController.m */; }; 1C8AF5402362C1CC00E592E4 /* ZXSearchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8AF53F2362C1CC00E592E4 /* ZXSearchViewController.m */; };
1C8F4A36231E70BC00AAF24A /* DC_ZXWashService.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F49F9231E70BA00AAF24A /* DC_ZXWashService.m */; };
1C8F4A37231E70BC00AAF24A /* DC_ZXWashOrderPayCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F49FC231E70BB00AAF24A /* DC_ZXWashOrderPayCell.m */; };
1C8F4A38231E70BC00AAF24A /* DC_WashSegHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F49FD231E70BB00AAF24A /* DC_WashSegHeader.m */; };
1C8F4A39231E70BC00AAF24A /* DC_ShowMsgView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F49FF231E70BB00AAF24A /* DC_ShowMsgView.m */; };
1C8F4A3A231E70BC00AAF24A /* DC_ZXWashBucketCleanCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A00231E70BB00AAF24A /* DC_ZXWashBucketCleanCell.m */; };
1C8F4A3B231E70BC00AAF24A /* DC_ZXWashOrderShowCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A03231E70BB00AAF24A /* DC_ZXWashOrderShowCell.m */; };
1C8F4A3C231E70BC00AAF24A /* DC_ZXChooseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A04231E70BB00AAF24A /* DC_ZXChooseCell.m */; };
1C8F4A3D231E70BC00AAF24A /* DC_ZXWashPayWayCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A05231E70BB00AAF24A /* DC_ZXWashPayWayCell.m */; };
1C8F4A3E231E70BC00AAF24A /* DC_ZXChooseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A08231E70BB00AAF24A /* DC_ZXChooseView.m */; };
1C8F4A3F231E70BC00AAF24A /* DC_WashCLoseTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A0A231E70BB00AAF24A /* DC_WashCLoseTableViewCell.m */; };
1C8F4A40231E70BC00AAF24A /* DC_ZXReChooseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A0D231E70BB00AAF24A /* DC_ZXReChooseCell.m */; };
1C8F4A41231E70BC00AAF24A /* DC_AppointView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A0E231E70BB00AAF24A /* DC_AppointView.m */; };
1C8F4A42231E70BC00AAF24A /* DC_ZXWashMyInvitorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A11231E70BB00AAF24A /* DC_ZXWashMyInvitorCell.m */; };
1C8F4A43231E70BC00AAF24A /* DC_ZXWashOperationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A16231E70BB00AAF24A /* DC_ZXWashOperationCell.m */; };
1C8F4A44231E70BC00AAF24A /* DC_ZXWashAimiPayCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A18231E70BB00AAF24A /* DC_ZXWashAimiPayCell.m */; };
1C8F4A45231E70BC00AAF24A /* DC_CountingDownView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A19231E70BB00AAF24A /* DC_CountingDownView.m */; };
1C8F4A46231E70BC00AAF24A /* DC_ZXWashOrderModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A1B231E70BC00AAF24A /* DC_ZXWashOrderModel.m */; };
1C8F4A47231E70BD00AAF24A /* DC_ZXWashOperationModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A1C231E70BC00AAF24A /* DC_ZXWashOperationModel.m */; };
1C8F4A48231E70BD00AAF24A /* DC_ZXPreOrderModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A1D231E70BC00AAF24A /* DC_ZXPreOrderModel.m */; };
1C8F4A4A231E70BD00AAF24A /* DC_ZXWashMerthinModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A20231E70BC00AAF24A /* DC_ZXWashMerthinModel.m */; };
1C8F4A4B231E70BD00AAF24A /* DC_ZXWashLocationModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A25231E70BC00AAF24A /* DC_ZXWashLocationModel.m */; };
1C8F4A4C231E70BD00AAF24A /* DC_ZXWashCloseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A2A231E70BC00AAF24A /* DC_ZXWashCloseViewController.m */; };
1C8F4A4D231E70BD00AAF24A /* DC_ZXWashScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A2D231E70BC00AAF24A /* DC_ZXWashScanViewController.m */; };
1C8F4A4E231E70BD00AAF24A /* DC_ZXWashTabbarViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A2E231E70BC00AAF24A /* DC_ZXWashTabbarViewController.m */; };
1C8F4A4F231E70BD00AAF24A /* DC_ZXLocationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A30231E70BC00AAF24A /* DC_ZXLocationViewController.m */; };
1C8F4A50231E70BD00AAF24A /* DC_ZXWashOperationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A31231E70BC00AAF24A /* DC_ZXWashOperationViewController.m */; };
1C8F4A51231E70BD00AAF24A /* DC_ZXWashOrderDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A32231E70BC00AAF24A /* DC_ZXWashOrderDetailViewController.m */; };
1C8F4A52231E70BD00AAF24A /* DC_ZXWashRecordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A34231E70BC00AAF24A /* DC_ZXWashRecordViewController.m */; };
1C8F4A5523209E1600AAF24A /* ZXBluetootDevicehManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A5423209E1600AAF24A /* ZXBluetootDevicehManager.m */; };
1C8F4A5B23212C7500AAF24A /* ZXLauchModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A5A23212C7500AAF24A /* ZXLauchModel.m */; }; 1C8F4A5B23212C7500AAF24A /* ZXLauchModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A5A23212C7500AAF24A /* ZXLauchModel.m */; };
1C8F4A61232135F200AAF24A /* ZXFullScreenAdView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A60232135F200AAF24A /* ZXFullScreenAdView.m */; }; 1C8F4A61232135F200AAF24A /* ZXFullScreenAdView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A60232135F200AAF24A /* ZXFullScreenAdView.m */; };
1C8F4A642321EFF800AAF24A /* ZXAdTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A632321EFF800AAF24A /* ZXAdTool.m */; }; 1C8F4A642321EFF800AAF24A /* ZXAdTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8F4A632321EFF800AAF24A /* ZXAdTool.m */; };
...@@ -122,6 +94,34 @@ ...@@ -122,6 +94,34 @@
1CB3AC0F23053245006F1724 /* ZXOauthHasDCAccountViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB3AC0E23053245006F1724 /* ZXOauthHasDCAccountViewController.m */; }; 1CB3AC0F23053245006F1724 /* ZXOauthHasDCAccountViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB3AC0E23053245006F1724 /* ZXOauthHasDCAccountViewController.m */; };
1CB3AC1523053BF0006F1724 /* UIImage+Crop.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB3AC1223053BED006F1724 /* UIImage+Crop.m */; }; 1CB3AC1523053BF0006F1724 /* UIImage+Crop.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB3AC1223053BED006F1724 /* UIImage+Crop.m */; };
1CB3AC1623053BF0006F1724 /* CropImageController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB3AC1423053BEF006F1724 /* CropImageController.m */; }; 1CB3AC1623053BF0006F1724 /* CropImageController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB3AC1423053BEF006F1724 /* CropImageController.m */; };
1CB9AF58237102B400ED0434 /* DC_ZXWashOrderPayCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF1B237102B300ED0434 /* DC_ZXWashOrderPayCell.m */; };
1CB9AF59237102B400ED0434 /* DC_WashSegHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF1C237102B300ED0434 /* DC_WashSegHeader.m */; };
1CB9AF5A237102B400ED0434 /* DC_ShowMsgView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF1E237102B300ED0434 /* DC_ShowMsgView.m */; };
1CB9AF5B237102B400ED0434 /* DC_ZXWashBucketCleanCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF1F237102B300ED0434 /* DC_ZXWashBucketCleanCell.m */; };
1CB9AF5C237102B400ED0434 /* DC_ZXWashOrderShowCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF22237102B300ED0434 /* DC_ZXWashOrderShowCell.m */; };
1CB9AF5D237102B400ED0434 /* DC_ZXChooseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF23237102B300ED0434 /* DC_ZXChooseCell.m */; };
1CB9AF5E237102B400ED0434 /* DC_ZXWashPayWayCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF24237102B300ED0434 /* DC_ZXWashPayWayCell.m */; };
1CB9AF5F237102B400ED0434 /* DC_ZXChooseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF27237102B300ED0434 /* DC_ZXChooseView.m */; };
1CB9AF60237102B400ED0434 /* DC_WashCLoseTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF29237102B300ED0434 /* DC_WashCLoseTableViewCell.m */; };
1CB9AF61237102B400ED0434 /* DC_ZXReChooseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF2C237102B300ED0434 /* DC_ZXReChooseCell.m */; };
1CB9AF62237102B400ED0434 /* DC_AppointView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF2D237102B300ED0434 /* DC_AppointView.m */; };
1CB9AF63237102B400ED0434 /* DC_ZXWashMyInvitorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF30237102B300ED0434 /* DC_ZXWashMyInvitorCell.m */; };
1CB9AF64237102B400ED0434 /* DC_ZXWashOperationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF35237102B300ED0434 /* DC_ZXWashOperationCell.m */; };
1CB9AF65237102B400ED0434 /* DC_ZXWashAimiPayCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF37237102B300ED0434 /* DC_ZXWashAimiPayCell.m */; };
1CB9AF66237102B400ED0434 /* DC_CountingDownView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF38237102B300ED0434 /* DC_CountingDownView.m */; };
1CB9AF67237102B400ED0434 /* DC_ZXWashService.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF3A237102B300ED0434 /* DC_ZXWashService.m */; };
1CB9AF68237102B400ED0434 /* DC_ZXWashCloseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF3F237102B400ED0434 /* DC_ZXWashCloseViewController.m */; };
1CB9AF6A237102B400ED0434 /* DC_ZXWashTabbarViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF43237102B400ED0434 /* DC_ZXWashTabbarViewController.m */; };
1CB9AF6B237102B400ED0434 /* DC_ZXLocationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF45237102B400ED0434 /* DC_ZXLocationViewController.m */; };
1CB9AF6C237102B400ED0434 /* DC_ZXWashOperationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF46237102B400ED0434 /* DC_ZXWashOperationViewController.m */; };
1CB9AF6D237102B400ED0434 /* DC_ZXWashOrderDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF47237102B400ED0434 /* DC_ZXWashOrderDetailViewController.m */; };
1CB9AF6E237102B400ED0434 /* DC_ZXWashRecordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF49237102B400ED0434 /* DC_ZXWashRecordViewController.m */; };
1CB9AF6F237102B400ED0434 /* DC_ZXWashOrderModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF4C237102B400ED0434 /* DC_ZXWashOrderModel.m */; };
1CB9AF70237102B400ED0434 /* DC_ZXWashOperationModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF4D237102B400ED0434 /* DC_ZXWashOperationModel.m */; };
1CB9AF71237102B400ED0434 /* DC_ZXPreOrderModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF4E237102B400ED0434 /* DC_ZXPreOrderModel.m */; };
1CB9AF72237102B500ED0434 /* DC_ZXWashOrderListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF50237102B400ED0434 /* DC_ZXWashOrderListModel.m */; };
1CB9AF73237102B500ED0434 /* DC_ZXWashMerthinModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF51237102B400ED0434 /* DC_ZXWashMerthinModel.m */; };
1CB9AF74237102B500ED0434 /* DC_ZXWashLocationModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9AF56237102B400ED0434 /* DC_ZXWashLocationModel.m */; };
1CC15429230D5B7400582EC1 /* ZXAimiWalletAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CC15428230D5B7400582EC1 /* ZXAimiWalletAlertView.m */; }; 1CC15429230D5B7400582EC1 /* ZXAimiWalletAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CC15428230D5B7400582EC1 /* ZXAimiWalletAlertView.m */; };
1CC1542D230D6E3600582EC1 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1CC1542C230D6E3600582EC1 /* LaunchScreen.storyboard */; }; 1CC1542D230D6E3600582EC1 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1CC1542C230D6E3600582EC1 /* LaunchScreen.storyboard */; };
1CC1543B230E2FB200582EC1 /* img_lauch.png in Resources */ = {isa = PBXBuildFile; fileRef = 1CC1543A230E2FB200582EC1 /* img_lauch.png */; }; 1CC1543B230E2FB200582EC1 /* img_lauch.png in Resources */ = {isa = PBXBuildFile; fileRef = 1CC1543A230E2FB200582EC1 /* img_lauch.png */; };
...@@ -738,6 +738,8 @@ ...@@ -738,6 +738,8 @@
1C03A9F52269BDBA00D39B93 /* APIManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = APIManager.m; sourceTree = "<group>"; }; 1C03A9F52269BDBA00D39B93 /* APIManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = APIManager.m; sourceTree = "<group>"; };
1C32C15D234C3A9500DBA2E1 /* ZXAliMaMaViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZXAliMaMaViewController.h; sourceTree = "<group>"; }; 1C32C15D234C3A9500DBA2E1 /* ZXAliMaMaViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZXAliMaMaViewController.h; sourceTree = "<group>"; };
1C32C15E234C3A9500DBA2E1 /* ZXAliMaMaViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZXAliMaMaViewController.m; sourceTree = "<group>"; }; 1C32C15E234C3A9500DBA2E1 /* ZXAliMaMaViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZXAliMaMaViewController.m; sourceTree = "<group>"; };
1C364F62237292C0006BC78D /* DCWashBluetoothManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DCWashBluetoothManager.h; sourceTree = "<group>"; };
1C364F63237292C0006BC78D /* DCWashBluetoothManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DCWashBluetoothManager.m; sourceTree = "<group>"; };
1C37F7082366B8260019A2A7 /* BUADTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BUADTool.h; sourceTree = "<group>"; }; 1C37F7082366B8260019A2A7 /* BUADTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BUADTool.h; sourceTree = "<group>"; };
1C37F7092366B8260019A2A7 /* BUADTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BUADTool.m; sourceTree = "<group>"; }; 1C37F7092366B8260019A2A7 /* BUADTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BUADTool.m; sourceTree = "<group>"; };
1C3940F7230A712F005048EB /* libjpush-ios-3.1.1.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libjpush-ios-3.1.1.a"; path = "Pods/JPush/libjpush-ios-3.1.1.a"; sourceTree = "<group>"; }; 1C3940F7230A712F005048EB /* libjpush-ios-3.1.1.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libjpush-ios-3.1.1.a"; path = "Pods/JPush/libjpush-ios-3.1.1.a"; sourceTree = "<group>"; };
...@@ -845,64 +847,6 @@ ...@@ -845,64 +847,6 @@
1C88540F22C1ECEB00A03328 /* ZXAppointBathModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZXAppointBathModel.m; sourceTree = "<group>"; }; 1C88540F22C1ECEB00A03328 /* ZXAppointBathModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZXAppointBathModel.m; sourceTree = "<group>"; };
1C8AF53E2362C1CC00E592E4 /* ZXSearchViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZXSearchViewController.h; sourceTree = "<group>"; }; 1C8AF53E2362C1CC00E592E4 /* ZXSearchViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZXSearchViewController.h; sourceTree = "<group>"; };
1C8AF53F2362C1CC00E592E4 /* ZXSearchViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZXSearchViewController.m; sourceTree = "<group>"; }; 1C8AF53F2362C1CC00E592E4 /* ZXSearchViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZXSearchViewController.m; sourceTree = "<group>"; };
1C8F49F9231E70BA00AAF24A /* DC_ZXWashService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashService.m; sourceTree = "<group>"; };
1C8F49FA231E70BA00AAF24A /* DC_ZXWashService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashService.h; sourceTree = "<group>"; };
1C8F49FC231E70BB00AAF24A /* DC_ZXWashOrderPayCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOrderPayCell.m; sourceTree = "<group>"; };
1C8F49FD231E70BB00AAF24A /* DC_WashSegHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_WashSegHeader.m; sourceTree = "<group>"; };
1C8F49FE231E70BB00AAF24A /* DC_ZXWashMyInvitorCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashMyInvitorCell.h; sourceTree = "<group>"; };
1C8F49FF231E70BB00AAF24A /* DC_ShowMsgView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ShowMsgView.m; sourceTree = "<group>"; };
1C8F4A00231E70BB00AAF24A /* DC_ZXWashBucketCleanCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashBucketCleanCell.m; sourceTree = "<group>"; };
1C8F4A01231E70BB00AAF24A /* DC_AppointView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_AppointView.h; sourceTree = "<group>"; };
1C8F4A02231E70BB00AAF24A /* DC_ZXReChooseCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXReChooseCell.h; sourceTree = "<group>"; };
1C8F4A03231E70BB00AAF24A /* DC_ZXWashOrderShowCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOrderShowCell.m; sourceTree = "<group>"; };
1C8F4A04231E70BB00AAF24A /* DC_ZXChooseCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXChooseCell.m; sourceTree = "<group>"; };
1C8F4A05231E70BB00AAF24A /* DC_ZXWashPayWayCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashPayWayCell.m; sourceTree = "<group>"; };
1C8F4A06231E70BB00AAF24A /* DC_CountingDownView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_CountingDownView.h; sourceTree = "<group>"; };
1C8F4A07231E70BB00AAF24A /* DC_ZXWashAimiPayCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashAimiPayCell.h; sourceTree = "<group>"; };
1C8F4A08231E70BB00AAF24A /* DC_ZXChooseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXChooseView.m; sourceTree = "<group>"; };
1C8F4A09231E70BB00AAF24A /* DC_ZXWashOperationCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOperationCell.h; sourceTree = "<group>"; };
1C8F4A0A231E70BB00AAF24A /* DC_WashCLoseTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_WashCLoseTableViewCell.m; sourceTree = "<group>"; };
1C8F4A0B231E70BB00AAF24A /* DC_WashSegHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_WashSegHeader.h; sourceTree = "<group>"; };
1C8F4A0C231E70BB00AAF24A /* DC_ZXWashOrderPayCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOrderPayCell.h; sourceTree = "<group>"; };
1C8F4A0D231E70BB00AAF24A /* DC_ZXReChooseCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXReChooseCell.m; sourceTree = "<group>"; };
1C8F4A0E231E70BB00AAF24A /* DC_AppointView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_AppointView.m; sourceTree = "<group>"; };
1C8F4A0F231E70BB00AAF24A /* DC_ShowMsgView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ShowMsgView.h; sourceTree = "<group>"; };
1C8F4A10231E70BB00AAF24A /* DC_ZXWashBucketCleanCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashBucketCleanCell.h; sourceTree = "<group>"; };
1C8F4A11231E70BB00AAF24A /* DC_ZXWashMyInvitorCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashMyInvitorCell.m; sourceTree = "<group>"; };
1C8F4A12231E70BB00AAF24A /* DC_ZXWashPayWayCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashPayWayCell.h; sourceTree = "<group>"; };
1C8F4A13231E70BB00AAF24A /* DC_ZXWashOrderShowCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOrderShowCell.h; sourceTree = "<group>"; };
1C8F4A14231E70BB00AAF24A /* DC_ZXChooseCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXChooseCell.h; sourceTree = "<group>"; };
1C8F4A15231E70BB00AAF24A /* DC_WashCLoseTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_WashCLoseTableViewCell.h; sourceTree = "<group>"; };
1C8F4A16231E70BB00AAF24A /* DC_ZXWashOperationCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOperationCell.m; sourceTree = "<group>"; };
1C8F4A17231E70BB00AAF24A /* DC_ZXChooseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXChooseView.h; sourceTree = "<group>"; };
1C8F4A18231E70BB00AAF24A /* DC_ZXWashAimiPayCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashAimiPayCell.m; sourceTree = "<group>"; };
1C8F4A19231E70BB00AAF24A /* DC_CountingDownView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_CountingDownView.m; sourceTree = "<group>"; };
1C8F4A1B231E70BC00AAF24A /* DC_ZXWashOrderModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOrderModel.m; sourceTree = "<group>"; };
1C8F4A1C231E70BC00AAF24A /* DC_ZXWashOperationModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOperationModel.m; sourceTree = "<group>"; };
1C8F4A1D231E70BC00AAF24A /* DC_ZXPreOrderModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXPreOrderModel.m; sourceTree = "<group>"; };
1C8F4A1E231E70BC00AAF24A /* DC_ZXWashLocationModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashLocationModel.h; sourceTree = "<group>"; };
1C8F4A20231E70BC00AAF24A /* DC_ZXWashMerthinModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashMerthinModel.m; sourceTree = "<group>"; };
1C8F4A21231E70BC00AAF24A /* DC_ZXWashOrderModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOrderModel.h; sourceTree = "<group>"; };
1C8F4A22231E70BC00AAF24A /* DC_ZXWashOperationModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOperationModel.h; sourceTree = "<group>"; };
1C8F4A23231E70BC00AAF24A /* DC_ZXPreOrderModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXPreOrderModel.h; sourceTree = "<group>"; };
1C8F4A25231E70BC00AAF24A /* DC_ZXWashLocationModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashLocationModel.m; sourceTree = "<group>"; };
1C8F4A26231E70BC00AAF24A /* DC_ZXWashMerthinModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashMerthinModel.h; sourceTree = "<group>"; };
1C8F4A28231E70BC00AAF24A /* DC_ZXWashOperationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOperationViewController.h; sourceTree = "<group>"; };
1C8F4A29231E70BC00AAF24A /* DC_ZXLocationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXLocationViewController.h; sourceTree = "<group>"; };
1C8F4A2A231E70BC00AAF24A /* DC_ZXWashCloseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashCloseViewController.m; sourceTree = "<group>"; };
1C8F4A2B231E70BC00AAF24A /* DC_ZXWashOrderDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOrderDetailViewController.h; sourceTree = "<group>"; };
1C8F4A2C231E70BC00AAF24A /* DC_ZXWashRecordViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashRecordViewController.h; sourceTree = "<group>"; };
1C8F4A2D231E70BC00AAF24A /* DC_ZXWashScanViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashScanViewController.m; sourceTree = "<group>"; };
1C8F4A2E231E70BC00AAF24A /* DC_ZXWashTabbarViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashTabbarViewController.m; sourceTree = "<group>"; };
1C8F4A2F231E70BC00AAF24A /* DC_ZXWashCloseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashCloseViewController.h; sourceTree = "<group>"; };
1C8F4A30231E70BC00AAF24A /* DC_ZXLocationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXLocationViewController.m; sourceTree = "<group>"; };
1C8F4A31231E70BC00AAF24A /* DC_ZXWashOperationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOperationViewController.m; sourceTree = "<group>"; };
1C8F4A32231E70BC00AAF24A /* DC_ZXWashOrderDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOrderDetailViewController.m; sourceTree = "<group>"; };
1C8F4A33231E70BC00AAF24A /* DC_ZXWashScanViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashScanViewController.h; sourceTree = "<group>"; };
1C8F4A34231E70BC00AAF24A /* DC_ZXWashRecordViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashRecordViewController.m; sourceTree = "<group>"; };
1C8F4A35231E70BC00AAF24A /* DC_ZXWashTabbarViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashTabbarViewController.h; sourceTree = "<group>"; };
1C8F4A5323209E1600AAF24A /* ZXBluetootDevicehManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZXBluetootDevicehManager.h; sourceTree = "<group>"; };
1C8F4A5423209E1600AAF24A /* ZXBluetootDevicehManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZXBluetootDevicehManager.m; sourceTree = "<group>"; };
1C8F4A5923212C7500AAF24A /* ZXLauchModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZXLauchModel.h; sourceTree = "<group>"; }; 1C8F4A5923212C7500AAF24A /* ZXLauchModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZXLauchModel.h; sourceTree = "<group>"; };
1C8F4A5A23212C7500AAF24A /* ZXLauchModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZXLauchModel.m; sourceTree = "<group>"; }; 1C8F4A5A23212C7500AAF24A /* ZXLauchModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZXLauchModel.m; sourceTree = "<group>"; };
1C8F4A5F232135F100AAF24A /* ZXFullScreenAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZXFullScreenAdView.h; sourceTree = "<group>"; }; 1C8F4A5F232135F100AAF24A /* ZXFullScreenAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZXFullScreenAdView.h; sourceTree = "<group>"; };
...@@ -952,6 +896,62 @@ ...@@ -952,6 +896,62 @@
1CB3AC1223053BED006F1724 /* UIImage+Crop.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Crop.m"; sourceTree = "<group>"; }; 1CB3AC1223053BED006F1724 /* UIImage+Crop.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Crop.m"; sourceTree = "<group>"; };
1CB3AC1323053BEE006F1724 /* UIImage+Crop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Crop.h"; sourceTree = "<group>"; }; 1CB3AC1323053BEE006F1724 /* UIImage+Crop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Crop.h"; sourceTree = "<group>"; };
1CB3AC1423053BEF006F1724 /* CropImageController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CropImageController.m; sourceTree = "<group>"; }; 1CB3AC1423053BEF006F1724 /* CropImageController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CropImageController.m; sourceTree = "<group>"; };
1CB9AF1B237102B300ED0434 /* DC_ZXWashOrderPayCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOrderPayCell.m; sourceTree = "<group>"; };
1CB9AF1C237102B300ED0434 /* DC_WashSegHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_WashSegHeader.m; sourceTree = "<group>"; };
1CB9AF1D237102B300ED0434 /* DC_ZXWashMyInvitorCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashMyInvitorCell.h; sourceTree = "<group>"; };
1CB9AF1E237102B300ED0434 /* DC_ShowMsgView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ShowMsgView.m; sourceTree = "<group>"; };
1CB9AF1F237102B300ED0434 /* DC_ZXWashBucketCleanCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashBucketCleanCell.m; sourceTree = "<group>"; };
1CB9AF20237102B300ED0434 /* DC_AppointView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_AppointView.h; sourceTree = "<group>"; };
1CB9AF21237102B300ED0434 /* DC_ZXReChooseCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXReChooseCell.h; sourceTree = "<group>"; };
1CB9AF22237102B300ED0434 /* DC_ZXWashOrderShowCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOrderShowCell.m; sourceTree = "<group>"; };
1CB9AF23237102B300ED0434 /* DC_ZXChooseCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXChooseCell.m; sourceTree = "<group>"; };
1CB9AF24237102B300ED0434 /* DC_ZXWashPayWayCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashPayWayCell.m; sourceTree = "<group>"; };
1CB9AF25237102B300ED0434 /* DC_CountingDownView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_CountingDownView.h; sourceTree = "<group>"; };
1CB9AF26237102B300ED0434 /* DC_ZXWashAimiPayCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashAimiPayCell.h; sourceTree = "<group>"; };
1CB9AF27237102B300ED0434 /* DC_ZXChooseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXChooseView.m; sourceTree = "<group>"; };
1CB9AF28237102B300ED0434 /* DC_ZXWashOperationCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOperationCell.h; sourceTree = "<group>"; };
1CB9AF29237102B300ED0434 /* DC_WashCLoseTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_WashCLoseTableViewCell.m; sourceTree = "<group>"; };
1CB9AF2A237102B300ED0434 /* DC_WashSegHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_WashSegHeader.h; sourceTree = "<group>"; };
1CB9AF2B237102B300ED0434 /* DC_ZXWashOrderPayCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOrderPayCell.h; sourceTree = "<group>"; };
1CB9AF2C237102B300ED0434 /* DC_ZXReChooseCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXReChooseCell.m; sourceTree = "<group>"; };
1CB9AF2D237102B300ED0434 /* DC_AppointView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_AppointView.m; sourceTree = "<group>"; };
1CB9AF2E237102B300ED0434 /* DC_ShowMsgView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ShowMsgView.h; sourceTree = "<group>"; };
1CB9AF2F237102B300ED0434 /* DC_ZXWashBucketCleanCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashBucketCleanCell.h; sourceTree = "<group>"; };
1CB9AF30237102B300ED0434 /* DC_ZXWashMyInvitorCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashMyInvitorCell.m; sourceTree = "<group>"; };
1CB9AF31237102B300ED0434 /* DC_ZXWashPayWayCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashPayWayCell.h; sourceTree = "<group>"; };
1CB9AF32237102B300ED0434 /* DC_ZXWashOrderShowCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOrderShowCell.h; sourceTree = "<group>"; };
1CB9AF33237102B300ED0434 /* DC_ZXChooseCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXChooseCell.h; sourceTree = "<group>"; };
1CB9AF34237102B300ED0434 /* DC_WashCLoseTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_WashCLoseTableViewCell.h; sourceTree = "<group>"; };
1CB9AF35237102B300ED0434 /* DC_ZXWashOperationCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOperationCell.m; sourceTree = "<group>"; };
1CB9AF36237102B300ED0434 /* DC_ZXChooseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXChooseView.h; sourceTree = "<group>"; };
1CB9AF37237102B300ED0434 /* DC_ZXWashAimiPayCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashAimiPayCell.m; sourceTree = "<group>"; };
1CB9AF38237102B300ED0434 /* DC_CountingDownView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_CountingDownView.m; sourceTree = "<group>"; };
1CB9AF3A237102B300ED0434 /* DC_ZXWashService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashService.m; sourceTree = "<group>"; };
1CB9AF3B237102B300ED0434 /* DC_ZXWashService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashService.h; sourceTree = "<group>"; };
1CB9AF3D237102B400ED0434 /* DC_ZXWashOperationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOperationViewController.h; sourceTree = "<group>"; };
1CB9AF3E237102B400ED0434 /* DC_ZXLocationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXLocationViewController.h; sourceTree = "<group>"; };
1CB9AF3F237102B400ED0434 /* DC_ZXWashCloseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashCloseViewController.m; sourceTree = "<group>"; };
1CB9AF40237102B400ED0434 /* DC_ZXWashOrderDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOrderDetailViewController.h; sourceTree = "<group>"; };
1CB9AF41237102B400ED0434 /* DC_ZXWashRecordViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashRecordViewController.h; sourceTree = "<group>"; };
1CB9AF43237102B400ED0434 /* DC_ZXWashTabbarViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashTabbarViewController.m; sourceTree = "<group>"; };
1CB9AF44237102B400ED0434 /* DC_ZXWashCloseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashCloseViewController.h; sourceTree = "<group>"; };
1CB9AF45237102B400ED0434 /* DC_ZXLocationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXLocationViewController.m; sourceTree = "<group>"; };
1CB9AF46237102B400ED0434 /* DC_ZXWashOperationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOperationViewController.m; sourceTree = "<group>"; };
1CB9AF47237102B400ED0434 /* DC_ZXWashOrderDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOrderDetailViewController.m; sourceTree = "<group>"; };
1CB9AF49237102B400ED0434 /* DC_ZXWashRecordViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashRecordViewController.m; sourceTree = "<group>"; };
1CB9AF4A237102B400ED0434 /* DC_ZXWashTabbarViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashTabbarViewController.h; sourceTree = "<group>"; };
1CB9AF4C237102B400ED0434 /* DC_ZXWashOrderModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOrderModel.m; sourceTree = "<group>"; };
1CB9AF4D237102B400ED0434 /* DC_ZXWashOperationModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOperationModel.m; sourceTree = "<group>"; };
1CB9AF4E237102B400ED0434 /* DC_ZXPreOrderModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXPreOrderModel.m; sourceTree = "<group>"; };
1CB9AF4F237102B400ED0434 /* DC_ZXWashLocationModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashLocationModel.h; sourceTree = "<group>"; };
1CB9AF50237102B400ED0434 /* DC_ZXWashOrderListModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashOrderListModel.m; sourceTree = "<group>"; };
1CB9AF51237102B400ED0434 /* DC_ZXWashMerthinModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashMerthinModel.m; sourceTree = "<group>"; };
1CB9AF52237102B400ED0434 /* DC_ZXWashOrderModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOrderModel.h; sourceTree = "<group>"; };
1CB9AF53237102B400ED0434 /* DC_ZXWashOperationModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOperationModel.h; sourceTree = "<group>"; };
1CB9AF54237102B400ED0434 /* DC_ZXPreOrderModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXPreOrderModel.h; sourceTree = "<group>"; };
1CB9AF55237102B400ED0434 /* DC_ZXWashOrderListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashOrderListModel.h; sourceTree = "<group>"; };
1CB9AF56237102B400ED0434 /* DC_ZXWashLocationModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DC_ZXWashLocationModel.m; sourceTree = "<group>"; };
1CB9AF57237102B400ED0434 /* DC_ZXWashMerthinModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DC_ZXWashMerthinModel.h; sourceTree = "<group>"; };
1CC15427230D5B7400582EC1 /* ZXAimiWalletAlertView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZXAimiWalletAlertView.h; sourceTree = "<group>"; }; 1CC15427230D5B7400582EC1 /* ZXAimiWalletAlertView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZXAimiWalletAlertView.h; sourceTree = "<group>"; };
1CC15428230D5B7400582EC1 /* ZXAimiWalletAlertView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZXAimiWalletAlertView.m; sourceTree = "<group>"; }; 1CC15428230D5B7400582EC1 /* ZXAimiWalletAlertView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZXAimiWalletAlertView.m; sourceTree = "<group>"; };
1CC1542C230D6E3600582EC1 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; }; 1CC1542C230D6E3600582EC1 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
...@@ -2353,10 +2353,10 @@ ...@@ -2353,10 +2353,10 @@
1C8968DE231DFC05008F5D7A /* WashClose(多彩洗衣) */ = { 1C8968DE231DFC05008F5D7A /* WashClose(多彩洗衣) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
1C8F4A27231E70BC00AAF24A /* Controller */, 1CB9AF3C237102B400ED0434 /* Controller */,
1C8F4A1A231E70BC00AAF24A /* Model */, 1CB9AF4B237102B400ED0434 /* Model */,
1C8F49FB231E70BB00AAF24A /* View */, 1CB9AF1A237102B300ED0434 /* View */,
1C8F49F8231E70BA00AAF24A /* ViewModel */, 1CB9AF39237102B300ED0434 /* ViewModel */,
); );
path = "WashClose(多彩洗衣)"; path = "WashClose(多彩洗衣)";
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -2370,96 +2370,6 @@ ...@@ -2370,96 +2370,6 @@
path = BUAD; path = BUAD;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
1C8F49F8231E70BA00AAF24A /* ViewModel */ = {
isa = PBXGroup;
children = (
1C8F49FA231E70BA00AAF24A /* DC_ZXWashService.h */,
1C8F49F9231E70BA00AAF24A /* DC_ZXWashService.m */,
1C8F4A5323209E1600AAF24A /* ZXBluetootDevicehManager.h */,
1C8F4A5423209E1600AAF24A /* ZXBluetootDevicehManager.m */,
);
name = ViewModel;
path = ../../../../../../../../Desktop/ss/ss/ViewModel;
sourceTree = "<group>";
};
1C8F49FB231E70BB00AAF24A /* View */ = {
isa = PBXGroup;
children = (
1C8F4A0C231E70BB00AAF24A /* DC_ZXWashOrderPayCell.h */,
1C8F49FC231E70BB00AAF24A /* DC_ZXWashOrderPayCell.m */,
1C8F4A0B231E70BB00AAF24A /* DC_WashSegHeader.h */,
1C8F49FD231E70BB00AAF24A /* DC_WashSegHeader.m */,
1C8F49FE231E70BB00AAF24A /* DC_ZXWashMyInvitorCell.h */,
1C8F4A11231E70BB00AAF24A /* DC_ZXWashMyInvitorCell.m */,
1C8F4A0F231E70BB00AAF24A /* DC_ShowMsgView.h */,
1C8F49FF231E70BB00AAF24A /* DC_ShowMsgView.m */,
1C8F4A10231E70BB00AAF24A /* DC_ZXWashBucketCleanCell.h */,
1C8F4A00231E70BB00AAF24A /* DC_ZXWashBucketCleanCell.m */,
1C8F4A02231E70BB00AAF24A /* DC_ZXReChooseCell.h */,
1C8F4A0D231E70BB00AAF24A /* DC_ZXReChooseCell.m */,
1C8F4A13231E70BB00AAF24A /* DC_ZXWashOrderShowCell.h */,
1C8F4A03231E70BB00AAF24A /* DC_ZXWashOrderShowCell.m */,
1C8F4A14231E70BB00AAF24A /* DC_ZXChooseCell.h */,
1C8F4A04231E70BB00AAF24A /* DC_ZXChooseCell.m */,
1C8F4A12231E70BB00AAF24A /* DC_ZXWashPayWayCell.h */,
1C8F4A05231E70BB00AAF24A /* DC_ZXWashPayWayCell.m */,
1C8F4A07231E70BB00AAF24A /* DC_ZXWashAimiPayCell.h */,
1C8F4A18231E70BB00AAF24A /* DC_ZXWashAimiPayCell.m */,
1C8F4A17231E70BB00AAF24A /* DC_ZXChooseView.h */,
1C8F4A08231E70BB00AAF24A /* DC_ZXChooseView.m */,
1C8F4A09231E70BB00AAF24A /* DC_ZXWashOperationCell.h */,
1C8F4A16231E70BB00AAF24A /* DC_ZXWashOperationCell.m */,
1C8F4A15231E70BB00AAF24A /* DC_WashCLoseTableViewCell.h */,
1C8F4A0A231E70BB00AAF24A /* DC_WashCLoseTableViewCell.m */,
1C8F4A01231E70BB00AAF24A /* DC_AppointView.h */,
1C8F4A0E231E70BB00AAF24A /* DC_AppointView.m */,
1C8F4A06231E70BB00AAF24A /* DC_CountingDownView.h */,
1C8F4A19231E70BB00AAF24A /* DC_CountingDownView.m */,
);
name = View;
path = ../../../../../../../../Desktop/ss/ss/View;
sourceTree = "<group>";
};
1C8F4A1A231E70BC00AAF24A /* Model */ = {
isa = PBXGroup;
children = (
1C8F4A21231E70BC00AAF24A /* DC_ZXWashOrderModel.h */,
1C8F4A1B231E70BC00AAF24A /* DC_ZXWashOrderModel.m */,
1C8F4A22231E70BC00AAF24A /* DC_ZXWashOperationModel.h */,
1C8F4A1C231E70BC00AAF24A /* DC_ZXWashOperationModel.m */,
1C8F4A23231E70BC00AAF24A /* DC_ZXPreOrderModel.h */,
1C8F4A1D231E70BC00AAF24A /* DC_ZXPreOrderModel.m */,
1C8F4A26231E70BC00AAF24A /* DC_ZXWashMerthinModel.h */,
1C8F4A20231E70BC00AAF24A /* DC_ZXWashMerthinModel.m */,
1C8F4A1E231E70BC00AAF24A /* DC_ZXWashLocationModel.h */,
1C8F4A25231E70BC00AAF24A /* DC_ZXWashLocationModel.m */,
);
name = Model;
path = ../../../../../../../../Desktop/ss/ss/Model;
sourceTree = "<group>";
};
1C8F4A27231E70BC00AAF24A /* Controller */ = {
isa = PBXGroup;
children = (
1C8F4A35231E70BC00AAF24A /* DC_ZXWashTabbarViewController.h */,
1C8F4A2E231E70BC00AAF24A /* DC_ZXWashTabbarViewController.m */,
1C8F4A2F231E70BC00AAF24A /* DC_ZXWashCloseViewController.h */,
1C8F4A2A231E70BC00AAF24A /* DC_ZXWashCloseViewController.m */,
1C8F4A29231E70BC00AAF24A /* DC_ZXLocationViewController.h */,
1C8F4A30231E70BC00AAF24A /* DC_ZXLocationViewController.m */,
1C8F4A2C231E70BC00AAF24A /* DC_ZXWashRecordViewController.h */,
1C8F4A34231E70BC00AAF24A /* DC_ZXWashRecordViewController.m */,
1C8F4A28231E70BC00AAF24A /* DC_ZXWashOperationViewController.h */,
1C8F4A31231E70BC00AAF24A /* DC_ZXWashOperationViewController.m */,
1C8F4A33231E70BC00AAF24A /* DC_ZXWashScanViewController.h */,
1C8F4A2D231E70BC00AAF24A /* DC_ZXWashScanViewController.m */,
1C8F4A2B231E70BC00AAF24A /* DC_ZXWashOrderDetailViewController.h */,
1C8F4A32231E70BC00AAF24A /* DC_ZXWashOrderDetailViewController.m */,
);
name = Controller;
path = ../../../../../../../../Desktop/ss/ss/Controller;
sourceTree = "<group>";
};
1C96F77322F7FDAB002DCA9B /* Cells */ = { 1C96F77322F7FDAB002DCA9B /* Cells */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -2527,6 +2437,92 @@ ...@@ -2527,6 +2437,92 @@
path = CropImage; path = CropImage;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
1CB9AF1A237102B300ED0434 /* View */ = {
isa = PBXGroup;
children = (
1CB9AF20237102B300ED0434 /* DC_AppointView.h */,
1CB9AF2D237102B300ED0434 /* DC_AppointView.m */,
1CB9AF25237102B300ED0434 /* DC_CountingDownView.h */,
1CB9AF38237102B300ED0434 /* DC_CountingDownView.m */,
1CB9AF2E237102B300ED0434 /* DC_ShowMsgView.h */,
1CB9AF1E237102B300ED0434 /* DC_ShowMsgView.m */,
1CB9AF34237102B300ED0434 /* DC_WashCLoseTableViewCell.h */,
1CB9AF29237102B300ED0434 /* DC_WashCLoseTableViewCell.m */,
1CB9AF2A237102B300ED0434 /* DC_WashSegHeader.h */,
1CB9AF1C237102B300ED0434 /* DC_WashSegHeader.m */,
1CB9AF33237102B300ED0434 /* DC_ZXChooseCell.h */,
1CB9AF23237102B300ED0434 /* DC_ZXChooseCell.m */,
1CB9AF36237102B300ED0434 /* DC_ZXChooseView.h */,
1CB9AF27237102B300ED0434 /* DC_ZXChooseView.m */,
1CB9AF21237102B300ED0434 /* DC_ZXReChooseCell.h */,
1CB9AF2C237102B300ED0434 /* DC_ZXReChooseCell.m */,
1CB9AF26237102B300ED0434 /* DC_ZXWashAimiPayCell.h */,
1CB9AF37237102B300ED0434 /* DC_ZXWashAimiPayCell.m */,
1CB9AF2F237102B300ED0434 /* DC_ZXWashBucketCleanCell.h */,
1CB9AF1F237102B300ED0434 /* DC_ZXWashBucketCleanCell.m */,
1CB9AF1D237102B300ED0434 /* DC_ZXWashMyInvitorCell.h */,
1CB9AF30237102B300ED0434 /* DC_ZXWashMyInvitorCell.m */,
1CB9AF28237102B300ED0434 /* DC_ZXWashOperationCell.h */,
1CB9AF35237102B300ED0434 /* DC_ZXWashOperationCell.m */,
1CB9AF2B237102B300ED0434 /* DC_ZXWashOrderPayCell.h */,
1CB9AF1B237102B300ED0434 /* DC_ZXWashOrderPayCell.m */,
1CB9AF32237102B300ED0434 /* DC_ZXWashOrderShowCell.h */,
1CB9AF22237102B300ED0434 /* DC_ZXWashOrderShowCell.m */,
1CB9AF31237102B300ED0434 /* DC_ZXWashPayWayCell.h */,
1CB9AF24237102B300ED0434 /* DC_ZXWashPayWayCell.m */,
);
path = View;
sourceTree = "<group>";
};
1CB9AF39237102B300ED0434 /* ViewModel */ = {
isa = PBXGroup;
children = (
1CB9AF3B237102B300ED0434 /* DC_ZXWashService.h */,
1CB9AF3A237102B300ED0434 /* DC_ZXWashService.m */,
1C364F62237292C0006BC78D /* DCWashBluetoothManager.h */,
1C364F63237292C0006BC78D /* DCWashBluetoothManager.m */,
);
path = ViewModel;
sourceTree = "<group>";
};
1CB9AF3C237102B400ED0434 /* Controller */ = {
isa = PBXGroup;
children = (
1CB9AF4A237102B400ED0434 /* DC_ZXWashTabbarViewController.h */,
1CB9AF43237102B400ED0434 /* DC_ZXWashTabbarViewController.m */,
1CB9AF44237102B400ED0434 /* DC_ZXWashCloseViewController.h */,
1CB9AF3F237102B400ED0434 /* DC_ZXWashCloseViewController.m */,
1CB9AF41237102B400ED0434 /* DC_ZXWashRecordViewController.h */,
1CB9AF49237102B400ED0434 /* DC_ZXWashRecordViewController.m */,
1CB9AF3E237102B400ED0434 /* DC_ZXLocationViewController.h */,
1CB9AF45237102B400ED0434 /* DC_ZXLocationViewController.m */,
1CB9AF3D237102B400ED0434 /* DC_ZXWashOperationViewController.h */,
1CB9AF46237102B400ED0434 /* DC_ZXWashOperationViewController.m */,
1CB9AF40237102B400ED0434 /* DC_ZXWashOrderDetailViewController.h */,
1CB9AF47237102B400ED0434 /* DC_ZXWashOrderDetailViewController.m */,
);
path = Controller;
sourceTree = "<group>";
};
1CB9AF4B237102B400ED0434 /* Model */ = {
isa = PBXGroup;
children = (
1CB9AF54237102B400ED0434 /* DC_ZXPreOrderModel.h */,
1CB9AF4E237102B400ED0434 /* DC_ZXPreOrderModel.m */,
1CB9AF4F237102B400ED0434 /* DC_ZXWashLocationModel.h */,
1CB9AF56237102B400ED0434 /* DC_ZXWashLocationModel.m */,
1CB9AF57237102B400ED0434 /* DC_ZXWashMerthinModel.h */,
1CB9AF51237102B400ED0434 /* DC_ZXWashMerthinModel.m */,
1CB9AF53237102B400ED0434 /* DC_ZXWashOperationModel.h */,
1CB9AF4D237102B400ED0434 /* DC_ZXWashOperationModel.m */,
1CB9AF55237102B400ED0434 /* DC_ZXWashOrderListModel.h */,
1CB9AF50237102B400ED0434 /* DC_ZXWashOrderListModel.m */,
1CB9AF52237102B400ED0434 /* DC_ZXWashOrderModel.h */,
1CB9AF4C237102B400ED0434 /* DC_ZXWashOrderModel.m */,
);
path = Model;
sourceTree = "<group>";
};
1CC256CF234DBC0E00C43041 /* BQT(百青藤) */ = { 1CC256CF234DBC0E00C43041 /* BQT(百青藤) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -5236,6 +5232,7 @@ ...@@ -5236,6 +5232,7 @@
A7DECCE12079F7D40039EC22 /* HMScanerCardViewController.m in Sources */, A7DECCE12079F7D40039EC22 /* HMScanerCardViewController.m in Sources */,
1CD9C41B22C3702F00C04683 /* ZXAppointBathRecordCell.m in Sources */, 1CD9C41B22C3702F00C04683 /* ZXAppointBathRecordCell.m in Sources */,
1CB3AC0C2305321D006F1724 /* ZXBindTelViewController.m in Sources */, 1CB3AC0C2305321D006F1724 /* ZXBindTelViewController.m in Sources */,
1CB9AF73237102B500ED0434 /* DC_ZXWashMerthinModel.m in Sources */,
A7265BF320CA45690084B814 /* GYNoticeViewCell.m in Sources */, A7265BF320CA45690084B814 /* GYNoticeViewCell.m in Sources */,
A7F3E01121B530F500010E23 /* ZXBookDetailModel.m in Sources */, A7F3E01121B530F500010E23 /* ZXBookDetailModel.m in Sources */,
A7B0589C211A80EC00304B38 /* ZXDrinkViewController.m in Sources */, A7B0589C211A80EC00304B38 /* ZXDrinkViewController.m in Sources */,
...@@ -5243,30 +5240,28 @@ ...@@ -5243,30 +5240,28 @@
A7F3E17321B5330F00010E23 /* HTTPConnection.m in Sources */, A7F3E17321B5330F00010E23 /* HTTPConnection.m in Sources */,
1C3AE7C422F0482D0045C969 /* ZXScannerViewController.m in Sources */, 1C3AE7C422F0482D0045C969 /* ZXScannerViewController.m in Sources */,
A745DBFA210089BC00D0C648 /* ZXPutMenuTimeCell.m in Sources */, A745DBFA210089BC00D0C648 /* ZXPutMenuTimeCell.m in Sources */,
1C8F4A41231E70BC00AAF24A /* DC_AppointView.m in Sources */,
1C96F77D22F94227002DCA9B /* ZXHomePaeFirstRecahrgeView.m in Sources */, 1C96F77D22F94227002DCA9B /* ZXHomePaeFirstRecahrgeView.m in Sources */,
1C3AE7C322F0482D0045C969 /* SGQRCodeObtainConfigure.m in Sources */, 1C3AE7C322F0482D0045C969 /* SGQRCodeObtainConfigure.m in Sources */,
2215B61C1F95B12B00C37778 /* BYHelp.m in Sources */, 2215B61C1F95B12B00C37778 /* BYHelp.m in Sources */,
A76D690C2111850700E76A6B /* ZXQuhuoTableViewCell.m in Sources */, A76D690C2111850700E76A6B /* ZXQuhuoTableViewCell.m in Sources */,
A7F3E1B321B5330F00010E23 /* XDSLightView.m in Sources */, A7F3E1B321B5330F00010E23 /* XDSLightView.m in Sources */,
1CB9AF6C237102B400ED0434 /* DC_ZXWashOperationViewController.m in Sources */,
A745DBF421005E8F00D0C648 /* ZXUnlockingDepositController.m in Sources */, A745DBF421005E8F00D0C648 /* ZXUnlockingDepositController.m in Sources */,
A7F3E00221B530F400010E23 /* ZXBookCateDetailController.m in Sources */, A7F3E00221B530F400010E23 /* ZXBookCateDetailController.m in Sources */,
A7EDBA5E20E4A63E00B329BA /* ZXWashService.m in Sources */, A7EDBA5E20E4A63E00B329BA /* ZXWashService.m in Sources */,
1C8F4A37231E70BC00AAF24A /* DC_ZXWashOrderPayCell.m in Sources */,
A7F3E1CC21B5359A00010E23 /* mztools.c in Sources */, A7F3E1CC21B5359A00010E23 /* mztools.c in Sources */,
A756C5A621F9B5960006E418 /* ZXNewPayOrderTableViewCell.m in Sources */, A756C5A621F9B5960006E418 /* ZXNewPayOrderTableViewCell.m in Sources */,
A7F3E18E21B5330F00010E23 /* CXHTMLDocument.m in Sources */, A7F3E18E21B5330F00010E23 /* CXHTMLDocument.m in Sources */,
A745DBE8210022F600D0C648 /* ZXLatticeRightPopView.m in Sources */, A745DBE8210022F600D0C648 /* ZXLatticeRightPopView.m in Sources */,
A740F1EA20E089CB0037EDA3 /* ZXWashOrderPayCell.m in Sources */, A740F1EA20E089CB0037EDA3 /* ZXWashOrderPayCell.m in Sources */,
1C8F4A39231E70BC00AAF24A /* DC_ShowMsgView.m in Sources */,
1CD9E56D229CD7D900FFDA29 /* ZXBDSteamTableViewCell.m in Sources */, 1CD9E56D229CD7D900FFDA29 /* ZXBDSteamTableViewCell.m in Sources */,
A7F3E02221B530F500010E23 /* ZXBookSearchListCell.m in Sources */, A7F3E02221B530F500010E23 /* ZXBookSearchListCell.m in Sources */,
1C8F4A4D231E70BD00AAF24A /* DC_ZXWashScanViewController.m in Sources */,
A7F3E17021B5330F00010E23 /* DDNumber.m in Sources */, A7F3E17021B5330F00010E23 /* DDNumber.m in Sources */,
1CFDEC9723602A9E007701A5 /* PYSearchConst.m in Sources */, 1CFDEC9723602A9E007701A5 /* PYSearchConst.m in Sources */,
1CB3AC092304E369006F1724 /* ZXMePageMenuModel.m in Sources */, 1CB3AC092304E369006F1724 /* ZXMePageMenuModel.m in Sources */,
2215B61D1F95B12B00C37778 /* GraphicsCode.m in Sources */, 2215B61D1F95B12B00C37778 /* GraphicsCode.m in Sources */,
A7F3E1A721B5330F00010E23 /* XDSPhotoBrowser.m in Sources */, A7F3E1A721B5330F00010E23 /* XDSPhotoBrowser.m in Sources */,
1CB9AF72237102B500ED0434 /* DC_ZXWashOrderListModel.m in Sources */,
A7BF950321104276007466F0 /* ZXPercetMoneyModel.m in Sources */, A7BF950321104276007466F0 /* ZXPercetMoneyModel.m in Sources */,
A705C01F21D4B067004F1628 /* MWTapDetectingView.m in Sources */, A705C01F21D4B067004F1628 /* MWTapDetectingView.m in Sources */,
A7F3E1B421B5330F00010E23 /* XDSMenuBottomView.m in Sources */, A7F3E1B421B5330F00010E23 /* XDSMenuBottomView.m in Sources */,
...@@ -5278,12 +5273,10 @@ ...@@ -5278,12 +5273,10 @@
2215B61E1F95B12B00C37778 /* HYSegmentedControl.m in Sources */, 2215B61E1F95B12B00C37778 /* HYSegmentedControl.m in Sources */,
A7F3E1A321B5330F00010E23 /* XDSReaderUtil.m in Sources */, A7F3E1A321B5330F00010E23 /* XDSReaderUtil.m in Sources */,
A7DECCA02079F0E30039EC22 /* MBProgressHUD+ShowTextMessage.m in Sources */, A7DECCA02079F0E30039EC22 /* MBProgressHUD+ShowTextMessage.m in Sources */,
1C8F4A3C231E70BC00AAF24A /* DC_ZXChooseCell.m in Sources */,
A7F3E1A821B5330F00010E23 /* XDSReadPageViewController.m in Sources */, A7F3E1A821B5330F00010E23 /* XDSReadPageViewController.m in Sources */,
A72BE4B621D5CD030069C0E1 /* AlertStyleSimple.m in Sources */, A72BE4B621D5CD030069C0E1 /* AlertStyleSimple.m in Sources */,
1CF4C0AF22F3CCF700944C63 /* ZXHomePageSteamCell.m in Sources */, 1CF4C0AF22F3CCF700944C63 /* ZXHomePageSteamCell.m in Sources */,
1CB3AC0F23053245006F1724 /* ZXOauthHasDCAccountViewController.m in Sources */, 1CB3AC0F23053245006F1724 /* ZXOauthHasDCAccountViewController.m in Sources */,
1C8F4A45231E70BC00AAF24A /* DC_CountingDownView.m in Sources */,
A756C5A321F9B5960006E418 /* ZXNewPayLessMoneyModel.m in Sources */, A756C5A321F9B5960006E418 /* ZXNewPayLessMoneyModel.m in Sources */,
A73F429B20DC9C060074A00D /* ZXWashPayWayCell.m in Sources */, A73F429B20DC9C060074A00D /* ZXWashPayWayCell.m in Sources */,
2215B6211F95B12B00C37778 /* MCCustomizeControl.m in Sources */, 2215B6211F95B12B00C37778 /* MCCustomizeControl.m in Sources */,
...@@ -5320,6 +5313,7 @@ ...@@ -5320,6 +5313,7 @@
A756C5AE21F9B5960006E418 /* ZXOrderPayController.m in Sources */, A756C5AE21F9B5960006E418 /* ZXOrderPayController.m in Sources */,
1CFDEC9A23602A9E007701A5 /* UIView+PYSearchExtension.m in Sources */, 1CFDEC9A23602A9E007701A5 /* UIView+PYSearchExtension.m in Sources */,
1CC256DF234DE9A400C43041 /* ZXBQTChildViewController.m in Sources */, 1CC256DF234DE9A400C43041 /* ZXBQTChildViewController.m in Sources */,
1CB9AF66237102B400ED0434 /* DC_CountingDownView.m in Sources */,
A745DBEE2100303B00D0C648 /* ZXGoPutMenuCell.m in Sources */, A745DBEE2100303B00D0C648 /* ZXGoPutMenuCell.m in Sources */,
A705C01A21D4B067004F1628 /* MWGridCell.m in Sources */, A705C01A21D4B067004F1628 /* MWGridCell.m in Sources */,
A7FE8D8C20C8FB330028B721 /* JKDBHelper.m in Sources */, A7FE8D8C20C8FB330028B721 /* JKDBHelper.m in Sources */,
...@@ -5332,22 +5326,22 @@ ...@@ -5332,22 +5326,22 @@
A756C5B121F9B5960006E418 /* ZXNewOrderListViewController.m in Sources */, A756C5B121F9B5960006E418 /* ZXNewOrderListViewController.m in Sources */,
A7F3E1CF21B535C000010E23 /* ioapi.c in Sources */, A7F3E1CF21B535C000010E23 /* ioapi.c in Sources */,
1C96A9EB234C9501000EE043 /* LMHWaterFallLayout.m in Sources */, 1C96A9EB234C9501000EE043 /* LMHWaterFallLayout.m in Sources */,
1C8F4A4F231E70BD00AAF24A /* DC_ZXLocationViewController.m in Sources */,
A7F3E01521B530F500010E23 /* ZXBookSearchListModel.m in Sources */, A7F3E01521B530F500010E23 /* ZXBookSearchListModel.m in Sources */,
A7F3E1B521B5330F00010E23 /* XDSMenuTopView.m in Sources */, A7F3E1B521B5330F00010E23 /* XDSMenuTopView.m in Sources */,
226355041F4D1F1100018E69 /* SaveUserInfoModel.m in Sources */, 226355041F4D1F1100018E69 /* SaveUserInfoModel.m in Sources */,
1C03A9F62269BDBA00D39B93 /* APIManager.m in Sources */, 1C03A9F62269BDBA00D39B93 /* APIManager.m in Sources */,
A7B752FD20A054310056C8F9 /* ContentImageCupView.m in Sources */, A7B752FD20A054310056C8F9 /* ContentImageCupView.m in Sources */,
1C3AE7D322F129B10045C969 /* ZXHomePageViewController.m in Sources */, 1C3AE7D322F129B10045C969 /* ZXHomePageViewController.m in Sources */,
1C8F4A43231E70BC00AAF24A /* DC_ZXWashOperationCell.m in Sources */,
A7EC706F20ECC504001504C5 /* ZXWashOrderListModel.m in Sources */, A7EC706F20ECC504001504C5 /* ZXWashOrderListModel.m in Sources */,
A754368C21D331F8005584CC /* fetchAllDeviceModel.m in Sources */, A754368C21D331F8005584CC /* fetchAllDeviceModel.m in Sources */,
A705C01B21D4B067004F1628 /* MWGridViewController.m in Sources */, A705C01B21D4B067004F1628 /* MWGridViewController.m in Sources */,
1C721E3923699A39006E5D3D /* ZXAliMaRecomondModel.m in Sources */, 1C721E3923699A39006E5D3D /* ZXAliMaRecomondModel.m in Sources */,
1C39411D230BC9D5005048EB /* ZXRSReportItemView.m in Sources */, 1C39411D230BC9D5005048EB /* ZXRSReportItemView.m in Sources */,
A7F3E01721B530F500010E23 /* ZXBookTopModel.m in Sources */, A7F3E01721B530F500010E23 /* ZXBookTopModel.m in Sources */,
1CB9AF5F237102B400ED0434 /* DC_ZXChooseView.m in Sources */,
A7BC4D6320CA105A009C031D /* HomeNormalHeader.m in Sources */, A7BC4D6320CA105A009C031D /* HomeNormalHeader.m in Sources */,
A756C5A021F9B5960006E418 /* ZXNotPay.m in Sources */, A756C5A021F9B5960006E418 /* ZXNotPay.m in Sources */,
1CB9AF5A237102B400ED0434 /* DC_ShowMsgView.m in Sources */,
225F38911FCE789B00C0B62F /* AnnounceModel.m in Sources */, 225F38911FCE789B00C0B62F /* AnnounceModel.m in Sources */,
1C3AE7E622F15BE90045C969 /* ZXHomePageHeader.m in Sources */, 1C3AE7E622F15BE90045C969 /* ZXHomePageHeader.m in Sources */,
1C3AE7DD22F131810045C969 /* ZXHomePageFouction.m in Sources */, 1C3AE7DD22F131810045C969 /* ZXHomePageFouction.m in Sources */,
...@@ -5371,7 +5365,6 @@ ...@@ -5371,7 +5365,6 @@
1C3AE7FB22F18E260045C969 /* ZXHomePageWindowCell.m in Sources */, 1C3AE7FB22F18E260045C969 /* ZXHomePageWindowCell.m in Sources */,
22E36C991F558D1B00073AC2 /* TopUpCell.m in Sources */, 22E36C991F558D1B00073AC2 /* TopUpCell.m in Sources */,
A7F3E19E21B5330F00010E23 /* XDSMarkModel.m in Sources */, A7F3E19E21B5330F00010E23 /* XDSMarkModel.m in Sources */,
1C8F4A40231E70BC00AAF24A /* DC_ZXReChooseCell.m in Sources */,
A754367C21D331EA005584CC /* RateCell.m in Sources */, A754367C21D331EA005584CC /* RateCell.m in Sources */,
1C5B26B8225B3B7B001B0E1B /* ZXSettingViewController.m in Sources */, 1C5B26B8225B3B7B001B0E1B /* ZXSettingViewController.m in Sources */,
A77F92A62175C23100D633B4 /* ZXConfirmPayViewController.m in Sources */, A77F92A62175C23100D633B4 /* ZXConfirmPayViewController.m in Sources */,
...@@ -5386,18 +5379,16 @@ ...@@ -5386,18 +5379,16 @@
A7F3E17421B5330F00010E23 /* HTTPMessage.m in Sources */, A7F3E17421B5330F00010E23 /* HTTPMessage.m in Sources */,
A7EC706C20EC9867001504C5 /* ZXWashOrderModel.m in Sources */, A7EC706C20EC9867001504C5 /* ZXWashOrderModel.m in Sources */,
1CFDEC84235FFD3E007701A5 /* ZXFliterView.m in Sources */, 1CFDEC84235FFD3E007701A5 /* ZXFliterView.m in Sources */,
1CB9AF65237102B400ED0434 /* DC_ZXWashAimiPayCell.m in Sources */,
A705BFC021D4AFD8004F1628 /* HTTPErrorResponse.m in Sources */, A705BFC021D4AFD8004F1628 /* HTTPErrorResponse.m in Sources */,
1C8F4A36231E70BC00AAF24A /* DC_ZXWashService.m in Sources */,
A7FE8D7020C8DD8C0028B721 /* ZTHomeViewController.m in Sources */, A7FE8D7020C8DD8C0028B721 /* ZTHomeViewController.m in Sources */,
A7EDBA6120E4A9FA00B329BA /* ZXWashMerthinModel.m in Sources */, A7EDBA6120E4A9FA00B329BA /* ZXWashMerthinModel.m in Sources */,
A756C5B021F9B5960006E418 /* ZXNewConfirmPayViewController.m in Sources */, A756C5B021F9B5960006E418 /* ZXNewConfirmPayViewController.m in Sources */,
229A0E441F99D40700B2A8E3 /* UIView+Shadow.m in Sources */, 229A0E441F99D40700B2A8E3 /* UIView+Shadow.m in Sources */,
1C8F4A42231E70BC00AAF24A /* DC_ZXWashMyInvitorCell.m in Sources */,
A75436E321D34567005584CC /* XieYiModel.m in Sources */, A75436E321D34567005584CC /* XieYiModel.m in Sources */,
A7F3E13421B5330F00010E23 /* DACircularProgressView.m in Sources */, A7F3E13421B5330F00010E23 /* DACircularProgressView.m in Sources */,
A705BFBE21D4AFD8004F1628 /* HTTPRedirectResponse.m in Sources */, A705BFBE21D4AFD8004F1628 /* HTTPRedirectResponse.m in Sources */,
A75436DB21D34567005584CC /* ZXSchoolAreaChooseCell.m in Sources */, A75436DB21D34567005584CC /* ZXSchoolAreaChooseCell.m in Sources */,
1C8F4A3F231E70BC00AAF24A /* DC_WashCLoseTableViewCell.m in Sources */,
A7F3E18A21B5330F00010E23 /* GTMNSString+HTML.m in Sources */, A7F3E18A21B5330F00010E23 /* GTMNSString+HTML.m in Sources */,
A75436E021D34567005584CC /* XieYIViewController.m in Sources */, A75436E021D34567005584CC /* XieYIViewController.m in Sources */,
A754367521D331EA005584CC /* BuyRateModel.m in Sources */, A754367521D331EA005584CC /* BuyRateModel.m in Sources */,
...@@ -5418,6 +5409,7 @@ ...@@ -5418,6 +5409,7 @@
A754367721D331EA005584CC /* MakeBuyCouponsPayTypeModel.m in Sources */, A754367721D331EA005584CC /* MakeBuyCouponsPayTypeModel.m in Sources */,
2267AF4B1F564A1500F7C44C /* UseEuipmentHeadView.m in Sources */, 2267AF4B1F564A1500F7C44C /* UseEuipmentHeadView.m in Sources */,
A7EDB66620FF16380096500B /* LatticeTableHeader.m in Sources */, A7EDB66620FF16380096500B /* LatticeTableHeader.m in Sources */,
1CB9AF6E237102B400ED0434 /* DC_ZXWashRecordViewController.m in Sources */,
A77DE2D020DB6F66002FB903 /* ZXWashRecordViewController.m in Sources */, A77DE2D020DB6F66002FB903 /* ZXWashRecordViewController.m in Sources */,
A7F3E17721B5330F00010E23 /* MultipartMessageHeader.m in Sources */, A7F3E17721B5330F00010E23 /* MultipartMessageHeader.m in Sources */,
A77315612123C35A00E57D6E /* ZXGoPutFreeCell.m in Sources */, A77315612123C35A00E57D6E /* ZXGoPutFreeCell.m in Sources */,
...@@ -5431,7 +5423,6 @@ ...@@ -5431,7 +5423,6 @@
1C88541022C1ECEB00A03328 /* ZXAppointBathModel.m in Sources */, 1C88541022C1ECEB00A03328 /* ZXAppointBathModel.m in Sources */,
22E57B361F8E04C6008A753E /* UIImage+Image.m in Sources */, 22E57B361F8E04C6008A753E /* UIImage+Image.m in Sources */,
A7F3E00821B530F500010E23 /* ZXBookTopListController.m in Sources */, A7F3E00821B530F500010E23 /* ZXBookTopListController.m in Sources */,
1C8F4A3D231E70BC00AAF24A /* DC_ZXWashPayWayCell.m in Sources */,
A7265BFA20CA76050084B814 /* ExpecptionModel.m in Sources */, A7265BFA20CA76050084B814 /* ExpecptionModel.m in Sources */,
22E36C971F558D1B00073AC2 /* PayTypeCell.m in Sources */, 22E36C971F558D1B00073AC2 /* PayTypeCell.m in Sources */,
A7F3E00C21B530F500010E23 /* ZXColorfulBookrackController.m in Sources */, A7F3E00C21B530F500010E23 /* ZXColorfulBookrackController.m in Sources */,
...@@ -5441,7 +5432,6 @@ ...@@ -5441,7 +5432,6 @@
1CB3AC1523053BF0006F1724 /* UIImage+Crop.m in Sources */, 1CB3AC1523053BF0006F1724 /* UIImage+Crop.m in Sources */,
A7F3E18D21B5330F00010E23 /* CXMLNode_CreationExtensions.m in Sources */, A7F3E18D21B5330F00010E23 /* CXMLNode_CreationExtensions.m in Sources */,
A75436D921D34567005584CC /* LoginModel.m in Sources */, A75436D921D34567005584CC /* LoginModel.m in Sources */,
1C8F4A3E231E70BC00AAF24A /* DC_ZXChooseView.m in Sources */,
A7A858CB20BA7A47001917F2 /* ZXSelfHelpViewController.m in Sources */, A7A858CB20BA7A47001917F2 /* ZXSelfHelpViewController.m in Sources */,
A7EDBA6420E4DD3900B329BA /* CommonModel.m in Sources */, A7EDBA6420E4DD3900B329BA /* CommonModel.m in Sources */,
A72BB5AC21115ECC001177BB /* ZXGetGoodsModel.m in Sources */, A72BB5AC21115ECC001177BB /* ZXGetGoodsModel.m in Sources */,
...@@ -5451,7 +5441,6 @@ ...@@ -5451,7 +5441,6 @@
1C88540422C1B1D600A03328 /* ZXAppointBathTabbarViewController.m in Sources */, 1C88540422C1B1D600A03328 /* ZXAppointBathTabbarViewController.m in Sources */,
225F38941FCE7B5300C0B62F /* JudgegzStore.m in Sources */, 225F38941FCE7B5300C0B62F /* JudgegzStore.m in Sources */,
1C394128230BC9D5005048EB /* ZXRGGModel.m in Sources */, 1C394128230BC9D5005048EB /* ZXRGGModel.m in Sources */,
1C8F4A38231E70BC00AAF24A /* DC_WashSegHeader.m in Sources */,
A705C01E21D4B067004F1628 /* MWTapDetectingImageView.m in Sources */, A705C01E21D4B067004F1628 /* MWTapDetectingImageView.m in Sources */,
A7F3E16A21B5330F00010E23 /* DDLog.m in Sources */, A7F3E16A21B5330F00010E23 /* DDLog.m in Sources */,
22E36CD01F55975500073AC2 /* TicketCell.m in Sources */, 22E36CD01F55975500073AC2 /* TicketCell.m in Sources */,
...@@ -5464,7 +5453,6 @@ ...@@ -5464,7 +5453,6 @@
A7F3E1BA21B5330F00010E23 /* XDSReadViewConst.m in Sources */, A7F3E1BA21B5330F00010E23 /* XDSReadViewConst.m in Sources */,
22704ACF1F48170900B8D786 /* UserCenterModel.m in Sources */, 22704ACF1F48170900B8D786 /* UserCenterModel.m in Sources */,
A7C6432C216F0037003E9AE7 /* GTMBase64.m in Sources */, A7C6432C216F0037003E9AE7 /* GTMBase64.m in Sources */,
1C8F4A44231E70BC00AAF24A /* DC_ZXWashAimiPayCell.m in Sources */,
1CFDEC9423602A9E007701A5 /* UIColor+PYSearchExtension.m in Sources */, 1CFDEC9423602A9E007701A5 /* UIColor+PYSearchExtension.m in Sources */,
A7EB7E6A20C919FB00B0AF49 /* ZTHomeViewController+Extension.m in Sources */, A7EB7E6A20C919FB00B0AF49 /* ZTHomeViewController+Extension.m in Sources */,
A7F3E17221B5330F00010E23 /* HTTPAuthenticationRequest.m in Sources */, A7F3E17221B5330F00010E23 /* HTTPAuthenticationRequest.m in Sources */,
...@@ -5481,15 +5469,12 @@ ...@@ -5481,15 +5469,12 @@
22E36C941F558D1B00073AC2 /* PayModel.m in Sources */, 22E36C941F558D1B00073AC2 /* PayModel.m in Sources */,
2267AF541F565D8300F7C44C /* DeletTicketModel.m in Sources */, 2267AF541F565D8300F7C44C /* DeletTicketModel.m in Sources */,
A79C9D2920DA1A6B00D7D18E /* WashSegHeader.m in Sources */, A79C9D2920DA1A6B00D7D18E /* WashSegHeader.m in Sources */,
1C8F4A48231E70BD00AAF24A /* DC_ZXPreOrderModel.m in Sources */,
A7F3E00B21B530F500010E23 /* ZXColorfulBookListController.m in Sources */, A7F3E00B21B530F500010E23 /* ZXColorfulBookListController.m in Sources */,
A7F3E16F21B5330F00010E23 /* DDData.m in Sources */, A7F3E16F21B5330F00010E23 /* DDData.m in Sources */,
1C8F4A3A231E70BC00AAF24A /* DC_ZXWashBucketCleanCell.m in Sources */,
A7A8F43B20A96E4500A129E0 /* YWPrintViewController.m in Sources */, A7A8F43B20A96E4500A129E0 /* YWPrintViewController.m in Sources */,
A745DBF7210084AB00D0C648 /* ZXPutMenuMessageCell.m in Sources */, A745DBF7210084AB00D0C648 /* ZXPutMenuMessageCell.m in Sources */,
A756C5A921F9B5960006E418 /* ZXNewPayHeaderTableViewCell.m in Sources */, A756C5A921F9B5960006E418 /* ZXNewPayHeaderTableViewCell.m in Sources */,
A7B7530020A135310056C8F9 /* FTUploader.m in Sources */, A7B7530020A135310056C8F9 /* FTUploader.m in Sources */,
1C8F4A52231E70BD00AAF24A /* DC_ZXWashRecordViewController.m in Sources */,
1C78597F232F85E30055A494 /* ZXBDTool.m in Sources */, 1C78597F232F85E30055A494 /* ZXBDTool.m in Sources */,
22E36CAB1F558D9800073AC2 /* HomeDataModel.m in Sources */, 22E36CAB1F558D9800073AC2 /* HomeDataModel.m in Sources */,
1C394120230BC9D5005048EB /* ZXRSADIsCut.m in Sources */, 1C394120230BC9D5005048EB /* ZXRSADIsCut.m in Sources */,
...@@ -5520,12 +5505,17 @@ ...@@ -5520,12 +5505,17 @@
A705BFBD21D4AFD8004F1628 /* HTTPDynamicFileResponse.m in Sources */, A705BFBD21D4AFD8004F1628 /* HTTPDynamicFileResponse.m in Sources */,
A7DF4D34210705EA00A81B7E /* UIColor+ZXExtension.m in Sources */, A7DF4D34210705EA00A81B7E /* UIColor+ZXExtension.m in Sources */,
919420541F3810CE0023BD5D /* UIBarButtonItem+Item.m in Sources */, 919420541F3810CE0023BD5D /* UIBarButtonItem+Item.m in Sources */,
1CB9AF68237102B400ED0434 /* DC_ZXWashCloseViewController.m in Sources */,
A7B7D22120CE8A09009B8E29 /* UIViewController+TunTransition.m in Sources */, A7B7D22120CE8A09009B8E29 /* UIViewController+TunTransition.m in Sources */,
1CB9AF61237102B400ED0434 /* DC_ZXReChooseCell.m in Sources */,
A754367821D331EA005584CC /* BuyCouponPayCell.m in Sources */, A754367821D331EA005584CC /* BuyCouponPayCell.m in Sources */,
1CF8630C2303F1700007EBC6 /* ZXLoginViewController.m in Sources */, 1CF8630C2303F1700007EBC6 /* ZXLoginViewController.m in Sources */,
1CB9AF67237102B400ED0434 /* DC_ZXWashService.m in Sources */,
1CB9AF62237102B400ED0434 /* DC_AppointView.m in Sources */,
22E36CD51F559D9700073AC2 /* DeviceCell.m in Sources */, 22E36CD51F559D9700073AC2 /* DeviceCell.m in Sources */,
A72BE4B921D5CD030069C0E1 /* AlertStyleDefault.m in Sources */, A72BE4B921D5CD030069C0E1 /* AlertStyleDefault.m in Sources */,
A756C5A521F9B5960006E418 /* ZXPMDView.m in Sources */, A756C5A521F9B5960006E418 /* ZXPMDView.m in Sources */,
1CB9AF64237102B400ED0434 /* DC_ZXWashOperationCell.m in Sources */,
A7F3E1AD21B5330F00010E23 /* XDSMarkViewController.m in Sources */, A7F3E1AD21B5330F00010E23 /* XDSMarkViewController.m in Sources */,
A748D725221CF96500777FFC /* ZXNewSchool.m in Sources */, A748D725221CF96500777FFC /* ZXNewSchool.m in Sources */,
A745DBF12100572100D0C648 /* ZXLatticePayCell.m in Sources */, A745DBF12100572100D0C648 /* ZXLatticePayCell.m in Sources */,
...@@ -5540,6 +5530,7 @@ ...@@ -5540,6 +5530,7 @@
A756C5CF21FAA6050006E418 /* TAPageControl.m in Sources */, A756C5CF21FAA6050006E418 /* TAPageControl.m in Sources */,
A754368A21D331F8005584CC /* SearchEquipmenController.m in Sources */, A754368A21D331F8005584CC /* SearchEquipmenController.m in Sources */,
A705BF7921D47FB3004F1628 /* YYAnimatedImageView.m in Sources */, A705BF7921D47FB3004F1628 /* YYAnimatedImageView.m in Sources */,
1CB9AF5B237102B400ED0434 /* DC_ZXWashBucketCleanCell.m in Sources */,
22E57B451F8E0864008A753E /* UINavigationController+ABExtras.m in Sources */, 22E57B451F8E0864008A753E /* UINavigationController+ABExtras.m in Sources */,
2256AC391F5D7C4F0060BFE8 /* MyTabViewController.m in Sources */, 2256AC391F5D7C4F0060BFE8 /* MyTabViewController.m in Sources */,
A740F1E720E089B70037EDA3 /* ZXWashOrderShowCell.m in Sources */, A740F1E720E089B70037EDA3 /* ZXWashOrderShowCell.m in Sources */,
...@@ -5548,10 +5539,10 @@ ...@@ -5548,10 +5539,10 @@
A7AB5FEA20AC17D20066950A /* ZXLoading.m in Sources */, A7AB5FEA20AC17D20066950A /* ZXLoading.m in Sources */,
225E30F61FB9659500480C8F /* MZTimerLabel.m in Sources */, 225E30F61FB9659500480C8F /* MZTimerLabel.m in Sources */,
A7F3E16921B5330F00010E23 /* DDFileLogger.m in Sources */, A7F3E16921B5330F00010E23 /* DDFileLogger.m in Sources */,
1CB9AF59237102B400ED0434 /* DC_WashSegHeader.m in Sources */,
A705C02021D4B067004F1628 /* MWZoomingScrollView.m in Sources */, A705C02021D4B067004F1628 /* MWZoomingScrollView.m in Sources */,
A756C5AF21F9B5960006E418 /* ZXNewPayOrderListViewController.m in Sources */, A756C5AF21F9B5960006E418 /* ZXNewPayOrderListViewController.m in Sources */,
A75436E121D34567005584CC /* FetchCheckCodeModel.m in Sources */, A75436E121D34567005584CC /* FetchCheckCodeModel.m in Sources */,
1C8F4A4B231E70BD00AAF24A /* DC_ZXWashLocationModel.m in Sources */,
1C39411F230BC9D5005048EB /* ZXContentViewController.m in Sources */, 1C39411F230BC9D5005048EB /* ZXContentViewController.m in Sources */,
A77097E52237A7A4002D9D97 /* ZX_recharge_item.m in Sources */, A77097E52237A7A4002D9D97 /* ZX_recharge_item.m in Sources */,
A7F3E1C321B5350600010E23 /* unzip.c in Sources */, A7F3E1C321B5350600010E23 /* unzip.c in Sources */,
...@@ -5572,14 +5563,13 @@ ...@@ -5572,14 +5563,13 @@
1C8AF5402362C1CC00E592E4 /* ZXSearchViewController.m in Sources */, 1C8AF5402362C1CC00E592E4 /* ZXSearchViewController.m in Sources */,
A7F3E16D21B5330F00010E23 /* DispatchQueueLogFormatter.m in Sources */, A7F3E16D21B5330F00010E23 /* DispatchQueueLogFormatter.m in Sources */,
1C96F78922F997F0002DCA9B /* ZXHomePageMeViewController.m in Sources */, 1C96F78922F997F0002DCA9B /* ZXHomePageMeViewController.m in Sources */,
1CB9AF74237102B500ED0434 /* DC_ZXWashLocationModel.m in Sources */,
1C394124230BC9D5005048EB /* ZXNewsViewController.m in Sources */, 1C394124230BC9D5005048EB /* ZXNewsViewController.m in Sources */,
A7FE8D7620C8F7D30028B721 /* New_OperationCell.m in Sources */, A7FE8D7620C8F7D30028B721 /* New_OperationCell.m in Sources */,
A783E4452109BC650074623C /* ChineseString.m in Sources */, A783E4452109BC650074623C /* ChineseString.m in Sources */,
1C8F4A3B231E70BC00AAF24A /* DC_ZXWashOrderShowCell.m in Sources */,
1CFDEC9623602A9E007701A5 /* PYSearchSuggestionViewController.m in Sources */, 1CFDEC9623602A9E007701A5 /* PYSearchSuggestionViewController.m in Sources */,
A75436E821D34594005584CC /* UpdateVersionModel.m in Sources */, A75436E821D34594005584CC /* UpdateVersionModel.m in Sources */,
A7F3E00E21B530F500010E23 /* ZXColorfulTopController.m in Sources */, A7F3E00E21B530F500010E23 /* ZXColorfulTopController.m in Sources */,
1C8F4A4C231E70BD00AAF24A /* DC_ZXWashCloseViewController.m in Sources */,
1CB10F1C233C63C900F94688 /* ZXAdViewService.m in Sources */, 1CB10F1C233C63C900F94688 /* ZXAdViewService.m in Sources */,
1CF86307230280FB0007EBC6 /* AppUpdateVersion.m in Sources */, 1CF86307230280FB0007EBC6 /* AppUpdateVersion.m in Sources */,
A756C5CB21FAA6050006E418 /* SDCycleScrollView.m in Sources */, A756C5CB21FAA6050006E418 /* SDCycleScrollView.m in Sources */,
...@@ -5593,7 +5583,6 @@ ...@@ -5593,7 +5583,6 @@
1CFDEC7E235FE98B007701A5 /* ZXAliMaMaManagerViewController.m in Sources */, 1CFDEC7E235FE98B007701A5 /* ZXAliMaMaManagerViewController.m in Sources */,
1CF863122304116A0007EBC6 /* ZXLoginAnimationView.m in Sources */, 1CF863122304116A0007EBC6 /* ZXLoginAnimationView.m in Sources */,
22699A141FA2CBE50045EE9E /* Utility.m in Sources */, 22699A141FA2CBE50045EE9E /* Utility.m in Sources */,
1C8F4A51231E70BD00AAF24A /* DC_ZXWashOrderDetailViewController.m in Sources */,
A705BF7D21D47FB3004F1628 /* YYSpriteSheetImage.m in Sources */, A705BF7D21D47FB3004F1628 /* YYSpriteSheetImage.m in Sources */,
A78DFBCF20D90E5E00F0B920 /* ZXWashCloseViewController.m in Sources */, A78DFBCF20D90E5E00F0B920 /* ZXWashCloseViewController.m in Sources */,
A75436A021D33217005584CC /* UseCouponsView.m in Sources */, A75436A021D33217005584CC /* UseCouponsView.m in Sources */,
...@@ -5603,41 +5592,42 @@ ...@@ -5603,41 +5592,42 @@
A756C59C21F9B5960006E418 /* oneWangTong.m in Sources */, A756C59C21F9B5960006E418 /* oneWangTong.m in Sources */,
A7F3E1AB21B5330F00010E23 /* XDSCatalogueView.m in Sources */, A7F3E1AB21B5330F00010E23 /* XDSCatalogueView.m in Sources */,
1CF4C0B522F3D45700944C63 /* ZXHomePageWebViewController.m in Sources */, 1CF4C0B522F3D45700944C63 /* ZXHomePageWebViewController.m in Sources */,
1CB9AF5C237102B400ED0434 /* DC_ZXWashOrderShowCell.m in Sources */,
A75001C621100DAB00A37E69 /* ZXLatticeAdminModel.m in Sources */, A75001C621100DAB00A37E69 /* ZXLatticeAdminModel.m in Sources */,
1CB9AF6D237102B400ED0434 /* DC_ZXWashOrderDetailViewController.m in Sources */,
A7F3E1A021B5330F00010E23 /* XDSRecordModel.m in Sources */, A7F3E1A021B5330F00010E23 /* XDSRecordModel.m in Sources */,
A7FE8D7920C8F7E90028B721 /* New_PublicCell.m in Sources */, A7FE8D7920C8F7E90028B721 /* New_PublicCell.m in Sources */,
1CB9AF63237102B400ED0434 /* DC_ZXWashMyInvitorCell.m in Sources */,
A75436E221D34567005584CC /* RegisterModel.m in Sources */, A75436E221D34567005584CC /* RegisterModel.m in Sources */,
A7FE8D8D20C8FB330028B721 /* JKDBModel.m in Sources */, A7FE8D8D20C8FB330028B721 /* JKDBModel.m in Sources */,
A7079CDB21BE0E3C0063EDCB /* ZXTextView.m in Sources */, A7079CDB21BE0E3C0063EDCB /* ZXTextView.m in Sources */,
A75436DA21D34567005584CC /* MQVerCodeImageView.m in Sources */, A75436DA21D34567005584CC /* MQVerCodeImageView.m in Sources */,
1C8F4A61232135F200AAF24A /* ZXFullScreenAdView.m in Sources */, 1C8F4A61232135F200AAF24A /* ZXFullScreenAdView.m in Sources */,
A705BF7B21D47FB3004F1628 /* YYImage.m in Sources */, A705BF7B21D47FB3004F1628 /* YYImage.m in Sources */,
1C8F4A5523209E1600AAF24A /* ZXBluetootDevicehManager.m in Sources */,
A756C5D121FAA6050006E418 /* TAAbstractDotView.m in Sources */, A756C5D121FAA6050006E418 /* TAAbstractDotView.m in Sources */,
1C96F78022F94804002DCA9B /* ZXHomePageFeedBackViewController.m in Sources */, 1C96F78022F94804002DCA9B /* ZXHomePageFeedBackViewController.m in Sources */,
A79C9D2F20DA3A7100D7D18E /* CountingDownView.m in Sources */, A79C9D2F20DA3A7100D7D18E /* CountingDownView.m in Sources */,
A7BFF1DA20D1234200CE350A /* ZXBannerJumpViewController+Extension.m in Sources */, A7BFF1DA20D1234200CE350A /* ZXBannerJumpViewController+Extension.m in Sources */,
A7F3E17821B5330F00010E23 /* MultipartMessageHeaderField.m in Sources */, A7F3E17821B5330F00010E23 /* MultipartMessageHeaderField.m in Sources */,
1CB9AF71237102B400ED0434 /* DC_ZXPreOrderModel.m in Sources */,
A7DECCE62079F7D40039EC22 /* HMScannerMaskView.m in Sources */, A7DECCE62079F7D40039EC22 /* HMScannerMaskView.m in Sources */,
1CD9E5622296446E00FFDA29 /* ZXNewPayOrderRechargeCell.m in Sources */, 1CD9E5622296446E00FFDA29 /* ZXNewPayOrderRechargeCell.m in Sources */,
A756C5A421F9B5960006E418 /* ZXNewOtherPayTableViewCell.m in Sources */, A756C5A421F9B5960006E418 /* ZXNewOtherPayTableViewCell.m in Sources */,
1C96F77722F80301002DCA9B /* ZXHomePageUpdateAppView.m in Sources */, 1C96F77722F80301002DCA9B /* ZXHomePageUpdateAppView.m in Sources */,
A7F3E1A421B5330F00010E23 /* UIControl+XDSHyperLink.m in Sources */, A7F3E1A421B5330F00010E23 /* UIControl+XDSHyperLink.m in Sources */,
A7EC707220ECE88F001504C5 /* ZXPreOrderModel.m in Sources */, A7EC707220ECE88F001504C5 /* ZXPreOrderModel.m in Sources */,
1C8F4A47231E70BD00AAF24A /* DC_ZXWashOperationModel.m in Sources */,
1C96F78622F9611B002DCA9B /* ZXHomePageKefuReplyCell.m in Sources */, 1C96F78622F9611B002DCA9B /* ZXHomePageKefuReplyCell.m in Sources */,
A76D690F21118D8D00E76A6B /* ZXQuhuoExceptionCell.m in Sources */, A76D690F21118D8D00E76A6B /* ZXQuhuoExceptionCell.m in Sources */,
1C8F4A50231E70BD00AAF24A /* DC_ZXWashOperationViewController.m in Sources */,
A7F3E16B21B5330F00010E23 /* DDTTYLogger.m in Sources */, A7F3E16B21B5330F00010E23 /* DDTTYLogger.m in Sources */,
1C3AE7E322F133B10045C969 /* ZXHomeSectionInfo.m in Sources */, 1C3AE7E322F133B10045C969 /* ZXHomeSectionInfo.m in Sources */,
A756C5A221F9B5960006E418 /* ZXYWTPayModel.m in Sources */, A756C5A221F9B5960006E418 /* ZXYWTPayModel.m in Sources */,
A756C5AA21F9B5960006E418 /* ZXNewPayTypeTableViewCell.m in Sources */, A756C5AA21F9B5960006E418 /* ZXNewPayTypeTableViewCell.m in Sources */,
1CF330D7230651D000B066E2 /* ZXSimpleChatModel.m in Sources */, 1CF330D7230651D000B066E2 /* ZXSimpleChatModel.m in Sources */,
1C3AE7DA22F12A700045C969 /* ZXHomePageService.m in Sources */, 1C3AE7DA22F12A700045C969 /* ZXHomePageService.m in Sources */,
1C8F4A46231E70BC00AAF24A /* DC_ZXWashOrderModel.m in Sources */,
A756C59E21F9B5960006E418 /* ZXNewPayGroup.m in Sources */, A756C59E21F9B5960006E418 /* ZXNewPayGroup.m in Sources */,
A75436DC21D34567005584CC /* ZXScollAreaChooseView.m in Sources */, A75436DC21D34567005584CC /* ZXScollAreaChooseView.m in Sources */,
22E36CC21F5591B800073AC2 /* FetchTicketAndDevice.m in Sources */, 22E36CC21F5591B800073AC2 /* FetchTicketAndDevice.m in Sources */,
1CB9AF58237102B400ED0434 /* DC_ZXWashOrderPayCell.m in Sources */,
A7F3E00321B530F400010E23 /* ZXBookCateListViewController.m in Sources */, A7F3E00321B530F400010E23 /* ZXBookCateListViewController.m in Sources */,
1CCB652F234F103700CC4E7B /* WWWWEbViewController.m in Sources */, 1CCB652F234F103700CC4E7B /* WWWWEbViewController.m in Sources */,
1C32C15F234C3A9500DBA2E1 /* ZXAliMaMaViewController.m in Sources */, 1C32C15F234C3A9500DBA2E1 /* ZXAliMaMaViewController.m in Sources */,
...@@ -5669,7 +5659,6 @@ ...@@ -5669,7 +5659,6 @@
A717C49C20EF00B700571C7C /* ShowMsgView.m in Sources */, A717C49C20EF00B700571C7C /* ShowMsgView.m in Sources */,
A7BF95062110889A007466F0 /* ZXUserQuHuoModel.m in Sources */, A7BF95062110889A007466F0 /* ZXUserQuHuoModel.m in Sources */,
A7F3E00521B530F500010E23 /* ZXBookOrderDetailViewController.m in Sources */, A7F3E00521B530F500010E23 /* ZXBookOrderDetailViewController.m in Sources */,
1C8F4A4A231E70BD00AAF24A /* DC_ZXWashMerthinModel.m in Sources */,
A756C59F21F9B5960006E418 /* ZXNewPayOrder.m in Sources */, A756C59F21F9B5960006E418 /* ZXNewPayOrder.m in Sources */,
A7DECCA32079F0E30039EC22 /* ZXTool.m in Sources */, A7DECCA32079F0E30039EC22 /* ZXTool.m in Sources */,
22E57B431F8E0864008A753E /* NSObject+ABExtras.m in Sources */, 22E57B431F8E0864008A753E /* NSObject+ABExtras.m in Sources */,
...@@ -5693,7 +5682,6 @@ ...@@ -5693,7 +5682,6 @@
A7F3E19021B5330F00010E23 /* CXMLDocument_PrivateExtensions.m in Sources */, A7F3E19021B5330F00010E23 /* CXMLDocument_PrivateExtensions.m in Sources */,
A73F429820DC9B280074A00D /* ZXWashBucketCleanCell.m in Sources */, A73F429820DC9B280074A00D /* ZXWashBucketCleanCell.m in Sources */,
A7C8684E2112D4A6001831BA /* ZXLatticeExceptionModel.m in Sources */, A7C8684E2112D4A6001831BA /* ZXLatticeExceptionModel.m in Sources */,
1C8F4A4E231E70BD00AAF24A /* DC_ZXWashTabbarViewController.m in Sources */,
A740F1E420E081370037EDA3 /* ZXWashOrderDetailViewController.m in Sources */, A740F1E420E081370037EDA3 /* ZXWashOrderDetailViewController.m in Sources */,
A7F3E18421B5330F00010E23 /* XDSIPHelper.m in Sources */, A7F3E18421B5330F00010E23 /* XDSIPHelper.m in Sources */,
226E12701F5D1F4E00FD9CEF /* JudgeFirstTopUpModel.m in Sources */, 226E12701F5D1F4E00FD9CEF /* JudgeFirstTopUpModel.m in Sources */,
...@@ -5710,6 +5698,7 @@ ...@@ -5710,6 +5698,7 @@
22E36CAC1F558D9800073AC2 /* RefreshBarCodeModel.m in Sources */, 22E36CAC1F558D9800073AC2 /* RefreshBarCodeModel.m in Sources */,
A75436D621D34567005584CC /* ZXChooseSchoolViewController.m in Sources */, A75436D621D34567005584CC /* ZXChooseSchoolViewController.m in Sources */,
1C8F4A642321EFF800AAF24A /* ZXAdTool.m in Sources */, 1C8F4A642321EFF800AAF24A /* ZXAdTool.m in Sources */,
1CB9AF6F237102B400ED0434 /* DC_ZXWashOrderModel.m in Sources */,
A754369F21D33217005584CC /* H5UseCouponsView.m in Sources */, A754369F21D33217005584CC /* H5UseCouponsView.m in Sources */,
A7265BE320CA2AB60084B814 /* ZXPopMenuViewController.m in Sources */, A7265BE320CA2AB60084B814 /* ZXPopMenuViewController.m in Sources */,
A73532012191893400880F45 /* ZXDrinkConfig.m in Sources */, A73532012191893400880F45 /* ZXDrinkConfig.m in Sources */,
...@@ -5723,7 +5712,9 @@ ...@@ -5723,7 +5712,9 @@
A7DECC972079F0E30039EC22 /* ZXGoodsMsgAlertViewController.m in Sources */, A7DECC972079F0E30039EC22 /* ZXGoodsMsgAlertViewController.m in Sources */,
1CD9E52622890A1100FFDA29 /* ZXBluetoothModel.m in Sources */, 1CD9E52622890A1100FFDA29 /* ZXBluetoothModel.m in Sources */,
A7FE8D7320C8F7B30028B721 /* New_BannerCell.m in Sources */, A7FE8D7320C8F7B30028B721 /* New_BannerCell.m in Sources */,
1CB9AF70237102B400ED0434 /* DC_ZXWashOperationModel.m in Sources */,
A79C9D2C20DA2D0C00D7D18E /* WashCLoseTableViewCell.m in Sources */, A79C9D2C20DA2D0C00D7D18E /* WashCLoseTableViewCell.m in Sources */,
1CB9AF5E237102B400ED0434 /* DC_ZXWashPayWayCell.m in Sources */,
A7DECCE42079F7D40039EC22 /* HMScannerBorder.m in Sources */, A7DECCE42079F7D40039EC22 /* HMScannerBorder.m in Sources */,
1CFDEC9523602A9E007701A5 /* PYSearchViewController.m in Sources */, 1CFDEC9523602A9E007701A5 /* PYSearchViewController.m in Sources */,
A7EB7E6D20C9268E00B0AF49 /* HomeSectionView.m in Sources */, A7EB7E6D20C9268E00B0AF49 /* HomeSectionView.m in Sources */,
...@@ -5731,9 +5722,11 @@ ...@@ -5731,9 +5722,11 @@
A705BFBF21D4AFD8004F1628 /* HTTPDataResponse.m in Sources */, A705BFBF21D4AFD8004F1628 /* HTTPDataResponse.m in Sources */,
1C39412A230BC9D5005048EB /* ZXRSNewsManagerController.m in Sources */, 1C39412A230BC9D5005048EB /* ZXRSNewsManagerController.m in Sources */,
1C3AE80722F2C2B20045C969 /* ZXHomePageAnnouce.m in Sources */, 1C3AE80722F2C2B20045C969 /* ZXHomePageAnnouce.m in Sources */,
1CB9AF6A237102B400ED0434 /* DC_ZXWashTabbarViewController.m in Sources */,
A75D12232101757A00C41CE6 /* ZXExceptionDealController.m in Sources */, A75D12232101757A00C41CE6 /* ZXExceptionDealController.m in Sources */,
A723B8122112A19D00ED9269 /* ZXUserIsAgreeLatticeModel.m in Sources */, A723B8122112A19D00ED9269 /* ZXUserIsAgreeLatticeModel.m in Sources */,
A7F3E00421B530F400010E23 /* ZXBookDetailViewController.m in Sources */, A7F3E00421B530F400010E23 /* ZXBookDetailViewController.m in Sources */,
1CB9AF60237102B400ED0434 /* DC_WashCLoseTableViewCell.m in Sources */,
1C39412B230BC9D5005048EB /* ZXRSReportTableViewCell.m in Sources */, 1C39412B230BC9D5005048EB /* ZXRSReportTableViewCell.m in Sources */,
1C785977232F81440055A494 /* ZXAdViewAdTool.m in Sources */, 1C785977232F81440055A494 /* ZXAdViewAdTool.m in Sources */,
1C3AE7CE22F048600045C969 /* MBProgressHUD+SGQRCode.m in Sources */, 1C3AE7CE22F048600045C969 /* MBProgressHUD+SGQRCode.m in Sources */,
...@@ -5741,6 +5734,7 @@ ...@@ -5741,6 +5734,7 @@
1CD9C41222C3103D00C04683 /* ZXAppointBathDeviceListTableViewCell.m in Sources */, 1CD9C41222C3103D00C04683 /* ZXAppointBathDeviceListTableViewCell.m in Sources */,
A705C02121D4B067004F1628 /* UIImage+MWPhotoBrowser.m in Sources */, A705C02121D4B067004F1628 /* UIImage+MWPhotoBrowser.m in Sources */,
1CF4C0AC22F2DBCA00944C63 /* ZXHomePageMulityNewsCell.m in Sources */, 1CF4C0AC22F2DBCA00944C63 /* ZXHomePageMulityNewsCell.m in Sources */,
1C364F64237292C0006BC78D /* DCWashBluetoothManager.m in Sources */,
1CE080522265DBB0005F1A24 /* ZHPickView.m in Sources */, 1CE080522265DBB0005F1A24 /* ZHPickView.m in Sources */,
A7F3E17621B5330F00010E23 /* MultipartFormDataParser.m in Sources */, A7F3E17621B5330F00010E23 /* MultipartFormDataParser.m in Sources */,
A7DA71CC214BB38000A21658 /* ZXPayTypeModel.m in Sources */, A7DA71CC214BB38000A21658 /* ZXPayTypeModel.m in Sources */,
...@@ -5752,7 +5746,9 @@ ...@@ -5752,7 +5746,9 @@
A75436D721D34567005584CC /* ZXRegistorViewController.m in Sources */, A75436D721D34567005584CC /* ZXRegistorViewController.m in Sources */,
A7F3E1B121B5330F00010E23 /* XDSNoteViewController.m in Sources */, A7F3E1B121B5330F00010E23 /* XDSNoteViewController.m in Sources */,
A71EF38020FC73860009EA37 /* ZXWisdomLatticeViewController.m in Sources */, A71EF38020FC73860009EA37 /* ZXWisdomLatticeViewController.m in Sources */,
1CB9AF5D237102B400ED0434 /* DC_ZXChooseCell.m in Sources */,
A705BF7C21D47FB3004F1628 /* YYImageCoder.m in Sources */, A705BF7C21D47FB3004F1628 /* YYImageCoder.m in Sources */,
1CB9AF6B237102B400ED0434 /* DC_ZXLocationViewController.m in Sources */,
A7F3E1B921B5330F00010E23 /* XDSReadSettingView.m in Sources */, A7F3E1B921B5330F00010E23 /* XDSReadSettingView.m in Sources */,
A7F9BD1922267C8F0029B6DC /* ZXUserModel.m in Sources */, A7F9BD1922267C8F0029B6DC /* ZXUserModel.m in Sources */,
A7F3E18721B5330F00010E23 /* XDSReadConfig.m in Sources */, A7F3E18721B5330F00010E23 /* XDSReadConfig.m in Sources */,
......
...@@ -3,4 +3,17 @@ ...@@ -3,4 +3,17 @@
uuid = "C4FA1D40-0820-4DB8-948B-CEB11FFE9947" uuid = "C4FA1D40-0820-4DB8-948B-CEB11FFE9947"
type = "0" type = "0"
version = "2.0"> version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint">
<BreakpointContent
uuid = "3E6B07A2-DF06-4544-AD09-D2200F31F394"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
scope = "1"
stopOnStyle = "0">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket> </Bucket>
// //
...@@ -512,10 +512,15 @@ ...@@ -512,10 +512,15 @@
if ([[UIApplication sharedApplication] canOpenURL:URL]) { if ([[UIApplication sharedApplication] canOpenURL:URL]) {
[[UIApplication sharedApplication] openURL:URL]; [[UIApplication sharedApplication] openURL:URL];
} else { } else {
ZXBannerJumpViewController *jumpVc = [[ZXBannerJumpViewController alloc] init]; if (jumpUrl && ![jumpUrl isEqualToString:@""]) {
jumpVc.jumpUrl = [@"https:" stringByAppendingString:item.coupon_share_url]; ZXBannerJumpViewController *jumpVc = [[ZXBannerJumpViewController alloc] init];
jumpVc.hidesBottomBarWhenPushed = YES; jumpVc.jumpUrl = jumpUrl;
[self.navigationController pushViewController:jumpVc animated:YES]; jumpVc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:jumpVc animated:YES];
} else {
[ZXTool showText:@"活动已下架,请关注后续活动!"];
}
} }
}); });
return; return;
......
//
//
// ZXLocationViewController.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/21.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface DC_ZXLocationViewController : UIViewController
@end
//
//
// ZXLocationViewController.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/21.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXLocationViewController.h"
#import "DC_ZXChooseCell.h"
#import "enlargeClickRegionBtn.h"
#import "DC_ZXReChooseCell.h"
#import "DC_ZXWashService.h"
#import "DC_ZXWashLocationModel.h"
#import "enlargeClickRegionBtn.h"
@interface DC_ZXLocationViewController ()<UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) UITableView *myTableview;
@property (nonatomic, strong) DC_ZXWashService *washService;
@property (nonatomic, strong) NSMutableArray *dataArray;
@property (nonatomic, strong) enlargeClickRegionBtn *goTop;
@end
@implementation DC_ZXLocationViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self createUI];
self.washService = [[DC_ZXWashService alloc] init];
}
#pragma mark - ========== 创建导航栏 ==========
- (void) createUI {
UIImageView *nabar = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kTopHeight)];
nabar.backgroundColor = [UIColor whiteColor];
nabar.userInteractionEnabled = YES;
nabar.image = kToppicBgImage;
[self.view addSubview:nabar];
UILabel *naTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, kStatusBarHeight, kScreenWidth, kNavBarHeight)];
naTitle.backgroundColor = [UIColor clearColor];
naTitle.textAlignment = NSTextAlignmentCenter;
naTitle.textColor = [UIColor whiteColor];
naTitle.font = [UIFont boldSystemFontOfSize:17 * k6Scale];
naTitle.userInteractionEnabled = YES;
[nabar addSubview:naTitle];
naTitle.text = @"常用位置";
enlargeClickRegionBtn *back = [[enlargeClickRegionBtn alloc] init];
[back setImage:[UIImage imageNamed:@"nav_return"] forState:UIControlStateNormal];
[naTitle addSubview:back];
[back mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(naTitle.mas_left).offset(5 * k6Scale);
make.width.height.mas_equalTo(30 * k6Scale);
make.centerY.equalTo(naTitle);
}];
@weakify(self);
[[back rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
[self.navigationController popViewControllerAnimated:YES];
// [self.parentViewController.childViewControllers[0] removeFromParentViewController];
// [self.parentViewController.childViewControllers[1] removeFromParentViewController];
// [self.parentViewController.childViewControllers[2] removeFromParentViewController];
}];
UIView *contentView = [[UIView alloc] initWithFrame:CGRectMake(0, kTopHeight, kScreenWidth, kScreenHeight - kTopHeight)];
[self.view addSubview:contentView];
contentView.backgroundColor = [UIColor whiteColor];
UIView *holderView = [UIView new];
holderView.backgroundColor = [[UIColor colorWithHexString:@"#999999"] colorWithAlphaComponent:0.1];;
[contentView addSubview:holderView];
[holderView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(contentView.mas_left).offset(20 * k6Scale);
make.right.equalTo(contentView.mas_right).offset(-20 * k6Scale);
make.top.equalTo(contentView.mas_top).offset(12 * k6Scale);
make.height.mas_equalTo(40 * k6Scale);
}];
holderView.layer.cornerRadius= 4;
holderView.layer.masksToBounds = YES;
UITextField *field = [[UITextField alloc] init];
[holderView addSubview:field];
[field mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(holderView.mas_left).offset(15 * k6Scale);
make.right.equalTo(holderView.mas_right).offset(-50 * k6Scale);
make.centerY.equalTo(holderView.mas_centerY);
make.height.mas_equalTo(30 * k6Scale);
}];
field.font= kFontSize(13 * k6Scale);
field.textColor = RGB(51,51, 51);
field.placeholder = @"请输入设备地址搜索";
__weak typeof(field) weakField = field;
[field.rac_textSignal subscribeNext:^(NSString *x){
@strongify(self);
if (x.length > 30) {
[ZXTool showText:@"输入地址长度不能超过30!"];
weakField.text = [x substringToIndex:30];
return ;
}
if ([x isEqualToString:@""]) {
[self.dataArray removeAllObjects];
[self.dataArray addObjectsFromArray:self.washService.allMerthinList];
[self.myTableview reloadData];
return ;
}
//这里触发检索
NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"fd_location LIKE[cd] '*%@*'", x]];
NSArray *results = [self.washService.allMerthinList filteredArrayUsingPredicate:predicate];
[self.dataArray removeAllObjects];
[self.dataArray addObjectsFromArray:results];
[self.myTableview reloadData];
}];
enlargeClickRegionBtn *searchBtn = [[enlargeClickRegionBtn alloc] init];
[holderView addSubview:searchBtn];
[searchBtn setBackgroundImage:[UIImage imageNamed:@"btn_Select-search"] forState:UIControlStateNormal];
[searchBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(holderView.mas_right).offset(-5 * k6Scale);
make.centerY.equalTo(holderView.mas_centerY);
}];
UIView *line = [UIView new];
[contentView addSubview:line];
[line mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.equalTo(contentView);
make.top.equalTo(holderView.mas_bottom).offset(12 * k6Scale);
make.height.mas_equalTo(1);
}];
CGFloat bottomMargin = 0;
if (iPhoneX) {
bottomMargin = 34;
}
self.myTableview = [[UITableView alloc] initWithFrame:CGRectMake(0, 64 * k6Scale + 1, kScreenWidth - 20 * k6Scale, kScreenHeight - kTopHeight - 65 * k6Scale - 49 - bottomMargin) style:UITableViewStylePlain];
[contentView addSubview:self.myTableview];
self.myTableview.delegate = self;
self.myTableview.dataSource = self;
self.myTableview.separatorStyle = UITableViewCellSeparatorStyleNone;
self.myTableview.showsVerticalScrollIndicator = NO;
//添加到顶部按钮
self.goTop = [[enlargeClickRegionBtn alloc] init];
[self.view addSubview:self.goTop];
[self.goTop setBackgroundImage:[UIImage imageNamed:@"wash-up"] forState:UIControlStateNormal];
CGFloat bottom = 0;
if (iPhoneX) {
bottom = 34;
}
[self.goTop mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.view.mas_bottom).offset(-(bottom + 49 + 30 * k6Scale));
make.right.equalTo(self.view.mas_right).offset(-30 * k6Scale);
make.width.height.mas_equalTo(40 * k6Scale);
}];
[[self.goTop rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
[self.myTableview setContentOffset:CGPointMake(0, 0) animated:YES];
}];
self.goTop.hidden = YES;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
self.goTop.hidden = scrollView.contentOffset.y <= 0;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return section?self.dataArray.count:self.washService.collectionList.count;
}
- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView *header = [UIView new];
header.backgroundColor = [UIColor whiteColor];
UILabel *l = [[UILabel alloc] initWithFrame: CGRectMake(20 * k6Scale, 0, kScreenWidth - 75 * k6Scale, 30 * k6Scale)];
[header addSubview:l];
l.font = kFontSize(12 * k6Scale);
l.textColor = RGB(153, 153, 153);
l.text = section?@"搜索结果":@"已选择";
return header;
}
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section) {
if (indexPath.row >= self.dataArray.count) {
return [[UITableViewCell alloc] init];
}
DC_ZXChooseCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DC_ZXChooseCell"];
if (cell == nil) {
cell = [[DC_ZXChooseCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_ZXChooseCell"];
}
DC_ZXWashLocationModel *mo = self.dataArray[indexPath.row];
cell.model = mo;
return cell;
}
if (indexPath.row >= self.washService.collectionList.count) {
return [[UITableViewCell alloc] init];
}
DC_ZXReChooseCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DC_ZXReChooseCell"];
if (cell == nil) {
cell = [[DC_ZXReChooseCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_ZXReChooseCell"];
}
DC_ZXWashLocationModel *mo = self.washService.collectionList[indexPath.row];
cell.model = mo;
return cell;
}
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return indexPath.section?50 * k6Scale:60* k6Scale;
}
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 30 * k6Scale;
}
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section) {
//添加
DC_ZXWashLocationModel *mo = self.washService.allMerthinList[indexPath.row];
@weakify(self);
[self.washService addCollectionLocationWithAddress:mo.id completedBlock:^(BOOL isNeedReload) {
@strongify(self);
[ZXTool hideLoadingAnimation];
if (isNeedReload) {
DC_ZXWashLocationModel *model = [[DC_ZXWashLocationModel alloc] init];
model.name = mo.name;
[self.washService.collectionList addObject:model];
[self.myTableview reloadData];
}
}];
} else {
//删除
DC_ZXWashLocationModel *mo = self.washService.collectionList[indexPath.row];
@weakify(self);
[self.washService deleteCollectionLocationWithAddress:mo.id completedBlock:^(BOOL isNeedReload) {
@strongify(self);
[ZXTool hideLoadingAnimation];
if (isNeedReload) {
[self.washService.collectionList removeObject:mo];
[self.myTableview reloadData];
}
}];
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.tabBarController.tabBar.hidden = NO;
if (@available(iOS 11, *)){
[UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; //iOS11 解决SafeArea的问题,同时能解决pop时上级页面scrollView抖动的问题
}
@weakify(self);
[self.washService fetchCollectionLocationCompletedBlock:^(BOOL isNeedReload) {
@strongify(self);
[self.dataArray removeAllObjects];
[self.dataArray addObjectsFromArray:self.washService.allMerthinList];
[ZXTool hideLoadingAnimation];
[self.myTableview reloadData];
}];
}
- (NSMutableArray *)dataArray {
if (!_dataArray) {
_dataArray = [[NSMutableArray alloc] init];
}
return _dataArray;
}
@end
//
//
// ZXWashCloseViewController.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/19.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface DC_ZXWashCloseViewController : UIViewController
@end
//
//
// ZXWashCloseViewController.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/19.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashCloseViewController.h"
#import "enlargeClickRegionBtn.h"
#import "DC_WashSegHeader.h"
#import "DC_WashCLoseTableViewCell.h"
#import "DC_ZXChooseView.h"
#import "ShowMsgView.h"
#import "DC_ZXWashOperationViewController.h"
#import "DC_AppointView.h"
#import "DC_ZXWashService.h"
@interface DC_ZXWashCloseViewController ()< UITableViewDelegate, UITableViewDataSource, washHeaderChooseDelegate>
@property (nonatomic, strong) UITableView *myTableView;
//是否是将要结束 默认NO
@property (nonatomic, assign) BOOL isWillOver;
//是否弹出了订单提示
@property (nonatomic, assign) BOOL isShowOrder;
@property (nonatomic, strong) DC_ZXWashService *washService;
//已经筛选的地址
@property (nonatomic, strong) DC_ZXWashLocationModel *selectItem;
@property (nonatomic, strong) UILabel *phone1;
@property (nonatomic, strong) UILabel *phone2;
@property (nonatomic, strong) enlargeClickRegionBtn *goTop;
//是否已经显示了预约view
@property (nonatomic, assign) BOOL isShowinvitorView;
@end
@implementation DC_ZXWashCloseViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.isWillOver = NO;
self.isShowOrder = NO;
//创建导航栏
[self createNabar];
CGFloat bottomMargin = 0;
if (iPhoneX) {
bottomMargin = 34;
}
[self.view addSubview:self.myTableView];
[self createTableHeader];
self.washService = [[DC_ZXWashService alloc] init];
[self loadMerthinWithType:DC_ZXWashMerthinOffline NewData:YES];
//添加到顶部按钮
self.goTop = [[enlargeClickRegionBtn alloc] init];
[self.view addSubview:self.goTop];
[self.goTop setBackgroundImage:[UIImage imageNamed:@"wash-up"] forState:UIControlStateNormal];
CGFloat bottom = 0;
if (iPhoneX) {
bottom = 34;
}
[self.goTop mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.view.mas_bottom).offset(-(bottom + 49 + 30 * k6Scale));
make.right.equalTo(self.view.mas_right).offset(-30 * k6Scale);
make.width.height.mas_equalTo(40 * k6Scale);
}];
@weakify(self);
[[self.goTop rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
[self.myTableView setContentOffset:CGPointMake(0, 0) animated:YES];
}];
self.goTop.hidden = YES;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNotification) name:@"DC_RefreshFirsrPage_Data" object:nil];
}
- (void) getNotification {
dispatch_async(dispatch_get_main_queue(), ^{
[self loadNewData];
});
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
self.goTop.hidden = scrollView.contentOffset.y <= 0;
}
#pragma mark - ========== 加载洗衣设备列表 ==========
- (void) loadMerthinWithType:(DC_ZXWashMerthinType) type NewData:(BOOL) isNewData {
@weakify(self);
if (isNewData) {
//加载最新
[self.washService loadNewMerchinListWithType:type positionId:self.selectItem?self.selectItem.id:@"" completedBlock:^(BOOL isNeedReload) {
@strongify(self);
[ZXTool hideLoadingAnimation];
if (isNeedReload) {
[self.myTableView reloadData];
}
// if (self.self.washService.repairMobineList.count==1) {
// self.phone1.text = self.washService.repairMobineList[0];
// } else if (self.self.washService.repairMobineList.count==2){
// self.phone1.text = self.washService.repairMobineList[0];
// self.phone2.text = self.washService.repairMobineList[1];
// }
[self.myTableView.mj_header endRefreshing];
[self endRefreshFooterWithType:type];
//显示预约view
[self showInvitorView];
}];
} else {
[self.washService loadMoreMerchinListWithType:type positionId:self.selectItem?self.selectItem.id:@"" completedBlock:^(BOOL isNeedReload) {
@strongify(self);
[ZXTool hideLoadingAnimation];
if (isNeedReload) {
[self.myTableView reloadData];
}
[self.myTableView.mj_header endRefreshing];
[self endRefreshFooterWithType:type];
}];
}
}
#pragma mark - ========== 结束footer刷新逻辑 ==========
- (void) endRefreshFooterWithType:(DC_ZXWashMerthinType) type {
if (type == DC_ZXWashMerthinOnline) {
if (self.washService.onlineList.count % 20 || self.washService.onlineList.count == 0) {
[self.myTableView.mj_footer endRefreshingWithNoMoreData];
} else {
[self.myTableView.mj_footer endRefreshing];
}
} else {
if (self.washService.offlineList.count % 20 || self.washService.offlineList.count == 0) {
[self.myTableView.mj_footer endRefreshingWithNoMoreData];
} else {
[self.myTableView.mj_footer endRefreshing];
}
}
}
#pragma mark - ========== 显示预约view ==========
- (void) showInvitorView {
if (self.isShowinvitorView) {
return;
}
self.isShowinvitorView = YES;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
self.isShowinvitorView = NO;
});
if (self.washService.currentPreOrder) {
DC_AppointView *v = [[DC_AppointView alloc] initWithFrame:[UIScreen mainScreen].bounds preOrder:self.washService.currentPreOrder];
[[UIApplication sharedApplication].keyWindow addSubview:v];
}
}
#pragma mark - ========== 创建导航栏 ==========
- (void) createNabar {
[UIApplication sharedApplication].statusBarHidden = NO;
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
UIImage *image = [UIImage imageNamed:@"bg_ami_card"];
UIImageView *nabar = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kTopHeight)];
nabar.userInteractionEnabled = YES;
nabar.image = image;
[self.view addSubview:nabar];
UILabel *naTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, kStatusBarHeight, kScreenWidth, kNavBarHeight)];
naTitle.backgroundColor = [UIColor clearColor];
naTitle.textAlignment = NSTextAlignmentCenter;
naTitle.textColor = [UIColor whiteColor];
naTitle.font = [UIFont boldSystemFontOfSize:17 * k6Scale];
naTitle.userInteractionEnabled = YES;
[nabar addSubview:naTitle];
naTitle.text = @"洗衣";
enlargeClickRegionBtn *back = [[enlargeClickRegionBtn alloc] init];
[back setImage:[UIImage imageNamed:@"nav_return"] forState:UIControlStateNormal];
[naTitle addSubview:back];
[back mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(naTitle.mas_left).offset(5 * k6Scale);
make.width.height.mas_equalTo(30 * k6Scale);
make.centerY.equalTo(naTitle);
}];
@weakify(self);
[[back rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
[self.navigationController popViewControllerAnimated:YES];
}];
enlargeClickRegionBtn *scan = [[enlargeClickRegionBtn alloc] init];
[scan setImage:[UIImage imageNamed:@"nav_scan"] forState:UIControlStateNormal];
[naTitle addSubview:scan];
[scan mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(naTitle.mas_right).offset(-7 * k6Scale);
make.width.height.mas_equalTo(30 * k6Scale);
make.centerY.equalTo(naTitle);
}];
[[scan rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@weakify(self);
ZXScannerViewController *vc = [[ZXScannerViewController alloc] init];
vc.title = @"扫码洗衣";
vc.hidesBottomBarWhenPushed = YES;
vc.scanResult = ^(NSString *result) {
@strongify(self);
dispatch_async(dispatch_get_main_queue(), ^{
[self jumpWashWithMerthinCode:[ZXTool dencode:result]];
});
};
[self.navigationController pushViewController:vc animated:NO];
}];
}
- (UITableView *)myTableView {
if (_myTableView== nil) {
CGFloat bottomMargin = 0;
if (iPhoneX) {
bottomMargin = 34;
}
_myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, kTopHeight, kScreenWidth, kScreenHeight-kTopHeight - 49 - bottomMargin) style:UITableViewStylePlain];
_myTableView.delegate = self;
_myTableView.dataSource = self;
_myTableView.backgroundColor = [UIColor whiteColor];
_myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
if (@available(iOS 11.0, *)) {
_myTableView.estimatedRowHeight = 0;
_myTableView.estimatedSectionFooterHeight = 0;
_myTableView.estimatedSectionHeaderHeight = 0;
_myTableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
//下拉刷新
_myTableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
//上拉加载
_myTableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
_myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_myTableView.showsVerticalScrollIndicator = NO;
}
return _myTableView;
}
- (void) createTableHeader {
UIImage *image = [UIImage imageNamed:@"bg_ami_card"];
UIView *tableHeader = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 160 * k6Scale)];
tableHeader.backgroundColor = kRGBColor(242, 242, 242, 1);
UIImageView *header = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 150 * k6Scale)];
[tableHeader addSubview:header];
header.contentMode = UIViewContentModeBottomLeft|UIViewContentModeBottomRight;
header.clipsToBounds = YES;
header.userInteractionEnabled = YES;
header.image = image;
// self.phone1 = [[UILabel alloc] init];
// self.phone1.font = kFontSize(12 * k6Scale);
// [header addSubview:self.phone1];
// self.phone1.textColor = [UIColor whiteColor];
// [self.phone1 mas_makeConstraints:^(MASConstraintMaker *make) {
// make.left.equalTo(header.mas_left).offset(62 * k6Scale);
// make.bottom.equalTo(header.mas_bottom);
// make.height.mas_equalTo(30 * k6Scale);
// }];
//
//
// self.phone2 = [[UILabel alloc] init];
// self.phone2.font = kFontSize(12 * k6Scale);
// [header addSubview:self.phone2];
//
// self.phone2.textColor = [UIColor whiteColor];
// [self.phone2 mas_makeConstraints:^(MASConstraintMaker *make) {
// make.left.equalTo(self.phone1.mas_right).offset(10 * k6Scale);
// make.bottom.equalTo(header.mas_bottom);
// make.height.mas_equalTo(30 * k6Scale);
// }];
// self.phone1.userInteractionEnabled = YES;
// self.phone2.userInteractionEnabled = YES;
// UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer alloc] init];
// [self.phone1 addGestureRecognizer:tap1];
// @weakify(self);
// [[tap1 rac_gestureSignal] subscribeNext:^(id x) {
// @strongify(self);
// if ([self.phone1.text isEqualToString:@""]) {
// return ;
// }
// NSString *telUrl = [NSString stringWithFormat:@"telprompt:%@",self.phone1.text];
// [[UIApplication sharedApplication] openURL:[NSURL URLWithString:telUrl]];
// }];
// UITapGestureRecognizer *tap2 = [[UITapGestureRecognizer alloc] init];
// [self.phone2 addGestureRecognizer:tap2];
// [[tap2 rac_gestureSignal] subscribeNext:^(id x) {
// @strongify(self);
// if ([self.phone2.text isEqualToString:@""]) {
// return ;
// }
// NSString *telUrl = [NSString stringWithFormat:@"telprompt:%@",self.phone2.text];
// [[UIApplication sharedApplication] openURL:[NSURL URLWithString:telUrl]];
// }];
self.myTableView.tableHeaderView = tableHeader;
UIView *textBg = [[UIView alloc] init];
[header addSubview:textBg];
textBg.backgroundColor = kRGBColor(255, 255, 255, 0.5);
[textBg mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(header.mas_left).offset(57.5 * k6Scale);
make.top.equalTo(header.mas_top).offset(15 * k6Scale);
make.width.mas_equalTo(165 * k6Scale);
make.height.mas_equalTo(40 * k6Scale);
}];
textBg.layer.cornerRadius = 3*k6Scale;
textBg.layer.masksToBounds = YES;
UITextField *field = [[UITextField alloc] init];
[textBg addSubview:field];
field.font = kFontSize(17 * k6Scale);
field.textColor = kRGBColor(51, 51, 51, 1);
[field mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(textBg.mas_left).offset(10 * k6Scale);
make.right.equalTo(textBg.mas_right).offset(-6 * k6Scale);
make.centerY.equalTo(textBg.mas_centerY);
make.height.mas_equalTo(25 * k6Scale);
}];
field.clearButtonMode = UITextFieldViewModeWhileEditing;
field.keyboardType = UIKeyboardTypeNumberPad;
UIImage *i = [UIImage imageNamed:@"btn_search"];
UIButton *searchBtn = [[UIButton alloc] init];
[searchBtn setBackgroundImage:i forState:UIControlStateNormal];
[header addSubview:searchBtn];
[searchBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(textBg.mas_right).offset(6 * k6Scale);
make.centerY.equalTo(textBg);
make.width.mas_equalTo(i.size.width * k6Scale);
make.height.mas_equalTo(i.size.height * k6Scale);
}];
UILabel *alertLabel = [[UILabel alloc] init];
alertLabel.font = kFontSize(11 * k6Scale);
[header addSubview:alertLabel];
alertLabel.text = @"输入洗衣机上的设备编码或点击扫码去洗衣服吧!";
alertLabel.textColor = [UIColor whiteColor];
[alertLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(textBg.mas_bottom).offset(10 * k6Scale);
make.left.equalTo(textBg.mas_left);
}];
__weak typeof(field) weakField = field;
[field.rac_textSignal subscribeNext:^(NSString *x){
if (x.length > 6) {
[ZXTool showText:@"输入设备编码长度不能超过6!"];
weakField.text = [x substringToIndex:6];
return ;
}
}];
@weakify(self);
[[searchBtn rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(NSString *x) {
@strongify(self);
[[UIApplication sharedApplication].keyWindow endEditing:YES];
if ([weakField.text isEqualToString:@""] || weakField.text.length != 6) {
ShowMsgView *show = [[ShowMsgView alloc] initWithFrame:[UIScreen mainScreen].bounds msg:@"请输入正确的设备编码"];
[show show];
} else {
[self jumpWashWithMerthinCode:field.text];
}
}];
}
#pragma mark - ========== 跳转洗衣逻辑 ==========
- (void) jumpWashWithMerthinCode:(NSString *) merthinCode {
//这里需要先调用接口 判断编号对应的设备是否有效 空闲
[[UIApplication sharedApplication].keyWindow endEditing:YES];
@weakify(self);
[self.washService checkMerthinWithMerthinCode:merthinCode completedBlock:^(DC_ZXWashOperationModel *model) {
@strongify(self);
DC_ZXWashOperationViewController *vc = [[DC_ZXWashOperationViewController alloc] init];
vc.hidesBottomBarWhenPushed = YES;
vc.model = model;
[self.navigationController pushViewController:vc animated:YES];
}];
}
#pragma mark - ========== 下拉刷新 ==========
- (void) loadNewData {
[[UIApplication sharedApplication].keyWindow endEditing:YES];
[self.myTableView.mj_footer endRefreshing];
self.isShowinvitorView = NO;
[self loadMerthinWithType:self.isWillOver?DC_ZXWashMerthinOnline:DC_ZXWashMerthinOffline NewData:YES];
}
#pragma mark - ========== 上拉加载 ==========
- (void) loadMoreData {
[[UIApplication sharedApplication].keyWindow endEditing:YES];
[self.myTableView.mj_header endRefreshing];
[self loadMerthinWithType:self.isWillOver?DC_ZXWashMerthinOnline:DC_ZXWashMerthinOffline NewData:NO];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationController.navigationBar.hidden = YES;
self.tabBarController.tabBar.hidden = NO;
// AppointView *v = [[AppointView alloc] initWithFrame:[UIScreen mainScreen].bounds preOrder:nil];
// [[UIApplication sharedApplication].keyWindow addSubview:v];
if (@available(iOS 11, *)) {
[UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; //iOS11 解决SafeArea的问题,同时能解决pop时上级页面scrollView抖动的问题
}
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - ========== UITableViewDelegate/Datasource ==========
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
DC_WashSegHeader *wash = [tableView dequeueReusableHeaderFooterViewWithIdentifier:@"DC_WashSegHeader"];
if (wash == nil) {
wash = [[DC_WashSegHeader alloc] initWithReuseIdentifier:@"DC_WashSegHeader"];
}
wash.delegate = self;
return wash;
}
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 43 * k6Scale;
}
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.isWillOver?self.washService.onlineList.count:self.washService.offlineList.count;
}
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 70 * k6Scale;
}
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"%ld----%ld", indexPath.row, self.washService.onlineList.count);
DC_WashCLoseTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DC_WashCLoseTableViewCell"];
if (cell == nil) {
cell = [[DC_WashCLoseTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_WashCLoseTableViewCell"];
}
cell.model = self.isWillOver?self.washService.onlineList[indexPath.row]:self.washService.offlineList[indexPath.row];
return cell;
}
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[[UIApplication sharedApplication].keyWindow endEditing:YES];
@weakify(self);
DC_ZXWashMerthinModel *model = self.isWillOver?self.washService.onlineList[indexPath.row]:self.washService.offlineList[indexPath.row];
if (model.isRunning) {
return;
}
[self.washService checkMerthinWithMerthinCode:model.deviceCode completedBlock:^(DC_ZXWashOperationModel *model) {
@strongify(self);
DC_ZXWashOperationViewController *vc = [[DC_ZXWashOperationViewController alloc] init];
vc.model = model;
vc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:vc animated:YES];
}];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
#pragma mark - ========== tableView头部点击代理 ==========
- (void)chooseItemWithChooseType:(ZXWashHeaderChooseType)type {
[[UIApplication sharedApplication].keyWindow endEditing:YES];
switch (type) {
case ZXWashHeaderChooseFree: {
self.isWillOver = NO;
[self loadMerthinWithType:DC_ZXWashMerthinOffline NewData:YES];
break;
}
case ZXWashHeaderChooseWillOver: {
self.isWillOver = YES;
[self loadMerthinWithType:DC_ZXWashMerthinOnline NewData:YES];
break;
}
case ZXWashHeaderChooseDeal: {
DC_ZXChooseView *choose = [[DC_ZXChooseView alloc] initWithFrame:[UIScreen mainScreen].bounds];
choose.reChooseList = self.selectItem?@[self.selectItem]:@[];
@weakify(self);
choose.search = ^(DC_ZXWashLocationModel *item) {
@strongify(self);
if ([self.selectItem.name isEqualToString:item.name]) {
return ;
}
if (item) {
self.selectItem = item;
} else {
self.selectItem = nil;
}
//执行搜索逻辑
[self loadNewData];
};
[[UIApplication sharedApplication].keyWindow addSubview:choose];
break;
}
default:
break;
}
}
@end
//
//
// ZXWashOperationViewController.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/22.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXWashOperationModel.h"
@interface DC_ZXWashOperationViewController : UIViewController
@property (nonatomic, strong) DC_ZXWashOperationModel *model;
@end
//
//
// ZXWashOperationViewController.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/22.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashOperationViewController.h"
#import "DC_ZXWashPayWayCell.h"
#import "enlargeClickRegionBtn.h"
#import "DC_ZXWashOperationCell.h"
#import "DC_ZXWashBucketCleanCell.h"
#import "DC_ZXWashAimiPayCell.h"
#import "DC_ZXWashOrderDetailViewController.h"
#import "DC_ZXWashService.h"
#import "DC_ZXWashOperationModel.h"
#import "AimiWalletViewController.h"
@interface DC_ZXWashOperationViewController ()<UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) UITableView *myTableview;
@property (nonatomic, strong) NSArray *sectionsTitles;
//选中的必须功能
@property (nonatomic, strong) DC_requiredPrograms *selectRequireModel;
//选中的可选功能
@property (nonatomic, strong) DC_optionalPrograms *selectOptionModel;
//选中的支付方式
@property (nonatomic, strong) DC_washPayWay *selectPayWayModel;
@end
@implementation DC_ZXWashOperationViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self createUI];
[self createTableHeaderFooter];
}
#pragma mark - ========== 创建导航栏 ==========
- (void) createUI {
UIImageView *nabar = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kTopHeight)];
nabar.backgroundColor = [UIColor whiteColor];
nabar.userInteractionEnabled = YES;
nabar.image = kToppicBgImage;
[self.view addSubview:nabar];
UILabel *naTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, kStatusBarHeight, kScreenWidth, kNavBarHeight)];
naTitle.backgroundColor = [UIColor clearColor];
naTitle.textAlignment = NSTextAlignmentCenter;
naTitle.textColor = [UIColor whiteColor];
naTitle.font = [UIFont boldSystemFontOfSize:17 * k6Scale];
naTitle.userInteractionEnabled = YES;
[nabar addSubview:naTitle];
naTitle.text = @"洗衣功能";
enlargeClickRegionBtn *back = [[enlargeClickRegionBtn alloc] init];
[back setImage:[UIImage imageNamed:@"nav_return"] forState:UIControlStateNormal];
[naTitle addSubview:back];
[back mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(naTitle.mas_left).offset(5 * k6Scale);
make.width.height.mas_equalTo(30 * k6Scale);
make.centerY.equalTo(naTitle);
}];
__weak typeof(self) weakSelf = self;
[[back rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
[weakSelf backToFirst];
}];
CGFloat bottomMargin = 0;
if (iPhoneX) {
bottomMargin = 34;
}
self.myTableview = [[UITableView alloc] initWithFrame:CGRectMake(0, kTopHeight, kScreenWidth, kScreenHeight - kTopHeight - bottomMargin) style:UITableViewStylePlain];
[self.view addSubview:self.myTableview];
self.myTableview.delegate = self;
self.myTableview.dataSource = self;
self.myTableview.separatorStyle = UITableViewCellSeparatorStyleNone;
self.myTableview.showsVerticalScrollIndicator = NO;
}
- (NSArray *)sectionsTitles {
if (_sectionsTitles == nil) {
_sectionsTitles = @[@"请选择洗衣功能", @"可选功能", @"请选择支付方式", @""];
}
return _sectionsTitles;
}
- (void) createTableHeaderFooter {
UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 83 * k6Scale)];
UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 50 * k6Scale)];
header.backgroundColor = RGB(242, 242, 242);
UIView *bb = [[UIView alloc] initWithFrame:CGRectMake(0, 10 * k6Scale, kScreenWidth, 73 * k6Scale)];
[header addSubview:bb];
UIImageView *image1 = [[UIImageView alloc] initWithFrame:CGRectMake(20 * k6Scale, 15 * k6Scale, 43 * k6Scale, 43 * k6Scale)];
image1.image = [UIImage imageNamed:@"Laundryfunction_picture"];
[bb addSubview:image1];
bb.backgroundColor = [UIColor whiteColor];
UILabel *numberLabel = [[UILabel alloc] init];
numberLabel.font = kFontSize(11 * k6Scale);
numberLabel.textColor = [UIColor colorWithHexString:@"#333333"];
[bb addSubview:numberLabel];
[numberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(image1.mas_right).offset(10 * k6Scale);
make.top.equalTo(image1.mas_top).offset(3 * k6Scale);
}];
UILabel *addressLabel = [[UILabel alloc] init];
addressLabel.font = kFontSize(11 * k6Scale);
addressLabel.textColor = [UIColor colorWithHexString:@"#333333"];
[bb addSubview:addressLabel];
addressLabel.numberOfLines = 0;
[addressLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(image1.mas_right).offset(10 * k6Scale);
make.right.equalTo(bb.mas_right).offset(-10 * k6Scale);
make.top.equalTo(numberLabel.mas_bottom).offset(6 * k6Scale);
}];
if (self.model.enabledAppoint) {
UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 1)];
line.backgroundColor = RGB(210, 210, 210);
[footer addSubview:line];
UIButton *invitor = [[UIButton alloc] initWithFrame:CGRectMake(0, 1, kScreenWidth / 2.0f-1, 50 * k6Scale-2)];
[footer addSubview:invitor];
[invitor setTitleColor:[UIColor colorWithHexString:@"#333333"] forState:UIControlStateNormal];
[invitor setTitle:@"我要预约" forState:UIControlStateNormal];
invitor.titleLabel.font = kFontSize(15 * k6Scale);
UIView *middleLine = [[UIView alloc] initWithFrame:CGRectMake(kScreenWidth/2.0f-1, 10 * k6Scale, 1, 30 * k6Scale)];
middleLine.backgroundColor = RGB(210, 210, 210);
[footer addSubview:middleLine];
UIView *bottomLine = [[UIView alloc] initWithFrame:CGRectMake(0, 50, kScreenWidth, 1)];
bottomLine.backgroundColor = RGB(210, 210, 210);
[footer addSubview:bottomLine];
UIButton *useAtOnce = [[UIButton alloc] initWithFrame:CGRectMake(kScreenWidth/2.0f, 1, kScreenWidth / 2.0f, 50 * k6Scale - 2)];
[footer addSubview:useAtOnce];
[useAtOnce setTitleColor:[UIColor colorWithHexString:@"#333333"] forState:UIControlStateNormal];
[useAtOnce setTitle:@"立即使用" forState:UIControlStateNormal];
useAtOnce.titleLabel.font = kFontSize(15 * k6Scale);
@weakify(self);
[[useAtOnce rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
[self footerOperation:YES];
}];
[[invitor rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
//MARK:预约
[self footerOperation:NO];
}];
} else {
UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 1)];
line.backgroundColor = RGB(210, 210, 210);
[footer addSubview:line];
UIView *bottomLine = [[UIView alloc] initWithFrame:CGRectMake(0, 50, kScreenWidth, 1)];
bottomLine.backgroundColor = RGB(210, 210, 210);
[footer addSubview:bottomLine];
UIButton *useAtOnce = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth / 2.0f, 50 * k6Scale - 2)];
[footer addSubview:useAtOnce];
useAtOnce.center = footer.center;
[useAtOnce setTitleColor:[UIColor colorWithHexString:@"#333333"] forState:UIControlStateNormal];
[useAtOnce setTitle:@"立即使用" forState:UIControlStateNormal];
useAtOnce.titleLabel.font = kFontSize(15 * k6Scale);
@weakify(self);
[[useAtOnce rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
[self footerOperation:YES];
}];
}
numberLabel.text = [NSString stringWithFormat:@"设备编号: %@(%@)", self.model.deviceCode, self.model.deviceName];
addressLabel.text = [NSString stringWithFormat:@"设备地址: %@", self.model.position];
self.myTableview.tableHeaderView = header;
self.myTableview.tableFooterView = footer;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void) backToFirst{
[self.navigationController popViewControllerAnimated:YES];
}
#pragma mark - ========== 立即使用/预约操作 ==========
- (void) footerOperation:(BOOL) atonce {
if (self.selectRequireModel.isSelect == NO) {
[ZXTool showText:@"必须选中一项"];
return ;
}
if (self.selectPayWayModel.isSelect == NO) {
[ZXTool showText:@"支付方式至少选中一个"];
return ;
}
NSMutableArray *list = [[NSMutableArray alloc] init];
if (self.selectOptionModel && self.selectOptionModel.isSelect) {
[list addObject:@(self.selectOptionModel.id)];
} else {
[list addObject:@(self.selectRequireModel.id)];
}
NSDictionary *dic = @{@"customerId":CacheUserId, @"customerName":[kUserDefaults objectForKey:@"username"], @"customerPhone":CacheAccount, @"deviceCode":self.model.deviceCode, @"modelServiceIds":list, @"orderType":atonce?@"1":@"2", @"payType":@(self.selectPayWayModel.paymentWayId)};
//创建订单
@weakify(self);
[DC_ZXWashService createOrderWithPara:dic completedBlock:^(DC_ZXWashOrderModel *order) {
//MARK:立即使用/预约
@strongify(self);
DC_ZXWashOrderDetailViewController *vc = [[DC_ZXWashOrderDetailViewController alloc] init];
vc.order = order;
vc.bluetoothMode = self.model.bluetoothMode;
[self.navigationController pushViewController:vc animated:YES];
}];
}
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
switch (section) {
case 0:
return self.model.requiredPrograms.count;
break;
case 1:
return self.model.optionalPrograms.count;
break;
case 2:
return self.model.paymentWaysInner.count;
break;
case 3:
return self.model.paymentWaysOuter.count;
break;
default:
break;
}
return 0;
}
- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
return self.sectionsTitles.count;
}
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
if (section == 3) {
UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10 * k6Scale)];
header.backgroundColor = RGB(240, 240, 240);
return header;
}
UIView *header = [UIView new];
header.backgroundColor = RGB(240, 240, 240);
UILabel *l = [[UILabel alloc] initWithFrame: CGRectMake(20 * k6Scale, 5 * k6Scale, kScreenWidth - 75 * k6Scale, 30 * k6Scale)];
[header addSubview:l];
l.font = kFontSize(11 * k6Scale);
l.textColor = [UIColor colorWithHexString:@"#999999"];
l.text = self.sectionsTitles[section];
return header;
}
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 0) {
DC_ZXWashOperationCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DC_ZXWashOperationCell"];
if (cell == nil) {
cell = [[DC_ZXWashOperationCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_ZXWashOperationCell"];
}
cell.require = self.model.requiredPrograms[indexPath.row];
return cell;
} else if (indexPath.section == 1) {
DC_ZXWashBucketCleanCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DC_ZXWashBucketCleanCell"];
if (cell == nil) {
cell = [[DC_ZXWashBucketCleanCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_ZXWashBucketCleanCell"];
}
cell.option = self.model.optionalPrograms[indexPath.row];
return cell;
} else if (indexPath.section == 2){
DC_washPayWay *pay = self.model.paymentWaysInner[indexPath.row];
if (pay.paymentWayId == 6) {
DC_ZXWashAimiPayCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DC_ZXWashAimiPayCell"];
if (cell == nil) {
cell = [[DC_ZXWashAimiPayCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_ZXWashAimiPayCell"];
}
@weakify(self);
cell.reachge = ^{
@strongify(self);
AimiWalletViewController * view = [[AimiWalletViewController alloc]init];
[self.navigationController pushViewController:view animated:YES];
};
cell.pay = pay;
return cell;
}
DC_ZXWashPayWayCell *cell1 = [tableView dequeueReusableCellWithIdentifier:@"DC_ZXWashPayWayCell"];
if (cell1 == nil) {
cell1 = [[DC_ZXWashPayWayCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_ZXWashPayWayCell"];
}
DC_washPayWay *pay1 = self.model.paymentWaysInner[indexPath.row];
cell1.pay = pay1;
return cell1;
}
DC_ZXWashPayWayCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DC_ZXWashPayWayCell"];
if (cell == nil) {
cell = [[DC_ZXWashPayWayCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_ZXWashPayWayCell"];
}
DC_washPayWay *pay = self.model.paymentWaysOuter[indexPath.row];
cell.pay = pay;
return cell;
}
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 45 * k6Scale;
}
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
if (self.model.optionalPrograms.count==0 && section==1) {
return 0;
}
if (section==3) {
if (self.model.paymentWaysInner.count) {
return 10 * k6Scale;
}
return 0;
}
return 35 * k6Scale;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationController.navigationBar.hidden = YES;
if (@available(iOS 11, *)) {
//iOS11 解决SafeArea的问题,同时能解决pop时上级页面scrollView抖动的问题
[UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
}
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.section) {
case 0: {//单选区
DC_requiredPrograms *requ = self.model.requiredPrograms[indexPath.row];
if (requ.isSelect) {
requ.isSelect = NO;
} else {
for (DC_requiredPrograms *r in self.model.requiredPrograms) {
r.isSelect = NO;
}
requ.isSelect = YES;
}
self.selectRequireModel = requ;
break;
}
case 1: {//可选区
DC_optionalPrograms *option = self.model.optionalPrograms[indexPath.row];
if (option.isSelect) {
option.isSelect = NO;
} else {
for (DC_optionalPrograms *o in self.model.optionalPrograms) {
o.isSelect = NO;
}
option.isSelect = YES;
}
self.selectOptionModel = option;
break;
}
case 2: {//支付区
DC_washPayWay *pay = self.model.paymentWaysInner[indexPath.row];
if (pay.isSelect) {
pay.isSelect = NO;
} else {
for (DC_washPayWay *p in self.model.paymentWaysInner) {
p.isSelect = NO;
}
for (DC_washPayWay *p in self.model.paymentWaysOuter) {
p.isSelect = NO;
}
pay.isSelect = YES;
}
self.selectPayWayModel = pay;
break;
}
case 3: {//支付区
DC_washPayWay *pay = self.model.paymentWaysOuter[indexPath.row];
if (pay.isSelect) {
pay.isSelect = NO;
} else {
for (DC_washPayWay *p in self.model.paymentWaysOuter) {
p.isSelect = NO;
}
for (DC_washPayWay *p in self.model.paymentWaysInner) {
p.isSelect = NO;
}
pay.isSelect = YES;
}
self.selectPayWayModel = pay;
break;
}
default:
break;
}
[self.myTableview reloadData];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
//懒加载三个选中对象
- (DC_washPayWay *)selectPayWayModel {
if (_selectPayWayModel == nil) {
_selectPayWayModel = [[DC_washPayWay alloc] init];
}
return _selectPayWayModel;
}
-(DC_requiredPrograms *)selectRequireModel {
if (_selectRequireModel == nil) {
_selectRequireModel = [[DC_requiredPrograms alloc] init];
}
return _selectRequireModel;
}
- (DC_optionalPrograms *)selectOptionModel {
if (_selectOptionModel == nil) {
_selectOptionModel = [[DC_optionalPrograms alloc] init];
}
return _selectOptionModel;
}
@end
//
//
// ZXWashOrderDetailViewController.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/25.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXWashOrderModel.h"
@interface DC_ZXWashOrderDetailViewController : UIViewController
///** 蓝牙模式 0:无蓝牙;1:纯蓝牙;2:蓝牙+其他 */
@property (nonatomic, assign) NSInteger bluetoothMode;
@property (nonatomic, strong) DC_ZXWashOrderModel *order;
@end
//
//
// ZXWashOrderDetailViewController.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/25.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashOrderDetailViewController.h"
#import "enlargeClickRegionBtn.h"
#import "HomeNormalHeader.h"
#import "DC_ZXWashOrderShowCell.h"
#import "DC_ZXWashOrderPayCell.h"
#import "DC_ZXWashService.h"
#import "ZXPayManager.h"
#import "payModelItem.h"
#import "JDPAuthSDK.h"
#import "NSString+MD5.h"
#import "DC_ZXWashTabbarViewController.h"
#import "DC_ZXPreOrderModel.h"
#import "DC_CountingDownView.h"
#import "DCWashBluetoothManager.h"
#import "DC_ZXWashService.h"
@interface DC_ZXWashOrderDetailViewController ()<UITableViewDelegate, UITableViewDataSource, DCWashBluetoothManagerDelegate>
@property (nonatomic, strong) UITableView *myTableview;
/** */
/** */
@property (nonatomic, strong) DCWashBluetoothManager *bluetoothManager;
/** 确认支付按钮 */
@property (nonatomic, strong) UIButton *okPayButton;
@end
@implementation DC_ZXWashOrderDetailViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self createUI];
if (self.bluetoothMode && self.order.orderType == 1) {
self.bluetoothManager = [[DCWashBluetoothManager alloc] initWithBluetoothDeviceCode:self.order.deviceCode isOnlyBluetooth:(self.bluetoothMode == 1) socketUrl:[kUserDefaults objectForKey:@"DCWashSocketUrl"] socketPort:[[kUserDefaults objectForKey:@"DCWashSocketPort"] integerValue]];
self.bluetoothManager.delegate = self;
//初次进入
[self.bluetoothManager firstInConnectBluetoothAndSocket];
}
}
#pragma mark - ========== 创建导航栏 ==========
- (void) createUI {
UIImageView *nabar = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kTopHeight)];
nabar.backgroundColor = [UIColor whiteColor];
nabar.userInteractionEnabled = YES;
nabar.image = kToppicBgImage;
[self.view addSubview:nabar];
UILabel *naTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, kStatusBarHeight, kScreenWidth, kNavBarHeight)];
naTitle.backgroundColor = [UIColor clearColor];
naTitle.textAlignment = NSTextAlignmentCenter;
naTitle.textColor = [UIColor whiteColor];
naTitle.font = [UIFont boldSystemFontOfSize:17 * k6Scale];
naTitle.userInteractionEnabled = YES;
[nabar addSubview:naTitle];
if (self.order.orderType==1) {
naTitle.text = @"支付订单";
} else {
naTitle.text = @"预约订单";
}
enlargeClickRegionBtn *back = [[enlargeClickRegionBtn alloc] init];
[back setImage:[UIImage imageNamed:@"nav_return"] forState:UIControlStateNormal];
[naTitle addSubview:back];
[back mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(naTitle.mas_left).offset(5 * k6Scale);
make.width.height.mas_equalTo(30 * k6Scale);
make.centerY.equalTo(naTitle);
}];
__weak typeof(self) weakSelf = self;
[[back rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
[self.bluetoothManager cutBluetoothAndSocketConnect];
self.bluetoothManager.delegate = nil;
self.bluetoothManager = nil;
[weakSelf.navigationController popViewControllerAnimated:YES];
}];
CGFloat bottomMargin = 0;
if (iPhoneX) {
bottomMargin = 34;
}
self.myTableview = [[UITableView alloc] initWithFrame:CGRectMake(0, kTopHeight, kScreenWidth, kScreenHeight - kTopHeight - bottomMargin) style:UITableViewStylePlain];
[self.view addSubview:self.myTableview];
self.myTableview.delegate = self;
self.myTableview.dataSource = self;
self.myTableview.separatorStyle = UITableViewCellSeparatorStyleNone;
self.myTableview.showsVerticalScrollIndicator = NO;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
HomeNormalHeader *header = [tableView dequeueReusableHeaderFooterViewWithIdentifier:@"HomeNormalHeader"];
if (header == nil) {
header = [[HomeNormalHeader alloc] initWithReuseIdentifier:@"HomeNormalHeader"];
}
return header;
}
- (UIView *) tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
if (section) {
UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 64 * k6Scale)];
self.okPayButton = [[UIButton alloc] initWithFrame:CGRectMake(22.5 * k6Scale, 0, kScreenWidth - 45 * k6Scale, 44 * k6Scale)];
[footer addSubview:self.okPayButton];
[self.okPayButton setBackgroundImage:kToppicBgImage forState:UIControlStateNormal];
self.okPayButton.layer.cornerRadius = 5 * k6Scale;
self.okPayButton.layer.masksToBounds = YES;
[self.okPayButton setTitle:@"确认支付" forState:UIControlStateNormal];
[self.okPayButton setTitleColor:[UIColor colorWithHexString:@"#ffffff"] forState:UIControlStateNormal];
self.okPayButton.titleLabel.font = kFontSize(17 * k6Scale);
@weakify(self);
[self.okPayButton addTarget:self action:@selector(okPay:) forControlEvents:UIControlEventTouchDown];
if (self.order.orderType == 1) {
DC_CountingDownView *downView = [[DC_CountingDownView alloc] initWithFrame:CGRectMake(22.5 * k6Scale, 45 * k6Scale, kScreenWidth - 45 * k6Scale, 20 * k6Scale)];
[footer addSubview:downView];
[downView createTimerWithTimeIntervel:([ZXTool returnTimeintervelByDate:[ZXTool getCurrentTime]] + self.order.payTimeout + 1) isShowBlock:^{
@strongify(self);
dispatch_async(dispatch_get_main_queue(), ^{
self.okPayButton.enabled = NO;
});
}];
}
return footer;
}
return nil;
}
- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 185 * k6Scale;
}
- (CGFloat) tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return section?44 * k6Scale:0;
}
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 10 * k6Scale;
}
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section) {
DC_ZXWashOrderPayCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DC_ZXWashOrderPayCell"];
if (!cell) {
cell = [[DC_ZXWashOrderPayCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_ZXWashOrderPayCell"];
}
cell.order = self.order;
return cell;
}
DC_ZXWashOrderShowCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ZXWashOrderShowCell"];
if (!cell) {
cell = [[DC_ZXWashOrderShowCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_ZXWashOrderShowCell"];
}
cell.order = self.order;
return cell;
}
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;
}
- (void) backToFirst{
dispatch_async(dispatch_get_main_queue(), ^{
//返回到主界面
for (UIViewController *vc in self.navigationController.childViewControllers) {
if ([vc isKindOfClass:NSClassFromString(@"DC_ZXWashTabbarViewController")]) {
[self.navigationController popToViewController:vc animated:YES];
return ;
}
}
});
}
#pragma mark 确认支付事件
- (void) okPay:(UIButton *) sender {
sender.enabled = NO;
//发起字符
if (self.order.orderType == 2 || self.bluetoothMode == 0) {
//立即支付
[self payOrderWithStatus:0];
} else {
//开启蓝牙
[self.bluetoothManager startConnectBluetoothAndSocket];
}
}
#pragma mark - 发起支付
- (void) payOrderWithStatus:(NSInteger) status {
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
NSInteger isOpenBluetooth = 0;
if ([kUserDefaults objectForKey:@"isOpenBluetooth"] && [[kUserDefaults objectForKey:@"isOpenBluetooth"] isEqualToString:@"yes"]) {
isOpenBluetooth = 1;
}
NSString *url = [NSString stringWithFormat:@"%@/dcxy/api/washer/order/%@/pay?orderCode=%@&isOpenBluetooth=%ld&triggerMode=%ld",prefix , self.order.orderCode, self.order.orderCode, (long)isOpenBluetooth,(long)status];
@weakify(self);
[ZXTool requestDataWithType:kXMHTTPMethodPOST url:url para:nil completed:^(CommonModel *common, NSString *error) {
@strongify(self);
dispatch_async(dispatch_get_main_queue(), ^{
[ZXTool hideLoadingAnimation];
[SVProgressHUD dismiss];
if (error) {
[ZXTool showText:error];
self.okPayButton.enabled = YES;
if (self.order.orderType==1 && self.bluetoothMode) {
[self.bluetoothManager cutBluetoothAndSocketConnect];
}
} else {
if (self.order.orderType == 2) {
//预约 单独加载预约订单信息
[[NSNotificationCenter defaultCenter] postNotificationName:@"DC_RefreshFirsrPage_Data" object:nil];
[ZXTool showText:@"订单预约成功"];
[self backToFirst];
} else {
[ZXTool showText:@"设备开启成功"];
[self backToFirst];
}
}
});
}];
}
#pragma mark - DCWashBluetoothManagerDelegate
- (void) startFireInterfaceByStatus:(NSInteger)status {
[self payOrderWithStatus:status];
}
//纯蓝牙连接超时
- (void) connectBluetoothFaliure {
self.okPayButton.enabled = YES;
}
@end
//
//
// ZXWashRecordViewController.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/21.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface DC_ZXWashRecordViewController : UIViewController
@end
//
//
// ZXWashRecordViewController.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/21.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashRecordViewController.h"
#import "DC_ZXWashMyInvitorCell.h"
#import "DC_ZXWashService.h"
#import "DC_ZXWashOrderListModel.h"
#import "enlargeClickRegionBtn.h"
@interface DC_ZXWashRecordViewController ()<UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) UITableView *myTableview;
@property (nonatomic, strong) DC_ZXWashService *washService;
@property (nonatomic, strong) enlargeClickRegionBtn *goTop;
@end
@implementation DC_ZXWashRecordViewController
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear: animated];
self.tabBarController.tabBar.hidden = NO;
if (@available(iOS 11, *)) {
[UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; //iOS11 解决SafeArea的问题,同时能解决pop时上级页面scrollView抖动的问题
}
}
- (void)viewDidLoad {
[super viewDidLoad];
[self createNabar];
self.washService = [[DC_ZXWashService alloc] init];
[self loadNewData];//加载最新数据
}
#pragma mark - ========== 创建导航栏 ==========
- (void) createNabar {
UIImageView *nabar = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kTopHeight)];
nabar.backgroundColor = [UIColor whiteColor];
nabar.userInteractionEnabled = YES;
nabar.image = kToppicBgImage;
[self.view addSubview:nabar];
UILabel *naTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, kStatusBarHeight, kScreenWidth, kNavBarHeight)];
naTitle.backgroundColor = [UIColor clearColor];
naTitle.textAlignment = NSTextAlignmentCenter;
naTitle.textColor = [UIColor whiteColor];
naTitle.font = [UIFont boldSystemFontOfSize:17 * k6Scale];
naTitle.userInteractionEnabled = YES;
[nabar addSubview:naTitle];
naTitle.text = @"预约记录";
enlargeClickRegionBtn *back = [[enlargeClickRegionBtn alloc] init];
[back setImage:[UIImage imageNamed:@"nav_return"] forState:UIControlStateNormal];
[naTitle addSubview:back];
[back mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(naTitle.mas_left).offset(5 * k6Scale);
make.width.height.mas_equalTo(30 * k6Scale);
make.centerY.equalTo(naTitle);
}];
@weakify(self);
[[back rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
[self.navigationController popViewControllerAnimated:YES];
[self.parentViewController.childViewControllers[0] removeFromParentViewController];
[self.parentViewController.childViewControllers[1] removeFromParentViewController];
[self.parentViewController.childViewControllers[2] removeFromParentViewController];
}];
CGFloat bottomMargin = 0;
if (iPhoneX) {
bottomMargin = 34;
}
self.myTableview = [[UITableView alloc] initWithFrame:CGRectMake(0, kTopHeight , kScreenWidth, kScreenHeight - kTopHeight - 49 - bottomMargin) style:UITableViewStylePlain];
[self.view addSubview:self.myTableview];
self.myTableview.delegate = self;
self.myTableview.dataSource = self;
self.myTableview.separatorStyle = UITableViewCellSeparatorStyleNone;
self.myTableview.backgroundColor = RGB(237, 237, 237);
if (@available(iOS 11.0, *)) {
self.myTableview.estimatedRowHeight = 0;
self.myTableview.estimatedSectionFooterHeight = 0;
self.myTableview.estimatedSectionHeaderHeight = 0;
self.myTableview.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
//下拉刷新
self.myTableview.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
//上拉加载
self.myTableview.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)]; self.myTableview.showsVerticalScrollIndicator = NO;
//添加到顶部按钮
self.goTop = [[enlargeClickRegionBtn alloc] init];
[self.view addSubview:self.goTop];
[self.goTop setBackgroundImage:[UIImage imageNamed:@"wash-up"] forState:UIControlStateNormal];
CGFloat bottom = 0;
if (iPhoneX) {
bottom = 34;
}
[self.goTop mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.view.mas_bottom).offset(-(bottom + 49 + 30 * k6Scale));
make.right.equalTo(self.view.mas_right).offset(-30 * k6Scale);
make.width.height.mas_equalTo(40 * k6Scale);
}];
[[self.goTop rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
[self.myTableview setContentOffset:CGPointMake(0, 0) animated:YES];
}];
self.goTop.hidden = YES;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
self.goTop.hidden = scrollView.contentOffset.y <= 0;
}
#pragma mark - ========== 下拉刷新 上拉加载 ==========
- (void) loadNewData {
@weakify(self);
[self.washService loadWashRecordListWithIsNewData:YES completedBlock:^(BOOL isNeedReload) {
@strongify(self);
[ZXTool hideLoadingAnimation];
[self.myTableview.mj_header endRefreshing];
if (isNeedReload) {
[self.myTableview.mj_footer endRefreshing];
[self.myTableview reloadData];
} else {
[self.myTableview.mj_footer endRefreshingWithNoMoreData];
}
}];
}
- (void) loadMoreData {
@weakify(self);
[self.washService loadWashRecordListWithIsNewData:NO completedBlock:^(BOOL isNeedReload) {
@strongify(self);
[ZXTool hideLoadingAnimation];
[self.myTableview.mj_header endRefreshing];
if (isNeedReload) {
[self.myTableview.mj_footer endRefreshing];
[self.myTableview reloadData];
} else {
[self.myTableview.mj_footer endRefreshingWithNoMoreData];
}
}];
}
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.washService.myInvitorList.count;
}
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
DC_ZXWashMyInvitorCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DC_ZXWashMyInvitorCell"];
if (cell == nil) {
cell = [[DC_ZXWashMyInvitorCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_ZXReChooseCell"];
}
DC_ZXWashOrderListModel *model = self.washService.myInvitorList[indexPath.row];
cell.model = model;
return cell;
}
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return ((kScreenWidth - 24 * k6Scale) * 0.64) + 10 * k6Scale;
}
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
//
//
// ZXWashTabbarViewController.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/21.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface DC_ZXWashTabbarViewController : UITabBarController
@end
//
//
// ZXWashTabbarViewController.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/21.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashTabbarViewController.h"
#import "DC_ZXWashCloseViewController.h"
#import "DC_ZXWashRecordViewController.h"
#import "DC_ZXLocationViewController.h"
@interface DC_ZXWashTabbarViewController ()
@end
@implementation DC_ZXWashTabbarViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.tabBarController.tabBar.hidden = YES;
self.tabBar.hidden = NO;
self.tabBar.backgroundColor = [UIColor whiteColor];
DC_ZXWashCloseViewController *washVc = [[DC_ZXWashCloseViewController alloc] init];
DC_ZXLocationViewController *locationVC = [[DC_ZXLocationViewController alloc] init];
DC_ZXWashRecordViewController *recordVC = [[DC_ZXWashRecordViewController alloc] init];
[self addChildViewController:washVc];
[self addChildViewController:locationVC];
[self addChildViewController:recordVC];
washVc.tabBarItem.title = @"洗衣";
washVc.tabBarItem.selectedImage = [[UIImage imageNamed:@"tab_laundry_check"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
washVc.tabBarItem.image = [UIImage imageNamed:@"tab_laundry_default"];
locationVC.tabBarItem.title = @"常用位置";
locationVC.tabBarItem.selectedImage = [[UIImage imageNamed:@"tab_position_check"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
locationVC.tabBarItem.image = [UIImage imageNamed:@"tab_position_default"];
recordVC.tabBarItem.title = @"洗衣记录";
recordVC.tabBarItem.selectedImage = [[UIImage imageNamed:@"tab_Laundryrecord_check"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
recordVC.tabBarItem.image = [UIImage imageNamed:@"tab_Laundryrecord_default"];
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:kRGB(51, 51, 51), NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];
UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 1)];
line.backgroundColor = RGB(243, 243, 243);
[self.tabBar addSubview:line];
// self.tabBar.layer.shadowColor = [UIColor colorWithHexString:@"#FF0000"].CGColor;
// // 设置阴影偏移量
// self.tabBar.layer.shadowOffset = CGSizeMake(0,3 * k6Scale);
// // 设置阴影透明度
// self.tabBar.layer.shadowOpacity = 0.2;
// // 设置阴影半径
// self.tabBar.layer.shadowRadius = 4 * k6Scale;
[[UITabBarItem appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:kRGB(238, 125, 31),NSForegroundColorAttributeName, nil]forState:UIControlStateSelected];
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.tabBarController.tabBar.hidden = YES;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
//
//
// ZXPreOrderModel.h
// ColorfulSchool
//
// Created by liuZX on 2018/7/4.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
// 预约订单模型
#import "JKDBModel.h"
@interface DC_ZXPreOrderModel : JKDBModel
/** 蓝牙模式 0:无蓝牙;1:纯蓝牙;2:蓝牙+其他 */
@property (nonatomic, assign) NSInteger bluetoothMode;
/** 设备号 */
@property (nonatomic, copy) NSString *deviceCode;
/** 设备名称 */
@property (nonatomic, copy) NSString *deviceName;
/** 预约失效时间 */
@property (nonatomic, copy) NSString *endDate;
/** 订单金额 */
@property (nonatomic, assign) CGFloat money;
/** 订单编号 */
@property (nonatomic, copy) NSString *orderCode;
/** 设备位置 */
@property (nonatomic, copy) NSString *position;
/** 预约的功能服务 */
@property (nonatomic, strong) NSArray *services;
/** 预约开始时间 */
@property (nonatomic, copy) NSString *startDate;
/** 订单状态 0:预约中;1:已使用;2:预约超期 */
@property (nonatomic, assign) NSInteger status;
@end
@interface DC_ZXPreOrder_ServiceModel : JKDBModel
/** 订单号 */
@property (nonatomic, copy) NSString *orderCode;
/** 功能程序洗涤时长,单位:分钟 */
@property (nonatomic, assign) NSInteger duration;
/** 功能服务id */
@property (nonatomic, assign) NSInteger id;
/** modelServiceConfigId */
@property (nonatomic, assign) NSInteger modelServiceConfigId;
/** 功能服务名称 */
@property (nonatomic, copy) NSString *name;
/** 功能服务价格 */
@property (nonatomic, assign) CGFloat price;
@end
//
//
// ZXPreOrderModel.m
// ColorfulSchool
//
// Created by liuZX on 2018/7/4.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXPreOrderModel.h"
@implementation DC_ZXPreOrderModel
/* 数组中存储模型数据,需要说明数组中存储的模型数据类型 */
+(NSDictionary *)mj_objectClassInArray
{
return @{@"services" : @"DC_ZXPreOrder_ServiceModel"};
}
@end
@implementation DC_ZXPreOrder_ServiceModel
@end
//
//
// ZXWashLocationModel.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/29.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "JKDBModel.h"
@interface DC_ZXWashLocationModel : JKDBModel
@property (nonatomic, copy) NSString *id;
@property (nonatomic, copy) NSString *name;
//文字高度
@property (nonatomic, assign) CGFloat contentH;
@end
//
// ZXWashLocationModel.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/29.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashLocationModel.h"
@implementation DC_ZXWashLocationModel
@end
//
//
// ZXWashMerthinModel.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/28.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "JKDBModel.h"
@interface DC_ZXWashMerthinModel : JKDBModel
//设备号
@property (nonatomic, copy) NSString *deviceCode;
//蓝牙模式 0:无蓝牙;1:纯蓝牙;2:蓝牙+其他
@property (nonatomic, assign) NSInteger bluetoothMode;
/** 设备名称 */
@property (nonatomic, copy) NSString *deviceName;
//是否运行中
@property (nonatomic, assign) NSInteger isRunning;
/** 位置 */
@property (nonatomic, copy) NSString *position;
@end
//
//
// ZXWashMerthinModel.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/28.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashMerthinModel.h"
@implementation DC_ZXWashMerthinModel
@end
//
//
// ZXWashOperationModel.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/29.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "JKDBModel.h"
@interface DC_washPayWay : NSObject
/** 是否为第三方支付类型,默认:1-是 */
@property (nonatomic, assign) NSInteger partyPayment;
/** 支付方式ID */
@property (nonatomic, assign) NSInteger paymentWayId;
/** 支付方式名称 */
@property (nonatomic, copy) NSString *paymentWayName;
//是否选中
@property (nonatomic, assign) BOOL isSelect;
@end
@interface DC_requiredPrograms : NSObject
/** 功能程序洗涤时长,单位:分钟 */
@property (nonatomic, assign) NSInteger duration;
/** 功能服务id */
@property (nonatomic, assign) NSInteger id;
/** modelServiceConfigId */
@property (nonatomic, assign) NSInteger modelServiceConfigId;
/** 功能服务名称 */
@property (nonatomic, copy) NSString *name;
/** 功能服务价格 */
@property (nonatomic, assign) CGFloat price;
//是否选中
@property (nonatomic, assign) BOOL isSelect;
@end
@interface DC_optionalPrograms : NSObject
/** 功能程序洗涤时长,单位:分钟 */
@property (nonatomic, assign) NSInteger duration;
/** 功能服务id */
@property (nonatomic, assign) NSInteger id;
/** modelServiceConfigId */
@property (nonatomic, assign) NSInteger modelServiceConfigId;
/** 功能服务名称 */
@property (nonatomic, copy) NSString *name;
/** 功能服务价格 */
@property (nonatomic, assign) CGFloat price;
//是否选中
@property (nonatomic, assign) BOOL isSelect;
@end
@interface DC_ZXWashOperationModel : JKDBModel
/** 蓝牙模式 0:无蓝牙;1:纯蓝牙;2:蓝牙+其他 */
@property (nonatomic, assign) NSInteger bluetoothMode;
/** 设备号 */
@property (nonatomic, copy) NSString *deviceCode;
/** 设备名称 */
@property (nonatomic, copy) NSString *deviceName;
/** 是否开启预约功能 */
@property (nonatomic, assign) BOOL enabledAppoint;
/** 设备位置 */
@property (nonatomic, copy) NSString *position;
@property (nonatomic, strong) NSArray *optionalPrograms;
//系统支付
@property (nonatomic, strong) NSArray *paymentWaysInner;
//第三方支付
@property (nonatomic, strong) NSArray *paymentWaysOuter;
@property (nonatomic, strong) NSArray *requiredPrograms;
@end
//
//
// ZXWashOperationModel.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/29.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashOperationModel.h"
@implementation DC_washPayWay
@end
@implementation DC_requiredPrograms
@end
@implementation DC_optionalPrograms
@end
@implementation DC_ZXWashOperationModel
/* 数组中存储模型数据,需要说明数组中存储的模型数据类型 */
+(NSDictionary *)mj_objectClassInArray
{
return @{@"optionalPrograms" : @"DC_optionalPrograms", @"paymentWaysInner" : @"DC_washPayWay", @"paymentWaysOuter" : @"DC_washPayWay",@"requiredPrograms" : @"DC_requiredPrograms"};
}
@end
//
//
// ZXWashOrderListModel.h
// ColorfulSchool
//
// Created by liuZX on 2018/7/4.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "JKDBModel.h"
@interface DC_ZXWashOrderListModel : JKDBModel
/** 蓝牙模式 0:无蓝牙;1:纯蓝牙;2:蓝牙+其他 */
@property (nonatomic, assign) NSInteger bluetoothMode;
/** 设备号 */
@property (nonatomic, copy) NSString *deviceCode;
/** 设备名称 */
@property (nonatomic, copy) NSString *deviceName;
/** 预约失效时间 */
@property (nonatomic, copy) NSString *endDate;
/** 订单金额 */
@property (nonatomic, assign) CGFloat money;
/** 订单编号 */
@property (nonatomic, copy) NSString *orderCode;
/** 设备位置 */
@property (nonatomic, copy) NSString *position;
/** 预约的功能服务 */
@property (nonatomic, strong) NSArray *services;
/** 订单状态 0:预约中;1:已使用;2:预约超期 */
@property (nonatomic, assign) NSInteger status;
/** 预约开始时间 */
@property (nonatomic, copy) NSString *startDate;
@end
@interface DC_ZXWashOrderList_ServiceModel : JKDBModel
/** 功能程序洗涤时长,单位:分钟 */
@property (nonatomic, assign) NSInteger duration;
/** 功能服务id */
@property (nonatomic, assign) NSInteger op_id;
/** 功能服务名称 */
@property (nonatomic, copy) NSString *name;
/** 功能服务价格 */
@property (nonatomic, assign) CGFloat price;
@end
//
//
// ZXWashOrderListModel.m
// ColorfulSchool
//
// Created by liuZX on 2018/7/4.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashOrderListModel.h"
@implementation DC_ZXWashOrderListModel
/* 数组中存储模型数据,需要说明数组中存储的模型数据类型 */
+(NSDictionary *)mj_objectClassInArray
{
return @{@"services" : @"DC_ZXWashOrderList_ServiceModel"};
}
@end
@implementation DC_ZXWashOrderList_ServiceModel
@end
//
//
// ZXWashOrderModel.h
// ColorfulSchool
//
// Created by liuZX on 2018/7/4.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "JKDBModel.h"
@interface DC_ZXWashOrderModel : JKDBModel
/** 超时时间,单位分钟 */
@property (nonatomic, assign) NSInteger appointmentTimeout;
/** 设备号 */
@property (nonatomic, copy) NSString *deviceCode;
/** 设备名称 */
@property (nonatomic, copy) NSString *deviceName;
/** 总金额,最多2位小数 */
@property (nonatomic, assign) CGFloat money;
/** 订单编号 */
@property (nonatomic, copy) NSString *orderCode;
/** 订单类型,1即时订单,2预约订单 */
@property (nonatomic, assign) NSInteger orderType;
/** 支付超时时间,单位秒 */
@property (nonatomic, assign) NSInteger payTimeout;
/** 支付方式ID */
@property (nonatomic, assign) NSInteger paymentWayId;
/** 设备位置 */
@property (nonatomic, copy) NSString *position;
/** 消费的服务类型ID */
@property (nonatomic, assign) NSInteger serviceId;
/** 支付的功能服务 */
@property (nonatomic, strong) NSArray *services;
@end
@interface DC_ZXWashOrder_ServiceModel : JKDBModel
/** 功能程序洗涤时长,单位:分钟 */
@property (nonatomic, assign) NSInteger duration;
/** 功能服务id */
@property (nonatomic, assign) NSInteger id;
/** 功能服务名称 */
@property (nonatomic, copy) NSString *name;
/** 功能服务价格 */
@property (nonatomic, assign) CGFloat price;
@end
//
//
// ZXWashOrderModel.m
// ColorfulSchool
//
// Created by liuZX on 2018/7/4.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashOrderModel.h"
@implementation DC_ZXWashOrderModel
/* 数组中存储模型数据,需要说明数组中存储的模型数据类型 */
+(NSDictionary *)mj_objectClassInArray
{
return @{@"services" : @"DC_ZXWashOrder_ServiceModel"};
}
@end
@implementation DC_ZXWashOrder_ServiceModel
@end
//
//
// AppointView.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/27.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXPreOrderModel.h"
@interface DC_AppointView : UIView
- (instancetype) initWithFrame:(CGRect)frame preOrder:(DC_ZXPreOrderModel *) preOrder;
@end
//
//
// AppointView.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/27.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_AppointView.h"
#import "enlargeClickRegionBtn.h"
#import "YYImage.h"
#import "DC_ZXWashService.h"
#import "DCWashBluetoothManager.h"
@interface DC_AppointView ()<DCWashBluetoothManagerDelegate>
/** */
@property (nonatomic, strong) DCWashBluetoothManager *manager;
/** DC_ZXPreOrderModel */
@property (nonatomic, strong) DC_ZXPreOrderModel *preOrder;
@end
@implementation DC_AppointView
- (instancetype) initWithFrame:(CGRect)frame preOrder:(DC_ZXPreOrderModel *) preOrder {
if (self = [super initWithFrame:frame]) {
self.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:.85];
self.preOrder = preOrder;
UIView *nabar = [[UIView alloc] initWithFrame:CGRectMake(0, kStatusBarHeight, kScreenWidth, 44)];
nabar.userInteractionEnabled = YES;
[self addSubview:nabar];
UILabel *naTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kNavBarHeight)];
naTitle.backgroundColor = [UIColor clearColor];
naTitle.textAlignment = NSTextAlignmentCenter;
naTitle.textColor = [UIColor whiteColor];
naTitle.font = [UIFont boldSystemFontOfSize:17 * k6Scale];
naTitle.userInteractionEnabled = YES;
[nabar addSubview:naTitle];
naTitle.text = @"我的预约";
enlargeClickRegionBtn *back = [[enlargeClickRegionBtn alloc] init];
[back setImage:[UIImage imageNamed:@"nav_return"] forState:UIControlStateNormal];
[naTitle addSubview:back];
[back mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(naTitle.mas_left).offset(5 * k6Scale);
make.width.height.mas_equalTo(30 * k6Scale);
make.centerY.equalTo(naTitle);
}];
@weakify(self);
[[back rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
self.hidden = YES;
[self removeFromSuperview];
}];
UIImageView *start;
UIImage *image;
BOOL success = (preOrder.status ==0);
BOOL isClick = NO;
if (success) {
image = [YYImage imageNamed: @"washingsss"];
start = [[YYAnimatedImageView alloc] init];
start.image = image;
start.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];
[start addGestureRecognizer:tap];
@weakify(self);
[[tap rac_gestureSignal] subscribeNext:^(id x) {
@strongify(self);
//MARK:开始洗衣
if (preOrder.bluetoothMode==0) {//无蓝牙
[self payOrderWithStatus:0];
} else {
self.manager = [[DCWashBluetoothManager alloc] initWithBluetoothDeviceCode:preOrder.deviceCode isOnlyBluetooth:(preOrder.bluetoothMode==1) socketUrl:[kUserDefaults objectForKey:@"DCWashSocketUrl"] socketPort:[[kUserDefaults objectForKey:@"DCWashSocketPort"] integerValue]];
self.manager.delegate = self;
[self.manager startConnectBluetoothAndSocket];
}
}];
} else {
image = [UIImage imageNamed:@"btn_loseefficacy"];
start = [[UIImageView alloc] initWithImage:image];
}
CGFloat topMargin = 0;
if (iPhoneX) {
topMargin = 22;
}
[self addSubview:start];
[start mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.mas_top).offset(125 * k6Scale + topMargin);
make.centerX.equalTo(self.mas_centerX);
make.width.mas_equalTo(success?image.size.width * k6Scale / 2.0f:image.size.width * k6Scale);
make.height.mas_equalTo(success?image.size.height * k6Scale / 2.0f:image.size.height * k6Scale);
}];
UIImageView *imageView = [[UIImageView alloc] init];
UIImage *card = [UIImage imageNamed:@"bg_card"];
imageView.image = card;
[self addSubview:imageView];
[imageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.mas_left).offset(20 * k6Scale);
make.right.equalTo(self.mas_right).offset(-20 * k6Scale);
make.top.equalTo(self.mas_top).offset(325 * k6Scale + topMargin);
make.height.equalTo(imageView.mas_width).multipliedBy(card.size.height / card.size.width);
}];
UILabel *label1 = [[UILabel alloc] init];
label1.textColor = [UIColor colorWithHexString:@"#333333"];
label1.font = kFontSize(13 * k6Scale);
label1.text = @"设备编码";
[imageView addSubview:label1];
UILabel *label2 = [[UILabel alloc] init];
label2.textColor = [UIColor colorWithHexString:@"#333333"];
label2.font = kFontSize(13 * k6Scale);
label2.text = @"预约功能";
[imageView addSubview:label2];
UILabel *label3 = [[UILabel alloc] init];
label3.textColor = [UIColor colorWithHexString:@"#333333"];
label3.font = kFontSize(13 * k6Scale);
label3.text = @"设备位置";
[imageView addSubview:label3];
[label1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageView.mas_left).offset(17 * k6Scale);
make.top.equalTo(imageView.mas_top).offset(14 * k6Scale);
}];
[label2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageView.mas_left).offset(17 * k6Scale);
make.top.equalTo(label1.mas_bottom).offset(7 * k6Scale);
}];
[label3 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageView.mas_left).offset(17 * k6Scale);
make.top.equalTo(label2.mas_bottom).offset(7 * k6Scale);
}];
UIImageView *line = [[UIImageView alloc] init];
[imageView addSubview:line];
line.image = [UIImage imageNamed:@"wash-line"];
line.contentMode = UIViewContentModeScaleAspectFill;
line.clipsToBounds = YES;
[line mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageView.mas_left).offset(17 * k6Scale);
make.top.equalTo(label3.mas_bottom).offset(12 * k6Scale);
make.right.equalTo(imageView.mas_right).offset(-17 * k6Scale);
make.height.mas_equalTo(1);
}];
UILabel *label4 = [[UILabel alloc] init];
label4.textColor = [UIColor colorWithHexString:@"#333333"];
label4.font = kFontSize(11 * k6Scale);
label4.text = @"预约开始时间";
[imageView addSubview:label4];
UILabel *label5 = [[UILabel alloc] init];
label5.textColor = [UIColor colorWithHexString:@"#333333"];
label5.font = kFontSize(11 * k6Scale);
label5.text = @"预约失效时间";
[imageView addSubview:label5];
[label4 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageView.mas_left).offset(17 * k6Scale);
make.top.equalTo(line.mas_bottom).offset(7 * k6Scale);
}];
[label5 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageView.mas_left).offset(17 * k6Scale);
make.top.equalTo(label4.mas_bottom).offset(7 * k6Scale);
}];
//设备编号label
UILabel *numberLabel = [[UILabel alloc] init];
numberLabel.textColor = [UIColor colorWithHexString:@"#333333"];
numberLabel.font = kFontSize(13 * k6Scale);
[imageView addSubview:numberLabel];
//功能
UILabel *operationLabel = [[UILabel alloc] init];
operationLabel.textColor = [UIColor colorWithHexString:@"#333333"];
operationLabel.font = kFontSize(13 * k6Scale);
[imageView addSubview:operationLabel];
//位置
UILabel *addressLabel = [[UILabel alloc] init];
addressLabel.textColor = [UIColor colorWithHexString:@"#333333"];
addressLabel.font = kFontSize(13 * k6Scale);
[imageView addSubview:addressLabel];
//预约开始时间
UILabel *startLabel = [[UILabel alloc] init];
startLabel.textColor = [UIColor colorWithHexString:@"#333333"];
startLabel.font = kFontSize(11 * k6Scale);
[imageView addSubview:startLabel];
//预约结束时间
UILabel *endLabel = [[UILabel alloc] init];
endLabel.textColor = [UIColor colorWithHexString:@"#333333"];
endLabel.font = kFontSize(11 * k6Scale);
[imageView addSubview:endLabel];
[numberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(label1.mas_right).offset(15 * k6Scale);
make.centerY.equalTo(label1.mas_centerY);
}];
[operationLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(label1.mas_right).offset(15 * k6Scale);
make.centerY.equalTo(label2.mas_centerY);
}];
[addressLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(label1.mas_right).offset(15 * k6Scale);
make.centerY.equalTo(label3.mas_centerY);
}];
[startLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(label4.mas_right).offset(15 * k6Scale);
make.centerY.equalTo(label4.mas_centerY);
}];
[endLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(label5.mas_right).offset(15 * k6Scale);
make.centerY.equalTo(label5.mas_centerY);
}];
UILabel *alertLabel = [[UILabel alloc] init];
alertLabel.textColor = [UIColor colorWithHexString:@"#ee7d1f"];
alertLabel.font = kFontSize(11 * k6Scale);
[self addSubview:alertLabel];
alertLabel.text = @"*点击开始洗衣按钮,洗衣机将运行";
[alertLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageView.mas_left);
make.top.equalTo(imageView.mas_bottom).offset(15 * k6Scale);
}];
numberLabel.text = [NSString stringWithFormat:@"%@(%@)", preOrder.deviceCode, preOrder.deviceName];
NSMutableArray *lll = [[NSMutableArray alloc] init];
for (DC_ZXPreOrder_ServiceModel *d in preOrder.services) {
[lll addObject:d.name];
}
operationLabel.text = [lll componentsJoinedByString:@" "];
addressLabel.text = preOrder.position;
startLabel.text = preOrder.startDate;
endLabel.text = preOrder.endDate;
}
return self;
}
#pragma mark - DCWashBluetoothManagerDelegate
- (void)startFireInterfaceByStatus:(NSInteger)status {
[self payOrderWithStatus:status];
}
//蓝牙连接失败
- (void) connectBluetoothFaliure {
}
#pragma mark - 发起支付
- (void) payOrderWithStatus:(NSInteger) status {
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
NSInteger isOpenBluetooth = 0;
if ([kUserDefaults objectForKey:@"isOpenBluetooth"] && [[kUserDefaults objectForKey:@"isOpenBluetooth"] isEqualToString:@"yes"]) {
isOpenBluetooth = 1;
}
NSString *url = [NSString stringWithFormat:@"%@/dcxy/api/washer/begin/%@?deviceCode=%@&orderCode=%@",prefix , self.preOrder.deviceCode, self.preOrder.deviceCode, self.preOrder.orderCode];
@weakify(self);
[ZXTool requestDataWithType:kXMHTTPMethodPOST url:url para:nil completed:^(CommonModel *common, NSString *error) {
@strongify(self);
dispatch_async(dispatch_get_main_queue(), ^{
[ZXTool hideLoadingAnimation];
[SVProgressHUD dismiss];
if (error) {
[ZXTool showText:error];
if (self.preOrder.bluetoothMode) {
[self.manager cutBluetoothAndSocketConnect];
}
} else {
[ZXTool showText:@"设备开启成功"];
[self removeFromSuperview];
}
});
}];
}
@end
//
//
// CountingDownView.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/20.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface DC_CountingDownView : UIView
//回调是否显示 如果不需要显示 才回调
- (void) createTimerWithTimeIntervel:(long long) intervel isShowBlock:(dispatch_block_t) show;
@end
//
//
// CountingDownView.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/20.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_CountingDownView.h"
@interface DC_CountingDownView()
@property (nonatomic, strong) dispatch_source_t timer;
@property (nonatomic, strong) UILabel *countingLabel;
@end
@implementation DC_CountingDownView
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
self.countingLabel = [[UILabel alloc] init];
self.countingLabel.textColor = RGB(210, 0, 16);
self.countingLabel.font = kFontSize(15 * k6Scale);
[self addSubview:self.countingLabel];
[self.countingLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self).offset(3 * k6Scale);
make.left.equalTo(self.mas_left);
}];
}
return self;
}
/**
* 倒计时
*
* @param endTime 截止的时间戳
*
* @return 返回的剩余时间
*/
- (NSString*)remainingTimeMethodAction:(long long)endTime isShowBlock:(dispatch_block_t) show
{
//得到当前时间
NSDate *nowData = [NSDate date];
NSDate *endData=[NSDate dateWithTimeIntervalSince1970:endTime];
NSCalendar* chineseClendar = [ [ NSCalendar alloc ] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags =
NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit;
NSDateComponents *cps = [chineseClendar components:unitFlags fromDate:nowData toDate: endData options:0];
NSInteger Hour = [cps hour];
NSInteger Min = [cps minute];
NSInteger Sec = [cps second];
NSInteger Day = [cps day];
NSInteger lessMin = Day * 24 + Hour * 60 + Min;
NSString *countdown;
if (lessMin) {
countdown = [NSString stringWithFormat:@"*请在%zi秒内完成支付", (lessMin * 60 + Sec)];
} else {
countdown = [NSString stringWithFormat:@"*请在%zi秒内完成支付", (Sec)];
}
if (lessMin<1 && Sec<=0) {
//如果已经小于1了 说明已经结束
countdown = @"*已超时,请重新下单。";
show();
//此时关闭timer
dispatch_cancel(self.timer);
self.timer = nil;
}
return countdown;
}
//销毁定时器
- (void)destoryTimer {
if (self.timer) {
//此时关闭timer
dispatch_cancel(self.timer);
self.timer = nil;
}
}
- (void) createTimerWithTimeIntervel:(long long) intervel isShowBlock:(dispatch_block_t) show {
dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
//马上启动:DISPATCH_TIME_NOW
dispatch_time_t start = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0*NSEC_PER_SEC));
uint64_t interval = (uint64_t)(1*NSEC_PER_SEC);
//设置启动时间和间隔
dispatch_source_set_timer(_timer, start, interval, 1);
@weakify(self);
dispatch_source_set_event_handler(_timer, ^{
@strongify(self);
NSString *text = [self remainingTimeMethodAction:intervel isShowBlock:show];
dispatch_async(dispatch_get_main_queue(), ^{
self.countingLabel.text = text;
});
});
//开启
dispatch_resume(_timer);
}
@end
//
//
// ShowMsgView.h
// ColorfulSchool
//
// Created by liuZX on 2018/7/6.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface DC_ShowMsgView : UIView
- (instancetype)initWithFrame:(CGRect)frame msg:(NSString *) msg;
- (void) show;
@end
//
//
// ShowMsgView.m
// ColorfulSchool
//
// Created by liuZX on 2018/7/6.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ShowMsgView.h"
@implementation DC_ShowMsgView
- (instancetype)initWithFrame:(CGRect)frame msg:(NSString *) msg {
if (self= [super initWithFrame:frame]) {
self.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:.2];
CGFloat bgH = 152 * k6Scale;
UIView *bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 270 * k6Scale, bgH)];
[self addSubview:bgView];
bgView.center = self.center;
bgView.backgroundColor = [UIColor whiteColor];
bgView.layer.cornerRadius = 15 * k6Scale;
bgView.layer.masksToBounds = YES;
UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, bgH - 45 * k6Scale, 270 * k6Scale, 1)];
line.backgroundColor = RGB(242, 242, 242);
[bgView addSubview:line];
UILabel *bottomLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, bgH - 44 * k6Scale, 270 * k6Scale, 44 * k6Scale)];
[bgView addSubview:bottomLabel];
bottomLabel.backgroundColor = [UIColor clearColor];
bottomLabel.textAlignment = NSTextAlignmentCenter;
bottomLabel.textColor = [UIColor colorWithHexString:@"#333333"];
bottomLabel.font = kFontSize(16 * k6Scale);
bottomLabel.text = @"确定";
bottomLabel.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];
[bottomLabel addGestureRecognizer:tap];
__weak typeof(self) weakSelf = self;
[[tap rac_gestureSignal] subscribeNext:^(id x) {
[weakSelf removeFromSuperview];
weakSelf.hidden = YES;
}];
UIImageView *imageV = [[UIImageView alloc] init];
[bgView addSubview:imageV];
UIImage *III = [UIImage imageNamed:@"Projectileframe_bear"];
imageV.image = III;
[imageV mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(bgView.mas_left).offset(20 * k6Scale);
make.top.equalTo(bgView.mas_top).offset(30 * k6Scale);
make.bottom.equalTo(line.mas_top).offset(-15 * k6Scale);
make.width.equalTo(imageV.mas_height).multipliedBy(III.size.width / III.size.height);
}];
UILabel *msgLbel = [[UILabel alloc] init];
[bgView addSubview:msgLbel];
msgLbel.textColor = [UIColor colorWithHexString:@"#333333"];
msgLbel.font = kFontSize(14 * k6Scale);
msgLbel.text = msg;
msgLbel.numberOfLines = 0;
[msgLbel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageV.mas_right).offset(10 * k6Scale);
make.right.equalTo(bgView.mas_right).offset(-10 * k6Scale);
make.centerY.equalTo(imageV.mas_centerY);
}];
}
return self;
}
- (void) show {
[[UIApplication sharedApplication].keyWindow addSubview:self];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
if (self.hidden == NO) {
[self removeFromSuperview];
self.hidden = YES;
}
});
}
@end
//
//
// WashCLoseTableViewCell.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/20.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXWashMerthinModel.h"
@interface DC_WashCLoseTableViewCell : UITableViewCell
@property (nonatomic, strong) DC_ZXWashMerthinModel *model;
@end
//
//
// WashCLoseTableViewCell.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/20.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_WashCLoseTableViewCell.h"
#import "DC_CountingDownView.h"
@interface DC_WashCLoseTableViewCell()
@property (nonatomic, strong) UILabel *numberLabel;
@property (nonatomic, strong) UILabel *addressLabel;
@property (nonatomic, strong) UIImageView *menuImageView;
//@property (nonatomic, strong) CountingDownView *countingDownView;
@end
@implementation DC_WashCLoseTableViewCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
UIImageView *image1 = [[UIImageView alloc] init];
image1.image = [UIImage imageNamed:@"washer"];
UILabel *label1 = [[UILabel alloc] init];
label1.textColor = RGB(153, 153, 153);
label1.font = kFontSize(13 *k6Scale);
label1.text = @"设备编码";
UIImageView *image2 = [[UIImageView alloc] init];
image2.image = [UIImage imageNamed:@"place"];
UILabel *label2 = [[UILabel alloc] init];
label2.textColor = RGB(153, 153, 153);
label2.font = kFontSize(13 *k6Scale);
label2.text = @"设备位置";
// self.countingDownView = [[CountingDownView alloc] init];
self.numberLabel = [[UILabel alloc] init];
self.numberLabel.textColor = RGB(51, 51, 51);
self.numberLabel.font = kFontSize(15 *k6Scale);
self.addressLabel = [[UILabel alloc] init];
self.addressLabel.textColor = RGB(136, 136, 136);
self.addressLabel.numberOfLines = 0;
self.addressLabel.font = kFontSize(12 *k6Scale);
self.menuImageView = [[UIImageView alloc] init];
UIImageView *line = [[UIImageView alloc] init];
line.image = [UIImage imageNamed:@"wash-line"];
line.contentMode = UIViewContentModeScaleAspectFill;
line.clipsToBounds = YES;
[self.contentView addSubview:image1];
[self.contentView addSubview:image2];
[self.contentView addSubview:label1];
[self.contentView addSubview:label2];
[self.contentView addSubview:line];
[self.contentView addSubview:self.numberLabel];
[self.contentView addSubview:self.addressLabel];
[self.contentView addSubview:self.menuImageView];
// [self.contentView addSubview:self.countingDownView];
[image1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(10 * k6Scale);
make.top.equalTo(self.contentView.mas_top).offset(10 * k6Scale);
make.width.height.mas_equalTo(12 * k6Scale);
}];
[image2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(10 * k6Scale);
make.top.equalTo(image1.mas_bottom).offset(10 * k6Scale);
make.width.height.mas_equalTo(12 * k6Scale);
}];
[line mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(12 * k6Scale);
make.right.equalTo(self.contentView.mas_right).offset(-12 * k6Scale); make.bottom.equalTo(self.contentView.mas_bottom);
make.height.mas_equalTo(1);
}];
[label1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(image1.mas_right).offset(10 * k6Scale);
make.centerY.equalTo(image1.mas_centerY);
}];
[label2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(image2.mas_right).offset(10 * k6Scale);
make.centerY.equalTo(image2.mas_centerY);
}];
[self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(label1.mas_right).offset(13 * k6Scale);
make.centerY.equalTo(label1.mas_centerY);
}];
[self.addressLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(label2.mas_right).offset(13 * k6Scale);
make.centerY.equalTo(label2.mas_centerY).offset(1 * k6Scale);
}];
[self.menuImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.contentView.mas_right).offset(-16 * k6Scale);
make.centerY.equalTo(self.contentView.mas_centerY);
make.width.height.mas_equalTo(48 * k6Scale);
}];
// [self.countingDownView mas_makeConstraints:^(MASConstraintMaker *make) {
// make.right.top.bottom.equalTo(self.contentView);
// make.width.mas_equalTo(84 * k6Scale);
// }];
}
return self;
}
- (void)setModel:(DC_ZXWashMerthinModel *)model {
_model = model;
self.numberLabel.text = model.deviceCode;
if (_model.isRunning) {
//显示使用中
self.menuImageView.image = [UIImage imageNamed:@"btn_inuse"];
} else {
self.menuImageView.image = [UIImage imageNamed:@"btn_go"];
}
self.addressLabel.text = _model.position;
}
@end
//
//
// WashSegHeader.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/20.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef enum : NSUInteger {
ZXWashHeaderChooseFree = 0 , //空闲
ZXWashHeaderChooseWillOver, //将要结束
ZXWashHeaderChooseDeal, //筛选
} ZXWashHeaderChooseType;
@protocol washHeaderChooseDelegate<NSObject>
- (void) chooseItemWithChooseType:(ZXWashHeaderChooseType) type;
@end
@interface DC_WashSegHeader : UITableViewHeaderFooterView
@property (nonatomic, weak) id<washHeaderChooseDelegate> delegate;
@end
//
//
// WashSegHeader.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/20.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_WashSegHeader.h"
@implementation DC_WashSegHeader
- (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithReuseIdentifier:reuseIdentifier]) {
self.contentView.backgroundColor = [UIColor whiteColor];
UIButton *free = [[UIButton alloc] init];
free.titleLabel.font = kFontSize(16 * k6Scale);
[free setTitleColor:RGB(102, 102, 102) forState:UIControlStateNormal];
[free setTitleColor:RGB(238, 125, 31) forState:UIControlStateDisabled];
[free setTitle:@"空闲中" forState:UIControlStateNormal];
[self.contentView addSubview:free];
UIButton *willFree = [[UIButton alloc] init];
willFree.titleLabel.font = kFontSize(16 * k6Scale);
[willFree setTitleColor:RGB(102, 102, 102) forState:UIControlStateNormal];
[willFree setTitleColor:RGB(238, 125, 31) forState:UIControlStateDisabled];
[willFree setTitle:@"将结束" forState:UIControlStateNormal];
[self.contentView addSubview:willFree];
//筛选
UIButton *choose = [[UIButton alloc] init];
choose.titleLabel.font = kFontSize(13 * k6Scale);
[choose setTitleColor:RGB(102, 102, 102) forState:UIControlStateNormal];
[choose setTitleColor:RGB(238, 125, 31) forState:UIControlStateDisabled];
[choose setTitle:@"位置筛选" forState:UIControlStateNormal];
[self.contentView addSubview:choose];
[free mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(10 * k6Scale);
make.top.bottom.equalTo(self.contentView);
make.width.mas_equalTo(55 * k6Scale);
}];
UIView *line = [UIView new];
[self.contentView addSubview:line];
line.backgroundColor = RGB(242, 242, 242);
[line mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(free.mas_right).offset(10 * k6Scale);
make.centerY.equalTo(free.mas_centerY);
make.height.mas_equalTo(20 * k6Scale);
make.width.mas_equalTo(1);
}];
UIView *bottomLine = [UIView new];
[self.contentView addSubview:bottomLine];
bottomLine.backgroundColor = RGB(242, 242, 242);
[bottomLine mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(self.contentView);
make.height.mas_equalTo(1);
}];
[willFree mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(line.mas_right).offset(10 * k6Scale);
make.top.bottom.equalTo(self.contentView);
make.width.mas_equalTo(55 * k6Scale);
}];
[choose mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.contentView.mas_right);
make.top.bottom.equalTo(self.contentView);
make.width.mas_equalTo(100 * k6Scale);
}];
free.enabled = NO;
@weakify(self);
[[free rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(UIButton *x) {
@strongify(self);
free.enabled = NO;
willFree.enabled = YES;
if ([self.delegate respondsToSelector:@selector(chooseItemWithChooseType:)]) {
[self.delegate chooseItemWithChooseType:ZXWashHeaderChooseFree];
}
}];
[[willFree rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(UIButton *x) {
@strongify(self);
free.enabled = YES;
willFree.enabled = NO;
if ([self.delegate respondsToSelector:@selector(chooseItemWithChooseType:)]) {
[self.delegate chooseItemWithChooseType:ZXWashHeaderChooseWillOver];
}
}];
[[choose rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(UIButton *x) {
@strongify(self);
if ([self.delegate respondsToSelector:@selector(chooseItemWithChooseType:)]) {
[self.delegate chooseItemWithChooseType:ZXWashHeaderChooseDeal];
}
}];
}
return self;
}
@end
//
//
// ZXChooseCell.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/20.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXWashLocationModel.h"
@interface DC_ZXChooseCell : UITableViewCell
@property (nonatomic, strong) DC_ZXWashLocationModel *model;
@end
//
//
// ZXChooseCell.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/20.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXChooseCell.h"
@interface DC_ZXChooseCell()
@property (nonatomic, strong) UILabel *contentLabel;
@end
@implementation DC_ZXChooseCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.contentLabel = [UILabel new];
[self.contentView addSubview:self.contentLabel];
self.contentLabel.textColor = RGB(102, 102, 102);
self.contentLabel.font = kFontSize(13 * k6Scale);
self.contentLabel.numberOfLines = 0;
[self.contentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.right.equalTo(self.contentView.mas_right).offset(-10 * k6Scale); make.centerY.equalTo(self.contentView.mas_centerY);
}];
UIImageView *bo = [[UIImageView alloc] init];
[self.contentView addSubview:bo];
bo.image = [UIImage imageNamed:@"wash-line"];
bo.contentMode = UIViewContentModeScaleAspectFill;
bo.clipsToBounds = YES;
[bo mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.right.equalTo(self.contentView.mas_right);
make.height.mas_equalTo(1);
make.bottom.equalTo(self.contentView.mas_bottom);
}];
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)setModel:(DC_ZXWashLocationModel *)model {
_model = model;
self.contentLabel.text = _model.name;
}
@end
//
//
// ZXChooseView.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/27.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXWashLocationModel.h"
typedef void(^operationSearch)(DC_ZXWashLocationModel *item);
@interface DC_ZXChooseView : UIView
//已经选择的集合
@property (nonatomic, strong) NSArray *reChooseList;
@property (nonatomic, copy) operationSearch search;
@end
//
//
// ZXChooseView.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/27.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXChooseView.h"
#import "enlargeClickRegionBtn.h"
#import "DC_ZXReChooseCell.h"
#import "DC_ZXChooseCell.h"
#import "DC_ZXWashService.h"
#import "DC_ZXWashLocationModel.h"
#import "ZXLoading.h"
@interface DC_ZXChooseView ()<UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) UITableView *myTableview;
@property (nonatomic, strong) DC_ZXWashService *washService;
@property (nonatomic, strong) ZXLoading *loading;
//数据源
@property (nonatomic, strong) NSMutableArray *dataArray;
@end
@implementation DC_ZXChooseView
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
[[UIApplication sharedApplication].keyWindow endEditing:YES];
self.hidden = YES;
[self removeFromSuperview];
}
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return section?self.dataArray.count:self.reChooseList.count;
}
- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView *header = [UIView new];
header.backgroundColor = [UIColor whiteColor];
UILabel *l = [[UILabel alloc] initWithFrame: CGRectMake(10 * k6Scale, 0, kScreenWidth - 75 * k6Scale, 30 * k6Scale)];
[header addSubview:l];
l.font = kFontSize(12 * k6Scale);
l.textColor = RGB(153, 153, 153);
l.text = section?@"搜索结果":@"已选择";
return header;
}
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section) {
DC_ZXChooseCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DC_ZXChooseCell"];
if (cell == nil) {
cell = [[DC_ZXChooseCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DC_ZXChooseCell"];
}
DC_ZXWashLocationModel *m = self.dataArray[indexPath.row];
cell.model = m;
return cell;
}
DC_ZXReChooseCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ZXReChooseCell"];
if (cell == nil) {
cell = [[DC_ZXReChooseCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ZXReChooseCell"];
}
DC_ZXWashLocationModel *m = self.reChooseList[indexPath.row];
cell.model = m;
return cell;
}
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return indexPath.section?50 * k6Scale:60* k6Scale;
}
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 30 * k6Scale;
}
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
if (@available(iOS 11, *)) {
[UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; //iOS11 解决SafeArea的问题,同时能解决pop时上级页面scrollView抖动的问题
}
self.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:.2];
UIView *holder = [[UIView alloc] initWithFrame:CGRectMake(55 * k6Scale, 183 * k6Scale + kTopHeight, kScreenWidth-50 * k6Scale, kScreenHeight - (176 * k6Scale + kTopHeight))];
holder.layer.cornerRadius = 5 * k6Scale;
holder.layer.masksToBounds = YES;
[self addSubview:holder];
holder.backgroundColor = [UIColor whiteColor];
enlargeClickRegionBtn *cancel = [[enlargeClickRegionBtn alloc] init];
[holder addSubview:cancel];
cancel.layer.cornerRadius = 4;
cancel.layer.masksToBounds = YES;
[cancel setBackgroundImage:[UIImage imageNamed:@"btn_cancel"] forState:UIControlStateNormal];
[cancel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(holder.mas_right).offset(-15 * k6Scale);
make.width.height.mas_offset(40 * k6Scale);
make.top.equalTo(holder.mas_top).offset(15 * k6Scale);
}];
@weakify(self);
[[cancel rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
self.hidden = YES;
[self removeFromSuperview];
}];
UIView *holderView = [UIView new];
holderView.backgroundColor = [[UIColor colorWithHexString:@"#999999"] colorWithAlphaComponent:0.1];;
[holder addSubview:holderView];
[holderView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(holder.mas_left).offset(10 * k6Scale);
make.right.equalTo(cancel.mas_left).offset(-10 * k6Scale);
make.centerY.equalTo(cancel.mas_centerY);
make.height.mas_equalTo(40 * k6Scale);
}];
holderView.layer.cornerRadius= 4;
holderView.layer.masksToBounds = YES;
UITextField *field = [[UITextField alloc] init];
[holderView addSubview:field];
[field mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(holderView.mas_left).offset(10 * k6Scale);
make.right.equalTo(holderView.mas_right).offset(-10 * k6Scale);
make.top.bottom.equalTo(holderView);
}];
field.font= kFontSize(13 * k6Scale);
field.textColor = RGB(51,51, 51);
field.placeholder = @"请输入设备地址搜索";
__weak typeof(field) weakField = field;
[field.rac_textSignal subscribeNext:^(NSString *x){
@strongify(self);
if (x.length > 30) {
[ZXTool showText:@"输入地址长度不能超过30!"];
weakField.text = [x substringToIndex:30];
return ;
}
if ([x isEqualToString:@""]) {
[self.dataArray removeAllObjects];
[self.dataArray addObjectsFromArray:self.washService.allMerthinList];
[self.myTableview reloadData];
return ;
}
//这里触发检索
NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"fd_location LIKE[cd] '*%@*'", x]];
NSArray *results = [self.washService.allMerthinList filteredArrayUsingPredicate:predicate];
[self.dataArray removeAllObjects];
[self.dataArray addObjectsFromArray:results];
[self.myTableview reloadData];
}];
self.myTableview = [[UITableView alloc] initWithFrame:CGRectMake(0, 65 * k6Scale, kScreenWidth - 55 * k6Scale, kScreenHeight - (183 * k6Scale + kTopHeight) - 60 * k6Scale) style:UITableViewStylePlain];
[holder addSubview:self.myTableview];
self.myTableview.delegate = self;
self.myTableview.dataSource = self;
self.myTableview.separatorStyle = UITableViewCellSeparatorStyleNone;
self.myTableview.showsVerticalScrollIndicator = NO;
self.loading = [[ZXLoading alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self addSubview:self.loading];
[self.loading show];
self.washService = [[DC_ZXWashService alloc] init];
[self.washService fetchCollectionLocationCompletedBlock:^(BOOL isNeedReload) {
@strongify(self);
[ZXTool hideLoadingAnimation];
if (isNeedReload) {
[self.dataArray removeAllObjects];
[self.dataArray addObjectsFromArray:self.washService.allMerthinList];
[self.myTableview reloadData];
}
[self.loading hide];
self.loading.hidden = YES;
}];
}
return self;
}
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section) {
//添加
DC_ZXWashLocationModel *mo = self.washService.allMerthinList[indexPath.row];
if (self.search) {
self.search(mo);
}
} else {
if (self.search) {
self.search(nil);
}
}
self.hidden = YES;
[self removeFromSuperview];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
- (NSMutableArray *)dataArray {
if (_dataArray == nil) {
_dataArray = [[NSMutableArray alloc] init];
}
return _dataArray;
}
@end
//
//
// ZXReChooseCell.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/20.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXWashLocationModel.h"
@interface DC_ZXReChooseCell : UITableViewCell
@property (nonatomic, strong) DC_ZXWashLocationModel *model;
@end
//
//
// ZXReChooseCell.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/20.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXReChooseCell.h"
#import "enlargeClickRegionBtn.h"
@interface DC_ZXReChooseCell()
@property (nonatomic, strong) UILabel *contentLabel;
@end
@implementation DC_ZXReChooseCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
UIView *holder = [UIView new];
[self.contentView addSubview:holder];
holder.backgroundColor = RGB(245, 222, 205);
[holder mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.contentView.mas_top).offset(5 * k6Scale);
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.height.mas_equalTo(40 * k6Scale);
make.right.equalTo(self.contentView.mas_right).offset(-50 * k6Scale);
}];
holder.layer.cornerRadius = 5 * k6Scale;
holder.layer.masksToBounds = YES;
UIView *line = [UIView new];
[self.contentView addSubview:line];
line.backgroundColor = RGB(242, 242, 242);
[line mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(self.contentView);
make.height.mas_equalTo(1);
}];
self.contentLabel = [UILabel new];
[holder addSubview:self.contentLabel];
self.contentLabel.textColor = RGB(51, 51, 51);
self.contentLabel.font = kFontSize(12 * k6Scale);
self.contentLabel.numberOfLines = 0;
[self.contentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(holder.mas_left).offset(10 * k6Scale);
make.right.equalTo(holder.mas_right).offset(-16 * k6Scale);
make.centerY.equalTo(holder.mas_centerY);
}];
enlargeClickRegionBtn *deleteBtn = [[enlargeClickRegionBtn alloc] init];
[holder addSubview:deleteBtn];
deleteBtn.userInteractionEnabled = NO;
[deleteBtn setBackgroundImage:[UIImage imageNamed:@"btn_Select_cancel"] forState:UIControlStateNormal];
[deleteBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.bottom.equalTo(holder);
make.width.height.mas_equalTo(20 * k6Scale);
}];
}
return self;
}
- (void)setModel:(DC_ZXWashLocationModel *)model {
_model = model;
self.contentLabel.text = _model.name;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
//
//
// ZXWashAimiPayCell.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/22.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXWashOperationModel.h"
@interface DC_ZXWashAimiPayCell : UITableViewCell
@property (nonatomic, strong) DC_washPayWay *pay;
@property (nonatomic, copy) dispatch_block_t reachge;
@end
//
//
// ZXWashAimiPayCell.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/22.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashAimiPayCell.h"
#import "enlargeClickRegionBtn.h"
@interface DC_ZXWashAimiPayCell()
@property (nonatomic, strong) UILabel *nameLabel;
@property (nonatomic, strong) UIImageView *iconImageview;
@property (nonatomic, strong) enlargeClickRegionBtn *chooseBtn;
@property (nonatomic, strong) UIView *v1;
@property (nonatomic, strong) enlargeClickRegionBtn *ho;
@end
@implementation DC_ZXWashAimiPayCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.v1 = [UIView new];
self.v1.backgroundColor = [UIColor whiteColor];
[self.contentView addSubview:self.v1];
[self.v1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.equalTo(self.contentView);
make.height.mas_equalTo(45 * k6Scale);
}];
self.iconImageview = [[UIImageView alloc] init];
self.nameLabel = [[UILabel alloc] init];
self.nameLabel.font = kFontSize(13 * k6Scale);
self.nameLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.ho = [[enlargeClickRegionBtn alloc] init];
[self.contentView addSubview:self.ho];
[self.ho setTitle:@"去购买" forState:UIControlStateNormal];
self.ho.titleLabel.font = kFontSize(11*k6Scale);
self.ho.layer.borderWidth = 1;
self.ho.layer.borderColor = [UIColor colorWithHexString:@"#ff8830"].CGColor;
self.ho.layer.cornerRadius = 10*k6Scale;
self.ho.layer.masksToBounds = YES;
[self.ho setTitleColor:[UIColor colorWithHexString:@"#ff8830"] forState:UIControlStateNormal];
@weakify(self);
[[self.ho rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(id x) {
@strongify(self);
if (self.reachge) {
self.reachge();
}
}];
self.chooseBtn = [[enlargeClickRegionBtn alloc] init];
[self.chooseBtn setBackgroundImage:[UIImage imageNamed:@"Radio_Check"] forState:UIControlStateSelected];
[self.chooseBtn setBackgroundImage:[UIImage imageNamed:@"Radio_default"] forState:UIControlStateNormal];
self.chooseBtn.userInteractionEnabled = NO;
[self.v1 addSubview:self.iconImageview];
[self.v1 addSubview:self.nameLabel];
[self.v1 addSubview:self.chooseBtn];
[self.iconImageview mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.width.height.mas_equalTo(22 * k6Scale); make.centerY.equalTo(self.v1.mas_centerY);
}];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.iconImageview.mas_right).offset(10 * k6Scale);
make.centerY.equalTo(self.v1.mas_centerY);
}];
[self.chooseBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.contentView.mas_right).offset(-20 * k6Scale);
make.centerY.equalTo(self.v1.mas_centerY);
make.width.height.mas_equalTo(17 * k6Scale);
}];
[self.ho mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.chooseBtn.mas_left).offset(-30 * k6Scale);
make.centerY.equalTo(self.v1.mas_centerY);
make.width.mas_equalTo(50 * k6Scale);
make.height.mas_equalTo(20 * k6Scale);
}];
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)setPay:(DC_washPayWay *)pay {
_pay = pay;
self.nameLabel.text = _pay.paymentWayName;
if (_pay.isSelect) {
self.v1.backgroundColor = [UIColor colorWithHexString:@"#fff4ec"];
} else {
self.v1.backgroundColor = [UIColor whiteColor];
}
if (_pay.paymentWayId == 6) {
self.iconImageview.image = [UIImage imageNamed:@"aimi_icon"];
self.ho.hidden = NO;
} else {
self.iconImageview.image = [UIImage imageNamed:@"赠送豆icon"];
self.ho.hidden = YES;
}
self.chooseBtn.selected = _pay.isSelect;
}
@end
//
//
// ZXWashBucketCleanCell.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/22.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
// 桶清洁
#import <UIKit/UIKit.h>
#import "DC_ZXWashOperationModel.h"
@interface DC_ZXWashBucketCleanCell : UITableViewCell
@property (nonatomic, strong) DC_optionalPrograms *option;
@end
//
//
// ZXWashBucketCleanCell.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/22.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashBucketCleanCell.h"
#import "enlargeClickRegionBtn.h"
@interface DC_ZXWashBucketCleanCell()
@property (nonatomic, strong) UILabel *nameLabel;
@property (nonatomic, strong) UILabel *moneyLabel;
@property (nonatomic, strong) enlargeClickRegionBtn *chooseBtn;
@end
@implementation DC_ZXWashBucketCleanCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.nameLabel = [[UILabel alloc] init];
self.nameLabel.font = kFontSize(13 * k6Scale);
self.nameLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.moneyLabel = [[UILabel alloc] init];
self.moneyLabel.font = kFontSize(13 * k6Scale);
self.moneyLabel.textAlignment = NSTextAlignmentRight;
self.moneyLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.chooseBtn = [[enlargeClickRegionBtn alloc] init];
[self.chooseBtn setBackgroundImage:[UIImage imageNamed:@"checkbox_Check"] forState:UIControlStateSelected];
[self.chooseBtn setBackgroundImage:[UIImage imageNamed:@"checkbox_default"] forState:UIControlStateNormal];
self.chooseBtn.userInteractionEnabled = NO;
[self.contentView addSubview:self.nameLabel];
[self.contentView addSubview:self.moneyLabel];
[self.contentView addSubview:self.chooseBtn];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.centerY.equalTo(self.contentView.mas_centerY);
}];
[self.chooseBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.contentView.mas_right).offset(-20 * k6Scale);
make.centerY.equalTo(self.contentView.mas_centerY);
make.width.height.mas_equalTo(17 * k6Scale);
}];
[self.moneyLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.chooseBtn.mas_left).offset(-35 * k6Scale);
make.centerY.equalTo(self.contentView.mas_centerY);
}];
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)setOption:(DC_optionalPrograms *)option {
_option = option;
self.nameLabel.text = _option.name;
if (_option.price > 0) {
self.moneyLabel.text = [NSString stringWithFormat:@"¥ %.2f", _option.price];
} else {
self.moneyLabel.text = @"免费";
}
if (_option.isSelect) {
self.contentView.backgroundColor = [UIColor colorWithHexString:@"#fff4ec"];
self.moneyLabel.textColor = [UIColor colorWithHexString:@"#cd0000"];
} else {
self.contentView.backgroundColor = [UIColor whiteColor];
self.moneyLabel.textColor = [UIColor colorWithHexString:@"#333333"];
}
self.chooseBtn.selected = _option.isSelect;
}
@end
//
//
// ZXWashMyInvitorCell.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/21.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXWashOrderListModel.h"
@interface DC_ZXWashMyInvitorCell : UITableViewCell
@property (nonatomic, strong) DC_ZXWashOrderListModel *model;
@end
//
//
// ZXWashMyInvitorCell.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/21.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashMyInvitorCell.h"
#import "enlargeClickRegionBtn.h"
#import "DC_ZXWashService.h"
#import "DCWashBluetoothManager.h"
@interface DC_ZXWashMyInvitorCell()<DCWashBluetoothManagerDelegate> {
UILabel *label4;
UILabel *label3;
}
@property (nonatomic, strong) UILabel *numberLabel;
@property (nonatomic, strong) UILabel *moneyLabel;
@property (nonatomic, strong) UILabel *operationLabel;
//可选部分
@property (nonatomic, strong) UILabel *operationLabel2;
@property (nonatomic, strong) UILabel *addressLabel;
@property (nonatomic, strong) UILabel *statrLabel;
@property (nonatomic, strong) UILabel *endLabel;
@property (nonatomic, strong) UIImageView *printImageview;
@property (nonatomic, strong) enlargeClickRegionBtn *startWash;
/** DCWashBluetoothManager */
@property (nonatomic, strong) DCWashBluetoothManager *manager;
@end
@implementation DC_ZXWashMyInvitorCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.contentView.backgroundColor = RGB(237, 237, 237);
UIImage *cardImage = [UIImage imageNamed:@"wash-list-card"];
UIImageView *contentImageView = [[UIImageView alloc] initWithFrame:CGRectMake(12 * k6Scale, 10 * k6Scale, kScreenWidth - 24 * k6Scale, (kScreenWidth - 24 * k6Scale) * 0.64)];
contentImageView.image = cardImage;
[self.contentView addSubview:contentImageView];
contentImageView.userInteractionEnabled = YES;
UIImageView *imageH = [[UIImageView alloc] init];
imageH.image = [UIImage imageNamed:@"Laundryrecord_picture"];
[contentImageView addSubview:imageH];
[imageH mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(contentImageView.mas_left).offset(20 * k6Scale);
make.top.equalTo(contentImageView.mas_top).offset(15 * k6Scale);
make.width.height.mas_equalTo(35 * k6Scale);
}];
//设备编号
self.numberLabel = [UILabel new];
[contentImageView addSubview:self.numberLabel];
self.numberLabel.textColor = [UIColor colorWithHexString:@"#666666"];
self.numberLabel.font = kFontSize(11 * k6Scale);
[self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageH.mas_right).offset(10 * k6Scale);
make.centerY.equalTo(imageH.mas_centerY);
}];
//钱
self.moneyLabel = [UILabel new];
[contentImageView addSubview:self.moneyLabel];
self.moneyLabel.textColor = [UIColor colorWithHexString:@"#cd0000"];
self.moneyLabel.font = kFontSize(11 * k6Scale);
[self.moneyLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(contentImageView.mas_right).offset(-20 * k6Scale);
make.centerY.equalTo(imageH.mas_centerY);
}];
UIImageView *line = [[UIImageView alloc] init];
line.image = [UIImage imageNamed:@"wash-line"];
line.contentMode = UIViewContentModeScaleAspectFill;
line.clipsToBounds = YES;
[contentImageView addSubview:line];
[line mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(imageH.mas_bottom).offset(15 * k6Scale);
make.left.equalTo(contentImageView.mas_left).offset(10 * k6Scale);
make.right.equalTo(contentImageView.mas_right).offset(-10 * k6Scale);
make.height.mas_equalTo(1);
}];
UILabel *label1 = [UILabel new];
[contentImageView addSubview:label1];
label1.textColor = RGB(153, 153, 153);
label1.font = kFontSize(13 * k6Scale);
label1.text = @"洗衣功能:";
[label1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageH.mas_left);
make.top.equalTo(line.mas_bottom).offset(20 * k6Scale);
}];
//洗衣功能
self.operationLabel = [UILabel new];
[contentImageView addSubview:self.operationLabel];
self.operationLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.operationLabel.font = kFontSize(13 * k6Scale);
[self.operationLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(label1.mas_right).offset(22 * k6Scale);
make.centerY.equalTo(label1.mas_centerY);
}];
self.operationLabel2 = [UILabel new];
[contentImageView addSubview:self.operationLabel2];
self.operationLabel2.textColor = [UIColor colorWithHexString:@"#333333"];
self.operationLabel2.font = kFontSize(13 * k6Scale);
[self.operationLabel2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.operationLabel.mas_left);
make.top.equalTo(self.operationLabel.mas_bottom).offset(10 * k6Scale);
}];
//地址
self.addressLabel = [UILabel new];
[contentImageView addSubview:self.addressLabel];
self.addressLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.addressLabel.font = kFontSize(13 * k6Scale);
self.addressLabel.numberOfLines = 0;
[self.addressLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.operationLabel.mas_left);
make.top.equalTo(self.operationLabel2.mas_bottom).offset(10 * k6Scale);
make.right.lessThanOrEqualTo(contentImageView.mas_right).offset(-20 * k6Scale);
}];
UILabel *label2 = [UILabel new];
[contentImageView addSubview:label2];
label2.textColor = RGB(153, 153, 153);
label2.font = kFontSize(13 * k6Scale);
label2.text = @"设备位置:";
[label2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageH.mas_left);
make.centerY.equalTo(self.addressLabel.mas_centerY);
}];
label4 = [UILabel new];
[contentImageView addSubview:label4];
label4.textColor = [UIColor colorWithHexString:@"#333333"];
label4.font = kFontSize(11 * k6Scale);
[label4 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageH.mas_left);
make.bottom.equalTo(contentImageView.mas_bottom).offset(-15 * k6Scale);
}];
label3 = [UILabel new];
[contentImageView addSubview:label3];
label3.textColor = [UIColor colorWithHexString:@"#333333"];
label3.font = kFontSize(11 * k6Scale);
[label3 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageH.mas_left);
make.bottom.equalTo(label4.mas_top).offset(-6 * k6Scale);
}];
self.statrLabel = [UILabel new];
[contentImageView addSubview:self.statrLabel];
self.statrLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.statrLabel.font = kFontSize(11 * k6Scale);
[self.statrLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(label3.mas_right).offset(10 * k6Scale);
make.centerY.equalTo(label3.mas_centerY);
}];
self.endLabel = [UILabel new];
[contentImageView addSubview:self.endLabel];
self.endLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.endLabel.font = kFontSize(11 * k6Scale);
[self.endLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(label4.mas_right).offset(10 * k6Scale);
make.centerY.equalTo(label4.mas_centerY);
}];
self.printImageview = [[UIImageView alloc] init];
[contentImageView addSubview:self.printImageview];
UIImage *ooo = [UIImage imageNamed:@"Reservation"];
[self.printImageview mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.right.equalTo(contentImageView);
make.height.mas_equalTo(ooo.size.height * k6Scale);
make.width.mas_equalTo(ooo.size.width * k6Scale);
}];
self.startWash = [[enlargeClickRegionBtn alloc] init];
[contentImageView addSubview:self.startWash];
[self.startWash setBackgroundImage:[UIImage imageNamed:@"start_icon"] forState:UIControlStateNormal];
[self.startWash mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(70 * k6Scale);
make.height.mas_equalTo(28 * k6Scale);
make.right.equalTo(contentImageView.mas_right).offset(-20 * k6Scale);
make.top.equalTo(label3.mas_top).offset(3 * k6Scale);
}];
[self.startWash addTarget:self action:@selector(startWashAction:) forControlEvents:UIControlEventTouchUpInside];
label3.text = @"预约开始时间:";
label4.text = @"预约失效时间:";
}
return self;
}
- (void)setModel:(DC_ZXWashOrderListModel *)model {
_model = model;
self.numberLabel.text = [NSString stringWithFormat:@"设备编号: %@(%@)", model.deviceCode, model.deviceName];
self.moneyLabel.attributedText = [ZXTool replaceWithStr:[NSString stringWithFormat:@"¥ %.2f元", _model.money] subStr:[[NSString stringWithFormat:@"%.2f", _model.money] substringToIndex:1] replaceStrFont:19 * k6Scale color:[UIColor colorWithHexString:@"#cd0000"] lineSpaceing:0];
if (_model.services.count==1) {
DC_ZXWashOrderList_ServiceModel *p1 = _model.services[0];
self.operationLabel.text = [NSString stringWithFormat:@"%@ %.2f元", p1.name, p1.price];
self.operationLabel2.text = @"";
} else if (_model.services.count==2) {
DC_ZXWashOrderList_ServiceModel *p1 = _model.services[0];
DC_ZXWashOrderList_ServiceModel *p2 = _model.services[1];
self.operationLabel.text = [NSString stringWithFormat:@"%@ %.2f元", p1.name, p1.price];
if (p2<=0) {
self.operationLabel2.text = [NSString stringWithFormat:@"%@ 免费", p2.name];
} else {
self.operationLabel2.text = [NSString stringWithFormat:@"%@ %.2f元", p2.name, p2.price];
}
} else {
self.operationLabel.text = @"";
self.operationLabel2.text = @"";
}
self.addressLabel.text = model.position;
self.statrLabel.text =model.startDate;
self.endLabel.text = model.endDate;
if (model.status == 0) {
//未使用
self.printImageview.hidden = YES;
//显示开始洗衣
self.startWash.hidden = NO;
} else if (model.status == 1) {
//已使用
self.printImageview.hidden = NO;
self.startWash.hidden = YES;
//注意:如果是预约就显示预约完成 否则显示订单完成
self.printImageview.image = [UIImage imageNamed:@"Reservation"];
} else if (model.status == 2) {
//已过期
self.printImageview.hidden = NO;
self.startWash.hidden = YES;
self.printImageview.image = [UIImage imageNamed:@"Reservationfailure"];
}
}
- (void) startWashAction:(UIButton *) sender {
if (_model.bluetoothMode) {
if (self.manager == nil) {
self.manager = [[DCWashBluetoothManager alloc] initWithBluetoothDeviceCode:self.model.deviceCode isOnlyBluetooth:(self.model.bluetoothMode==1) socketUrl:[kUserDefaults objectForKey:@"DCWashSocketUrl"] socketPort:[[kUserDefaults objectForKey:@"DCWashSocketPort"] integerValue]];
}
self.manager.delegate = self;
[self.manager startConnectBluetoothAndSocket];
} else {
[self payOrderWithStatus:0];
}
}
#pragma mark - DCWashBluetoothManagerDelegate
- (void)startFireInterfaceByStatus:(NSInteger)status {
[self payOrderWithStatus:status];
}
//蓝牙连接失败
- (void) connectBluetoothFaliure {
}
#pragma mark - 发起支付
- (void) payOrderWithStatus:(NSInteger) status {
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
NSInteger isOpenBluetooth = 0;
if ([kUserDefaults objectForKey:@"isOpenBluetooth"] && [[kUserDefaults objectForKey:@"isOpenBluetooth"] isEqualToString:@"yes"]) {
isOpenBluetooth = 1;
}
NSString *url = [NSString stringWithFormat:@"%@/dcxy/api/washer/begin/%@?deviceCode=%@&orderCode=%@",prefix , self.model.deviceCode, self.model.deviceCode, self.model.orderCode];
@weakify(self);
[ZXTool requestDataWithType:kXMHTTPMethodPOST url:url para:nil completed:^(CommonModel *common, NSString *error) {
@strongify(self);
dispatch_async(dispatch_get_main_queue(), ^{
[ZXTool hideLoadingAnimation];
[SVProgressHUD dismiss];
if (error) {
[ZXTool showText:error];
if (self.model.bluetoothMode) {
[self.manager cutBluetoothAndSocketConnect];
}
} else {
[ZXTool showText:@"设备开启成功"];
self.model.status = 1;
self.model = self.model;
}
});
}];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
//
//
// ZXWashOperationCell.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/22.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
// 洗衣功能
#import <UIKit/UIKit.h>
#import "DC_ZXWashOperationModel.h"
#import "DC_ZXWashService.h"
@interface DC_ZXWashOperationCell : UITableViewCell
@property (nonatomic, strong) DC_requiredPrograms *require;
@end
//
//
// ZXWashOperationCell.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/22.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashOperationCell.h"
#import "enlargeClickRegionBtn.h"
@interface DC_ZXWashOperationCell()
@property (nonatomic, strong) UILabel *nameLabel;
@property (nonatomic, strong) UILabel *timeLabel;
@property (nonatomic, strong) UILabel *moneyLabel;
@property (nonatomic, strong) enlargeClickRegionBtn *chooseBtn;
@end
@implementation DC_ZXWashOperationCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.nameLabel = [[UILabel alloc] init];
self.nameLabel.font = kFontSize(13 * k6Scale);
self.nameLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.timeLabel = [[UILabel alloc] init];
self.timeLabel.font = kFontSize(13 * k6Scale);
self.timeLabel.textColor = [UIColor colorWithHexString:@"#999999"];
self.moneyLabel = [[UILabel alloc] init];
self.moneyLabel.font = kFontSize(13 * k6Scale);
self.moneyLabel.textAlignment = NSTextAlignmentRight;
self.moneyLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.chooseBtn = [[enlargeClickRegionBtn alloc] init];
[self.chooseBtn setBackgroundImage:[UIImage imageNamed:@"Radio_Check"] forState:UIControlStateSelected];
[self.chooseBtn setBackgroundImage:[UIImage imageNamed:@"Radio_default"] forState:UIControlStateNormal];
self.chooseBtn.userInteractionEnabled = NO;
[self.contentView addSubview:self.nameLabel];
[self.contentView addSubview:self.timeLabel];
[self.contentView addSubview:self.moneyLabel];
[self.contentView addSubview:self.chooseBtn];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.centerY.equalTo(self.contentView.mas_centerY);
}];
[self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(135 * k6Scale);
make.centerY.equalTo(self.contentView.mas_centerY);
}];
[self.chooseBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.contentView.mas_right).offset(-20 * k6Scale);
make.centerY.equalTo(self.contentView.mas_centerY);
make.width.height.mas_equalTo(17 * k6Scale);
}];
[self.moneyLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.chooseBtn.mas_left).offset(-35 * k6Scale);
make.centerY.equalTo(self.contentView.mas_centerY);
}];
}
return self;
}
- (void)setRequire:(DC_requiredPrograms *)require {
_require = require;
self.nameLabel.text = _require.name;
self.timeLabel.text = [NSString stringWithFormat:@"%ld分钟", (long)_require.duration];
if (_require.price > 0) {
self.moneyLabel.text = [NSString stringWithFormat:@"¥ %.2f", _require.price];
} else {
self.moneyLabel.text = @"免费";
}
if (_require.isSelect) {
self.contentView.backgroundColor = [UIColor colorWithHexString:@"#fff4ec"];
self.moneyLabel.textColor = [UIColor colorWithHexString:@"#cd0000"];
self.chooseBtn.selected = YES;
} else {
self.contentView.backgroundColor = [UIColor whiteColor];
self.moneyLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.chooseBtn.selected = NO;
}
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
//
//
// ZXWashOrderPayCell.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/25.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXWashOrderModel.h"
@interface DC_ZXWashOrderPayCell : UITableViewCell
@property (nonatomic, strong) DC_ZXWashOrderModel *order;
@end
//
//
// ZXWashOrderPayCell.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/25.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashOrderPayCell.h"
@interface DC_ZXWashOrderPayCell() {
UILabel *label2;
}
@property (nonatomic, strong) UILabel *nameLabel;
@property (nonatomic, strong) UIImageView *iconImageview;
@end
@implementation DC_ZXWashOrderPayCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
UILabel *label1 = [[UILabel alloc] init];
label1.font = kFontSize(13 * k6Scale);
label1.textColor = [UIColor colorWithHexString:@"#999999"];
[self.contentView addSubview:label1];
label1.text = @"支付方式:";
self.iconImageview = [[UIImageView alloc] init];
self.nameLabel = [[UILabel alloc] init];
self.nameLabel.font = kFontSize(13 * k6Scale);
self.nameLabel.textColor = [UIColor colorWithHexString:@"#333333"];
[self.contentView addSubview:self.iconImageview];
[self.contentView addSubview:self.nameLabel];
[label1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.top.equalTo(self.contentView.mas_top);
make.height.mas_equalTo(k6Scale * 45);
}];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.contentView.mas_right).offset(-20 * k6Scale);
make.centerY.equalTo(label1.mas_centerY);
}];
[self.iconImageview mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.nameLabel.mas_left).offset(-6 * k6Scale);
make.width.height.mas_equalTo(22 * k6Scale); make.centerY.equalTo(self.nameLabel.mas_centerY);
}];
UIView *line = [[UIView alloc] init];
line.backgroundColor = kRGB(242, 242, 242);
[self.contentView addSubview:line];
[line mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.right.equalTo(self.contentView.mas_right).offset(-20 * k6Scale);
make.top.equalTo(label1.mas_bottom);
make.height.mas_equalTo(1);
}];
label2 = [[UILabel alloc] init];
label2.font = kFontSize(11 * k6Scale);
label2.textColor = [UIColor colorWithHexString:@"#333333"];
label2.numberOfLines = 0;
[self.contentView addSubview:label2];
[label2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(line.mas_left);
make.right.equalTo(line.mas_right);
make.top.equalTo(line.mas_bottom).offset(15 * k6Scale);
}];
}
return self;
}
- (void)setOrder:(DC_ZXWashOrderModel *)order {
_order = order;
if (_order.orderType==1) {
label2.text = @"";
} else {
label2.text = [NSString stringWithFormat:@"*注:本次支付为预约设备功能使用费用,预约时间为%ld分钟,超出预约时间,费用不做退还,请谨慎下单!", _order.appointmentTimeout];
}
if (_order.paymentWayId == 6) {
self.iconImageview.image = [UIImage imageNamed:@"aimi_icon"];
self.nameLabel.text = @"艾米币支付";
}else if (_order.paymentWayId == 2) {
//微信支付
self.iconImageview.image = [UIImage imageNamed:@"weixin"];
self.nameLabel.text = @"微信支付";
} else if (_order.paymentWayId == 3) {
//支付宝支付
self.iconImageview.image = [UIImage imageNamed:@"zhifubao"];
self.nameLabel.text = @"支付宝支付";
} else if (_order.paymentWayId == 4) {
//京东支付
self.iconImageview.image = [UIImage imageNamed:@"JD"];
self.nameLabel.text = @"京东支付";
} else {
self.iconImageview.image = [UIImage imageNamed:@"赠送豆icon"];
self.nameLabel.text = @"洗衣豆支付";
}
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
//
//
// ZXWashOrderShowCell.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/25.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXWashOrderModel.h"
@interface DC_ZXWashOrderShowCell : UITableViewCell
@property (nonatomic, strong) DC_ZXWashOrderModel *order;
@end
//
//
// ZXWashOrderShowCell.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/25.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashOrderShowCell.h"
@interface DC_ZXWashOrderShowCell()
@property (nonatomic, strong) UILabel *numberLabel;
@property (nonatomic, strong) UILabel *addressLabel;
@property (nonatomic, strong) UILabel *operationLabel;
@property (nonatomic, strong) UILabel *moneyLabel;
@end
@implementation DC_ZXWashOrderShowCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
UIImageView *imageH = [[UIImageView alloc] init];
imageH.image = [UIImage imageNamed:@"Laundryrecord_picture"];
[self.contentView addSubview:imageH];
[imageH mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.top.equalTo(self.contentView.mas_top).offset(15 * k6Scale);
make.width.height.mas_equalTo(43.5 * k6Scale);
}];
//设备编号
self.numberLabel = [UILabel new];
[self.contentView addSubview:self.numberLabel];
self.numberLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.numberLabel.font = kFontSize(11 * k6Scale);
[self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageH.mas_right).offset(10 * k6Scale);
make.top.equalTo(imageH.mas_top);
}];
//地址
self.addressLabel = [UILabel new];
[self.contentView addSubview:self.addressLabel];
self.addressLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.addressLabel.font = kFontSize(11 * k6Scale);
[self.addressLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageH.mas_right).offset(10 * k6Scale);
make.bottom.equalTo(imageH.mas_bottom);
}];
UIView *line = [[UIView alloc] init];
line.backgroundColor = RGB(242, 242, 242);
[self.contentView addSubview:line];
[line mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.right.equalTo(self.contentView.mas_right).offset(-20 * k6Scale);
make.top.equalTo(imageH.mas_bottom).offset(15 * k6Scale);
make.height.mas_equalTo(1);
}];
UILabel *label1 = [UILabel new];
[self.contentView addSubview:label1];
label1.textColor = RGB(153, 153, 153);
label1.font = kFontSize(13 * k6Scale);
label1.text = @"洗衣功能:";
[label1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(imageH.mas_left);
make.top.equalTo(line.mas_bottom);
make.height.mas_equalTo(45 * k6Scale);
}];
self.operationLabel = [UILabel new];
[self.contentView addSubview:self.operationLabel];
self.operationLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.operationLabel.font = kFontSize(14 * k6Scale);
self.operationLabel.textAlignment = NSTextAlignmentRight;
[self.operationLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.contentView.mas_right).offset(-20 * k6Scale);
make.centerY.equalTo(label1.mas_centerY);
}];
UIView *line1 = [[UIView alloc] init];
line1.backgroundColor = RGB(242, 242, 242);
[self.contentView addSubview:line1];
[line1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.right.equalTo(self.contentView.mas_right).offset(-20 * k6Scale);
make.top.equalTo(label1.mas_bottom);
make.height.mas_equalTo(1);
}];
self.moneyLabel = [UILabel new];
[self.contentView addSubview:self.moneyLabel];
self.moneyLabel.font = kFontSize(12 * k6Scale);
self.moneyLabel.textAlignment = NSTextAlignmentRight;
self.moneyLabel.textColor = [UIColor colorWithHexString:@"#cd0000"];
[self.moneyLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.contentView.mas_right).offset(-20 * k6Scale);
make.top.equalTo(line1.mas_bottom);
make.height.mas_equalTo(50 * k6Scale);
}];
UILabel *label2 = [UILabel new];
[self.contentView addSubview:label2];
label2.textColor = RGB(153, 153, 153);
label2.font = kFontSize(13 * k6Scale);
label2.text = @"订单合计:";
[label2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.moneyLabel.mas_left).offset(-20 * k6Scale);
make.centerY.equalTo(self.moneyLabel.mas_centerY);
}];
}
return self;
}
- (void)setOrder:(DC_ZXWashOrderModel *)order {
_order = order;
self.numberLabel.text = [NSString stringWithFormat:@"设备编号: %@(%@)", order.deviceCode, order.deviceName];
self.addressLabel.text = [NSString stringWithFormat:@"设备地址: %@", _order.position];
NSMutableArray *lll = [NSMutableArray new];
for (DC_ZXWashOrder_ServiceModel *service in _order.services) {
NSString *s = [NSString stringWithFormat:@"%@ %.2f元", service.name, service.price];
[lll addObject:s];
}
self.operationLabel.text = [lll componentsJoinedByString:@" "];
NSString *moneyStr = [NSString stringWithFormat:@"%.2f", _order.money];
self.moneyLabel.attributedText = [ZXTool replaceWithStr:[NSString stringWithFormat:@"¥ %@元", moneyStr] subStr:[moneyStr substringToIndex:1] replaceStrFont:19 * k6Scale color:[UIColor colorWithHexString:@"#cd0000"] lineSpaceing:0];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
//
//
// ZXWashPayWayCell.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/22.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DC_ZXWashOperationModel.h"
@interface DC_ZXWashPayWayCell : UITableViewCell
@property (nonatomic, strong) DC_washPayWay *pay;
@end
//
//
// ZXWashPayWayCell.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/22.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashPayWayCell.h"
#import "enlargeClickRegionBtn.h"
@interface DC_ZXWashPayWayCell()
@property (nonatomic, strong) UILabel *nameLabel;
@property (nonatomic, strong) UIImageView *iconImageview;
@property (nonatomic, strong) enlargeClickRegionBtn *chooseBtn;
@end
@implementation DC_ZXWashPayWayCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.iconImageview = [[UIImageView alloc] init];
self.nameLabel = [[UILabel alloc] init];
self.nameLabel.font = kFontSize(13 * k6Scale);
self.nameLabel.textColor = [UIColor colorWithHexString:@"#333333"];
self.chooseBtn = [[enlargeClickRegionBtn alloc] init];
[self.chooseBtn setBackgroundImage:[UIImage imageNamed:@"Radio_Check"] forState:UIControlStateSelected];
[self.chooseBtn setBackgroundImage:[UIImage imageNamed:@"Radio_default"] forState:UIControlStateNormal];
self.chooseBtn.userInteractionEnabled = NO;
[self.contentView addSubview:self.iconImageview];
[self.contentView addSubview:self.nameLabel];
[self.contentView addSubview:self.chooseBtn];
[self.iconImageview mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView.mas_left).offset(20 * k6Scale);
make.width.height.mas_equalTo(22 * k6Scale); make.centerY.equalTo(self.contentView.mas_centerY);
}];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.iconImageview.mas_right).offset(10 * k6Scale);
make.centerY.equalTo(self.contentView.mas_centerY);
}];
[self.chooseBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.contentView.mas_right).offset(-20 * k6Scale);
make.centerY.equalTo(self.contentView.mas_centerY);
make.width.height.mas_equalTo(17 * k6Scale);
}];
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)setPay:(DC_washPayWay *)pay {
_pay = pay;
if (_pay.paymentWayId == 2) {
//微信支付
self.iconImageview.image = [UIImage imageNamed:@"weixin"];
} else if (_pay.paymentWayId == 3) {
//支付宝支付
self.iconImageview.image = [UIImage imageNamed:@"zhifubao"];
} else if (_pay.paymentWayId == 4) {
//京东支付
self.iconImageview.image = [UIImage imageNamed:@"JD"];
} else {
//
self.iconImageview.image = [UIImage imageNamed:@"赠送豆icon"];
}
self.nameLabel.text = _pay.paymentWayName;
if (_pay.isSelect) {
self.contentView.backgroundColor = [UIColor colorWithHexString:@"#fff4ec"];
} else {
self.contentView.backgroundColor = [UIColor whiteColor];
}
self.chooseBtn.selected = _pay.isSelect;
}
@end
//
//
// DCWashBluetoothManager.h
// ColorfulSchool
//
// Created by 刘卓鑫 on 2019/11/6.
// Copyright © 2019 Colorful Any Door. All rights reserved.
//
#import <Foundation/Foundation.h>
@protocol DCWashBluetoothManagerDelegate <NSObject>
//已经就绪 开始调用接口 status 0其他 1代表蓝牙和socket都连接成功 2代表服务器通知
- (void) startFireInterfaceByStatus:(NSInteger) status;
//蓝牙连接失败
- (void) connectBluetoothFaliure;
@end
NS_ASSUME_NONNULL_BEGIN
@interface DCWashBluetoothManager : NSObject
/* 自定义初始化方法
* deviceCode蓝牙设备编码
* isOnlyBluetooth蓝牙设备是否是纯蓝牙
* socketUrl socket连接地址
* socketPort socket连接端口号
*/
- (instancetype) initWithBluetoothDeviceCode:(NSString *) deviceCode
isOnlyBluetooth:(BOOL) isOnlyBluetooth
socketUrl:(NSString *) socketUrl
socketPort:(NSInteger) port;
//第一次进入 主动连接蓝牙和socket
- (void) firstInConnectBluetoothAndSocket;
//点击开始按钮 主动连接蓝牙和socket
- (void) startConnectBluetoothAndSocket;
/** DCWashBluetoothManagerDelegate */
@property (nonatomic, weak) id<DCWashBluetoothManagerDelegate> delegate;
//主动断开 所有链接 在接口调用失败的时候使用
- (void) cutBluetoothAndSocketConnect;
@end
NS_ASSUME_NONNULL_END
//
//
// DCWashBluetoothManager.m
// ColorfulSchool
//
// Created by 刘卓鑫 on 2019/11/6.
// Copyright © 2019 Colorful Any Door. All rights reserved.
//
#import "DCWashBluetoothManager.h"
#import "ZXBluetoothModel.h"
#import "GCDAsyncSocket.h"
#import <CoreBluetooth/CoreBluetooth.h>
#import "ZXBathAlert.h"
@interface DCWashBluetoothManager()<CBCentralManagerDelegate, CBPeripheralDelegate,GCDAsyncSocketDelegate>
/** 蓝牙设备号 */
@property (nonatomic, copy) NSString *currentPeripheralName;
/** socket地址 */
@property (nonatomic, copy) NSString *socketUrl;
/** socket端口号 */
@property (nonatomic, assign) NSInteger socketPort;
/** 是否是纯蓝牙 */
@property (nonatomic, assign) BOOL isOnlyBluetooth;
@property (nonatomic, strong) CBCentralManager *centralManager;
@property (nonatomic, strong) CBPeripheral *selectedPeripheral;
@property (nonatomic, strong) CBCharacteristic *currentCharacteristic;
// 客户端socket
@property (strong, nonatomic) GCDAsyncSocket *clientSocket;
@property (nonatomic, strong) NSMutableData *blueToothData;
//是否是服务端通知app中断连接
@property (nonatomic, assign) BOOL isServiceCut;
//是否已经开始 避免重复调用接口
@property (nonatomic, assign) BOOL isOpenDevice;
@property (nonatomic, strong) NSArray *balances;
/** 蓝牙未连接成功的情况下 保存socket发送的消息 */
@property (nonatomic, strong) NSMutableArray *tempData;
/** */
@property (nonatomic, strong) NSTimer *timer;
/**是否是初次l进入连接蓝牙和socket */
@property (nonatomic, assign) BOOL isFirstInConnect;
@end
@implementation DCWashBluetoothManager
- - clientSocket {
if (!_clientSocket) {
}
return _clientSocket;
}
- (CBCentralManager *)centralManager {
if (!_centralManager) {
//添加代理监听:
}
return _centralManager;
}
#pragma mark - 初始化
- (instancetype) initWithBluetoothDeviceCode:(NSString *) deviceCode
isOnlyBluetooth:(BOOL) isOnlyBluetooth
socketUrl:(NSString *) socketUrl
socketPort:(NSInteger) port {
if (self = [super init]) {
self.currentPeripheralName = deviceCode;
self.socketUrl = socketUrl;
self.socketPort = port;
self.isOnlyBluetooth = isOnlyBluetooth;
self.clientSocket = [[GCDAsyncSocket alloc]initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
NSDictionary *options = @{CBCentralManagerOptionShowPowerAlertKey:@NO};//不弹窗(配置)
self.centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options];
self.centralManager.delegate = self;
self.blueToothData = [NSMutableData data];
self.isServiceCut = NO;//默认不断开
self.isOpenDevice = NO;//默认未开始
self.isServiceCut = NO;
}
return self;
}
#pragma mark - 第一次进入连接
- (void)firstInConnectBluetoothAndSocket {
self.isFirstInConnect = YES;//标记位yes
[self.tempData removeAllObjects];
[self cutBluetoothAndSocketConnect];
if (self.clientSocket.isConnected == NO) {
[self.clientSocket disconnect];
[self.clientSocket connectToHost:self.socketUrl onPort:self.socketPort viaInterface:nil withTimeout:-1 error:nil];
}
}
#pragma mark - 点击开始连接
- (void)startConnectBluetoothAndSocket {
self.isOpenDevice = NO;//标记为no
self.isFirstInConnect = NO;//
if (self.centralManager.state == CBManagerStatePoweredOff) {
//蓝牙未打开
ZXBathAlert *a = [[ZXBathAlert alloc] initWithFrame:[UIScreen mainScreen].bounds];
@weakify(self);
__weak typeof(a) weakA = a;
a.cancelAction = ^{
weakA.hidden = YES;
[weakA removeFromSuperview];
@strongify(self);
if (self.isOnlyBluetooth) {
[[ZXTool getCurrentVC].navigationController popViewControllerAnimated:YES];
} else {
self.isServiceCut = NO;//标记为开始
//直接请求接口
if ([self.delegate respondsToSelector:@selector(startFireInterfaceByStatus:)]) {
self.isOpenDevice = YES;
[self.centralManager stopScan];
[self.delegate startFireInterfaceByStatus:0];
}
}
};
[kAppWindow addSubview:a];
return;
}
if (self.timer == nil) {//检测一下定时器的开关状态 开始的时候 直接触发
self.timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(timer:) userInfo:nil repeats:YES];
[self.timer fire];
}
if (self.selectedPeripheral.state == CBPeripheralStateConnected && self.clientSocket.isConnected) {
[SVProgressHUD showWithStatus:@"设备启动中..."];
[self sendDeviceInfoToSocketByTimes:3];
if ([self.delegate respondsToSelector:@selector(startFireInterfaceByStatus:)]) {
self.isOpenDevice = YES;
[self.centralManager stopScan];
[self.delegate startFireInterfaceByStatus:1];
}
return;
}
NSLog(@"😇😇😇😇😇😇 开始搜索蓝牙---%@", [ZXTool getTimeNow]);
if (self.clientSocket.isConnected == NO) {
[self.clientSocket connectToHost:self.socketUrl onPort:self.socketPort viaInterface:nil withTimeout:-1 error:nil];
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self sendDeviceInfoToSocketByTimes:2];
self.isServiceCut = NO;//标记为开始
[self reConnect];//重连操作
//开始搜索设备的时候触发
[self checkBluetoothConectStatus];
[SVProgressHUD showWithStatus:@"蓝牙连接中..."];
});
}
#pragma mark - ==========点击了开始按钮 5s后检测蓝牙连接状态==========
- (void) checkBluetoothConectStatus {
// [ZXTool showLoadingAnimation];
NSInteger times = 0.2;
if (self.clientSocket.isConnected == NO) {
times += 0.5;
if (self.clientSocket.isConnected == NO) {
[self.clientSocket connectToHost:self.socketUrl onPort:self.socketPort viaInterface:nil withTimeout:-1 error:nil];
}
}
if (self.isOnlyBluetooth) {
times = 5;
}
//5s之后查询蓝牙连接状态
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(times * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[ZXTool hideLoadingAnimation];
if (self.selectedPeripheral && self.selectedPeripheral.state == CBPeripheralStateConnected) {
//连接成功--事件在代理方法中处理
} else {
//连接失败
if (self.isOnlyBluetooth) {
[SVProgressHUD showErrorWithStatus:@"设备连接失败"];
[self cutBluetoothAndSocketConnect];//这里也触发主动断开操作
if ([self.delegate respondsToSelector:@selector(connectBluetoothFaliure)]) {
[self.delegate connectBluetoothFaliure];
}
} else {
//蓝牙+NB
if (self.isOpenDevice == NO && self.isFirstInConnect == NO) {
self.isOpenDevice = YES;
//直接调用接口
if ([self.delegate respondsToSelector:@selector(startFireInterfaceByStatus:)]) {
[self.centralManager stopScan];
[self.delegate startFireInterfaceByStatus:0];
}
}
}
}
});
}
#pragma mark - ==========蓝牙连接状态监听==========
- (void)centralManagerDidUpdateState:(CBCentralManager *)central {
[kUserDefaults setObject:@"no" forKey:@"isOpenBluetooth"];
switch (central.state) {
case CBManagerStatePoweredOn: {
NSLog(@"蓝牙开启且可用");
[kUserDefaults setObject:@"yes" forKey:@"isOpenBluetooth"];
[self reConnect];
return;
}
break;
case CBManagerStateUnknown: {
// strMessage = @"手机没有识别到蓝牙,请检查手机。";
// buttonTitle = @"前往设置";
NSLog(@"手机没有识别到蓝牙,请检查手机。");
}
break;
case CBManagerStateResetting: {
// strMessage = @"手机蓝牙已断开连接,重置中...";
// buttonTitle = @"前往设置";
NSLog(@"手机蓝牙已断开连接,重置中...");
}
break;
case CBManagerStateUnsupported: {
// strMessage = @"手机不支持蓝牙功能,请更换手机。";
NSLog(@"手机不支持蓝牙功能,请更换手机。.");
}
break;
case CBManagerStatePoweredOff: {
// strMessage = @"手机蓝牙功能关闭,请前往设置打开蓝牙及控制中心打开蓝牙。";
// buttonTitle = @"前往设置";
NSLog(@"手机蓝牙功能关闭,请前往设置打开蓝牙及控制中心打开蓝牙。");
ZXBathAlert *a = [[ZXBathAlert alloc] initWithFrame:[UIScreen mainScreen].bounds];
@weakify(self);
__weak typeof(a) weakA = a;
a.cancelAction = ^{
weakA.hidden = YES;
[weakA removeFromSuperview];
@strongify(self);
if (self.isOnlyBluetooth) {
[[ZXTool getCurrentVC].navigationController popViewControllerAnimated:YES];
}
};
[kAppWindow addSubview:a];
}
break;
case CBManagerStateUnauthorized: {
// strMessage = @"手机蓝牙功能没有权限,请前往设置。";
// buttonTitle = @"前往设置";
NSLog(@"手机蓝牙功能没有权限,请前往设置");
}
break;
default: { }
break;
}
}
#pragma mark - ==========蓝牙代理方法----发现设备==========
/**
* 发现设备
* @param peripheral 设备
* @param advertisementData 广播内容
* @param RSSI 信号强度
*/
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI
{
// 判断是否是你需要连接的设备
if (peripheral.name) {
NSLog(@"发现设备:%@", peripheral.name);
}
if ([peripheral.name isEqualToString:self.currentPeripheralName]) {
NSLog(@"😇😇😇😇😇😇 搜索到蓝牙设备---%@", [ZXTool getTimeNow]);
if (self.selectedPeripheral == nil) {
self.selectedPeripheral = peripheral;
self.selectedPeripheral.delegate = self;
}
NSLog(@"😇😇😇😇😇😇 开始连接蓝牙---%@", [ZXTool getTimeNow]);
// 开始连接设备
[self.centralManager connectPeripheral:self.selectedPeripheral options:nil];
[self stopScanPeripheral];
self.isServiceCut = NO;//回归初始状态
}
}
#pragma mark - ==========已经连接上设备==========
- (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral
{
// 停止扫描
[self.centralManager stopScan];
// 发现服务
[self.selectedPeripheral discoverServices:nil];
}
/**
* 已经发现服务
*/
- (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error
{
for (CBService *service in peripheral.services) {
// 根据你要的那个服务去发现特性
[self.selectedPeripheral discoverCharacteristics:nil forService:service];
}
}
#pragma mark - ========== 发送设备号给socket ==========
- (void) sendDeviceInfoToSocketByTimes:(int) times {
//执行三次
NSString *sendInfo = [NSString stringWithFormat:@"{<%@>}", self.currentPeripheralName];
if (!self.isFirstInConnect && self.clientSocket.isConnected && (self.selectedPeripheral.state == CBPeripheralStateConnected)) {
sendInfo = [NSString stringWithFormat:@"{<%@,45,%@,%@>}", self.currentPeripheralName, APPversion, CacheAccount];
}
if (times > 0) {
NSLog(@"---发送设备号给socket");
[self sendMessage:sendInfo];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self sendDeviceInfoToSocketByTimes:(times - 1)];
});
}
}
#pragma mark - ==========蓝牙连接成功==========
- (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error {
NSLog(@"====================蓝牙连接成功=========================");
NSLog(@"😇😇😇😇😇😇 蓝牙设备连接成功---%@", [ZXTool getTimeNow]);
[SVProgressHUD showSuccessWithStatus:@"蓝牙连接成功"];
[self sendDeviceInfoToSocketByTimes:1];
//开始洗浴
if (self.isOpenDevice == NO && self.isFirstInConnect == NO) {
//调用接口
if ([self.delegate respondsToSelector:@selector(startFireInterfaceByStatus:)]) {
self.isOpenDevice = YES;//标记为已经开始了
[self.centralManager stopScan];
[self.delegate startFireInterfaceByStatus:1];
}
}
for (CBCharacteristic *characteristic in service.characteristics) {
[peripheral setNotifyValue:YES forCharacteristic:characteristic];
self.currentCharacteristic = characteristic;
}
}
#pragma mark - ==========收到蓝牙传回的数据==========
- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
{
if ([peripheral.name isEqualToString:self.currentPeripheralName]) {
//这里收到的数据都是16进制,有两种转换,一种就直接转字符串,另一种是转byte数组,看用哪种方便
//直接转字符串
NSString *orStr = [[NSString alloc] initWithData:characteristic.value encoding:NSUTF8StringEncoding];
NSLog(@"==========收到蓝牙发送的消息:%@================", orStr);
if ([orStr isEqualToString:@"<>"]) {
//收到蓝牙设备断开连接指令 直接断开
[self cutBluetoothAndSocketConnect];
[SVProgressHUD dismiss];
return;
}
// 转Byte数组
Byte *byte = (Byte *)characteristic.value.bytes;
if (byte[0] == '{') {
//开始标记
self.blueToothData = [NSMutableData data];//初始化
}
if (byte[characteristic.value.length-1] == '}') {
//结尾标记
[self.blueToothData appendData:characteristic.value];
NSLog(@"组装完成的数据是:-----%@", [[NSString alloc] initWithData:self.blueToothData encoding:NSUTF8StringEncoding]);
[self.clientSocket writeData:self.blueToothData withTimeout:- 1 tag:0];
self.blueToothData = [NSMutableData data];//初始化
} else {
[self.blueToothData appendData:characteristic.value];
}
}
}
#pragma mark - ==========蓝牙连接失败==========
- (void)centralManager:(CBCentralManager *)central didFailToConnectPeripheral:(CBPeripheral *)peripheral error:(nullable NSError *)error {
[SVProgressHUD dismiss];
NSLog(@"蓝牙连接失败--错误信息:%@", error);
NSLog(@"😇😇😇😇😇😇 蓝牙设备连接失败---%@", [ZXTool getTimeNow]);
}
#pragma mark - ==========蓝牙设备连接断开==========
- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error
{
NSLog(@"================蓝牙已断开连接:%@=================", error);
NSLog(@"😇😇😇😇😇😇 蓝牙设备连接已经断开---%@", [ZXTool getTimeNow]);
if (self.isServiceCut == NO) {
//重新连接--断开重连的时候 标记e为已经开始 避免二次调用开始接口
self.isOpenDevice = YES;
[self reConnect];
}
}
/**
* 写入成功的回调, 如果类型是CBCharacteristicWriteWithoutResponse,不会走这个方法;
*/
- (void)peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
{
//[self.selectedPeripheral readValueForCharacteristic:characteristic];
}
#pragma mark - ==========重新连接蓝牙和socket==========
- (void)reConnect {
if (self.timer == nil) {//检测一下定时器的开关状态 开始的时候 直接触发
self.timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(timer:) userInfo:nil repeats:YES];
[self.timer fire];
}
if (self.centralManager == nil) {
NSDictionary *options = @{CBCentralManagerOptionShowPowerAlertKey:@NO};//不弹窗(配置)
self.centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options];
}
if (self.selectedPeripheral && self.selectedPeripheral.state != CBPeripheralStateConnected) {
//连接成功
[self.centralManager connectPeripheral:self.selectedPeripheral options:nil];
} else {
[self.centralManager scanForPeripheralsWithServices:nil options:@{CBCentralManagerScanOptionAllowDuplicatesKey:@YES}];
}
//已经断开socket -- 重连
if (self.clientSocket == nil) {
//初始化socket
self.clientSocket = [[GCDAsyncSocket alloc]initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
}
if (self.clientSocket.isConnected == NO) {
//开始建立连接
[self.clientSocket connectToHost:[kUserDefaults objectForKey:@"DCWashSocketUrl"] onPort:[[kUserDefaults objectForKey:@"DCWashSocketUrl"] integerValue] viaInterface:nil withTimeout:-1 error:nil];
}
}
#pragma mark - 把十六进制的字符串转换成2进制的字符串
- (NSString *)binaryDataWithStr:(NSString *)str
{
NSMutableString *mutStr = [[NSMutableString alloc] init];
for (NSInteger j = 0; j < str.length; j++) {
char c = [str characterAtIndex:j];
char cs = toupper(c);
int a = 0;
NSMutableArray *mutArr = [NSMutableArray array];
if (cs >= 'A' && cs <='F') {
a = cs - 'A' + 10;
} else
{
a = cs - '0';
}
int n = 1;
for(int i = 0; n != 0; i++)// 判断条件 n!=0
{
NSInteger m = a % 2;
[mutArr addObject:@(m)];
a = a / 2;
n = a;
}
if (mutArr.count < 4) {
NSInteger h = 4 - mutArr.count;
for (int i = 0; i < h; i++) {
[mutArr addObject:@(0)];
}
}
for (int i = 0; i < 2; i++) {
[mutArr exchangeObjectAtIndex:i withObjectAtIndex:3 - i];
}
for (int i = 0; i < 4; i++) {
NSInteger dataStr = [mutArr[i] integerValue];
[mutStr appendFormat:@"%ld",(long)dataStr];
}
}
return mutStr;
}
#pragma mark - 把十进制转成字节,用于发送命令;
- (Byte)byteWithInteger:(NSInteger)num
{
Byte btye = (Byte)0xff&num;
return btye;
}
#pragma mark 停止扫描外设
- (void)stopScanPeripheral{
[self.centralManager stopScan];
}
#pragma mark - ==========scoket==========
// 发送空消息
- (void)sendMessage:(NSString *) msg {
NSData *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
// withTimeout -1 : 无穷大,一直等
// tag : 消息标记
[self.clientSocket writeData:data withTimeout:- 1 tag:0];
}
// 接收消息
- (void)receiveMessage {
[self.clientSocket readDataWithTimeout:11 tag:0];
}
#pragma mark - ==========GCDAsyncSocketDelegate==========
- (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port {
NSLog(@"================scoket链接成功===================");
NSLog(@"😇😇😇😇😇😇 socket连接成功---%@", [ZXTool getTimeNow]);
//断开重连的时候发送一下设备信息(预防一种场景是蓝牙连接成功了 但是socket没连接成功的情况)
[self sendDeviceInfoToSocketByTimes:2];
if (self.currentPeripheralName && (self.selectedPeripheral && self.selectedPeripheral.state == CBPeripheralStateConnected) && self.isOpenDevice == NO && self.isFirstInConnect == NO) {
if ([self.delegate respondsToSelector:@selector(startFireInterfaceByStatus:)]) {
[self.centralManager stopScan];
[self.delegate startFireInterfaceByStatus:1];
}
}
[self.clientSocket readDataWithTimeout:- 1 tag:0];
}
#pragma mark - ==========收到socket消息==========
- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag {
NSString *text = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"=============收到服务器返回消息:%@====================", text);
[self.clientSocket readDataWithTimeout:- 1 tag:0];
//处理逻辑
if ([text isEqualToString:@"[0]"]) {
//中断指令
[SVProgressHUD dismiss];
[self cutBluetoothAndSocketConnect];
} else if ([text isEqualToString:@"[]"]) {
} else if ([text isEqualToString:[NSString stringWithFormat:@"{<%@>}", self.currentPeripheralName]]) {
NSLog(@"=============收到服务器返回的设备号");
} else if ([text isEqualToString:[NSString stringWithFormat:@"[<%@,1>]", self.currentPeripheralName]]) {
NSLog(@"=============收到服务器的开启设备指令");
if (self.isOpenDevice == NO && self.isFirstInConnect == NO) {
if ([self.delegate respondsToSelector:@selector(startFireInterfaceByStatus:)]) {
self.isOpenDevice = YES;//标记位开始了 避免重复调用接口
[self.centralManager stopScan];
[self.delegate startFireInterfaceByStatus:2];
}
}
} else {
//发送给蓝牙
if (data.length > 100) {
return;
}
[self.tempData addObject:data];
}
}
#pragma mark - 发送消息给蓝牙
- (void) sendSocketMsgToBluetooth {
if (self.tempData.count == 0) {
return;
}
if (self.selectedPeripheral && self.currentCharacteristic) {
NSLog(@"😁开始发送队列消息--%@", self.tempData);
NSData *data = self.tempData[0];//去第一个
if (data.length > 20) {
NSInteger temp = data.length % 20;
NSInteger count = 0;
NSInteger count1 = count = data.length / 20;
if (temp == 0) {
count = count1;
} else {
count = count1 + 1;
}
for (int i = 0; i < count; i++) {
NSData *subData;
if (i == count-1) {
subData = [data subdataWithRange:NSMakeRange(i * 20, data.length - i * 20)];
} else {
subData = [data subdataWithRange:NSMakeRange(i * 20, 20)];
}
[self.selectedPeripheral writeValue:subData forCharacteristic:self.currentCharacteristic type:CBCharacteristicWriteWithResponse];
}
} else {
[self.selectedPeripheral writeValue:data forCharacteristic:self.currentCharacteristic type:CBCharacteristicWriteWithResponse];
}
[self.tempData removeObject:data];
}
}
// 链接失败
- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err{
//重连
NSLog(@"😇😇😇😇😇😇 socket连接已经断开---%@", [ZXTool getTimeNow]);
NSLog(@"==============socket链接失败或者断开===================");
if (self.isServiceCut == NO) {
//默认状态下需要重新连接
[self.clientSocket connectToHost:self.socketUrl onPort:self.socketPort viaInterface:nil withTimeout:-1 error:nil];
}
}
#pragma mark - ==========主动断开蓝牙和socket连接==========
- (void) cutBluetoothAndSocketConnect {
[self.centralManager stopScan];
if (self.selectedPeripheral) {
[self.centralManager cancelPeripheralConnection:self.selectedPeripheral];
self.centralManager.delegate = nil;
self.selectedPeripheral.delegate = nil;
self.selectedPeripheral = nil;
}
[self.clientSocket disconnect];//断开socket
self.clientSocket.delegate = nil;
self.clientSocket = nil;
// self.centralManager.delegate = nil;
// self.centralManager = nil;
self.isServiceCut = YES;//触发服务端中断指
self.isOpenDevice = NO;
if (self.timer) {
[self.timer invalidate];
self.timer = nil;
}
}
- (void) timer:(NSTimer *) ti {
[self sendSocketMsgToBluetooth];
}
- (NSMutableArray *)tempData {
if (_tempData == nil) {
_tempData = [NSMutableArray new];
}
return _tempData;
}
@end
//
//
// ZXWashService.h
// ColorfulSchool
//
// Created by liuZX on 2018/6/28.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "DC_ZXWashOperationModel.h"
#import "DC_ZXWashOrderModel.h"
#import "DC_ZXPreOrderModel.h"
typedef enum : NSUInteger {
DC_ZXWashMerthinOnline,//使用中
DC_ZXWashMerthinOffline, //空闲中
} DC_ZXWashMerthinType;
typedef void(^completedBlock)(BOOL isNeedReload);
typedef void(^washOperation)(DC_ZXWashOperationModel *model);
typedef void(^createOrder)(DC_ZXWashOrderModel *order);
typedef void(^requestPay)(id payPara);
@interface DC_ZXWashService : NSObject
/**维修电话列表*/
@property (nonatomic, strong) NSMutableArray *repairMobineList;
/**使用中的设备列表*/
@property (nonatomic, strong) NSMutableArray *onlineList;
/**空闲中的设备列表*/
@property (nonatomic, strong) NSMutableArray *offlineList;
/**所有设备列表*/
@property (nonatomic, strong) NSMutableArray *allMerthinList;
/**常用设备列表*/
@property (nonatomic, strong) NSMutableArray *collectionList;
/**我的预约列表*/
@property (nonatomic, strong) NSMutableArray *myInvitorList;
/**我的订单列表*/
@property (nonatomic, strong) NSMutableArray *myOrderList;
/** 当前的预约订单 */
@property (nonatomic, strong) DC_ZXPreOrderModel *currentPreOrder;
//加载最新设备列表
- (void)loadNewMerchinListWithType:(DC_ZXWashMerthinType)type
positionId:(NSString *) positionId
completedBlock:(completedBlock)completedBlock;
//加载更多设备列表
- (void)loadMoreMerchinListWithType:(DC_ZXWashMerthinType)type positionId:(NSString *) positionId completedBlock:(completedBlock)completedBlock;
//常用位置查询
- (void) fetchCollectionLocationCompletedBlock:(completedBlock) completedBlock;
//增加常用我位置
- (void) addCollectionLocationWithAddress:(NSString *) address completedBlock:(completedBlock) completedBlock;
//删除常用位置
- (void)deleteCollectionLocationWithAddress:(NSString *)address completedBlock:(completedBlock) completedBlock;
/**选中洗衣机*/
- (void) checkMerthinWithMerthinCode:(NSString *) code completedBlock:(washOperation) completedBlock;
/**创建订单*/
+ (void) createOrderWithPara:(NSDictionary *) para completedBlock:(createOrder) order;
//发起支付
+ (void) postPayWithPara:(NSDictionary *) para requestPay:(requestPay) payPara;
//单独加载预约订单信息
+(void) loadPreOrderInfoCompletedBlock:(completedBlock)completedBlock;
/*
*获取洗衣记录
*/
- (void) loadWashRecordListWithIsNewData:(BOOL) isNewData completedBlock:(completedBlock) completedBlock;
/**开始洗衣*/
+(void) startWashWithEquipmentId:(NSInteger) equipmentId orderId:(NSInteger) orderId completedBlock:(completedBlock) completedBlock;
@end
//
//
// ZXWashService.m
// ColorfulSchool
//
// Created by liuZX on 2018/6/28.
// Copyright © 2018年 Colorful Any Door. All rights reserved.
//
#import "DC_ZXWashService.h"
#import "XMNetworking.h"
#import "DC_ZXWashMerthinModel.h"
#import "DC_ZXWashLocationModel.h"
#import "DC_ZXWashOperationModel.h"
#import "DC_ZXWashOrderListModel.h"
#import "DC_ShowMsgView.h"
@interface DC_ZXWashService()
@property (nonatomic, assign) NSInteger currentOnlinePage;
@property (nonatomic, assign) NSInteger currentOfflinePage;
//预约的页码
@property (nonatomic, assign) NSInteger currentInvitorPage;
//订单页码
@property (nonatomic, assign) NSInteger currentOrderPage;
@end
@implementation DC_ZXWashService
- (void)loadNewMerchinListWithType:(DC_ZXWashMerthinType)type positionId:(NSString *) positionId completedBlock:(completedBlock)completedBlock{
//重置页码
if (type==DC_ZXWashMerthinOffline) {
self.currentOfflinePage = 1;
} else {
self.currentOnlinePage = 1;
}
[self loadDataWithType:type positionId:positionId completedBlock:completedBlock needCleanList:YES];
}
- (void)loadMoreMerchinListWithType:(DC_ZXWashMerthinType)type positionId:(NSString *) positionId completedBlock:(completedBlock)completedBlock {
if (type==DC_ZXWashMerthinOffline) {
self.currentOfflinePage++;
} else {
self.currentOnlinePage++;
}
[self loadDataWithType:type positionId:positionId completedBlock:completedBlock needCleanList:NO];
}
/*
* type 设备类型 使用中/空闲中
* clean 是否需要清空数组 当加载最新的时候需要
*/
- (void) loadDataWithType:(DC_ZXWashMerthinType)type positionId:(NSString *) positionId completedBlock:(completedBlock)completedBlock needCleanList:(BOOL) need{
NSString *userId = [kUserDefaults valueForKey:@"userId"];
NSString *campusId = [kUserDefaults valueForKey:@"campusId"];
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
if (userId == nil || campusId==nil) {
completedBlock(NO);
return;
}
NSString *url = [NSString stringWithFormat:@"%@/dcxy/api/washer/devices?campusId=%@&customerId=%@&status=%@&pageNum=%ld&pageSize=20&positionId=%@", prefix,campusId, userId,type==DC_ZXWashMerthinOnline?@"1":@"0",(long)(type==DC_ZXWashMerthinOnline?self.currentOnlinePage:self.currentOfflinePage), positionId];
dispatch_async(dispatch_get_main_queue(), ^{
[ZXTool showLoadingAnimation];
});
[ZXTool requestDataWithType:kXMHTTPMethodGET url:url para:nil completed:^(CommonModel *common, NSString *error) {
if (error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (type == DC_ZXWashMerthinOnline) {
[self.onlineList removeAllObjects];
} else {
[self.offlineList removeAllObjects];
}
completedBlock(YES);
[ZXTool showText:error];
});
} else {
DC_ZXPreOrderModel *m = [DC_ZXPreOrderModel mj_objectWithKeyValues:common.data[@"appointOrder"]];
if (m && m.orderCode) {
self.currentPreOrder = m;
}
NSArray *list = common.data[@"deviceList"];
if (type == DC_ZXWashMerthinOnline) {
if (need) {
[self.onlineList removeAllObjects];
}
NSArray *onlines = [DC_ZXWashMerthinModel mj_objectArrayWithKeyValuesArray:list];
[self.onlineList addObjectsFromArray:onlines];
} else {
if (need) {
[self.offlineList removeAllObjects];
}
NSArray *offlines = [DC_ZXWashMerthinModel mj_objectArrayWithKeyValuesArray:list];
[self.offlineList addObjectsFromArray:offlines];
}
dispatch_async(dispatch_get_main_queue(), ^{
completedBlock(YES);
});
}
}];
}
//单独加载预约订单信息
+(void) loadPreOrderInfoCompletedBlock:(completedBlock)completedBlock {
NSString *userId = [kUserDefaults valueForKey:@"userId"];
NSString *campusId = [kUserDefaults valueForKey:@"campusId"];
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
if (userId == nil || campusId==nil) {
completedBlock(NO);
return;
}
NSString *url = [NSString stringWithFormat:@"%@/dcxy/api/washer/appointOrders?customerId=%@&pageNum=%d&pageSize=20", prefix, userId,1];
dispatch_async(dispatch_get_main_queue(), ^{
[ZXTool showLoadingAnimation];
});
[ZXTool requestDataWithType:kXMHTTPMethodGET url:url para:nil completed:^(CommonModel *common, NSString *error) {
if (error) {
dispatch_async(dispatch_get_main_queue(), ^{
[ZXTool hideLoadingAnimation];
completedBlock(NO);
});
} else {
dispatch_async(dispatch_get_main_queue(), ^{
NSArray *preList = [DC_ZXPreOrderModel mj_keyValuesArrayWithObjectArray:common.data];
if (preList && preList.count) {
[DC_ZXPreOrderModel clearTable];
[DC_ZXPreOrderModel saveObjects:@[preList.lastObject]];
}
[ZXTool hideLoadingAnimation];
completedBlock(YES);
});
}
}];
}
- (NSMutableArray *)offlineList {
if (_offlineList == nil) {
_offlineList = [[NSMutableArray alloc] init];
}
return _offlineList;
}
- (NSMutableArray *)onlineList {
if (_onlineList == nil) {
_onlineList = [[NSMutableArray alloc] init];
}
return _onlineList;
}
- (NSMutableArray *)repairMobineList {
if (_repairMobineList == nil) {
_repairMobineList = [[NSMutableArray alloc] init];
}
return _repairMobineList;
}
- (NSMutableArray *)collectionList {
if (_collectionList == nil) {
_collectionList = [[NSMutableArray alloc] init];
}
return _collectionList;
}
- (NSMutableArray *)allMerthinList {
if (_allMerthinList == nil) {
_allMerthinList = [[NSMutableArray alloc] init];
}
return _allMerthinList;
}
- (NSMutableArray *)myInvitorList {
if (_myInvitorList == nil) {
_myInvitorList = [[NSMutableArray alloc] init];
}
return _myInvitorList;
}
- (NSMutableArray *)myOrderList {
if (_myOrderList == nil) {
_myOrderList = [[NSMutableArray alloc] init];
}
return _myOrderList;
}
#pragma mark - ========== 常用位置查询 ==========
- (void)fetchCollectionLocationCompletedBlock:(completedBlock)completedBlock {
NSString *userId = [kUserDefaults valueForKey:@"userId"];
NSString *campusId = [kUserDefaults valueForKey:@"campusId"];
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
if (userId == nil || campusId==nil) {
return;
}
NSString *url = [NSString stringWithFormat:@"%@/dcxy/api/washer/%@/%@/positions", prefix,campusId,userId];
@weakify(self);
[ZXTool requestDataWithType:kXMHTTPMethodGET url:url para:nil completed:^(CommonModel *common, NSString *error) {
@strongify(self);
if (error) {
dispatch_async(dispatch_get_main_queue(), ^{
[ZXTool showText:error];
[self.allMerthinList removeAllObjects];
[self.allMerthinList addObjectsFromArray:[DC_ZXWashLocationModel findAll]];
completedBlock(YES);
});
} else {
//成功了 清空表
[DC_ZXWashLocationModel clearTable];
[self.collectionList removeAllObjects];
NSArray *list_collect = [DC_ZXWashLocationModel mj_objectArrayWithKeyValuesArray:common.data[@"usedPositions"]];
[self.collectionList addObjectsFromArray:list_collect];
[DC_ZXWashLocationModel saveObjects:list_collect];
NSArray *list_all = [DC_ZXWashLocationModel mj_objectArrayWithKeyValuesArray:common.data[@"positions"]];
[DC_ZXWashLocationModel saveObjects:list_all];
[self.allMerthinList removeAllObjects];
[self.allMerthinList addObjectsFromArray:list_all];
dispatch_async(dispatch_get_main_queue(), ^{
// [ZXTool showText:@"数据加载成功!"];
completedBlock(YES);
});
}
}];
}
#pragma mark - ========== 增加常用位置 ==========
- (void) addCollectionLocationWithAddress:(NSString *) address completedBlock:(completedBlock) completedBlock {
NSString *userId = [kUserDefaults valueForKey:@"userId"];
NSString *campusId = [kUserDefaults valueForKey:@"campusId"];
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
if (userId == nil || campusId==nil) {
return;
}
NSString *url = [NSString stringWithFormat:@"%@/dcxy/api/washer/%@/positions/%@?customerId=%@&positionId=%@", prefix,userId, address, userId, address];
[ZXTool requestDataWithType:kXMHTTPMethodPOST url:url para:nil completed:^(CommonModel *common, NSString *error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
[ZXTool showText:error];
completedBlock(NO);
} else {
[ZXTool showText:common.msg];
completedBlock(YES);
}
});
}];
}
- (void)deleteCollectionLocationWithAddress:(NSString *)address completedBlock:(completedBlock) completedBlock {
NSString *userId = [kUserDefaults valueForKey:@"userId"];
NSString *campusId = [kUserDefaults valueForKey:@"campusId"];
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
if (userId == nil || campusId==nil) {
return;
}
NSString *url = [[NSString stringWithFormat:@"%@/dcxy/api/washer/%@/positions/%@?customerId=%@&positionId=%@", prefix,userId,address,userId,address] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[ZXTool requestDataWithType:kXMHTTPMethodDELETE url:url para:nil completed:^(CommonModel *common, NSString *error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
[ZXTool showText:error];
completedBlock(NO);
} else {
[ZXTool showText:common.msg];
completedBlock(YES);
}
});
}];
}
/**选中洗衣机*/
- (void) checkMerthinWithMerthinCode:(NSString *) code completedBlock:(washOperation) completedBlock {
NSString *userId = [kUserDefaults valueForKey:@"userId"];
NSString *campusId = [kUserDefaults valueForKey:@"campusId"];
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
if (userId == nil || campusId==nil) {
return;
}
NSString *url = [[NSString stringWithFormat:@"%@/dcxy/api/washer/functionPage/%@?customerId=%@", prefix,code, CacheUserId] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[ZXTool requestDataWithType:kXMHTTPMethodGET url:url para:nil completed:^(CommonModel *common, NSString *error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
//提示之后 重新回归扫码状态
[[NSNotificationCenter defaultCenter] postNotificationName:@"reStartScan_wash" object:nil];
DC_ShowMsgView *show = [[DC_ShowMsgView alloc] initWithFrame:[UIScreen mainScreen].bounds msg:error];
[show show];
[ZXTool hideLoadingAnimation];
} else {
DC_ZXWashOperationModel *model = [DC_ZXWashOperationModel mj_objectWithKeyValues:common.data];
completedBlock(model);
[ZXTool hideLoadingAnimation];
}
});
}];
}
/**创建订单*/
+ (void) createOrderWithPara:(NSDictionary *) para completedBlock:(createOrder) order{
NSString *userId = [kUserDefaults valueForKey:@"userId"];
NSString *campusId = [kUserDefaults valueForKey:@"campusId"];
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
if (userId == nil || campusId==nil) {
return;
}
NSString *url = [NSString stringWithFormat:@"%@/dcxy/api/washer/order", prefix];
[ZXTool requestDataWithType:kXMHTTPMethodPOST url:url para:para completed:^(CommonModel *common, NSString *error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
[ZXTool showText:error];
[ZXTool hideLoadingAnimation];
} else {
DC_ZXWashOrderModel *model = [DC_ZXWashOrderModel mj_objectWithKeyValues:common.data];
order(model);
[ZXTool hideLoadingAnimation];
}
});
}];
}
//发起支付
+ (void) postPayWithPara:(NSDictionary *) para requestPay:(requestPay) payPara {
NSString *userId = [kUserDefaults valueForKey:@"userId"];
NSString *campusId = [kUserDefaults valueForKey:@"campusId"];
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
if (userId == nil || campusId==nil) {
return;
}
NSString *url = [NSString stringWithFormat:@"%@/create/washer/orderPay", prefix];
[ZXTool requestDataWithType:kXMHTTPMethodPOST url:url para:para completed:^(CommonModel *common, NSString *error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
[ZXTool showText:error];
[ZXTool hideLoadingAnimation];
} else {
payPara(common.data);
[ZXTool hideLoadingAnimation];
}
});
}];
}
/*
*获取洗衣记录
*/
- (void)loadWashRecordListWithIsNewData:(BOOL)isNewData completedBlock:(completedBlock)completedBlock {
NSString *userId = [kUserDefaults valueForKey:@"userId"];
NSString *campusId = [kUserDefaults valueForKey:@"campusId"];
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
if (userId == nil || campusId==nil) {
return;
}
if (isNewData) {
self.currentInvitorPage = 1;
} else {
self.currentInvitorPage ++;
}
NSString *url = [NSString stringWithFormat:@"%@/dcxy/api/washer/appointOrders?pageSize=20&pageNum=%ld&customerId=%@",prefix , self.currentInvitorPage, userId];
[ZXTool requestDataWithType:kXMHTTPMethodGET url:url para:nil completed:^(CommonModel *common, NSString *error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
[ZXTool showText:error];
completedBlock(NO);
} else {
NSArray *list = [DC_ZXWashOrderListModel mj_objectArrayWithKeyValuesArray:common.data];
if (isNewData) {
[self.myInvitorList removeAllObjects];
}
[self.myInvitorList addObjectsFromArray:list];
completedBlock(list.count);
}
});
}];
}
/**开始洗衣*/
+(void) startWashWithEquipmentId:(NSInteger) equipmentId orderId:(NSInteger) orderId completedBlock:(completedBlock) completedBlock {
NSString *userId = [kUserDefaults valueForKey:@"userId"];
NSString *campusId = [kUserDefaults valueForKey:@"campusId"];
NSString *prefix = [kUserDefaults valueForKey:@"DCWash"];
if (userId == nil || campusId==nil) {
return;
}
NSString *url = [NSString stringWithFormat:@"%@/use/%@/%@/washer/%ld?orderId=%ld",prefix,campusId,userId ,equipmentId,orderId];
[ZXTool requestDataWithType:kXMHTTPMethodGET url:url para:nil completed:^(CommonModel *common, NSString *error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
[ZXTool showText:error];
completedBlock(NO);
} else {
[ZXTool showText:common.msg];
completedBlock(YES);
}
});
}];
}
@end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment