Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
colorfulSchoolReconsitution
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘卓鑫
colorfulSchoolReconsitution
Commits
d711926b
Commit
d711926b
authored
Nov 06, 2019
by
刘卓鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交多彩洗衣代码
parent
73552bc3
Hide whitespace changes
Inline
Side-by-side
Showing
62 changed files
with
6017 additions
and
215 deletions
+6017
-215
project.pbxproj
ColorfulSchool/ColorfulSchool.xcodeproj/project.pbxproj
+206
-210
UserInterfaceState.xcuserstate
...ata/liuzhuoxin.xcuserdatad/UserInterfaceState.xcuserstate
+0
-0
Breakpoints_v2.xcbkptlist
...uzhuoxin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
+13
-0
ZXHomePageViewController+Extension.m
...1HomePage/Controller/ZXHomePageViewController+Extension.m
+10
-5
DC_ZXLocationViewController.h
.../WashClose(多彩洗衣)/Controller/DC_ZXLocationViewController.h
+14
-0
DC_ZXLocationViewController.m
.../WashClose(多彩洗衣)/Controller/DC_ZXLocationViewController.m
+281
-0
DC_ZXWashCloseViewController.h
...WashClose(多彩洗衣)/Controller/DC_ZXWashCloseViewController.h
+17
-0
DC_ZXWashCloseViewController.m
...WashClose(多彩洗衣)/Controller/DC_ZXWashCloseViewController.m
+515
-0
DC_ZXWashOperationViewController.h
...Close(多彩洗衣)/Controller/DC_ZXWashOperationViewController.h
+15
-0
DC_ZXWashOperationViewController.m
...Close(多彩洗衣)/Controller/DC_ZXWashOperationViewController.m
+436
-0
DC_ZXWashOrderDetailViewController.h
...ose(多彩洗衣)/Controller/DC_ZXWashOrderDetailViewController.h
+17
-0
DC_ZXWashOrderDetailViewController.m
...ose(多彩洗衣)/Controller/DC_ZXWashOrderDetailViewController.m
+251
-0
DC_ZXWashRecordViewController.h
...ashClose(多彩洗衣)/Controller/DC_ZXWashRecordViewController.h
+14
-0
DC_ZXWashRecordViewController.m
...ashClose(多彩洗衣)/Controller/DC_ZXWashRecordViewController.m
+179
-0
DC_ZXWashTabbarViewController.h
...ashClose(多彩洗衣)/Controller/DC_ZXWashTabbarViewController.h
+16
-0
DC_ZXWashTabbarViewController.m
...ashClose(多彩洗衣)/Controller/DC_ZXWashTabbarViewController.m
+76
-0
DC_ZXPreOrderModel.h
...peration(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXPreOrderModel.h
+60
-0
DC_ZXPreOrderModel.m
...peration(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXPreOrderModel.m
+23
-0
DC_ZXWashLocationModel.h
...tion(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashLocationModel.h
+17
-0
DC_ZXWashLocationModel.m
...tion(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashLocationModel.m
+17
-0
DC_ZXWashMerthinModel.h
...ation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashMerthinModel.h
+25
-0
DC_ZXWashMerthinModel.m
...ation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashMerthinModel.m
+14
-0
DC_ZXWashOperationModel.h
...ion(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOperationModel.h
+93
-0
DC_ZXWashOperationModel.m
...ion(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOperationModel.m
+30
-0
DC_ZXWashOrderListModel.h
...ion(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOrderListModel.h
+51
-0
DC_ZXWashOrderListModel.m
...ion(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOrderListModel.m
+23
-0
DC_ZXWashOrderModel.h
...eration(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOrderModel.h
+59
-0
DC_ZXWashOrderModel.m
...eration(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOrderModel.m
+24
-0
DC_AppointView.h
...首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_AppointView.h
+16
-0
DC_AppointView.m
...首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_AppointView.m
+280
-0
DC_CountingDownView.h
...peration(自助服务)/WashClose(多彩洗衣)/View/DC_CountingDownView.h
+18
-0
DC_CountingDownView.m
...peration(自助服务)/WashClose(多彩洗衣)/View/DC_CountingDownView.m
+101
-0
DC_ShowMsgView.h
...首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ShowMsgView.h
+15
-0
DC_ShowMsgView.m
...首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ShowMsgView.m
+79
-0
DC_WashCLoseTableViewCell.h
...on(自助服务)/WashClose(多彩洗衣)/View/DC_WashCLoseTableViewCell.h
+18
-0
DC_WashCLoseTableViewCell.m
...on(自助服务)/WashClose(多彩洗衣)/View/DC_WashCLoseTableViewCell.m
+145
-0
DC_WashSegHeader.h
...)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_WashSegHeader.h
+28
-0
DC_WashSegHeader.m
...)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_WashSegHeader.m
+100
-0
DC_ZXChooseCell.h
...页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXChooseCell.h
+14
-0
DC_ZXChooseCell.m
...页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXChooseCell.m
+61
-0
DC_ZXChooseView.h
...页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXChooseView.h
+19
-0
DC_ZXChooseView.m
...页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXChooseView.m
+211
-0
DC_ZXReChooseCell.h
.../Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXReChooseCell.h
+14
-0
DC_ZXReChooseCell.m
.../Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXReChooseCell.m
+79
-0
DC_ZXWashAimiPayCell.h
...eration(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashAimiPayCell.h
+16
-0
DC_ZXWashAimiPayCell.m
...eration(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashAimiPayCell.m
+123
-0
DC_ZXWashBucketCleanCell.h
...ion(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashBucketCleanCell.h
+15
-0
DC_ZXWashBucketCleanCell.m
...ion(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashBucketCleanCell.m
+95
-0
DC_ZXWashMyInvitorCell.h
...ation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashMyInvitorCell.h
+16
-0
DC_ZXWashMyInvitorCell.m
...ation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashMyInvitorCell.m
+329
-0
DC_ZXWashOperationCell.h
...ation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOperationCell.h
+16
-0
DC_ZXWashOperationCell.m
...ation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOperationCell.m
+102
-0
DC_ZXWashOrderPayCell.h
...ration(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOrderPayCell.h
+16
-0
DC_ZXWashOrderPayCell.m
...ration(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOrderPayCell.m
+120
-0
DC_ZXWashOrderShowCell.h
...ation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOrderShowCell.h
+14
-0
DC_ZXWashOrderShowCell.m
...ation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOrderShowCell.m
+147
-0
DC_ZXWashPayWayCell.h
...peration(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashPayWayCell.h
+14
-0
DC_ZXWashPayWayCell.m
...peration(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashPayWayCell.m
+97
-0
DCWashBluetoothManager.h
...(自助服务)/WashClose(多彩洗衣)/ViewModel/DCWashBluetoothManager.h
+55
-0
DCWashBluetoothManager.m
...(自助服务)/WashClose(多彩洗衣)/ViewModel/DCWashBluetoothManager.m
+671
-0
DC_ZXWashService.h
...ration(自助服务)/WashClose(多彩洗衣)/ViewModel/DC_ZXWashService.h
+78
-0
DC_ZXWashService.m
...ration(自助服务)/WashClose(多彩洗衣)/ViewModel/DC_ZXWashService.m
+399
-0
No files found.
ColorfulSchool/ColorfulSchool.xcodeproj/project.pbxproj
View file @
d711926b
...
...
@@ -12,6 +12,7 @@
1C0210C12318AF730074D691
/* ZXOpenBlueToothView.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
1C0210C02318AF730074D691
/* ZXOpenBlueToothView.m */
;
};
1C03A9F62269BDBA00D39B93
/* APIManager.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
1C03A9F52269BDBA00D39B93
/* APIManager.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 */
;
};
1C3940FA230A7BDC005048EB
/* run.gif in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
1C3940F9230A7BDC005048EB
/* run.gif */
;
};
1C39411C230BC9D5005048EB
/* ZXRSReportViewController.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
1C3940FD230BC9D5005048EB
/* ZXRSReportViewController.m */
;
};
...
...
@@ -67,35 +68,6 @@
1C88540D22C1C5EF00A03328
/* ZXAppointBathService.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
1C88540C22C1C5EF00A03328
/* ZXAppointBathService.m */
;
};
1C88541022C1ECEB00A03328
/* ZXAppointBathModel.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
1C88540F22C1ECEB00A03328
/* ZXAppointBathModel.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 */
;
};
1C8F4A61232135F200AAF24A
/* ZXFullScreenAdView.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
1C8F4A60232135F200AAF24A
/* ZXFullScreenAdView.m */
;
};
1C8F4A642321EFF800AAF24A
/* ZXAdTool.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
1C8F4A632321EFF800AAF24A
/* ZXAdTool.m */
;
};
...
...
@@ -122,6 +94,34 @@
1CB3AC0F23053245006F1724
/* ZXOauthHasDCAccountViewController.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
1CB3AC0E23053245006F1724
/* ZXOauthHasDCAccountViewController.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 */
;
};
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 */
;
};
1CC1542D230D6E3600582EC1
/* LaunchScreen.storyboard in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
1CC1542C230D6E3600582EC1
/* LaunchScreen.storyboard */
;
};
1CC1543B230E2FB200582EC1
/* img_lauch.png in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
1CC1543A230E2FB200582EC1
/* img_lauch.png */
;
};
...
...
@@ -738,6 +738,8 @@
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>"
;
};
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>"
;
};
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>"
;
};
...
...
@@ -845,64 +847,6 @@
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>"
;
};
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>"
;
};
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>"
;
};
...
...
@@ -952,6 +896,62 @@
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>"
;
};
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>"
;
};
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>"
;
};
...
...
@@ -2353,10 +2353,10 @@
1C8968DE231DFC05008F5D7A
/* WashClose(多彩洗衣) */
=
{
isa
=
PBXGroup
;
children
=
(
1C
8F4A27231E70BC00AAF24A
/* Controller */
,
1C
8F4A1A231E70BC00AAF24A
/* Model */
,
1C
8F49FB231E70BB00AAF24A
/* View */
,
1C
8F49F8231E70BA00AAF24A
/* ViewModel */
,
1C
B9AF3C237102B400ED0434
/* Controller */
,
1C
B9AF4B237102B400ED0434
/* Model */
,
1C
B9AF1A237102B300ED0434
/* View */
,
1C
B9AF39237102B300ED0434
/* ViewModel */
,
);
path
=
"WashClose(多彩洗衣)"
;
sourceTree
=
"<group>"
;
...
...
@@ -2370,96 +2370,6 @@
path
=
BUAD
;
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 */
=
{
isa
=
PBXGroup
;
children
=
(
...
...
@@ -2527,6 +2437,92 @@
path
=
CropImage
;
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(百青藤) */
=
{
isa
=
PBXGroup
;
children
=
(
...
...
@@ -5236,6 +5232,7 @@
A7DECCE12079F7D40039EC22
/* HMScanerCardViewController.m in Sources */
,
1CD9C41B22C3702F00C04683
/* ZXAppointBathRecordCell.m in Sources */
,
1CB3AC0C2305321D006F1724
/* ZXBindTelViewController.m in Sources */
,
1CB9AF73237102B500ED0434
/* DC_ZXWashMerthinModel.m in Sources */
,
A7265BF320CA45690084B814
/* GYNoticeViewCell.m in Sources */
,
A7F3E01121B530F500010E23
/* ZXBookDetailModel.m in Sources */
,
A7B0589C211A80EC00304B38
/* ZXDrinkViewController.m in Sources */
,
...
...
@@ -5243,30 +5240,28 @@
A7F3E17321B5330F00010E23
/* HTTPConnection.m in Sources */
,
1C3AE7C422F0482D0045C969
/* ZXScannerViewController.m in Sources */
,
A745DBFA210089BC00D0C648
/* ZXPutMenuTimeCell.m in Sources */
,
1C8F4A41231E70BC00AAF24A
/* DC_AppointView.m in Sources */
,
1C96F77D22F94227002DCA9B
/* ZXHomePaeFirstRecahrgeView.m in Sources */
,
1C3AE7C322F0482D0045C969
/* SGQRCodeObtainConfigure.m in Sources */
,
2215B61C1F95B12B00C37778
/* BYHelp.m in Sources */
,
A76D690C2111850700E76A6B
/* ZXQuhuoTableViewCell.m in Sources */
,
A7F3E1B321B5330F00010E23
/* XDSLightView.m in Sources */
,
1CB9AF6C237102B400ED0434
/* DC_ZXWashOperationViewController.m in Sources */
,
A745DBF421005E8F00D0C648
/* ZXUnlockingDepositController.m in Sources */
,
A7F3E00221B530F400010E23
/* ZXBookCateDetailController.m in Sources */
,
A7EDBA5E20E4A63E00B329BA
/* ZXWashService.m in Sources */
,
1C8F4A37231E70BC00AAF24A
/* DC_ZXWashOrderPayCell.m in Sources */
,
A7F3E1CC21B5359A00010E23
/* mztools.c in Sources */
,
A756C5A621F9B5960006E418
/* ZXNewPayOrderTableViewCell.m in Sources */
,
A7F3E18E21B5330F00010E23
/* CXHTMLDocument.m in Sources */
,
A745DBE8210022F600D0C648
/* ZXLatticeRightPopView.m in Sources */
,
A740F1EA20E089CB0037EDA3
/* ZXWashOrderPayCell.m in Sources */
,
1C8F4A39231E70BC00AAF24A
/* DC_ShowMsgView.m in Sources */
,
1CD9E56D229CD7D900FFDA29
/* ZXBDSteamTableViewCell.m in Sources */
,
A7F3E02221B530F500010E23
/* ZXBookSearchListCell.m in Sources */
,
1C8F4A4D231E70BD00AAF24A
/* DC_ZXWashScanViewController.m in Sources */
,
A7F3E17021B5330F00010E23
/* DDNumber.m in Sources */
,
1CFDEC9723602A9E007701A5
/* PYSearchConst.m in Sources */
,
1CB3AC092304E369006F1724
/* ZXMePageMenuModel.m in Sources */
,
2215B61D1F95B12B00C37778
/* GraphicsCode.m in Sources */
,
A7F3E1A721B5330F00010E23
/* XDSPhotoBrowser.m in Sources */
,
1CB9AF72237102B500ED0434
/* DC_ZXWashOrderListModel.m in Sources */
,
A7BF950321104276007466F0
/* ZXPercetMoneyModel.m in Sources */
,
A705C01F21D4B067004F1628
/* MWTapDetectingView.m in Sources */
,
A7F3E1B421B5330F00010E23
/* XDSMenuBottomView.m in Sources */
,
...
...
@@ -5278,12 +5273,10 @@
2215B61E1F95B12B00C37778
/* HYSegmentedControl.m in Sources */
,
A7F3E1A321B5330F00010E23
/* XDSReaderUtil.m in Sources */
,
A7DECCA02079F0E30039EC22
/* MBProgressHUD+ShowTextMessage.m in Sources */
,
1C8F4A3C231E70BC00AAF24A
/* DC_ZXChooseCell.m in Sources */
,
A7F3E1A821B5330F00010E23
/* XDSReadPageViewController.m in Sources */
,
A72BE4B621D5CD030069C0E1
/* AlertStyleSimple.m in Sources */
,
1CF4C0AF22F3CCF700944C63
/* ZXHomePageSteamCell.m in Sources */
,
1CB3AC0F23053245006F1724
/* ZXOauthHasDCAccountViewController.m in Sources */
,
1C8F4A45231E70BC00AAF24A
/* DC_CountingDownView.m in Sources */
,
A756C5A321F9B5960006E418
/* ZXNewPayLessMoneyModel.m in Sources */
,
A73F429B20DC9C060074A00D
/* ZXWashPayWayCell.m in Sources */
,
2215B6211F95B12B00C37778
/* MCCustomizeControl.m in Sources */
,
...
...
@@ -5320,6 +5313,7 @@
A756C5AE21F9B5960006E418
/* ZXOrderPayController.m in Sources */
,
1CFDEC9A23602A9E007701A5
/* UIView+PYSearchExtension.m in Sources */
,
1CC256DF234DE9A400C43041
/* ZXBQTChildViewController.m in Sources */
,
1CB9AF66237102B400ED0434
/* DC_CountingDownView.m in Sources */
,
A745DBEE2100303B00D0C648
/* ZXGoPutMenuCell.m in Sources */
,
A705C01A21D4B067004F1628
/* MWGridCell.m in Sources */
,
A7FE8D8C20C8FB330028B721
/* JKDBHelper.m in Sources */
,
...
...
@@ -5332,22 +5326,22 @@
A756C5B121F9B5960006E418
/* ZXNewOrderListViewController.m in Sources */
,
A7F3E1CF21B535C000010E23
/* ioapi.c in Sources */
,
1C96A9EB234C9501000EE043
/* LMHWaterFallLayout.m in Sources */
,
1C8F4A4F231E70BD00AAF24A
/* DC_ZXLocationViewController.m in Sources */
,
A7F3E01521B530F500010E23
/* ZXBookSearchListModel.m in Sources */
,
A7F3E1B521B5330F00010E23
/* XDSMenuTopView.m in Sources */
,
226355041F4D1F1100018E69
/* SaveUserInfoModel.m in Sources */
,
1C03A9F62269BDBA00D39B93
/* APIManager.m in Sources */
,
A7B752FD20A054310056C8F9
/* ContentImageCupView.m in Sources */
,
1C3AE7D322F129B10045C969
/* ZXHomePageViewController.m in Sources */
,
1C8F4A43231E70BC00AAF24A
/* DC_ZXWashOperationCell.m in Sources */
,
A7EC706F20ECC504001504C5
/* ZXWashOrderListModel.m in Sources */
,
A754368C21D331F8005584CC
/* fetchAllDeviceModel.m in Sources */
,
A705C01B21D4B067004F1628
/* MWGridViewController.m in Sources */
,
1C721E3923699A39006E5D3D
/* ZXAliMaRecomondModel.m in Sources */
,
1C39411D230BC9D5005048EB
/* ZXRSReportItemView.m in Sources */
,
A7F3E01721B530F500010E23
/* ZXBookTopModel.m in Sources */
,
1CB9AF5F237102B400ED0434
/* DC_ZXChooseView.m in Sources */
,
A7BC4D6320CA105A009C031D
/* HomeNormalHeader.m in Sources */
,
A756C5A021F9B5960006E418
/* ZXNotPay.m in Sources */
,
1CB9AF5A237102B400ED0434
/* DC_ShowMsgView.m in Sources */
,
225F38911FCE789B00C0B62F
/* AnnounceModel.m in Sources */
,
1C3AE7E622F15BE90045C969
/* ZXHomePageHeader.m in Sources */
,
1C3AE7DD22F131810045C969
/* ZXHomePageFouction.m in Sources */
,
...
...
@@ -5371,7 +5365,6 @@
1C3AE7FB22F18E260045C969
/* ZXHomePageWindowCell.m in Sources */
,
22E36C991F558D1B00073AC2
/* TopUpCell.m in Sources */
,
A7F3E19E21B5330F00010E23
/* XDSMarkModel.m in Sources */
,
1C8F4A40231E70BC00AAF24A
/* DC_ZXReChooseCell.m in Sources */
,
A754367C21D331EA005584CC
/* RateCell.m in Sources */
,
1C5B26B8225B3B7B001B0E1B
/* ZXSettingViewController.m in Sources */
,
A77F92A62175C23100D633B4
/* ZXConfirmPayViewController.m in Sources */
,
...
...
@@ -5386,18 +5379,16 @@
A7F3E17421B5330F00010E23
/* HTTPMessage.m in Sources */
,
A7EC706C20EC9867001504C5
/* ZXWashOrderModel.m in Sources */
,
1CFDEC84235FFD3E007701A5
/* ZXFliterView.m in Sources */
,
1CB9AF65237102B400ED0434
/* DC_ZXWashAimiPayCell.m in Sources */
,
A705BFC021D4AFD8004F1628
/* HTTPErrorResponse.m in Sources */
,
1C8F4A36231E70BC00AAF24A
/* DC_ZXWashService.m in Sources */
,
A7FE8D7020C8DD8C0028B721
/* ZTHomeViewController.m in Sources */
,
A7EDBA6120E4A9FA00B329BA
/* ZXWashMerthinModel.m in Sources */
,
A756C5B021F9B5960006E418
/* ZXNewConfirmPayViewController.m in Sources */
,
229A0E441F99D40700B2A8E3
/* UIView+Shadow.m in Sources */
,
1C8F4A42231E70BC00AAF24A
/* DC_ZXWashMyInvitorCell.m in Sources */
,
A75436E321D34567005584CC
/* XieYiModel.m in Sources */
,
A7F3E13421B5330F00010E23
/* DACircularProgressView.m in Sources */
,
A705BFBE21D4AFD8004F1628
/* HTTPRedirectResponse.m in Sources */
,
A75436DB21D34567005584CC
/* ZXSchoolAreaChooseCell.m in Sources */
,
1C8F4A3F231E70BC00AAF24A
/* DC_WashCLoseTableViewCell.m in Sources */
,
A7F3E18A21B5330F00010E23
/* GTMNSString+HTML.m in Sources */
,
A75436E021D34567005584CC
/* XieYIViewController.m in Sources */
,
A754367521D331EA005584CC
/* BuyRateModel.m in Sources */
,
...
...
@@ -5418,6 +5409,7 @@
A754367721D331EA005584CC
/* MakeBuyCouponsPayTypeModel.m in Sources */
,
2267AF4B1F564A1500F7C44C
/* UseEuipmentHeadView.m in Sources */
,
A7EDB66620FF16380096500B
/* LatticeTableHeader.m in Sources */
,
1CB9AF6E237102B400ED0434
/* DC_ZXWashRecordViewController.m in Sources */
,
A77DE2D020DB6F66002FB903
/* ZXWashRecordViewController.m in Sources */
,
A7F3E17721B5330F00010E23
/* MultipartMessageHeader.m in Sources */
,
A77315612123C35A00E57D6E
/* ZXGoPutFreeCell.m in Sources */
,
...
...
@@ -5431,7 +5423,6 @@
1C88541022C1ECEB00A03328
/* ZXAppointBathModel.m in Sources */
,
22E57B361F8E04C6008A753E
/* UIImage+Image.m in Sources */
,
A7F3E00821B530F500010E23
/* ZXBookTopListController.m in Sources */
,
1C8F4A3D231E70BC00AAF24A
/* DC_ZXWashPayWayCell.m in Sources */
,
A7265BFA20CA76050084B814
/* ExpecptionModel.m in Sources */
,
22E36C971F558D1B00073AC2
/* PayTypeCell.m in Sources */
,
A7F3E00C21B530F500010E23
/* ZXColorfulBookrackController.m in Sources */
,
...
...
@@ -5441,7 +5432,6 @@
1CB3AC1523053BF0006F1724
/* UIImage+Crop.m in Sources */
,
A7F3E18D21B5330F00010E23
/* CXMLNode_CreationExtensions.m in Sources */
,
A75436D921D34567005584CC
/* LoginModel.m in Sources */
,
1C8F4A3E231E70BC00AAF24A
/* DC_ZXChooseView.m in Sources */
,
A7A858CB20BA7A47001917F2
/* ZXSelfHelpViewController.m in Sources */
,
A7EDBA6420E4DD3900B329BA
/* CommonModel.m in Sources */
,
A72BB5AC21115ECC001177BB
/* ZXGetGoodsModel.m in Sources */
,
...
...
@@ -5451,7 +5441,6 @@
1C88540422C1B1D600A03328
/* ZXAppointBathTabbarViewController.m in Sources */
,
225F38941FCE7B5300C0B62F
/* JudgegzStore.m in Sources */
,
1C394128230BC9D5005048EB
/* ZXRGGModel.m in Sources */
,
1C8F4A38231E70BC00AAF24A
/* DC_WashSegHeader.m in Sources */
,
A705C01E21D4B067004F1628
/* MWTapDetectingImageView.m in Sources */
,
A7F3E16A21B5330F00010E23
/* DDLog.m in Sources */
,
22E36CD01F55975500073AC2
/* TicketCell.m in Sources */
,
...
...
@@ -5464,7 +5453,6 @@
A7F3E1BA21B5330F00010E23
/* XDSReadViewConst.m in Sources */
,
22704ACF1F48170900B8D786
/* UserCenterModel.m in Sources */
,
A7C6432C216F0037003E9AE7
/* GTMBase64.m in Sources */
,
1C8F4A44231E70BC00AAF24A
/* DC_ZXWashAimiPayCell.m in Sources */
,
1CFDEC9423602A9E007701A5
/* UIColor+PYSearchExtension.m in Sources */
,
A7EB7E6A20C919FB00B0AF49
/* ZTHomeViewController+Extension.m in Sources */
,
A7F3E17221B5330F00010E23
/* HTTPAuthenticationRequest.m in Sources */
,
...
...
@@ -5481,15 +5469,12 @@
22E36C941F558D1B00073AC2
/* PayModel.m in Sources */
,
2267AF541F565D8300F7C44C
/* DeletTicketModel.m in Sources */
,
A79C9D2920DA1A6B00D7D18E
/* WashSegHeader.m in Sources */
,
1C8F4A48231E70BD00AAF24A
/* DC_ZXPreOrderModel.m in Sources */
,
A7F3E00B21B530F500010E23
/* ZXColorfulBookListController.m in Sources */
,
A7F3E16F21B5330F00010E23
/* DDData.m in Sources */
,
1C8F4A3A231E70BC00AAF24A
/* DC_ZXWashBucketCleanCell.m in Sources */
,
A7A8F43B20A96E4500A129E0
/* YWPrintViewController.m in Sources */
,
A745DBF7210084AB00D0C648
/* ZXPutMenuMessageCell.m in Sources */
,
A756C5A921F9B5960006E418
/* ZXNewPayHeaderTableViewCell.m in Sources */
,
A7B7530020A135310056C8F9
/* FTUploader.m in Sources */
,
1C8F4A52231E70BD00AAF24A
/* DC_ZXWashRecordViewController.m in Sources */
,
1C78597F232F85E30055A494
/* ZXBDTool.m in Sources */
,
22E36CAB1F558D9800073AC2
/* HomeDataModel.m in Sources */
,
1C394120230BC9D5005048EB
/* ZXRSADIsCut.m in Sources */
,
...
...
@@ -5520,12 +5505,17 @@
A705BFBD21D4AFD8004F1628
/* HTTPDynamicFileResponse.m in Sources */
,
A7DF4D34210705EA00A81B7E
/* UIColor+ZXExtension.m in Sources */
,
919420541F3810CE0023BD5D
/* UIBarButtonItem+Item.m in Sources */
,
1CB9AF68237102B400ED0434
/* DC_ZXWashCloseViewController.m in Sources */
,
A7B7D22120CE8A09009B8E29
/* UIViewController+TunTransition.m in Sources */
,
1CB9AF61237102B400ED0434
/* DC_ZXReChooseCell.m in Sources */
,
A754367821D331EA005584CC
/* BuyCouponPayCell.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 */
,
A72BE4B921D5CD030069C0E1
/* AlertStyleDefault.m in Sources */
,
A756C5A521F9B5960006E418
/* ZXPMDView.m in Sources */
,
1CB9AF64237102B400ED0434
/* DC_ZXWashOperationCell.m in Sources */
,
A7F3E1AD21B5330F00010E23
/* XDSMarkViewController.m in Sources */
,
A748D725221CF96500777FFC
/* ZXNewSchool.m in Sources */
,
A745DBF12100572100D0C648
/* ZXLatticePayCell.m in Sources */
,
...
...
@@ -5540,6 +5530,7 @@
A756C5CF21FAA6050006E418
/* TAPageControl.m in Sources */
,
A754368A21D331F8005584CC
/* SearchEquipmenController.m in Sources */
,
A705BF7921D47FB3004F1628
/* YYAnimatedImageView.m in Sources */
,
1CB9AF5B237102B400ED0434
/* DC_ZXWashBucketCleanCell.m in Sources */
,
22E57B451F8E0864008A753E
/* UINavigationController+ABExtras.m in Sources */
,
2256AC391F5D7C4F0060BFE8
/* MyTabViewController.m in Sources */
,
A740F1E720E089B70037EDA3
/* ZXWashOrderShowCell.m in Sources */
,
...
...
@@ -5548,10 +5539,10 @@
A7AB5FEA20AC17D20066950A
/* ZXLoading.m in Sources */
,
225E30F61FB9659500480C8F
/* MZTimerLabel.m in Sources */
,
A7F3E16921B5330F00010E23
/* DDFileLogger.m in Sources */
,
1CB9AF59237102B400ED0434
/* DC_WashSegHeader.m in Sources */
,
A705C02021D4B067004F1628
/* MWZoomingScrollView.m in Sources */
,
A756C5AF21F9B5960006E418
/* ZXNewPayOrderListViewController.m in Sources */
,
A75436E121D34567005584CC
/* FetchCheckCodeModel.m in Sources */
,
1C8F4A4B231E70BD00AAF24A
/* DC_ZXWashLocationModel.m in Sources */
,
1C39411F230BC9D5005048EB
/* ZXContentViewController.m in Sources */
,
A77097E52237A7A4002D9D97
/* ZX_recharge_item.m in Sources */
,
A7F3E1C321B5350600010E23
/* unzip.c in Sources */
,
...
...
@@ -5572,14 +5563,13 @@
1C8AF5402362C1CC00E592E4
/* ZXSearchViewController.m in Sources */
,
A7F3E16D21B5330F00010E23
/* DispatchQueueLogFormatter.m in Sources */
,
1C96F78922F997F0002DCA9B
/* ZXHomePageMeViewController.m in Sources */
,
1CB9AF74237102B500ED0434
/* DC_ZXWashLocationModel.m in Sources */
,
1C394124230BC9D5005048EB
/* ZXNewsViewController.m in Sources */
,
A7FE8D7620C8F7D30028B721
/* New_OperationCell.m in Sources */
,
A783E4452109BC650074623C
/* ChineseString.m in Sources */
,
1C8F4A3B231E70BC00AAF24A
/* DC_ZXWashOrderShowCell.m in Sources */
,
1CFDEC9623602A9E007701A5
/* PYSearchSuggestionViewController.m in Sources */
,
A75436E821D34594005584CC
/* UpdateVersionModel.m in Sources */
,
A7F3E00E21B530F500010E23
/* ZXColorfulTopController.m in Sources */
,
1C8F4A4C231E70BD00AAF24A
/* DC_ZXWashCloseViewController.m in Sources */
,
1CB10F1C233C63C900F94688
/* ZXAdViewService.m in Sources */
,
1CF86307230280FB0007EBC6
/* AppUpdateVersion.m in Sources */
,
A756C5CB21FAA6050006E418
/* SDCycleScrollView.m in Sources */
,
...
...
@@ -5593,7 +5583,6 @@
1CFDEC7E235FE98B007701A5
/* ZXAliMaMaManagerViewController.m in Sources */
,
1CF863122304116A0007EBC6
/* ZXLoginAnimationView.m in Sources */
,
22699A141FA2CBE50045EE9E
/* Utility.m in Sources */
,
1C8F4A51231E70BD00AAF24A
/* DC_ZXWashOrderDetailViewController.m in Sources */
,
A705BF7D21D47FB3004F1628
/* YYSpriteSheetImage.m in Sources */
,
A78DFBCF20D90E5E00F0B920
/* ZXWashCloseViewController.m in Sources */
,
A75436A021D33217005584CC
/* UseCouponsView.m in Sources */
,
...
...
@@ -5603,41 +5592,42 @@
A756C59C21F9B5960006E418
/* oneWangTong.m in Sources */
,
A7F3E1AB21B5330F00010E23
/* XDSCatalogueView.m in Sources */
,
1CF4C0B522F3D45700944C63
/* ZXHomePageWebViewController.m in Sources */
,
1CB9AF5C237102B400ED0434
/* DC_ZXWashOrderShowCell.m in Sources */
,
A75001C621100DAB00A37E69
/* ZXLatticeAdminModel.m in Sources */
,
1CB9AF6D237102B400ED0434
/* DC_ZXWashOrderDetailViewController.m in Sources */
,
A7F3E1A021B5330F00010E23
/* XDSRecordModel.m in Sources */
,
A7FE8D7920C8F7E90028B721
/* New_PublicCell.m in Sources */
,
1CB9AF63237102B400ED0434
/* DC_ZXWashMyInvitorCell.m in Sources */
,
A75436E221D34567005584CC
/* RegisterModel.m in Sources */
,
A7FE8D8D20C8FB330028B721
/* JKDBModel.m in Sources */
,
A7079CDB21BE0E3C0063EDCB
/* ZXTextView.m in Sources */
,
A75436DA21D34567005584CC
/* MQVerCodeImageView.m in Sources */
,
1C8F4A61232135F200AAF24A
/* ZXFullScreenAdView.m in Sources */
,
A705BF7B21D47FB3004F1628
/* YYImage.m in Sources */
,
1C8F4A5523209E1600AAF24A
/* ZXBluetootDevicehManager.m in Sources */
,
A756C5D121FAA6050006E418
/* TAAbstractDotView.m in Sources */
,
1C96F78022F94804002DCA9B
/* ZXHomePageFeedBackViewController.m in Sources */
,
A79C9D2F20DA3A7100D7D18E
/* CountingDownView.m in Sources */
,
A7BFF1DA20D1234200CE350A
/* ZXBannerJumpViewController+Extension.m in Sources */
,
A7F3E17821B5330F00010E23
/* MultipartMessageHeaderField.m in Sources */
,
1CB9AF71237102B400ED0434
/* DC_ZXPreOrderModel.m in Sources */
,
A7DECCE62079F7D40039EC22
/* HMScannerMaskView.m in Sources */
,
1CD9E5622296446E00FFDA29
/* ZXNewPayOrderRechargeCell.m in Sources */
,
A756C5A421F9B5960006E418
/* ZXNewOtherPayTableViewCell.m in Sources */
,
1C96F77722F80301002DCA9B
/* ZXHomePageUpdateAppView.m in Sources */
,
A7F3E1A421B5330F00010E23
/* UIControl+XDSHyperLink.m in Sources */
,
A7EC707220ECE88F001504C5
/* ZXPreOrderModel.m in Sources */
,
1C8F4A47231E70BD00AAF24A
/* DC_ZXWashOperationModel.m in Sources */
,
1C96F78622F9611B002DCA9B
/* ZXHomePageKefuReplyCell.m in Sources */
,
A76D690F21118D8D00E76A6B
/* ZXQuhuoExceptionCell.m in Sources */
,
1C8F4A50231E70BD00AAF24A
/* DC_ZXWashOperationViewController.m in Sources */
,
A7F3E16B21B5330F00010E23
/* DDTTYLogger.m in Sources */
,
1C3AE7E322F133B10045C969
/* ZXHomeSectionInfo.m in Sources */
,
A756C5A221F9B5960006E418
/* ZXYWTPayModel.m in Sources */
,
A756C5AA21F9B5960006E418
/* ZXNewPayTypeTableViewCell.m in Sources */
,
1CF330D7230651D000B066E2
/* ZXSimpleChatModel.m in Sources */
,
1C3AE7DA22F12A700045C969
/* ZXHomePageService.m in Sources */
,
1C8F4A46231E70BC00AAF24A
/* DC_ZXWashOrderModel.m in Sources */
,
A756C59E21F9B5960006E418
/* ZXNewPayGroup.m in Sources */
,
A75436DC21D34567005584CC
/* ZXScollAreaChooseView.m in Sources */
,
22E36CC21F5591B800073AC2
/* FetchTicketAndDevice.m in Sources */
,
1CB9AF58237102B400ED0434
/* DC_ZXWashOrderPayCell.m in Sources */
,
A7F3E00321B530F400010E23
/* ZXBookCateListViewController.m in Sources */
,
1CCB652F234F103700CC4E7B
/* WWWWEbViewController.m in Sources */
,
1C32C15F234C3A9500DBA2E1
/* ZXAliMaMaViewController.m in Sources */
,
...
...
@@ -5669,7 +5659,6 @@
A717C49C20EF00B700571C7C
/* ShowMsgView.m in Sources */
,
A7BF95062110889A007466F0
/* ZXUserQuHuoModel.m in Sources */
,
A7F3E00521B530F500010E23
/* ZXBookOrderDetailViewController.m in Sources */
,
1C8F4A4A231E70BD00AAF24A
/* DC_ZXWashMerthinModel.m in Sources */
,
A756C59F21F9B5960006E418
/* ZXNewPayOrder.m in Sources */
,
A7DECCA32079F0E30039EC22
/* ZXTool.m in Sources */
,
22E57B431F8E0864008A753E
/* NSObject+ABExtras.m in Sources */
,
...
...
@@ -5693,7 +5682,6 @@
A7F3E19021B5330F00010E23
/* CXMLDocument_PrivateExtensions.m in Sources */
,
A73F429820DC9B280074A00D
/* ZXWashBucketCleanCell.m in Sources */
,
A7C8684E2112D4A6001831BA
/* ZXLatticeExceptionModel.m in Sources */
,
1C8F4A4E231E70BD00AAF24A
/* DC_ZXWashTabbarViewController.m in Sources */
,
A740F1E420E081370037EDA3
/* ZXWashOrderDetailViewController.m in Sources */
,
A7F3E18421B5330F00010E23
/* XDSIPHelper.m in Sources */
,
226E12701F5D1F4E00FD9CEF
/* JudgeFirstTopUpModel.m in Sources */
,
...
...
@@ -5710,6 +5698,7 @@
22E36CAC1F558D9800073AC2
/* RefreshBarCodeModel.m in Sources */
,
A75436D621D34567005584CC
/* ZXChooseSchoolViewController.m in Sources */
,
1C8F4A642321EFF800AAF24A
/* ZXAdTool.m in Sources */
,
1CB9AF6F237102B400ED0434
/* DC_ZXWashOrderModel.m in Sources */
,
A754369F21D33217005584CC
/* H5UseCouponsView.m in Sources */
,
A7265BE320CA2AB60084B814
/* ZXPopMenuViewController.m in Sources */
,
A73532012191893400880F45
/* ZXDrinkConfig.m in Sources */
,
...
...
@@ -5723,7 +5712,9 @@
A7DECC972079F0E30039EC22
/* ZXGoodsMsgAlertViewController.m in Sources */
,
1CD9E52622890A1100FFDA29
/* ZXBluetoothModel.m in Sources */
,
A7FE8D7320C8F7B30028B721
/* New_BannerCell.m in Sources */
,
1CB9AF70237102B400ED0434
/* DC_ZXWashOperationModel.m in Sources */
,
A79C9D2C20DA2D0C00D7D18E
/* WashCLoseTableViewCell.m in Sources */
,
1CB9AF5E237102B400ED0434
/* DC_ZXWashPayWayCell.m in Sources */
,
A7DECCE42079F7D40039EC22
/* HMScannerBorder.m in Sources */
,
1CFDEC9523602A9E007701A5
/* PYSearchViewController.m in Sources */
,
A7EB7E6D20C9268E00B0AF49
/* HomeSectionView.m in Sources */
,
...
...
@@ -5731,9 +5722,11 @@
A705BFBF21D4AFD8004F1628
/* HTTPDataResponse.m in Sources */
,
1C39412A230BC9D5005048EB
/* ZXRSNewsManagerController.m in Sources */
,
1C3AE80722F2C2B20045C969
/* ZXHomePageAnnouce.m in Sources */
,
1CB9AF6A237102B400ED0434
/* DC_ZXWashTabbarViewController.m in Sources */
,
A75D12232101757A00C41CE6
/* ZXExceptionDealController.m in Sources */
,
A723B8122112A19D00ED9269
/* ZXUserIsAgreeLatticeModel.m in Sources */
,
A7F3E00421B530F400010E23
/* ZXBookDetailViewController.m in Sources */
,
1CB9AF60237102B400ED0434
/* DC_WashCLoseTableViewCell.m in Sources */
,
1C39412B230BC9D5005048EB
/* ZXRSReportTableViewCell.m in Sources */
,
1C785977232F81440055A494
/* ZXAdViewAdTool.m in Sources */
,
1C3AE7CE22F048600045C969
/* MBProgressHUD+SGQRCode.m in Sources */
,
...
...
@@ -5741,6 +5734,7 @@
1CD9C41222C3103D00C04683
/* ZXAppointBathDeviceListTableViewCell.m in Sources */
,
A705C02121D4B067004F1628
/* UIImage+MWPhotoBrowser.m in Sources */
,
1CF4C0AC22F2DBCA00944C63
/* ZXHomePageMulityNewsCell.m in Sources */
,
1C364F64237292C0006BC78D
/* DCWashBluetoothManager.m in Sources */
,
1CE080522265DBB0005F1A24
/* ZHPickView.m in Sources */
,
A7F3E17621B5330F00010E23
/* MultipartFormDataParser.m in Sources */
,
A7DA71CC214BB38000A21658
/* ZXPayTypeModel.m in Sources */
,
...
...
@@ -5752,7 +5746,9 @@
A75436D721D34567005584CC
/* ZXRegistorViewController.m in Sources */
,
A7F3E1B121B5330F00010E23
/* XDSNoteViewController.m in Sources */
,
A71EF38020FC73860009EA37
/* ZXWisdomLatticeViewController.m in Sources */
,
1CB9AF5D237102B400ED0434
/* DC_ZXChooseCell.m in Sources */
,
A705BF7C21D47FB3004F1628
/* YYImageCoder.m in Sources */
,
1CB9AF6B237102B400ED0434
/* DC_ZXLocationViewController.m in Sources */
,
A7F3E1B921B5330F00010E23
/* XDSReadSettingView.m in Sources */
,
A7F9BD1922267C8F0029B6DC
/* ZXUserModel.m in Sources */
,
A7F3E18721B5330F00010E23
/* XDSReadConfig.m in Sources */
,
...
...
ColorfulSchool/ColorfulSchool.xcworkspace/xcuserdata/liuzhuoxin.xcuserdatad/UserInterfaceState.xcuserstate
View file @
d711926b
No preview for this file type
ColorfulSchool/ColorfulSchool.xcworkspace/xcuserdata/liuzhuoxin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
View file @
d711926b
...
...
@@ -3,4 +3,17 @@
uuid =
"C4FA1D40-0820-4DB8-948B-CEB11FFE9947"
type =
"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>
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/0801HomePage/Controller/ZXHomePageViewController+Extension.m
View file @
d711926b
//
//
...
...
@@ -512,10 +512,15 @@
if
([[
UIApplication
sharedApplication
]
canOpenURL
:
URL
])
{
[[
UIApplication
sharedApplication
]
openURL
:
URL
];
}
else
{
ZXBannerJumpViewController
*
jumpVc
=
[[
ZXBannerJumpViewController
alloc
]
init
];
jumpVc
.
jumpUrl
=
[
@"https:"
stringByAppendingString
:
item
.
coupon_share_url
];
jumpVc
.
hidesBottomBarWhenPushed
=
YES
;
[
self
.
navigationController
pushViewController
:
jumpVc
animated
:
YES
];
if
(
jumpUrl
&&
!
[
jumpUrl
isEqualToString
:
@""
])
{
ZXBannerJumpViewController
*
jumpVc
=
[[
ZXBannerJumpViewController
alloc
]
init
];
jumpVc
.
jumpUrl
=
jumpUrl
;
jumpVc
.
hidesBottomBarWhenPushed
=
YES
;
[
self
.
navigationController
pushViewController
:
jumpVc
animated
:
YES
];
}
else
{
[
ZXTool
showText
:
@"活动已下架,请关注后续活动!"
];
}
}
});
return
;
...
...
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXLocationViewController.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXLocationViewController.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXWashCloseViewController.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXWashCloseViewController.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXWashOperationViewController.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXWashOperationViewController.m
0 → 100644
View file @
d711926b
//
//
// 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
.
0
f
-
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
.
0
f
-
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
.
0
f
,
1
,
kScreenWidth
/
2
.
0
f
,
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
.
0
f
,
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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXWashOrderDetailViewController.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXWashOrderDetailViewController.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXWashRecordViewController.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXWashRecordViewController.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXWashTabbarViewController.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Controller/DC_ZXWashTabbarViewController.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXPreOrderModel.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXPreOrderModel.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashLocationModel.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashLocationModel.m
0 → 100644
View file @
d711926b
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashMerthinModel.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashMerthinModel.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOperationModel.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOperationModel.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOrderListModel.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOrderListModel.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOrderModel.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/Model/DC_ZXWashOrderModel.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_AppointView.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_AppointView.m
0 → 100644
View file @
d711926b
//
//
// 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
.
0
f
:
image
.
size
.
width
*
k6Scale
);
make
.
height
.
mas_equalTo
(
success
?
image
.
size
.
height
*
k6Scale
/
2
.
0
f
:
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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_CountingDownView.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_CountingDownView.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ShowMsgView.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ShowMsgView.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_WashCLoseTableViewCell.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_WashCLoseTableViewCell.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_WashSegHeader.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_WashSegHeader.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXChooseCell.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXChooseCell.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXChooseView.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXChooseView.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXReChooseCell.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXReChooseCell.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashAimiPayCell.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashAimiPayCell.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashBucketCleanCell.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashBucketCleanCell.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashMyInvitorCell.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashMyInvitorCell.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOperationCell.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOperationCell.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOrderPayCell.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOrderPayCell.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOrderShowCell.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashOrderShowCell.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashPayWayCell.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/View/DC_ZXWashPayWayCell.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/ViewModel/DCWashBluetoothManager.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/ViewModel/DCWashBluetoothManager.m
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/ViewModel/DC_ZXWashService.h
0 → 100644
View file @
d711926b
//
//
// 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
ColorfulSchool/ColorfulSchool/Classes/HomePage(首页)/Operation(自助服务)/WashClose(多彩洗衣)/ViewModel/DC_ZXWashService.m
0 → 100644
View file @
d711926b
//
//
// 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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment