diff --git a/vanke.xcodeproj/project.pbxproj b/vanke.xcodeproj/project.pbxproj index 306fa6c971b943cc69d0f9e905ee15809a6e3bc1..33cd96d954337bc929762f02b88cb3ee611d5b4e 100755 --- a/vanke.xcodeproj/project.pbxproj +++ b/vanke.xcodeproj/project.pbxproj @@ -124,7 +124,6 @@ C117866B1C0B4C5200DB7E4B /* bill_remark@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = C11786691C0B4C5200DB7E4B /* bill_remark@3x.png */; }; C11BAB1E1C08BF83007BBCCC /* VankePassengerListBoardCell_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C11BAB1C1C08BF83007BBCCC /* VankePassengerListBoardCell_iPhone.m */; }; C11BAB1F1C08BF83007BBCCC /* VankePassengerListBoardCell_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C11BAB1D1C08BF83007BBCCC /* VankePassengerListBoardCell_iPhone.xml */; }; - C11DD0611C060A9E00DD11E3 /* CDatePickerViewEx.m in Sources */ = {isa = PBXBuildFile; fileRef = C11DD0601C060A9E00DD11E3 /* CDatePickerViewEx.m */; }; C12804D71BC124A3001ECBAA /* VankeWeatherModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C12804D61BC124A3001ECBAA /* VankeWeatherModel.m */; }; C12804DA1BC12A67001ECBAA /* VankeWeatherController.m in Sources */ = {isa = PBXBuildFile; fileRef = C12804D91BC12A67001ECBAA /* VankeWeatherController.m */; }; C12804E01BC2D0BD001ECBAA /* VankeUserModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C12804DF1BC2D0BD001ECBAA /* VankeUserModel.m */; }; @@ -211,8 +210,6 @@ C19BBBE31BBE85D000831290 /* VankeLoginBoard_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C19BBBE11BBE85D000831290 /* VankeLoginBoard_iPhone.xml */; }; C19BBBF91BBE85F500831290 /* VankeMainBoard_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C19BBBE51BBE85F500831290 /* VankeMainBoard_iPhone.m */; }; C19BBBFA1BBE85F500831290 /* VankeMainBoard_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C19BBBE61BBE85F500831290 /* VankeMainBoard_iPhone.xml */; }; - C19BBBFB1BBE85F500831290 /* VankeMainTabBoard_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C19BBBE81BBE85F500831290 /* VankeMainTabBoard_iPhone.m */; }; - C19BBBFC1BBE85F500831290 /* VankeMainTabBoard_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C19BBBE91BBE85F500831290 /* VankeMainTabBoard_iPhone.xml */; }; C19BBBFD1BBE85F500831290 /* VankeServiceBoardCell_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C19BBBEB1BBE85F500831290 /* VankeServiceBoardCell_iPhone.m */; }; C19BBBFE1BBE85F500831290 /* VankeServiceBoardCell_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C19BBBEC1BBE85F500831290 /* VankeServiceBoardCell_iPhone.xml */; }; C19BBBFF1BBE85F500831290 /* VankeServiceDashBoard_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C19BBBEE1BBE85F500831290 /* VankeServiceDashBoard_iPhone.m */; }; @@ -239,6 +236,8 @@ C19BBC2A1BBE894D00831290 /* user_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C19BBC281BBE894D00831290 /* user_icon@2x.png */; }; C19BBC2E1BBE8B5800831290 /* VankeFloorDetailBoard_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C19BBC2C1BBE8B5800831290 /* VankeFloorDetailBoard_iPhone.m */; }; C19BBC2F1BBE8B5800831290 /* VankeFloorDetailBoard_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C19BBC2D1BBE8B5800831290 /* VankeFloorDetailBoard_iPhone.xml */; }; + C1A026241C12C9B400737937 /* VankeSettlementSubjectListAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = C1A026231C12C9B400737937 /* VankeSettlementSubjectListAPI.m */; }; + C1A026271C12CA2900737937 /* VankeStatementSubjectListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C1A026261C12CA2900737937 /* VankeStatementSubjectListModel.m */; }; C1A069FF1BE105140082006F /* VankeAffairsBoard_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C1A069FD1BE105140082006F /* VankeAffairsBoard_iPhone.m */; }; C1A06A001BE105140082006F /* VankeAffairsBoard_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C1A069FE1BE105140082006F /* VankeAffairsBoard_iPhone.xml */; }; C1A06A091BE10B080082006F /* bill.png in Resources */ = {isa = PBXBuildFile; fileRef = C1A06A011BE10B080082006F /* bill.png */; }; @@ -655,6 +654,11 @@ C1DED3381BCEC4B40049BB2D /* user_checked@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C1DED32A1BCEC4B40049BB2D /* user_checked@2x.png */; }; C1DED3391BCEC4B40049BB2D /* user.png in Resources */ = {isa = PBXBuildFile; fileRef = C1DED32B1BCEC4B40049BB2D /* user.png */; }; C1DED33A1BCEC4B40049BB2D /* user@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C1DED32C1BCEC4B40049BB2D /* user@2x.png */; }; + C1E0AD7C1C12FC7200DE6BB9 /* SRMonthPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = C1E0AD7B1C12FC7200DE6BB9 /* SRMonthPicker.m */; }; + C1E0AD841C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C1E0AD7F1C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.m */; }; + C1E0AD851C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C1E0AD801C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.xml */; }; + C1E0AD861C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = C1E0AD811C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.m */; }; + C1E0AD871C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.xml in Resources */ = {isa = PBXBuildFile; fileRef = C1E0AD831C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.xml */; }; C1F790A51C075A09001AEBBB /* VankeSettlementConfirmAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = C1F790A41C075A09001AEBBB /* VankeSettlementConfirmAPI.m */; }; C1F790A81C075A1A001AEBBB /* VankeSettlementRejectAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = C1F790A71C075A1A001AEBBB /* VankeSettlementRejectAPI.m */; }; C1F790AB1C07600E001AEBBB /* VankeStatementConfirmModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C1F790AA1C07600E001AEBBB /* VankeStatementConfirmModel.m */; }; @@ -859,8 +863,6 @@ C11BAB1B1C08BF83007BBCCC /* VankePassengerListBoardCell_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VankePassengerListBoardCell_iPhone.h; path = "floor-list/VankePassengerListBoardCell_iPhone.h"; sourceTree = "<group>"; }; C11BAB1C1C08BF83007BBCCC /* VankePassengerListBoardCell_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VankePassengerListBoardCell_iPhone.m; path = "floor-list/VankePassengerListBoardCell_iPhone.m"; sourceTree = "<group>"; }; C11BAB1D1C08BF83007BBCCC /* VankePassengerListBoardCell_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = VankePassengerListBoardCell_iPhone.xml; path = "floor-list/VankePassengerListBoardCell_iPhone.xml"; sourceTree = "<group>"; }; - C11DD05F1C060A9E00DD11E3 /* CDatePickerViewEx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDatePickerViewEx.h; sourceTree = "<group>"; }; - C11DD0601C060A9E00DD11E3 /* CDatePickerViewEx.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDatePickerViewEx.m; sourceTree = "<group>"; }; C12804D51BC124A3001ECBAA /* VankeWeatherModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeWeatherModel.h; sourceTree = "<group>"; }; C12804D61BC124A3001ECBAA /* VankeWeatherModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VankeWeatherModel.m; sourceTree = "<group>"; }; C12804D81BC12A67001ECBAA /* VankeWeatherController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeWeatherController.h; sourceTree = "<group>"; }; @@ -991,9 +993,6 @@ C19BBBE41BBE85F500831290 /* VankeMainBoard_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VankeMainBoard_iPhone.h; path = main/VankeMainBoard_iPhone.h; sourceTree = "<group>"; }; C19BBBE51BBE85F500831290 /* VankeMainBoard_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VankeMainBoard_iPhone.m; path = main/VankeMainBoard_iPhone.m; sourceTree = "<group>"; }; C19BBBE61BBE85F500831290 /* VankeMainBoard_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = VankeMainBoard_iPhone.xml; path = main/VankeMainBoard_iPhone.xml; sourceTree = "<group>"; }; - C19BBBE71BBE85F500831290 /* VankeMainTabBoard_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VankeMainTabBoard_iPhone.h; path = main/VankeMainTabBoard_iPhone.h; sourceTree = "<group>"; }; - C19BBBE81BBE85F500831290 /* VankeMainTabBoard_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VankeMainTabBoard_iPhone.m; path = main/VankeMainTabBoard_iPhone.m; sourceTree = "<group>"; }; - C19BBBE91BBE85F500831290 /* VankeMainTabBoard_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = VankeMainTabBoard_iPhone.xml; path = main/VankeMainTabBoard_iPhone.xml; sourceTree = "<group>"; }; C19BBBEA1BBE85F500831290 /* VankeServiceBoardCell_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VankeServiceBoardCell_iPhone.h; path = main/VankeServiceBoardCell_iPhone.h; sourceTree = "<group>"; }; C19BBBEB1BBE85F500831290 /* VankeServiceBoardCell_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VankeServiceBoardCell_iPhone.m; path = main/VankeServiceBoardCell_iPhone.m; sourceTree = "<group>"; }; C19BBBEC1BBE85F500831290 /* VankeServiceBoardCell_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = VankeServiceBoardCell_iPhone.xml; path = main/VankeServiceBoardCell_iPhone.xml; sourceTree = "<group>"; }; @@ -1032,6 +1031,10 @@ C19BBC2B1BBE8B5800831290 /* VankeFloorDetailBoard_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VankeFloorDetailBoard_iPhone.h; path = "floor-detail/VankeFloorDetailBoard_iPhone.h"; sourceTree = "<group>"; }; C19BBC2C1BBE8B5800831290 /* VankeFloorDetailBoard_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VankeFloorDetailBoard_iPhone.m; path = "floor-detail/VankeFloorDetailBoard_iPhone.m"; sourceTree = "<group>"; }; C19BBC2D1BBE8B5800831290 /* VankeFloorDetailBoard_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = VankeFloorDetailBoard_iPhone.xml; path = "floor-detail/VankeFloorDetailBoard_iPhone.xml"; sourceTree = "<group>"; }; + C1A026221C12C9B400737937 /* VankeSettlementSubjectListAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeSettlementSubjectListAPI.h; sourceTree = "<group>"; }; + C1A026231C12C9B400737937 /* VankeSettlementSubjectListAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VankeSettlementSubjectListAPI.m; sourceTree = "<group>"; }; + C1A026251C12CA2900737937 /* VankeStatementSubjectListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeStatementSubjectListModel.h; sourceTree = "<group>"; }; + C1A026261C12CA2900737937 /* VankeStatementSubjectListModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VankeStatementSubjectListModel.m; sourceTree = "<group>"; }; C1A069FC1BE105140082006F /* VankeAffairsBoard_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VankeAffairsBoard_iPhone.h; path = affairs/VankeAffairsBoard_iPhone.h; sourceTree = "<group>"; }; C1A069FD1BE105140082006F /* VankeAffairsBoard_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VankeAffairsBoard_iPhone.m; path = affairs/VankeAffairsBoard_iPhone.m; sourceTree = "<group>"; }; C1A069FE1BE105140082006F /* VankeAffairsBoard_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = VankeAffairsBoard_iPhone.xml; path = affairs/VankeAffairsBoard_iPhone.xml; sourceTree = "<group>"; }; @@ -1804,6 +1807,14 @@ C1DED32A1BCEC4B40049BB2D /* user_checked@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "user_checked@2x.png"; path = "img/user_checked@2x.png"; sourceTree = "<group>"; }; C1DED32B1BCEC4B40049BB2D /* user.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = user.png; path = img/user.png; sourceTree = "<group>"; }; C1DED32C1BCEC4B40049BB2D /* user@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "user@2x.png"; path = "img/user@2x.png"; sourceTree = "<group>"; }; + C1E0AD7A1C12FC7200DE6BB9 /* SRMonthPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SRMonthPicker.h; sourceTree = "<group>"; }; + C1E0AD7B1C12FC7200DE6BB9 /* SRMonthPicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SRMonthPicker.m; sourceTree = "<group>"; }; + C1E0AD7E1C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeMainTabBoard_iPhone.h; sourceTree = "<group>"; }; + C1E0AD7F1C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VankeMainTabBoard_iPhone.m; sourceTree = "<group>"; }; + C1E0AD801C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = VankeMainTabBoard_iPhone.xml; sourceTree = "<group>"; }; + C1E0AD811C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VankeTenantTabBoard_iPhone.m; sourceTree = "<group>"; }; + C1E0AD821C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeTenantTabBoard_iPhone.h; sourceTree = "<group>"; }; + C1E0AD831C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = VankeTenantTabBoard_iPhone.xml; sourceTree = "<group>"; }; C1F790A31C075A09001AEBBB /* VankeSettlementConfirmAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeSettlementConfirmAPI.h; sourceTree = "<group>"; }; C1F790A41C075A09001AEBBB /* VankeSettlementConfirmAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VankeSettlementConfirmAPI.m; sourceTree = "<group>"; }; C1F790A61C075A1A001AEBBB /* VankeSettlementRejectAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VankeSettlementRejectAPI.h; sourceTree = "<group>"; }; @@ -1857,7 +1868,7 @@ C10F180A1BF7ACA80065F18C /* ImagePreview */, C18A95461C01F64500429BF7 /* LBorderView */, C10F180D1BF7ACA80065F18C /* Macro */, - C11DD05E1C060A9E00DD11E3 /* MonthYearDatePicker */, + C1E0AD791C12FC7200DE6BB9 /* SRMonthPicker */, C1555F981C04D39600C80B55 /* UIPopoverList */, ); path = 3rd; @@ -2189,15 +2200,6 @@ path = img/settlement; sourceTree = "<group>"; }; - C11DD05E1C060A9E00DD11E3 /* MonthYearDatePicker */ = { - isa = PBXGroup; - children = ( - C11DD05F1C060A9E00DD11E3 /* CDatePickerViewEx.h */, - C11DD0601C060A9E00DD11E3 /* CDatePickerViewEx.m */, - ); - path = MonthYearDatePicker; - sourceTree = "<group>"; - }; C12804F11BC40CE7001ECBAA /* util */ = { isa = PBXGroup; children = ( @@ -2322,12 +2324,10 @@ C19BBBDB1BBE856500831290 /* main */ = { isa = PBXGroup; children = ( + C1E0AD7D1C131D1F00DE6BB9 /* menu */, C19BBBE41BBE85F500831290 /* VankeMainBoard_iPhone.h */, C19BBBE51BBE85F500831290 /* VankeMainBoard_iPhone.m */, C19BBBE61BBE85F500831290 /* VankeMainBoard_iPhone.xml */, - C19BBBE71BBE85F500831290 /* VankeMainTabBoard_iPhone.h */, - C19BBBE81BBE85F500831290 /* VankeMainTabBoard_iPhone.m */, - C19BBBE91BBE85F500831290 /* VankeMainTabBoard_iPhone.xml */, C19BBBEA1BBE85F500831290 /* VankeServiceBoardCell_iPhone.h */, C19BBBEB1BBE85F500831290 /* VankeServiceBoardCell_iPhone.m */, C19BBBEC1BBE85F500831290 /* VankeServiceBoardCell_iPhone.xml */, @@ -2520,6 +2520,8 @@ C10F18721BF8F1830065F18C /* VankeStatementListModel.m */, C1F790AC1C076191001AEBBB /* VankeStatementRejectModel.h */, C1F790AD1C076191001AEBBB /* VankeStatementRejectModel.m */, + C1A026251C12CA2900737937 /* VankeStatementSubjectListModel.h */, + C1A026261C12CA2900737937 /* VankeStatementSubjectListModel.m */, C12804DE1BC2D0BD001ECBAA /* VankeUserModel.h */, C12804DF1BC2D0BD001ECBAA /* VankeUserModel.m */, C12804D51BC124A3001ECBAA /* VankeWeatherModel.h */, @@ -2545,18 +2547,20 @@ C12804E81BC2E2F4001ECBAA /* VankeResponse.m */, C19ADE361BC80DD400206213 /* VankeSaleVolumeAPI.h */, C19ADE371BC80DD400206213 /* VankeSaleVolumeAPI.m */, + C1F790A31C075A09001AEBBB /* VankeSettlementConfirmAPI.h */, + C1F790A41C075A09001AEBBB /* VankeSettlementConfirmAPI.m */, C10F18741BF8F33B0065F18C /* VankeSettlementListAPI.h */, C10F18751BF8F33B0065F18C /* VankeSettlementListAPI.m */, + C1F790A61C075A1A001AEBBB /* VankeSettlementRejectAPI.h */, + C1F790A71C075A1A001AEBBB /* VankeSettlementRejectAPI.m */, + C1A026221C12C9B400737937 /* VankeSettlementSubjectListAPI.h */, + C1A026231C12C9B400737937 /* VankeSettlementSubjectListAPI.m */, C12804E41BC2DDDA001ECBAA /* VankeUserLoginAPI.h */, C12804E51BC2DDDA001ECBAA /* VankeUserLoginAPI.m */, C1CF9F5A1BF4D6EB0033C35E /* VankeVersionAPI.h */, C1CF9F5B1BF4D6EB0033C35E /* VankeVersionAPI.m */, C12804D81BC12A67001ECBAA /* VankeWeatherController.h */, C12804D91BC12A67001ECBAA /* VankeWeatherController.m */, - C1F790A31C075A09001AEBBB /* VankeSettlementConfirmAPI.h */, - C1F790A41C075A09001AEBBB /* VankeSettlementConfirmAPI.m */, - C1F790A61C075A1A001AEBBB /* VankeSettlementRejectAPI.h */, - C1F790A71C075A1A001AEBBB /* VankeSettlementRejectAPI.m */, ); path = controller; sourceTree = "<group>"; @@ -4014,6 +4018,29 @@ path = minizip; sourceTree = "<group>"; }; + C1E0AD791C12FC7200DE6BB9 /* SRMonthPicker */ = { + isa = PBXGroup; + children = ( + C1E0AD7A1C12FC7200DE6BB9 /* SRMonthPicker.h */, + C1E0AD7B1C12FC7200DE6BB9 /* SRMonthPicker.m */, + ); + path = SRMonthPicker; + sourceTree = "<group>"; + }; + C1E0AD7D1C131D1F00DE6BB9 /* menu */ = { + isa = PBXGroup; + children = ( + C1E0AD7E1C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.h */, + C1E0AD7F1C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.m */, + C1E0AD801C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.xml */, + C1E0AD821C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.h */, + C1E0AD811C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.m */, + C1E0AD831C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.xml */, + ); + name = menu; + path = main/menu; + sourceTree = "<group>"; + }; E72B2156ABE650A3D6C56AFA /* Pods */ = { isa = PBXGroup; children = ( @@ -4139,7 +4166,6 @@ C11786491C0B3A5900DB7E4B /* money_add@3x.png in Resources */, C1D595061BB42A6800D297FE /* splash3.xml in Resources */, C11786561C0B3A5900DB7E4B /* salel_input_icon@2x.png in Resources */, - C19BBBFC1BBE85F500831290 /* VankeMainTabBoard_iPhone.xml in Resources */, C19ADE3D1BC8147800206213 /* left_arrow.png in Resources */, C19ADE4A1BC82ADB00206213 /* nav_orange_bg.png in Resources */, C1CF9F531BEFB1530033C35E /* PriorityTagGrey@2x.png in Resources */, @@ -4190,6 +4216,7 @@ C19ADE3E1BC8147800206213 /* left_arrow@2x.png in Resources */, C19BBBFE1BBE85F500831290 /* VankeServiceBoardCell_iPhone.xml in Resources */, C14D6F841BB813D300210172 /* little_up_icon@2x.png in Resources */, + C1E0AD871C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.xml in Resources */, C10F18561BF8AAC90065F18C /* Localizable.strings in Resources */, C1D599B21BB58FD600D297FE /* icon_username@2x.png in Resources */, C19BBC1C1BBE865400831290 /* VankeFloorListBoardCell_iPhone.xml in Resources */, @@ -4203,6 +4230,7 @@ C14D6F781BB8098400210172 /* complaint@2x.png in Resources */, C1DED3311BCEC4B40049BB2D /* business.png in Resources */, C19BBC111BBE861700831290 /* VankeFloorDetailBoardPhoto_iPhone.xml in Resources */, + C1E0AD851C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.xml in Resources */, C1DED3351BCEC4B40049BB2D /* home.png in Resources */, C14D6F661BB8071700210172 /* home_checked@2x.png in Resources */, C1D599B11BB58FD600D297FE /* icon_password@2x.png in Resources */, @@ -4303,6 +4331,7 @@ C10F183F1BF7ACA80065F18C /* IBTSegmentedControl.m in Sources */, C1D599711BB44B2100D297FE /* ASIAuthenticationDialog.m in Sources */, C10F18451BF7ACA80065F18C /* IBTUILabel.m in Sources */, + C1A026241C12C9B400737937 /* VankeSettlementSubjectListAPI.m in Sources */, C1D598941BB44B2000D297FE /* Bee_UICapability.m in Sources */, C1D599721BB44B2100D297FE /* ASIDataCompressor.m in Sources */, C1D599111BB44B2000D297FE /* Bee_UITemplateParserAndroid.m in Sources */, @@ -4343,13 +4372,11 @@ C10F18201BF7ACA80065F18C /* UIView+ViewFrameGeometry.m in Sources */, C1D598AD1BB44B2000D297FE /* Bee_UISearchBar.m in Sources */, C1D5989F1BB44B2000D297FE /* Bee_UIDatePicker.m in Sources */, - C19BBBFB1BBE85F500831290 /* VankeMainTabBoard_iPhone.m in Sources */, C10F18151BF7ACA80065F18C /* NSString+TrimmingAdditions.m in Sources */, C10F18471BF7ACA80065F18C /* IBTUIScrollView.m in Sources */, C1D598A61BB44B2000D297FE /* Bee_UIMenuController.m in Sources */, C10F161C1BF77CA00065F18C /* ICRConfigurationViewController.m in Sources */, C1D598B31BB44B2000D297FE /* Bee_UITextField.m in Sources */, - C11DD0611C060A9E00DD11E3 /* CDatePickerViewEx.m in Sources */, C19BBC191BBE865400831290 /* VankeFloorListBoard_iPhone.m in Sources */, C1D598B81BB44B2000D297FE /* Bee_UIWebView.m in Sources */, C12804FD1BC417A6001ECBAA /* VankeProjectSummaryModel.m in Sources */, @@ -4386,6 +4413,7 @@ C1D598721BB44B2000D297FE /* BeeUIStyle+Builder.m in Sources */, C1D5992C1BB44B2100D297FE /* Bee_MYSQL.m in Sources */, C10F183A1BF7ACA80065F18C /* IBTCommon.m in Sources */, + C1E0AD7C1C12FC7200DE6BB9 /* SRMonthPicker.m in Sources */, C1D599831BB44B2100D297FE /* CXMLDocument.m in Sources */, C1D598FE1BB44B2000D297FE /* Bee_UITransitionFade.m in Sources */, C1D599801BB44B2100D297FE /* Reachability.m in Sources */, @@ -4419,6 +4447,7 @@ C1D598E71BB44B2000D297FE /* UIViewController+BeeUILayout.m in Sources */, C19BBC251BBE869500831290 /* PullLoader.m in Sources */, C1D598CA1BB44B2000D297FE /* Bee_UIMatrixView.m in Sources */, + C1E0AD841C131D1F00DE6BB9 /* VankeMainTabBoard_iPhone.m in Sources */, C10F182E1BF7ACA80065F18C /* ICRCheckBox.m in Sources */, C10F186A1BF8EE2D0065F18C /* VankeStatementDetailListCell_iPhone.m in Sources */, C1CF9F351BEF232A0033C35E /* VankeNoticeListBoard_iPhone.m in Sources */, @@ -4513,6 +4542,7 @@ C1D598F61BB44B2000D297FE /* BeeUIQuery+Manipulation.m in Sources */, C19BBBFD1BBE85F500831290 /* VankeServiceBoardCell_iPhone.m in Sources */, C1D599701BB44B2100D297FE /* Bee_Service.m in Sources */, + C1E0AD861C131D1F00DE6BB9 /* VankeTenantTabBoard_iPhone.m in Sources */, C1CF9F301BEF20DB0033C35E /* VankeNoticeBoard_iPhone.m in Sources */, C1555F421C020F0900C80B55 /* IBTWebProgressBar.m in Sources */, C1D5988D1BB44B2000D297FE /* Bee_UIDataBinding.m in Sources */, @@ -4620,6 +4650,7 @@ C1D599211BB44B2100D297FE /* Bee_FileCache.mm in Sources */, C10F18761BF8F33B0065F18C /* VankeSettlementListAPI.m in Sources */, C18A953A1C01E8E100429BF7 /* ICRAnnouncementDetailHeadView.m in Sources */, + C1A026271C12CA2900737937 /* VankeStatementSubjectListModel.m in Sources */, C19BBBF91BBE85F500831290 /* VankeMainBoard_iPhone.m in Sources */, C1D599261BB44B2100D297FE /* NSObject+BeeUserDefaults.mm in Sources */, C10F18401BF7ACA80065F18C /* IBTTabBarController.m in Sources */, diff --git a/vanke/3rd/MonthYearDatePicker/CDatePickerViewEx.h b/vanke/3rd/MonthYearDatePicker/CDatePickerViewEx.h deleted file mode 100644 index d4c0a6d94c8d0a6fd64284499dedce0c8245ba0f..0000000000000000000000000000000000000000 --- a/vanke/3rd/MonthYearDatePicker/CDatePickerViewEx.h +++ /dev/null @@ -1,30 +0,0 @@ - // -// CDatePickerViewEx.h -// MonthYearDatePicker -// -// Created by Igor on 18.03.13. -// Copyright (c) 2013 Igor. All rights reserved. -// - -@interface CDatePickerViewEx : UIPickerView <UIPickerViewDelegate, UIPickerViewDataSource> - -@property (nonatomic, strong) UIColor *monthSelectedTextColor; -@property (nonatomic, strong) UIColor *monthTextColor; - -@property (nonatomic, strong) UIColor *yearSelectedTextColor; -@property (nonatomic, strong) UIColor *yearTextColor; - -@property (nonatomic, strong) UIFont *monthSelectedFont; -@property (nonatomic, strong) UIFont *monthFont; - -@property (nonatomic, strong) UIFont *yearSelectedFont; -@property (nonatomic, strong) UIFont *yearFont; - -@property (nonatomic, assign) NSInteger rowHeight; - -@property (nonatomic, strong, readonly) NSDate *date; - --(void)setupMinYear:(NSInteger)minYear maxYear:(NSInteger)maxYear; --(void)selectToday; - -@end \ No newline at end of file diff --git a/vanke/3rd/MonthYearDatePicker/CDatePickerViewEx.m b/vanke/3rd/MonthYearDatePicker/CDatePickerViewEx.m deleted file mode 100644 index 7fd0a88be35cb4ffddaa8faaf3dcb3b1c5e4425a..0000000000000000000000000000000000000000 --- a/vanke/3rd/MonthYearDatePicker/CDatePickerViewEx.m +++ /dev/null @@ -1,380 +0,0 @@ - // -// CDatePickerViewEx.m -// MonthYearDatePicker -// -// Created by Igor on 18.03.13. -// Copyright (c) 2013 Igor. All rights reserved. -// - -#import "CDatePickerViewEx.h" - -// Identifiers of components -#define MONTH ( 1 ) -#define YEAR ( 0 ) - - -// Identifies for component views -#define LABEL_TAG 43 - - -@interface CDatePickerViewEx() - -@property (nonatomic, strong) NSIndexPath *todayIndexPath; -@property (nonatomic, strong) NSArray *months; -@property (nonatomic, strong) NSArray *years; - -@property (nonatomic, assign) NSInteger minYear; -@property (nonatomic, assign) NSInteger maxYear; - -@end - -@implementation CDatePickerViewEx - -const NSInteger bigRowCount = 1000; -const NSInteger numberOfComponents = 2; - -#pragma mark - Properties - --(void)setMonthFont:(UIFont *)monthFont -{ - if (monthFont) - { - _monthFont = monthFont; - } -} - --(void)setMonthSelectedFont:(UIFont *)monthSelectedFont -{ - if (monthSelectedFont) - { - _monthSelectedFont = monthSelectedFont; - } -} - --(void)setYearFont:(UIFont *)yearFont -{ - if (yearFont) - { - _yearFont = yearFont; - } -} - --(void)setYearSelectedFont:(UIFont *)yearSelectedFont -{ - if (yearSelectedFont) - { - _yearSelectedFont = yearSelectedFont; - } -} - -#pragma mark - Init - --(instancetype)init -{ - if (self = [super init]) - { - [self loadDefaultsParameters]; - } - return self; -} - --(instancetype)initWithFrame:(CGRect)frame -{ - if (self = [super initWithFrame:frame]) - { - [self loadDefaultsParameters]; - } - return self; -} - --(void)awakeFromNib -{ - [super awakeFromNib]; - - [self loadDefaultsParameters]; -} - -#pragma mark - Open methods - --(NSDate *)date -{ - NSInteger monthCount = self.months.count; - NSString *month = [self.months objectAtIndex:([self selectedRowInComponent:MONTH] % monthCount)]; - - NSInteger yearCount = self.years.count; - NSString *year = [self.years objectAtIndex:([self selectedRowInComponent:YEAR] % yearCount)]; - - NSDateFormatter *formatter = [NSDateFormatter new]; - [formatter setDateFormat:@"MMMM:yyyy"]; - NSDate *date = [formatter dateFromString:[NSString stringWithFormat:@"%@:%@", month, year]]; - return date; -} - -- (void)setupMinYear:(NSInteger)minYear maxYear:(NSInteger)maxYear -{ - self.minYear = minYear; - - if (maxYear > minYear) - { - self.maxYear = maxYear; - } - else - { - self.maxYear = minYear + 10; - } - - self.years = [self nameOfYears]; - self.todayIndexPath = [self todayPath]; -} - --(void)selectToday -{ - [self selectRow: self.todayIndexPath.row - inComponent: MONTH - animated: NO]; - - [self selectRow: self.todayIndexPath.section - inComponent: YEAR - animated: NO]; -} - -#pragma mark - UIPickerViewDelegate - --(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component -{ - return [self componentWidth]; -} - --(UIView *)pickerView: (UIPickerView *)pickerView viewForRow: (NSInteger)row forComponent: (NSInteger)component reusingView: (UIView *)view -{ - BOOL selected = NO; - if(component == MONTH) - { - NSInteger monthCount = self.months.count; - NSString *monthName = [self.months objectAtIndex:(row % monthCount)]; - NSString *currentMonthName = [self currentMonthName]; - if([monthName isEqualToString:currentMonthName] == YES) - { - selected = YES; - } - } - else - { - NSInteger yearCount = self.years.count; - NSString *yearName = [self.years objectAtIndex:(row % yearCount)]; - NSString *currenrYearName = [self currentYearName]; - if([yearName isEqualToString:currenrYearName] == YES) - { - selected = YES; - } - } - - UILabel *returnView = nil; - if(view.tag == LABEL_TAG) - { - returnView = (UILabel *)view; - } - else - { - returnView = [self labelForComponent:component]; - } - - returnView.font = selected ? [self selectedFontForComponent:component] : [self fontForComponent:component]; - returnView.textColor = selected ? [self selectedColorForComponent:component] : [self colorForComponent:component]; - - returnView.text = [self titleForRow:row forComponent:component]; - return returnView; -} - --(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component -{ - return self.rowHeight; -} - -#pragma mark - UIPickerViewDataSource - -- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView -{ - return numberOfComponents; -} - --(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component -{ - if(component == MONTH) - { - return [self bigRowMonthCount]; - } - return [self bigRowYearCount]; -} - -#pragma mark - Util - --(NSInteger)bigRowMonthCount -{ - return self.months.count * bigRowCount; -} - --(NSInteger)bigRowYearCount -{ - return self.years.count * bigRowCount; -} - --(CGFloat)componentWidth -{ -// return (self.bounds.size.width - 100) / numberOfComponents; - return 100.0f; -} - --(NSString *)titleForRow:(NSInteger)row forComponent:(NSInteger)component -{ - if(component == MONTH) - { - NSInteger monthCount = self.months.count; - return [self.months objectAtIndex:(row % monthCount)]; - } - NSInteger yearCount = self.years.count; - return [self.years objectAtIndex:(row % yearCount)]; -} - --(UILabel *)labelForComponent:(NSInteger)component -{ - CGRect frame = CGRectMake(0, 0, [self componentWidth], self.rowHeight); - - UILabel *label = [[UILabel alloc] initWithFrame:frame]; - label.textAlignment = UITextAlignmentCenter; - label.backgroundColor = [UIColor clearColor]; - label.userInteractionEnabled = NO; - - label.tag = LABEL_TAG; - - return label; -} - --(NSArray *)nameOfMonths -{ - return @[@"1月", @"2月", @"3月", @"4月", @"5月", @"6月", @"7月", @"8月", @"9月", @"10月", @"11月", @"12月"]; -} - --(NSArray *)nameOfYears -{ - NSMutableArray *years = [NSMutableArray array]; - - for(NSInteger year = self.minYear; year <= self.maxYear; year++) - { - NSString *yearStr = [NSString stringWithFormat:@"%liå¹´", (long)year]; - [years addObject:yearStr]; - } - return years; -} - --(NSIndexPath *)todayPath // row - month ; section - year -{ - CGFloat row = 0.f; - CGFloat section = 0.f; - - NSString *month = [self currentMonthName]; - NSString *year = [self currentYearName]; - - //set table on the middle - for(NSString *cellMonth in self.months) - { - if([cellMonth isEqualToString:month]) - { - row = [self.months indexOfObject:cellMonth]; - row = row + [self bigRowMonthCount] / 2; - break; - } - } - - for(NSString *cellYear in self.years) - { - if([cellYear isEqualToString:year]) - { - section = [self.years indexOfObject:cellYear]; - section = section + [self bigRowYearCount] / 2; - break; - } - } - - return [NSIndexPath indexPathForRow:row inSection:section]; -} - --(NSString *)currentMonthName -{ - NSDateFormatter *formatter = [NSDateFormatter new]; - NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_Hans_CN"]; - [formatter setLocale:usLocale]; - [formatter setDateFormat:@"MMMM"]; - return [formatter stringFromDate:[NSDate date]]; -} - --(NSString *)currentYearName -{ - NSDateFormatter *formatter = [NSDateFormatter new]; - [formatter setDateFormat:@"yyyy"]; - return [formatter stringFromDate:[NSDate date]]; -} - -- (UIColor *)selectedColorForComponent:(NSInteger)component -{ - if (component == 0) - { - return self.monthSelectedTextColor; - } - return self.yearSelectedTextColor; -} - -- (UIColor *)colorForComponent:(NSInteger)component -{ - if (component == 0) - { - return self.monthTextColor; - } - return self.yearTextColor; -} - -- (UIFont *)selectedFontForComponent:(NSInteger)component -{ - if (component == 0) - { - return self.monthSelectedFont; - } - return self.yearSelectedFont; -} - -- (UIFont *)fontForComponent:(NSInteger)component -{ - if (component == 0) - { - return self.monthFont; - } - return self.yearFont; -} - --(void)loadDefaultsParameters -{ - self.minYear = 2008; - self.maxYear = 2030; - self.rowHeight = 44; - - self.months = [self nameOfMonths]; - self.years = [self nameOfYears]; - self.todayIndexPath = [self todayPath]; - - self.delegate = self; - self.dataSource = self; - - self.monthSelectedTextColor = [UIColor blueColor]; - self.monthTextColor = [UIColor blackColor]; - - self.yearSelectedTextColor = [UIColor blueColor]; - self.yearTextColor = [UIColor blackColor]; - - self.monthSelectedFont = [UIFont boldSystemFontOfSize:17]; - self.monthFont = [UIFont boldSystemFontOfSize:17]; - - self.yearSelectedFont = [UIFont boldSystemFontOfSize:17]; - self.yearFont = [UIFont boldSystemFontOfSize:17]; -} - -@end \ No newline at end of file diff --git a/vanke/3rd/SRMonthPicker/SRMonthPicker.h b/vanke/3rd/SRMonthPicker/SRMonthPicker.h new file mode 100644 index 0000000000000000000000000000000000000000..52de58aec62c626a9a4ac8b9e1a8fdd4c2216acb --- /dev/null +++ b/vanke/3rd/SRMonthPicker/SRMonthPicker.h @@ -0,0 +1,137 @@ +/* + Copyright (C) 2012-2015 Simon Rice + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + */ + +#import <UIKit/UIKit.h> + +#ifndef IBInspectable + #define IBInspectable +#endif + +@class SRMonthPicker; + +/** + Defines a set of optional methods you can use to receive change-related + messages for SRMonthPicker objects. All of the methods in this protocol are + optional. Typically, the delegate implements other optional methods to + respond to new selections. + */ +@protocol SRMonthPickerDelegate <NSObject> + +@optional + +/** + Tells the delegate that a specified date is about to be selected. + @param monthPicker A month picker object informing the delegate about the + impending selection. +*/ +- (void)monthPickerWillChangeDate:(SRMonthPicker *)monthPicker; +/** + Tells the delegate that a specified date has been selected. + @param monthPicker A month picker object informing the delegate about the + committed selection. +*/ +- (void)monthPickerDidChangeDate:(SRMonthPicker *)monthPicker; + +@end + +/** + The SRMonthPicker class implements an object that uses multiple rotating + wheels to allow users to select a month and year. This is similar to both + iOS's UIDatePicker set to Date-only mode without the day element and Mobile + Safari's picker view that appears for an `<input type="month" />` tag. + + Unlike UIDatePicker, SRMonthPicker does inherit from UIPickerView. It does + use both UIPickerViewDataSource and UIPickerViewDelegate, but presents a + monthPickerDelegate property. +*/ +@interface SRMonthPicker : UIPickerView<UIPickerViewDataSource, UIPickerViewDelegate> + +/** + The designated delegate for the month picker. + @warning **Important:** The delegate property is already used internally for + UIPickerView's delegate - **please don't read from or assign to it**! + */ +@property (nonatomic, weak) id<SRMonthPickerDelegate> monthPickerDelegate; + +/** + The date represented by the month picker. + + The day component is ignored when written, and set to 1 when read. + */ +@property (nonatomic, strong) IBInspectable NSDate* date; + +/// The calendar currently being used +@property (nonatomic, strong, readonly) NSCalendar *calendar; + +/// The minimum year that a month picker can show. +@property (nonatomic) IBInspectable NSInteger minimumYear; + +/// The maximum year that a month picker can show. +@property (nonatomic) IBInspectable NSInteger maximumYear; + +/// A Boolean value that determines whether the year is shown first. +@property (nonatomic) IBInspectable BOOL yearFirst; + +/// A Boolean value that determines whether the month wraps +@property (nonatomic) IBInspectable BOOL wrapMonths; + +/// A Boolean value that determines whether the current month & year are coloured. +@property (nonatomic) BOOL enableColourRow; + +/// en-US alias for `enableColourRow`. +@property (nonatomic, getter = enableColourRow, setter = setEnableColourRow:) IBInspectable BOOL enableColorRow; + +/// Font to be used for all rows. Default: System Bold, size 24. +@property (nonatomic, strong) UIFont *font; + +/// Colour to be used for all "non coloured" rows. Default: Black. +@property (nonatomic, strong) UIColor *fontColour; + +/// en-US alias for `fontColour`. +@property (nonatomic, strong, getter = fontColour, setter = setFontColour:) IBInspectable UIColor *fontColor; + +/** + Designated initialiser. + + Initializes and returns a newly allocated month picker with the current calendar, + month & year. +*/ +-(id)init; + +/** + Initializes and returns a newly allocated month picker with the specified + date and current calendar. + @param date The date to be represented by the month picker - the day + component will be ignored. +*/ +-(id)initWithDate:(NSDate *)date; + +/** + Initializes and returns a newly allocated month picker with the specified + date and current calendar. + @param date The date to be represented by the month picker - the day + component will be ignored. + @param calendar The calendar to used by the date. + */ +-(id)initWithDate:(NSDate *)date calendar:(NSCalendar *)calendar; + +@end diff --git a/vanke/3rd/SRMonthPicker/SRMonthPicker.m b/vanke/3rd/SRMonthPicker/SRMonthPicker.m new file mode 100644 index 0000000000000000000000000000000000000000..cfe88b7879ef1c4c144458eb1f1d6f3bb0752ab8 --- /dev/null +++ b/vanke/3rd/SRMonthPicker/SRMonthPicker.m @@ -0,0 +1,365 @@ +/* + Copyright (C) 2012-2015 Simon Rice + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + */ + +#import "SRMonthPicker.h" + +#ifdef NSCalendarUnitMonth +#define NSCalendarUnitMonth NSMonthCalendarUnit +#endif + +#ifdef NSCalendarUnitYear +#define NSCalendarUnitYear NSYearCalendarUnit +#endif + +@interface SRMonthPicker() + +@property (nonatomic) NSInteger monthComponent; +@property (nonatomic) NSInteger yearComponent; +@property (nonatomic, strong, readonly) NSArray* monthStrings; +@property (nonatomic, strong, readonly) NSDateFormatter* monthFormatter; +@property (nonatomic, strong, readonly) NSDateFormatter* yearFormatter; + +-(void)p_prepare; +-(NSInteger)p_yearFromRow:(NSUInteger)row; +-(NSUInteger)p_rowFromYear:(NSInteger)year; + +@end + +@implementation SRMonthPicker + +static const NSInteger SRMonthRowMultiplier = 340; +static const NSInteger SRDefaultMinimumYear = 1; +static const NSInteger SRDefaultMaximumYear = 99999; +static const NSCalendarUnit SRDateComponentFlags = NSCalendarUnitMonth | NSCalendarUnitYear; + +- (id)initWithDate:(NSDate *)date calendar:(NSCalendar *)calendar +{ + self = [super init]; + + if (self) + { + _calendar = calendar; + [self p_prepare]; + [self setDate:date]; + self.showsSelectionIndicator = YES; + } + + return self; +} + +-(id)initWithDate:(NSDate *)date +{ + self = [self initWithDate:date calendar:[NSCalendar currentCalendar]]; + return self; +} + +-(id)init +{ + self = [self initWithDate:[NSDate date] calendar:[NSCalendar currentCalendar]]; + return self; +} + +-(id)initWithCoder:(NSCoder *)aDecoder +{ + self = [super initWithCoder:aDecoder]; + + if (self) + { + _minimumYear = SRDefaultMinimumYear; + _maximumYear = SRDefaultMaximumYear; + [self p_prepare]; + if (!_calendar) + _calendar = [NSCalendar currentCalendar]; + if (!_date) + [self setDate:[NSDate date]]; + } + + return self; +} + +-(id)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + + if (self) + { + _minimumYear = SRDefaultMinimumYear; + _maximumYear = SRDefaultMaximumYear; + + [self p_prepare]; + if (!_calendar) + _calendar = [NSCalendar currentCalendar]; + if (!_date) + [self setDate:[NSDate date]]; + } + + return self; +} + +-(id<UIPickerViewDelegate>)delegate +{ + return self; +} + +-(void)setDelegate:(id<UIPickerViewDelegate>)delegate +{ + if ([delegate isEqual:self]) + [super setDelegate:delegate]; +} + +-(id<UIPickerViewDataSource>)dataSource +{ + return self; +} + +-(void)setDataSource:(id<UIPickerViewDataSource>)dataSource +{ + if ([dataSource isEqual:self]) + [super setDataSource:dataSource]; +} + +-(NSInteger)monthComponent +{ + return self.yearComponent ^ 1; +} + +-(NSInteger)yearComponent +{ + return !self.yearFirst; +} + +-(NSDateFormatter *)monthFormatter { + static NSDateFormatter *formatter; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + formatter = [[NSDateFormatter alloc] init]; + formatter.calendar = self.calendar; + formatter.dateFormat = @"MMMM"; + formatter.locale = [[NSLocale alloc]initWithLocaleIdentifier:@"zh_Hans_CN"]; + }); + return formatter; +} + +-(NSDateFormatter *)yearFormatter { + static NSDateFormatter *formatter; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + formatter = [[NSDateFormatter alloc] init]; + formatter.calendar = self.calendar; + formatter.dateFormat = @"y"; + }); + return formatter; +} + +-(NSArray *)monthStrings +{ + return self.monthFormatter.monthSymbols; +} + +-(void)setYearFirst:(BOOL)yearFirst +{ + _yearFirst = yearFirst; + NSDate* date = self.date; + [self reloadAllComponents]; + [self setNeedsLayout]; + [self setDate:date]; +} + +-(void)setMinimumYear:(NSInteger)minimumYear +{ + NSDate* currentDate = self.date; + NSDateComponents* components = [self.calendar components:SRDateComponentFlags fromDate:currentDate]; + components.timeZone = [NSTimeZone defaultTimeZone]; + + if (components.year < minimumYear) + components.year = minimumYear; + + _minimumYear = minimumYear; + [self reloadAllComponents]; + [self setDate:[self.calendar dateFromComponents:components]]; +} + +-(void)setMaximumYear:(NSInteger)maximumYear +{ + NSDate* currentDate = self.date; + NSDateComponents* components = [self.calendar components:SRDateComponentFlags fromDate:currentDate]; + components.timeZone = [NSTimeZone defaultTimeZone]; + + if (components.year > maximumYear) + components.year = maximumYear; + + _maximumYear = maximumYear; + [self reloadAllComponents]; + [self setDate:[self.calendar dateFromComponents:components]]; +} + +-(void)setWrapMonths:(BOOL)wrapMonths +{ + _wrapMonths = wrapMonths; + [self reloadAllComponents]; +} + +-(void)setDate:(NSDate *)date +{ + NSDateComponents* components = [self.calendar components:SRDateComponentFlags fromDate:date]; + components.timeZone = [NSTimeZone defaultTimeZone]; + + if (self.minimumYear && components.year < self.minimumYear) + components.year = self.minimumYear; + else if (self.maximumYear && components.year > self.maximumYear) + components.year = self.maximumYear; + + if(self.wrapMonths) { + NSInteger monthMidpoint = self.monthStrings.count * (SRMonthRowMultiplier / 2); + + [self selectRow:(components.month - 1 + monthMidpoint) inComponent:self.monthComponent animated:NO]; + } else + [self selectRow:(components.month - 1) inComponent:self.monthComponent animated:NO]; + + [self selectRow:[self p_rowFromYear:components.year] inComponent:self.yearComponent animated:NO]; + + _date = [self.calendar dateFromComponents:components]; +} + +-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component +{ + NSDateComponents* components = [[NSDateComponents alloc] init]; + components.month = 1 + ([self selectedRowInComponent:self.monthComponent] % self.monthStrings.count); + components.year = [self p_yearFromRow:[self selectedRowInComponent:self.yearComponent]]; + + [self willChangeValueForKey:@"date"]; + if ([self.monthPickerDelegate respondsToSelector:@selector(monthPickerWillChangeDate:)]) + [self.monthPickerDelegate monthPickerWillChangeDate:self]; + + _date = [self.calendar dateFromComponents:components]; + + if ([self.monthPickerDelegate respondsToSelector:@selector(monthPickerDidChangeDate:)]) + [self.monthPickerDelegate monthPickerDidChangeDate:self]; + [self didChangeValueForKey:@"date"]; +} + +-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView +{ + return 2; +} + +-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component +{ + if (component == self.monthComponent && !self.wrapMonths) + return self.monthStrings.count; + else if(component == self.monthComponent) + return SRMonthRowMultiplier * self.monthStrings.count; + + NSInteger maxYear = SRDefaultMaximumYear; + if (self.maximumYear) + maxYear = self.maximumYear; + + return [self p_rowFromYear:maxYear] + 1; +} + +-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component +{ + if (component == self.monthComponent) + return 150.0f; + else + return 76.0f; +} + +-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view +{ + CGFloat width = [self pickerView:self widthForComponent:component]; + CGRect frame = CGRectMake(0.0f, 0.0f, width, 45.0f); + + if (component == self.monthComponent) + { + const CGFloat padding = 9.0f; + if (component) { + frame.origin.x += padding; + frame.size.width -= padding; + } + + frame.size.width -= padding; + } + + UILabel* label = [[UILabel alloc] initWithFrame:frame]; + + NSDateFormatter* formatter = nil; + + if (component == self.monthComponent) { + label.text = [self.monthStrings objectAtIndex:(row % self.monthStrings.count)]; + label.textAlignment = component ? NSTextAlignmentLeft : NSTextAlignmentRight; + formatter = self.monthFormatter; + } else { + formatter = self.yearFormatter; + + label.text = [NSString stringWithFormat:@"%ld", (long)[self p_yearFromRow:row]]; + label.textAlignment = NSTextAlignmentCenter; + } + + label.font = self.font; + label.textColor = self.fontColour; + + if (self.enableColourRow && [[formatter stringFromDate:[NSDate date]] isEqualToString:label.text]) + label.textColor = [UIColor colorWithRed:0.0f green:0.35f blue:0.91f alpha:1.0f]; + + label.backgroundColor = [UIColor clearColor]; + label.shadowOffset = CGSizeMake(0.0f, 0.1f); + label.shadowColor = [UIColor whiteColor]; + + return label; +} + +#pragma mark Private Methods + +-(NSInteger)p_yearFromRow:(NSUInteger)row +{ + NSInteger minYear = SRDefaultMinimumYear; + + if (self.minimumYear) + minYear = self.minimumYear; + + return row + minYear; +} + +-(NSUInteger)p_rowFromYear:(NSInteger)year +{ + NSInteger minYear = SRDefaultMinimumYear; + + if (self.minimumYear) + minYear = self.minimumYear; + + return year - minYear; +} + +-(void)p_prepare +{ + self.dataSource = self; + self.delegate = self; + + self.enableColourRow = YES; + self.wrapMonths = YES; + + self.font = [UIFont boldSystemFontOfSize:24.0f]; + self.fontColor = [UIColor blackColor]; +} + +@end diff --git a/vanke/controller/VankeSettlementListAPI.h b/vanke/controller/VankeSettlementListAPI.h index f4ab727561af02c329fb5229b94158d8829163e2..e8ba08d056fcda79b0c671e5e55ff7c2cdbf4d5f 100755 --- a/vanke/controller/VankeSettlementListAPI.h +++ b/vanke/controller/VankeSettlementListAPI.h @@ -39,17 +39,6 @@ @end -// 对账å•ç§‘ç›® -@interface SubjectItem : BeeActiveObject - -@property (nonatomic, strong) NSString *subject; -@property (nonatomic, strong) NSString *beginDate; -@property (nonatomic, strong) NSString *endDate; -@property (nonatomic, strong) NSNumber *direction; -@property (nonatomic, strong) NSNumber *amount; -@property (nonatomic, strong) NSString *remark; - -@end // 对账å•åˆè®¡ @interface StatementShop : BeeActiveObject @@ -61,7 +50,6 @@ @property (nonatomic, strong) NSString *settle; @property (nonatomic, strong) NSNumber *amount; @property (nonatomic, strong) NSString *state; -@property (nonatomic, strong) NSArray *items; // SubjectItem -(NSString*) getPictureUrlOrDefault; -(NSString*) codeName; diff --git a/vanke/controller/VankeSettlementListAPI.m b/vanke/controller/VankeSettlementListAPI.m index d50e9fc1a07451ec86481a9f1b8f01feef8860e7..1c6b5a50560e9331f5aff4c294e5779ca9b7f9fb 100644 --- a/vanke/controller/VankeSettlementListAPI.m +++ b/vanke/controller/VankeSettlementListAPI.m @@ -81,19 +81,6 @@ @end -#pragma SubjectItem - -@implementation SubjectItem - -@synthesize subject = _subject; -@synthesize beginDate = _beginDate; -@synthesize endDate = _endDate; -@synthesize direction = _direction; -@synthesize amount = _amount; -@synthesize remark = _remark; - -@end - #pragma StatementShop @implementation StatementShop @@ -105,7 +92,6 @@ @synthesize settle = _settle; @synthesize amount = _amount; @synthesize state = _state; -@synthesize items = _items; CONVERT_PROPERTY_CLASS(items, SubjectItem) diff --git a/vanke/controller/VankeSettlementSubjectListAPI.h b/vanke/controller/VankeSettlementSubjectListAPI.h new file mode 100755 index 0000000000000000000000000000000000000000..635da193da090ce2f1dd4455d7e8cbc505225379 --- /dev/null +++ b/vanke/controller/VankeSettlementSubjectListAPI.h @@ -0,0 +1,67 @@ +// +// VankeSettlementSubjectListAPI.h +// vanke +// 查询对账å•列表 +// Created by xiaomi on 15/10/8. +// Copyright © 2015å¹´ gomore. All rights reserved. +// + +#import "Bee.h" +#import "VankeBaseAPI.h" +#import "VankeResponse.h" + +@class Paging; +@class SubjectItem; +@class StatementShop; +@class StatementListResponse; + + +/* + * 查询对账å•科目列表 + * http://.../wanke-server/rest/statement?contract={contract}&settleEquals={settleEquals} + */ +@interface VankeSettlementSubjectListAPI : VankeBaseAPI + +// 账期ç‰äºŽ +@property (nonatomic, strong) NSDate *settle; + +// åˆåŒID +@property (nonatomic, strong) NSString *contract; + +@end + +// 对账å•ç§‘ç›® +@interface SubjectItem : BeeActiveObject + +@property (nonatomic, strong) NSString *subject; +@property (nonatomic, strong) NSString *beginDate; +@property (nonatomic, strong) NSString *endDate; +@property (nonatomic, strong) NSNumber *direction; +@property (nonatomic, strong) NSNumber *amount; +@property (nonatomic, strong) NSString *remark; + +@end + +@interface StatementSubjectListResponseData : BeeActiveObject + +@property (nonatomic, strong) NSString *contract; +@property (nonatomic, strong) NSString *shopCode; +@property (nonatomic, strong) NSString *shopName; +@property (nonatomic, strong) NSString *picture; +@property (nonatomic, strong) NSString *settle; +@property (nonatomic, strong) NSNumber *amount; +@property (nonatomic, strong) NSString *state; +@property (nonatomic, strong) NSArray *items; // SubjectItem + +-(NSString*) getPictureUrlOrDefault; +-(NSString*) codeName; +-(BOOL) unconfirmed; + +@end + +// 对账å•返回 +@interface StatementSubjectListResponse : VankeResponse + +@property (nonatomic, strong) StatementSubjectListResponseData *data; + +@end \ No newline at end of file diff --git a/vanke/controller/VankeSettlementSubjectListAPI.m b/vanke/controller/VankeSettlementSubjectListAPI.m new file mode 100644 index 0000000000000000000000000000000000000000..22ae0abbd009266cb53a0c0e98609b03bf421a66 --- /dev/null +++ b/vanke/controller/VankeSettlementSubjectListAPI.m @@ -0,0 +1,124 @@ +// +// VankeSettlementSubjectListAPI.m +// vanke +// +// Created by xiaomi on 15/10/8. +// Copyright © 2015å¹´ gomore. All rights reserved. +// + +#import "VankeSettlementSubjectListAPI.h" +#import "VankeConfig.h" +#import "VankeUtil.h" + +@implementation VankeSettlementSubjectListAPI + +@synthesize settle = _settle; +@synthesize contract = _contract; + +-(void) route:(BeeMessage *)msg { + if (self.sending) + { + if (![self checkToQuery]) { + return; + } + + [self http_get:@"/statement"].PARAM(@"settle", [self getSettleStr]).PARAM(@"contract", self.contract).TIMEOUT(10); + } + else if (self.succeed) + { + NSLog(@"response: %@", self.responseString); + + StatementSubjectListResponse *resp = [StatementSubjectListResponse objectFromDictionary: self.responseJSONDictionary]; + + self.serverResp = resp; + if (nil == self.serverResp) + { + self.failed = YES; + return; + } + } else if (self.failed) { + NSLog(@"response: %@", self.responseString); + self.serverResp = [StatementSubjectListResponse objectFromDictionary: self.responseJSONDictionary]; + } +} + +-(BOOL) checkToQuery { + if (nil == _settle) { + [self setClientError: @"账期ä¸èƒ½ä¸ºç©º"]; + return NO; + } + + if ([VankeUtil isBlankString:_contract]) { + [self setClientError: @"åˆåŒå·ä¸èƒ½ä¸ºç©º"]; + return NO; + } + + return YES; +} + +-(NSString*) getSettleStr { + if (nil == _settle) { + return @""; + } + + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + [dateFormatter setDateFormat:@"yyyyMM"]; + return [dateFormatter stringFromDate:_settle]; +} + +@end + +#pragma SubjectItem + +@implementation SubjectItem +@synthesize subject = _subject; +@synthesize beginDate = _beginDate; +@synthesize endDate = _endDate; +@synthesize direction = _direction; +@synthesize amount = _amount; +@synthesize remark = _remark; +@end + +#pragma StatementSubjectListResponseData + +@implementation StatementSubjectListResponseData +@synthesize contract = _contract; +@synthesize shopCode = _shopCode; +@synthesize shopName = _shopName; +@synthesize picture = _picture; +@synthesize settle = _settle; +@synthesize amount = _amount; +@synthesize state = _state; +@synthesize items = _items; + +CONVERT_PROPERTY_CLASS(items, SubjectItem) + +-(NSString*) getPictureUrlOrDefault { + if ([VankeUtil isBlankString:self.picture]) { + return @"bill_default_image.png"; + } else { + return [NSString stringWithFormat:@"%@/%@", VANKE_SERVER_MEDIA_BASE_URL, self.picture]; + } +} + +-(NSString*) codeName { + return [NSString stringWithFormat:@"%@ %@", _shopCode, _shopName]; +} + +-(BOOL) unconfirmed { + return [_state eq: @"unconfirmed"]; +} + + +@end + +#pragma StatementSubjectListResponse + +@implementation StatementSubjectListResponse + +@synthesize data = _data; + +@end + + + diff --git a/vanke/controller/VankeUserLoginAPI.h b/vanke/controller/VankeUserLoginAPI.h index 2936c9d3d4ea2247d9f82d3e0ff4ae925388e31a..6de15fe4afc6204adbdf266f22574260dec30a17 100755 --- a/vanke/controller/VankeUserLoginAPI.h +++ b/vanke/controller/VankeUserLoginAPI.h @@ -61,6 +61,10 @@ @end +extern NSString *const USER_POSITION_HQ; // 用户èŒä½: 集团 +extern NSString *const USER_POSITION_STORE; // 用户èŒä½: 市场用户 +extern NSString *const USER_POSITION_TENANT; // 用户èŒä½: 商户用户 + // 登录å“åº”æ•°æ® @interface LoginResponseData : BeeActiveObject @@ -89,6 +93,9 @@ // 授æƒç»„织 @property (nonatomic, strong) NSArray *authorizedOrgs; +// èŒä½ +@property (nonatomic, strong) NSString *position; + -(User*) getUser; -(Enterpirse*) getEnterprise; diff --git a/vanke/controller/VankeUserLoginAPI.m b/vanke/controller/VankeUserLoginAPI.m index 7c75e6a8fe31f6492ef32f55256a71204685c8af..bdda90d36c35d6863adfb561c04c673988ff663d 100755 --- a/vanke/controller/VankeUserLoginAPI.m +++ b/vanke/controller/VankeUserLoginAPI.m @@ -81,9 +81,24 @@ @synthesize code; @synthesize name; @synthesize picture; + +-(NSString*) getPicture { + if (![VankeUtil isBlankString:self.picture]) { + return self.picture; + } else { + return @"bill_default_image.png"; + } +} + + @end #pragma mark LoginResponseData + +NSString *const USER_POSITION_HQ = @"hq"; // 用户èŒä½: 集团 +NSString *const USER_POSITION_STORE = @"store"; // 用户èŒä½: 市场用户 +NSString *const USER_POSITION_TENANT = @"tenant"; // 用户èŒä½: 商户用户 + @implementation LoginResponseData //@synthesize user; //@synthesize enterprise; @@ -96,6 +111,7 @@ @synthesize enterprise_name; @synthesize authenticode; @synthesize authorizedOrgs; +@synthesize position; CONVERT_PROPERTY_CLASS(authorizedOrgs, AuthorizedOrg) diff --git a/vanke/framework/mvc/view/dom-element/Bee_UISearchBar.h b/vanke/framework/mvc/view/dom-element/Bee_UISearchBar.h index 3cfc28c75462258403445866376e939601393f24..e3b5e03e226df0576f211ec59137c2ffab119751 100755 --- a/vanke/framework/mvc/view/dom-element/Bee_UISearchBar.h +++ b/vanke/framework/mvc/view/dom-element/Bee_UISearchBar.h @@ -41,6 +41,7 @@ @interface BeeUISearchBar : UISearchBar AS_SIGNAL( SEARCH ) // 点击æœç´¢æŒ‰é’® +AS_SIGNAL( CLEAR ) // 清空输入 @end diff --git a/vanke/framework/mvc/view/dom-element/Bee_UISearchBar.m b/vanke/framework/mvc/view/dom-element/Bee_UISearchBar.m index 75dfa65cebe2a43eec967392acf3b5e9b863fcf8..6a9d8778817ae0bd6b3a0272e52504363a93d053 100755 --- a/vanke/framework/mvc/view/dom-element/Bee_UISearchBar.m +++ b/vanke/framework/mvc/view/dom-element/Bee_UISearchBar.m @@ -45,6 +45,7 @@ } DEF_SIGNAL( SEARCH ) +DEF_SIGNAL( CLEAR ) - (id)init { @@ -101,11 +102,12 @@ DEF_SIGNAL( SEARCH ) } -(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar { - } -(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { - + if ([self.text eq: @""]) { + [self sendUISignal:BeeUISearchBar.CLEAR]; + } } -(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { diff --git a/vanke/model/VankeCommonModel.m b/vanke/model/VankeCommonModel.m index 8139be268da0a3a7a6095079e7283a864289664b..cdfdaec28db1c37a80ef620a54b06ddb89fad012 100755 --- a/vanke/model/VankeCommonModel.m +++ b/vanke/model/VankeCommonModel.m @@ -61,22 +61,15 @@ DEF_SINGLETON(VankeCommonModel) -(NSArray*) getAuthOrgs { LoginResponseData *data = [self getLoginInfo]; - if (nil != data) { - return data.authorizedOrgs; + if (nil != data && nil != data.authorizedOrgs) { + NSArray *sortedArray = [data.authorizedOrgs sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { + NSComparisonResult result = [((AuthorizedOrg*) obj1).code compare:((AuthorizedOrg*) obj2).code]; + return result; + }]; + return sortedArray; } else { return nil; } - // TODO FOR TEST -// NSMutableArray *ary = [[NSMutableArray alloc] initWithCapacity:20]; -// for( int i = 0; i < 20; ++i) { -// AuthorizedOrg *org = [[AuthorizedOrg alloc] init]; -// org.uuid = [NSString stringWithFormat:@"%d", i]; -// org.code = [NSString stringWithFormat:@"CODE%d", i]; -// org.name = [NSString stringWithFormat:@"项目%d", i]; -// org.picture = [NSString stringWithFormat:@"PICTURE%d", i]; -// [ary addObject:org]; -// } -// return ary; } - (NSString*) currentUserPwd { diff --git a/vanke/model/VankeStatementSubjectListModel.h b/vanke/model/VankeStatementSubjectListModel.h new file mode 100755 index 0000000000000000000000000000000000000000..a5efd328a5086205c84245206e2b4f65c1ea6980 --- /dev/null +++ b/vanke/model/VankeStatementSubjectListModel.h @@ -0,0 +1,28 @@ +// +// VankeStatementSubjectListModel.h +// vanke +// +// Created by xiaomi on 15/10/8. +// Copyright © 2015å¹´ gomore. All rights reserved. +// + +#import "Bee.h" +#import "VankeSettlementSubjectListAPI.h" + +@interface VankeStatementSubjectListModel : BeeStreamViewModel + +// 账期ç‰äºŽ +@property (nonatomic, strong) NSDate *settle; + +// åˆåŒç¼–å·ç‰äºŽ +@property (nonatomic, strong) NSString *contract; + +// 科目列表 +@property (nonatomic, strong) NSMutableArray *items; // SubjectItem + +// 最åŽä¸€æ¬¡å“应结果 +@property (nonatomic, strong) StatementSubjectListResponse *lastResp; + +@end + + diff --git a/vanke/model/VankeStatementSubjectListModel.m b/vanke/model/VankeStatementSubjectListModel.m new file mode 100755 index 0000000000000000000000000000000000000000..6b6046591fc659ab2e91027f5ea7c4687c807602 --- /dev/null +++ b/vanke/model/VankeStatementSubjectListModel.m @@ -0,0 +1,107 @@ +// +// VankeStatementSubjectListModel.m +// vanke +// +// Created by xiaomi on 15/10/8. +// Copyright © 2015å¹´ gomore. All rights reserved. +// + +#import "VankeStatementSubjectListModel.h" + +#undef PAGE_SIZE +#define PAGE_SIZE (20) + +@implementation VankeStatementSubjectListModel + +@synthesize settle = _settle; +@synthesize contract = _contract; +@synthesize items = _items; +@synthesize lastResp = _lastResp; + +- (void)load +{ + self.autoSave = YES; + self.autoLoad = YES; + self.items = [NSMutableArray array]; +} + +- (void)unload +{ + self.settle = nil; + self.contract = nil; + self.items = nil; +} + +#pragma mark - paging query + +- (void)firstPage +{ + [self gotoPage:1]; +} + +- (void)nextPage +{ + if ( self.items.count ) + { + [self gotoPage:(self.items.count / PAGE_SIZE + 1)]; + } +} + +- (void)gotoPage:(NSUInteger)page { + [VankeSettlementSubjectListAPI cancel]; + + VankeSettlementSubjectListAPI *api = [VankeSettlementSubjectListAPI api]; + + @weakify(api); + @weakify(self); + + api.settle = self.settle; + api.contract = self.contract; + + api.whenUpdate = ^ + { + @normalize(api); + @normalize(self); + + if ( api.sending ) + { + [self sendUISignal:self.RELOADING]; + } + else + { + if ( api.succeed ) + { + StatementSubjectListResponse *resp = (StatementSubjectListResponse*) api.serverResp; + self.lastResp = resp; + if ( nil == resp || nil == resp.data || nil == resp.data.items ) + { + api.failed = YES; + } + else + { + if ( page <= 1 ) + { + [self.items removeAllObjects]; + [self.items addObjectsFromArray:resp.data.items]; + } + else + { + [self.items addObjectsFromArray:resp.data.items]; + [self.items unique:^NSComparisonResult(id left, id right) { + return [((SubjectItem*)left).subject compare:((SubjectItem*)right).subject]; + }]; + } + + self.more = NO; + self.loaded = YES; + } + } + + [self sendUISignal:self.RELOADED]; + } + }; + + [api send]; +} + +@end diff --git a/vanke/view_iPhone/templates/VankeAppBoard_iPhone.m b/vanke/view_iPhone/templates/VankeAppBoard_iPhone.m index 07efe474fa215eae4e927522fe732be4f21fe4fb..e351b0dec0b769f5043b1efe3b91e87c5c61b682 100755 --- a/vanke/view_iPhone/templates/VankeAppBoard_iPhone.m +++ b/vanke/view_iPhone/templates/VankeAppBoard_iPhone.m @@ -9,11 +9,13 @@ #import "VankeAppBoard_iPhone.h" #import "VankeUtil.h" +#import "VankeCommonModel.h" #import "VankeMainBoard_iPhone.h" #import "VankeLoginBoard_iPhone.h" #import "VankeAffairsBoard_iPhone.h" #import "VankeMainTabBoard_iPhone.h" #import "ICRSystemViewController.h" +#import "VankeTenantTabBoard_iPhone.h" #import "ICRModifyPwdViewController.h" #pragma mark - @@ -22,7 +24,9 @@ { BeeUIRouter * _router; UIWindow * _login; - VankeMainTabBoard_iPhone* _tabbar; + + VankeMainTabBoard_iPhone* _mainTabbar; + VankeTenantTabBoard_iPhone* _tenantTabbar; } @end @@ -61,9 +65,6 @@ ON_CREATE_VIEWS( signal ) [_router map:@"me" toClass:[ICRSystemViewController class]]; [self.view addSubview:_router.view]; - _tabbar = [VankeMainTabBoard_iPhone cell]; - [self.view addSubview:_tabbar]; - [self createAndShowLoginWindow]; [self observeNotification:VankeLoginBoard_iPhone.SUCC_LOGIN]; [self observeNotification:ICRSystemViewController.SUCC_LOGOUT]; @@ -112,19 +113,51 @@ ON_DID_DISAPPEAR( signal ) #pragma notification +#define HideLoginViewAnimationName @"LoginViewAnimation" + ON_NOTIFICATION3( VankeLoginBoard_iPhone, SUCC_LOGIN, notification ) { - [UIView beginAnimations:@"fadeIn" context:nil]; + [UIView beginAnimations:HideLoginViewAnimationName context:nil]; [UIView setAnimationDuration:0.5]; - [self removeLoginWindow]; - _router.view.alpha = 1.0f; + [UIView setAnimationCurve: UIViewAnimationCurveEaseOut]; + [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES]; + [UIView setAnimationDelegate:self]; [UIView commitAnimations]; - // æ‰“å¼€é»˜è®¤é¡µé¢ - [_router open:@"home" animated:YES]; - BeeUIBoard *curBoard = _router.currentBoard; - if (nil != curBoard && [curBoard isKindOfClass:[VankeMainBoard_iPhone class]]) { - [((VankeMainBoard_iPhone*) curBoard).summaryModel reload]; + LoginResponseData *loginInfo = [[VankeCommonModel sharedInstance] getLoginInfo]; + BOOL isTenant = [USER_POSITION_TENANT eq: loginInfo.position]; + if (isTenant) { + _tenantTabbar = [VankeTenantTabBoard_iPhone cell]; + [self.view addSubview:_tenantTabbar]; + } else { + _mainTabbar = [VankeMainTabBoard_iPhone cell]; + [self.view addSubview:_mainTabbar]; + } +} + +// ä»£ç†æ–¹æ³•,检测动画介ç»ç„¶åŽè¿›è¡Œå…¶ä»–æ“作 还有其他两个方法 +- (void)animationDidStop:(NSString *)animationId finished:(NSNumber *)finished context:(void *)context +{ + if ([animationId isEqualToString:HideLoginViewAnimationName]) { + [_login removeFromSuperview]; + _login = nil; + + LoginResponseData *loginInfo = [[VankeCommonModel sharedInstance] getLoginInfo]; + BOOL isTenant = [USER_POSITION_TENANT eq: loginInfo.position]; + NSString *tabName = nil; + if (isTenant) { + tabName = [_tenantTabbar showAndSelectFirst]; + } else { + tabName = [_mainTabbar showAndSelectFirst]; + } + + _router.view.alpha = 1.0f; + [_router open:tabName animated:YES]; +// // æ‰“å¼€é»˜è®¤é¡µé¢ +// BeeUIBoard *curBoard = _router.currentBoard; +// if (nil != curBoard && [curBoard isKindOfClass:[VankeMainBoard_iPhone class]]) { +// [((VankeMainBoard_iPhone*) curBoard).summaryModel reload]; +// } } } @@ -141,11 +174,8 @@ ON_NOTIFICATION3( ICRModifyPwdViewController, SUCC_LOGOUT, notification ) ON_NOTIFICATION3( VankeAppBoard_iPhone, HIDE_MENU, notification ) { NSString *userObj = notification.object; - if ([@"YES" eq:userObj]) { - _tabbar.hidden = YES; - } else { - _tabbar.hidden = NO; - } + UIView *curTab = [self currentTab]; + curTab.hidden = [@"YES" eq:userObj]; [self relayoutContentView]; } @@ -163,6 +193,15 @@ ON_SIGNAL3( VankeMainTabBoard_iPhone, me, signal ) { [_router open:@"me" animated:YES]; } +ON_SIGNAL3( VankeTenantTabBoard_iPhone, affairs, signal ) +{ + [_router open:@"affairs" animated:YES]; +} + +ON_SIGNAL3( VankeTenantTabBoard_iPhone, me, signal ) +{ + [_router open:@"me" animated:YES]; +} -(void) createAndShowLoginWindow { // 先检查登录 @@ -176,16 +215,21 @@ ON_SIGNAL3( VankeMainTabBoard_iPhone, me, signal ) * é‡ç½®routerå’Œèœå• */ -(void) relayoutContentView { + UIView *tab = [self currentTab]; + if (nil == tab) { + return; + } + CGRect frame1; frame1.size.width = self.viewSize.width; frame1.size.height = 45.0f; frame1.origin.x = 0.0; frame1.origin.y = self.view.bounds.size.height - 45.0f; - _tabbar.frame = frame1; + tab.frame = frame1; CGRect frame2; frame2.size.width = self.viewSize.width; - if (_tabbar.hidden) { + if (tab.hidden) { frame2.size.height = self.viewSize.height; } else { frame2.size.height = self.viewSize.height - 45.0f; @@ -195,14 +239,6 @@ ON_SIGNAL3( VankeMainTabBoard_iPhone, me, signal ) _router.view.frame = frame2; } -/** - * åˆ é™¤ç™»å½•çª—å£ - */ --(void) removeLoginWindow { - [_login removeFromSuperview]; - _login = nil; -} - /** * 退出登录 */ @@ -210,8 +246,21 @@ ON_SIGNAL3( VankeMainTabBoard_iPhone, me, signal ) [self createAndShowLoginWindow]; _router.view.alpha = 0.0f; - [_tabbar selectHome]; - [_router open:@"home" animated:NO]; + UIView *tab = [self currentTab]; + [tab removeFromSuperview]; + tab = nil; +// [_tabbar showAndSelectFirst]; +// [_router open:@"home" animated:NO]; +} + +-(UIView*) currentTab { + UIView *tab = nil; + if (nil != _mainTabbar) { + tab = _mainTabbar; + } else if (nil != _tenantTabbar) { + tab = _tenantTabbar; + } + return tab; } @end \ No newline at end of file diff --git a/vanke/view_iPhone/templates/affairs/VankeAffairsBoard_iPhone.m b/vanke/view_iPhone/templates/affairs/VankeAffairsBoard_iPhone.m index cac83f2d288e04ecd1b7b9fcfba39b23b608b286..3575320c2d95d53168db173d4ef552f31f276b9c 100644 --- a/vanke/view_iPhone/templates/affairs/VankeAffairsBoard_iPhone.m +++ b/vanke/view_iPhone/templates/affairs/VankeAffairsBoard_iPhone.m @@ -17,6 +17,7 @@ #import "VankeAffairsBoard_iPhone.h" #import "VankeUtil.h" +#import "GEToast.h" #import "VankeCommonModel.h" #import "VankeAppBoard_iPhone.h" #import "VankeNoticeListBoard_iPhone.h" @@ -106,7 +107,10 @@ ON_SIGNAL3(VankeAffairsBoard_iPhone, btnBill, signal) { [self showStatementList:org]; } else { CGFloat xWidth = self.view.bounds.size.width - 20.0f; - CGFloat yHeight = 400.0f; + CGFloat yHeight = authorizedOrgs.count * 60 + 50; + if (yHeight > 400) { + yHeight = 400.0f; + } CGFloat yOffset = (self.view.bounds.size.height - yHeight)/2.0f; UIPopoverListView *poplistview = [[UIPopoverListView alloc] initWithFrame:CGRectMake(10, yOffset, xWidth, yHeight)]; poplistview.delegate = self; @@ -118,11 +122,11 @@ ON_SIGNAL3(VankeAffairsBoard_iPhone, btnBill, signal) { } ON_SIGNAL3(VankeAffairsBoard_iPhone, btnSaleInput, signal) { - INFO(@"button sale input pressed."); + [GEToast showWithText:@"销售录入æ£åœ¨å¼€å‘ä¸..." bottomOffset:60.0f duration:1.0f]; } ON_SIGNAL3(VankeAffairsBoard_iPhone, btnServiceApply, signal) { - INFO(@"button service apply pressed."); + [GEToast showWithText:@"æœåŠ¡ç”³è¯·æ£åœ¨å¼€å‘ä¸..." bottomOffset:60.0f duration:1.0f]; } #pragma mark - UIPopoverListViewDataSource @@ -168,7 +172,7 @@ ON_SIGNAL3(VankeAffairsBoard_iPhone, btnServiceApply, signal) { [[VankeAppBoard_iPhone sharedInstance] hideMenu]; VankeStatementListBoard_iPhone *board = [VankeStatementListBoard_iPhone board]; - board.authorizedOrgUuidEquals = org.uuid; + board.authorizedOrgUuidEquals = org.code; [self.stack pushBoard:board animated:YES]; } diff --git a/vanke/view_iPhone/templates/login/VankeLoginBoard_iPhone.m b/vanke/view_iPhone/templates/login/VankeLoginBoard_iPhone.m index 742dee7e1f306281717cbd6fe3b6d5928e924da6..6e20625d2d5344129514d918d75bf517339690da 100755 --- a/vanke/view_iPhone/templates/login/VankeLoginBoard_iPhone.m +++ b/vanke/view_iPhone/templates/login/VankeLoginBoard_iPhone.m @@ -121,7 +121,7 @@ ON_SIGNAL3( VankeLoginBoard_iPhone, btnLogin, signal ) ON_SIGNAL3( VankeLoginBoard_iPhone, txtUserName, signal ) { if ([signal is:BeeUITextField.CLEAR]) { - [self setLoginButtonEnabled: NO]; + [self setLoginButtonEnabled:NO]; } else { [self refreshLoginButtonStyle]; } diff --git a/vanke/view_iPhone/templates/main/VankeMainBoard_iPhone.m b/vanke/view_iPhone/templates/main/VankeMainBoard_iPhone.m index e78de03e95edfeeaa3eaab43b472ae88c84f4c8e..ccfe1e9632dc20e799c13da8f603ee98394444a9 100755 --- a/vanke/view_iPhone/templates/main/VankeMainBoard_iPhone.m +++ b/vanke/view_iPhone/templates/main/VankeMainBoard_iPhone.m @@ -84,6 +84,7 @@ ON_WILL_APPEAR( signal ) [BeeUIRouter sharedInstance].view.pannable = YES; self.navigationBarShown = NO; [[VankeAppBoard_iPhone sharedInstance] showMenu]; + [_summaryModel reload]; } ON_DID_APPEAR( signal ) diff --git a/vanke/view_iPhone/templates/main/VankeMainTabBoard_iPhone.h b/vanke/view_iPhone/templates/main/VankeMainTabBoard_iPhone.h deleted file mode 100755 index be09651e2d1be1b45c47f70dda1eb8615e2f023e..0000000000000000000000000000000000000000 --- a/vanke/view_iPhone/templates/main/VankeMainTabBoard_iPhone.h +++ /dev/null @@ -1,17 +0,0 @@ - - -#import "Bee.h" - -#pragma mark - - -@interface VankeMainTabBoard_iPhone : BeeUICell - -AS_OUTLET( BeeUIButton, home ); -AS_OUTLET( BeeUIButton, affairs ); -AS_OUTLET( BeeUIButton, me ); - -- (void)selectHome; -- (void)selectAffairs; -- (void)selectMe; - -@end diff --git a/vanke/view_iPhone/templates/main/menu/VankeMainTabBoard_iPhone.h b/vanke/view_iPhone/templates/main/menu/VankeMainTabBoard_iPhone.h new file mode 100755 index 0000000000000000000000000000000000000000..54ba07f7e4a21e9fbf1e8df5f8ba40825a5785cc --- /dev/null +++ b/vanke/view_iPhone/templates/main/menu/VankeMainTabBoard_iPhone.h @@ -0,0 +1,24 @@ + + +#import "Bee.h" + +#pragma mark - + +extern NSString *const MAIN_TAB_NAME_HOME; // home +extern NSString *const MAIN_TAB_NAME_AFFAIRS; // affairs +extern NSString *const MAIN_TAB_NAME_ME; // me + +@interface VankeMainTabBoard_iPhone : BeeUICell + +AS_OUTLET( BeeUIButton, home ); +AS_OUTLET( BeeUIButton, affairs ); +AS_OUTLET( BeeUIButton, me ); + +- (void)selectHome; +- (void)selectAffairs; +- (void)selectMe; + +-(NSString*) showAndSelectFirst; +-(void) hideTab: (NSString*) tabName visible: (BOOL) visible; + +@end diff --git a/vanke/view_iPhone/templates/main/VankeMainTabBoard_iPhone.m b/vanke/view_iPhone/templates/main/menu/VankeMainTabBoard_iPhone.m similarity index 62% rename from vanke/view_iPhone/templates/main/VankeMainTabBoard_iPhone.m rename to vanke/view_iPhone/templates/main/menu/VankeMainTabBoard_iPhone.m index 23419e5426c8e35de94ef4570595df3a15e1e6af..409e58be10f43b136854bf47a7e124ab1f1af3f0 100755 --- a/vanke/view_iPhone/templates/main/VankeMainTabBoard_iPhone.m +++ b/vanke/view_iPhone/templates/main/menu/VankeMainTabBoard_iPhone.m @@ -1,6 +1,11 @@ #import "VankeMainTabBoard_iPhone.h" +#import "VankeCommonModel.h" + +NSString *const MAIN_TAB_NAME_HOME = @"home"; // home +NSString *const MAIN_TAB_NAME_AFFAIRS = @"affairs"; // affairs +NSString *const MAIN_TAB_NAME_ME = @"me"; // me #pragma mark - @@ -19,6 +24,17 @@ DEF_OUTLET( BeeUIButton, home ); DEF_OUTLET( BeeUIButton, affairs ); DEF_OUTLET( BeeUIButton, me ); +- (void)load +{ +} + +- (void)unload +{ +} + +- (void)dataDidChanged { +} + - (void)selectHome { [self removeActiveClass]; @@ -50,6 +66,27 @@ DEF_OUTLET( BeeUIButton, me ); } } +-(NSString*) showAndSelectFirst { + if ([self.home visible]) { + [self selectHome]; + return MAIN_TAB_NAME_HOME; + } else if ([self.affairs visible]) { + [self selectAffairs]; + return MAIN_TAB_NAME_AFFAIRS; + } else { + [self selectMe]; + return MAIN_TAB_NAME_ME; + } +} + +-(void) hideTab: (NSString*) tabName visible: (BOOL) visible { + if (visible) { + $(tabName).SHOW(); + } else { + $(tabName).HIDE(); + } +} + ON_SIGNAL3( VankeMainTabBoard_iPhone, home, signal ) { [self selectHome]; diff --git a/vanke/view_iPhone/templates/main/VankeMainTabBoard_iPhone.xml b/vanke/view_iPhone/templates/main/menu/VankeMainTabBoard_iPhone.xml similarity index 100% rename from vanke/view_iPhone/templates/main/VankeMainTabBoard_iPhone.xml rename to vanke/view_iPhone/templates/main/menu/VankeMainTabBoard_iPhone.xml diff --git a/vanke/view_iPhone/templates/main/menu/VankeTenantTabBoard_iPhone.h b/vanke/view_iPhone/templates/main/menu/VankeTenantTabBoard_iPhone.h new file mode 100755 index 0000000000000000000000000000000000000000..cc5e6f915ab4cbc6c63e7e5b38b27044c48bc370 --- /dev/null +++ b/vanke/view_iPhone/templates/main/menu/VankeTenantTabBoard_iPhone.h @@ -0,0 +1,21 @@ + + +#import "Bee.h" + +#pragma mark - + +extern NSString *const TENANT_TAB_NAME_AFFAIRS; // affairs +extern NSString *const TENANT_TAB_NAME_ME; // me + +@interface VankeTenantTabBoard_iPhone : BeeUICell + +AS_OUTLET( BeeUIButton, affairs ); +AS_OUTLET( BeeUIButton, me ); + +- (void)selectAffairs; +- (void)selectMe; + +-(NSString*) showAndSelectFirst; +-(void) hideTab: (NSString*) tabName visible: (BOOL) visible; + +@end diff --git a/vanke/view_iPhone/templates/main/menu/VankeTenantTabBoard_iPhone.m b/vanke/view_iPhone/templates/main/menu/VankeTenantTabBoard_iPhone.m new file mode 100755 index 0000000000000000000000000000000000000000..1ed2400fed9ec7d567d2f88a857c8aaa3a5894d5 --- /dev/null +++ b/vanke/view_iPhone/templates/main/menu/VankeTenantTabBoard_iPhone.m @@ -0,0 +1,88 @@ + + +#import "VankeTenantTabBoard_iPhone.h" +#import "VankeCommonModel.h" + +NSString *const TENANT_TAB_NAME_AFFAIRS = @"affairs"; // affairs +NSString *const TENANT_TAB_NAME_ME = @"me"; // me + +#pragma mark - + +@interface VankeTenantTabBoard_iPhone() +{ + //<#@private var#> +} +@end + +@implementation VankeTenantTabBoard_iPhone + +SUPPORT_RESOURCE_LOADING(YES) +SUPPORT_AUTOMATIC_LAYOUT(YES) + +DEF_OUTLET( BeeUIButton, affairs ); +DEF_OUTLET( BeeUIButton, me ); + +- (void)load +{ +} + +- (void)unload +{ +} + +- (void)dataDidChanged { +} + +- (void)selectAffairs +{ + [self removeActiveClass]; + [self addActiveClass:$(self.affairs) relayout:YES]; +} + +- (void)selectMe +{ + [self removeActiveClass]; + [self addActiveClass:$(self.me) relayout:YES]; +} + +- (void) removeActiveClass { + $(self.affairs).REMOVE_CLASS( @"active" ); + $(self.me).REMOVE_CLASS( @"active" ); +} + +- (void) addActiveClass: (BeeUIQuery*) activeItem relayout: (BOOL) relayout { + activeItem.ADD_CLASS( @"active" ); + if (relayout) { + self.RELAYOUT(); + } +} + +-(NSString*) showAndSelectFirst { + if ([self.affairs visible]) { + [self selectAffairs]; + return TENANT_TAB_NAME_AFFAIRS; + } else { + [self selectMe]; + return TENANT_TAB_NAME_ME; + } +} + +-(void) hideTab: (NSString*) tabName visible: (BOOL) visible { + if (visible) { + $(tabName).SHOW(); + } else { + $(tabName).HIDE(); + } +} + +ON_SIGNAL3( VankeTenantTabBoard_iPhone, affairs, signal ) +{ + [self selectAffairs]; +} + +ON_SIGNAL3( VankeTenantTabBoard_iPhone, me, signal ) +{ + [self selectMe]; +} + +@end diff --git a/vanke/view_iPhone/templates/main/menu/VankeTenantTabBoard_iPhone.xml b/vanke/view_iPhone/templates/main/menu/VankeTenantTabBoard_iPhone.xml new file mode 100755 index 0000000000000000000000000000000000000000..c7c6c171e328aab99dcdc70cb2ae71dca57257d9 --- /dev/null +++ b/vanke/view_iPhone/templates/main/menu/VankeTenantTabBoard_iPhone.xml @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="utf-8" ?> + +<template namespace="VankeTenantTabBoard_iPhone" version="1"> + + <linear class="wrapper" orientation="h"> + <image id="bg"/> + + <linear orientation="v" class="item"> + <button id="affairs" class="icon" /> + </linear> + + <linear orientation="v" class="item"> + <button id="me" class="icon" /> + </linear> + + </linear> + + <style type="text/css"> + #bg { + image-mode: fit; + position: absolute; + left: 0; + top: 0; + background-color: white; + } + + .wrapper { + width: 100%; + height: 100%; + } + + .item { + width: 50%; + height: 100%; + color: gray; + font-size: 13px; + font-weight: lighter; + v-align: center; + } + + .icon { + height: 40px; + image-mode: center; + } + + #affairs { + image-src: url(home.png); + } + + #affairs.active { + image-src: url(home_checked.png); + } + + #me { + image-src: url(user.png); + } + + #me.active { + image-src: url(user_checked.png); + } + </style> +</template> + diff --git a/vanke/view_iPhone/templates/notice/VankeNoticeListBoard_iPhone.xml b/vanke/view_iPhone/templates/notice/VankeNoticeListBoard_iPhone.xml index 009e2dc0508749160164ce8db3a8c003f32852bf..0211c0fe48ef813786fe203e3107f513be7edc96 100644 --- a/vanke/view_iPhone/templates/notice/VankeNoticeListBoard_iPhone.xml +++ b/vanke/view_iPhone/templates/notice/VankeNoticeListBoard_iPhone.xml @@ -25,23 +25,24 @@ } .segment-wrapper { - height: 30px; + height: 50px; width: 100%; position: absolute; left: 0px; - top: 70px; + top: 64px; align: center; + v-align: center; } #segment { - height: 100%; + height: 30px; width: 80%; } #list { position: absolute; left: 0px; - top: 45px; + top: 51px; width: 100%; height: 100%; } diff --git a/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.h b/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.h index f0e108645e04c8249f00b41d5fddac83b1ad11af..fb28c76186438084c8df8b609bf4c4d29e133cda 100644 --- a/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.h +++ b/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.h @@ -17,20 +17,21 @@ #import "Bee.h" #import "VankeBaseBoard.h" -#import "VankeStatementListModel.h" +#import "VankeSettlementListAPI.h" +#import "VankeStatementSubjectListModel.h" #import "VankeStatementDetailMonthCell_iPhone.h" #pragma mark - @interface VankeStatementDetailListBoard_iPhone : VankeBaseBoard -AS_MODEL( VankeStatementListModel, model ) +AS_MODEL( VankeStatementSubjectListModel, model ) AS_OUTLET( BeeUIScrollView, list ) AS_OUTLET( VankeStatementDetailMonthCell_iPhone, settlementBar) AS_OUTLET( BeeUIImageView, imgState) -@property (nonatomic, strong) NSString *authorizedOrgUuidEquals; @property (nonatomic, strong) NSDate *settleEquals; +@property (nonatomic, strong) NSString *contractEquals; @property (nonatomic, strong) StatementShop *data; @end diff --git a/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.m b/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.m index 5c24d25f558f112c7460dbc23314563bcbb31f5d..10f37a3baef9ac3bf5dd4f23fb3a9012322adab1 100644 --- a/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.m +++ b/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.m @@ -20,9 +20,11 @@ #import "FootLoader.h" #import "VankeUtil.h" #import "GEToast.h" +#import "SRMonthPicker.h" #import "NoDataCell_iPhoneCell.h" #import "VankeStatementRejectModel.h" #import "VankeStatementConfirmModel.h" +#import "VankeStatementSubjectListModel.h" #import "VankeStatementDetailListCell_iPhone.h" #import "VankeStatementDetailMonthCell_iPhone.h" @@ -43,7 +45,7 @@ SUPPORT_RESOURCE_LOADING( YES ) @synthesize data = _data; @synthesize settleEquals = _settleEquals; -@synthesize authorizedOrgUuidEquals = _authorizedOrgUuidEquals; +@synthesize contractEquals = _contractEquals; DEF_MODEL( VankeStatementListModel, model ) DEF_OUTLET( BeeUIScrollView, list ) @@ -52,7 +54,7 @@ DEF_OUTLET( BeeUIImageView, imgState) - (void)load { - self.model = [VankeStatementListModel modelWithObserver:self]; + self.model = [VankeStatementSubjectListModel modelWithObserver:self]; confirmModel = [VankeStatementConfirmModel modelWithObserver:self]; rejectModel = [VankeStatementRejectModel modelWithObserver:self]; } @@ -88,8 +90,6 @@ ON_LAYOUT_VIEWS( signal ) ON_WILL_APPEAR( signal ) { self.navigationBarShown = YES; - // [self.list reloadData]; - if ( NO == self.model.loaded ) { [self.model firstPage]; @@ -120,23 +120,28 @@ ON_DID_DISAPPEAR( signal ) #pragma mark model -ON_SIGNAL3( VankeStatementListModel, RELOADING, signal ) +ON_SIGNAL3( VankeStatementSubjectListModel, RELOADING, signal ) { [GEToast showProgress:self.view]; self.list.headerLoading = YES; self.list.footerLoading = YES; } -ON_SIGNAL3( VankeStatementListModel, RELOADED, signal ) +ON_SIGNAL3( VankeStatementSubjectListModel, RELOADED, signal ) { [GEToast hideProgress]; self.list.headerLoading = NO; self.list.footerLoading = NO; self.list.footerMore = self.model.more; [self.list reloadData]; - $(self.settlementBar).DATA(_data); - $(self.imgState).DATA([NSString stringWithFormat:@"%@_big.png", _data.state]); - [self showOperButtons: [_data unconfirmed]]; + + StatementSubjectListResponseData *respData = _model.lastResp.data; + if (nil != respData) { + self.title = [respData codeName]; + $(self.settlementBar).DATA(respData); + $(self.imgState).DATA([NSString stringWithFormat:@"%@_big.png", _data.state]); + [self showOperButtons: [_data unconfirmed]]; + } } ON_SIGNAL3( VankeStatementConfirmModel, RELOADING, signal ) { @@ -172,17 +177,26 @@ ON_SIGNAL3( VankeStatementRejectModel, RELOADED, signal ) { #pragma VankeStatementDetailMonthCell_iPhone +-(SRMonthPicker*) buildMonthPicker { + NSCalendar *calendar = [NSCalendar currentCalendar]; + calendar.locale = [[NSLocale alloc]initWithLocaleIdentifier:@"zh_Hans_CN"]; + SRMonthPicker *picker = [[SRMonthPicker alloc] initWithDate: _settleEquals calendar: calendar]; + picker.yearFirst = YES; + NSDate *today = [NSDate date]; + picker.maximumYear = today.year; + picker.minimumYear = 2000; + return picker; +} + ON_SIGNAL3(VankeStatementDetailMonthCell_iPhone, pickerMask, signal) { UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"\n\n\n\n\n\n\n\n\n\n" message:nil preferredStyle:UIAlertControllerStyleActionSheet]; - UIDatePicker *picker = [[UIDatePicker alloc] init]; - [picker setDatePickerMode:UIDatePickerModeDate]; - [picker setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_Hans_CN"]]; + SRMonthPicker *picker = [self buildMonthPicker]; [alertController.view addSubview:picker]; [alertController addAction:({ UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { // ç«‹å³è®¾ç½®è´¦æœŸ self.settleEquals = picker.date; - self.model.settleEquals = self.settleEquals; + self.model.settle = self.settleEquals; [self.model firstPage]; }]; action; @@ -218,7 +232,7 @@ ON_SIGNAL3(VankeStatementDetailListBoard_iPhone, btnConfirm, signal) { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyyMM"]; NSString *settleStr = [dateFormatter stringFromDate:_settleEquals]; - [confirmModel confirm: _data.contract settle:settleStr]; + [confirmModel confirm: _model.contract settle:settleStr]; }]; [alertController addAction:cancelAction]; [alertController addAction:archiveAction]; @@ -236,7 +250,7 @@ ON_SIGNAL3(VankeStatementDetailListBoard_iPhone, btnConfirm, signal) { [dateFormatter setDateFormat:@"yyyyMM"]; NSString *settleStr = [dateFormatter stringFromDate:_settleEquals]; - [rejectModel reject:_data.contract settle:settleStr message:msgField.text]; + [rejectModel reject:_model.contract settle:settleStr message:msgField.text]; } } } @@ -267,10 +281,9 @@ ON_SIGNAL3(VankeStatementDetailListBoard_iPhone, btnConfirm, signal) { self.list.whenReloading = ^ { - [self initCurrentData]; - self.list.total = _data.items.count; + self.list.total = _model.items.count; - INFO(@"total = %d", _data.items.count); + INFO(@"total = %d", _model.items.count); if (self.list.total <= 0) { self.list.total = 1; @@ -288,7 +301,7 @@ ON_SIGNAL3(VankeStatementDetailListBoard_iPhone, btnConfirm, signal) { item.order = 0; item.rule = BeeUIScrollLayoutRule_Fall; item.clazz = [VankeStatementDetailListCell_iPhone class]; - SubjectItem *subject = [_data.items safeObjectAtIndex:item.index]; + SubjectItem *subject = [_model.items safeObjectAtIndex:item.index]; item.data = subject; } } @@ -314,22 +327,9 @@ ON_SIGNAL3(VankeStatementDetailListBoard_iPhone, btnConfirm, signal) { { [self.model nextPage]; }; - - if (![VankeUtil isBlankString:_data.shopCode]) { - _model.shopLike = _data.shopCode; - } - _model.projectsIn = [[NSArray alloc] initWithObjects:_authorizedOrgUuidEquals, nil]; - _model.settleEquals = _settleEquals; -} --(void) initCurrentData { - for (StatementShop *shop in _model.shops) { - if (nil != _data && nil != _data.shopCode && [_data.shopCode eq:shop.shopCode]) { - _data = shop; - break; - } - } + _model.settle = _settleEquals; + _model.contract = _contractEquals; } - @end diff --git a/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.xml b/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.xml index 1e39416f66a49719dd9d36bafc5d0abc5f345719..099251c9ea8469e151867f716da44a91de3ccf01 100644 --- a/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.xml +++ b/vanke/view_iPhone/templates/statement/VankeStatementDetailListBoard_iPhone.xml @@ -39,7 +39,7 @@ #list { position: absolute; left: 0px; - top: 75px; + top: 69px; width: 100%; height: 100%; } @@ -49,7 +49,7 @@ width: 100%; position: absolute; left: 0px; - top: 64px; + top: 60px; } .image-state { diff --git a/vanke/view_iPhone/templates/statement/VankeStatementDetailListCell_iPhone.m b/vanke/view_iPhone/templates/statement/VankeStatementDetailListCell_iPhone.m index ba8260192d1eaefc5687aecf6fbadb50efc93a39..e2627a9ac1e0da4ec095469bb2dc3962350565f7 100644 --- a/vanke/view_iPhone/templates/statement/VankeStatementDetailListCell_iPhone.m +++ b/vanke/view_iPhone/templates/statement/VankeStatementDetailListCell_iPhone.m @@ -16,7 +16,7 @@ // #import "VankeStatementDetailListCell_iPhone.h" -#import "VankeSettlementListAPI.h" +#import "VankeSettlementSubjectListAPI.h" #import "VankeUtil.h" #pragma mark - @@ -60,20 +60,7 @@ DEF_OUTLET(BeeUILabel, lblDateRange) } $(self.lblAmount).DATA([NSString stringWithFormat:@"%.2f ", [item.amount doubleValue]]); - - NSString *beginDate = [self trancateToDateString: item.beginDate]; - NSString *endDate = [self trancateToDateString: item.endDate]; - $(self.lblDateRange).DATA([NSString stringWithFormat:@"%@ 至 %@", beginDate, endDate]); -} - --(NSString*) trancateToDateString: (NSString*) dateTimeStr { - NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; - [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; - NSDate *date = [dateFormatter dateFromString:dateTimeStr]; - - NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init]; - [dateFormatter2 setDateFormat:@"yyyy-MM-dd"]; - return [dateFormatter2 stringFromDate:date]; + $(self.lblDateRange).DATA([NSString stringWithFormat:@"%@ 至 %@", item.beginDate, item.endDate]); } - (void)layoutDidFinish diff --git a/vanke/view_iPhone/templates/statement/VankeStatementDetailMonthCell_iPhone.m b/vanke/view_iPhone/templates/statement/VankeStatementDetailMonthCell_iPhone.m index 2da171ee149a682797b72e1287be3bae1a9bd0f4..db3e5e86483edd50dafcf9e66116d763294cd1b7 100644 --- a/vanke/view_iPhone/templates/statement/VankeStatementDetailMonthCell_iPhone.m +++ b/vanke/view_iPhone/templates/statement/VankeStatementDetailMonthCell_iPhone.m @@ -16,7 +16,9 @@ // #import "VankeStatementDetailMonthCell_iPhone.h" +#import "VankeCommonModel.h" #import "VankeSettlementListAPI.h" +#import "VankeSettlementSubjectListAPI.h" #pragma mark - @@ -41,18 +43,39 @@ DEF_OUTLET( BeeUILabel, lblTotalPrefix ) - (void)dataDidChanged { - StatementShop *shop = (StatementShop*) self.data; - if (nil == shop) { - return; + NSDate *settleDate = nil; + NSNumber *amount = nil; + + if ([self.data isKindOfClass:[StatementShop class]]) { + StatementShop *shop = (StatementShop*) self.data; + if (nil != shop) { + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + [dateFormatter setDateFormat:@"yyyy-MM-dd"]; + settleDate = [dateFormatter dateFromString:shop.settle]; + amount = shop.amount; + } + } else if ([self.data isKindOfClass:[StatementSubjectListResponseData class]]) { + StatementSubjectListResponseData *subject = (StatementSubjectListResponseData*) self.data; + if (nil != subject) { + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + [dateFormatter setDateFormat:@"yyyyMM"]; + settleDate = [dateFormatter dateFromString:subject.settle]; + amount = subject.amount; + } } - NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; - [dateFormatter setDateFormat:@"yyyyMM"]; - NSDate *settleDate = [dateFormatter dateFromString:shop.settle]; [self setSettleDate:settleDate]; - - NSNumber *amount = shop.amount; $(self.lblAmount).DATA([NSString stringWithFormat:@"%.2f ", nil == amount? 0.0f:[amount doubleValue]]); + + VankeCommonModel *model = [VankeCommonModel sharedInstance]; + LoginResponseData *loginInfo = [model getLoginInfo]; + if (nil != loginInfo) { + if ([USER_POSITION_TENANT eq:loginInfo.position]) { + $(self.lblTotalPrefix).DATA(@"本期应付金é¢"); + } else { + $(self.lblTotalPrefix).DATA(@"本期应收金é¢"); + } + } } - (void)layoutDidFinish diff --git a/vanke/view_iPhone/templates/statement/VankeStatementListBoard_iPhone.m b/vanke/view_iPhone/templates/statement/VankeStatementListBoard_iPhone.m index dda3a52f53c5cd96a884b30c0b63ee5bb7d4247a..3c3ee2316754ab1a2100926c49f7fc869e0137ab 100644 --- a/vanke/view_iPhone/templates/statement/VankeStatementListBoard_iPhone.m +++ b/vanke/view_iPhone/templates/statement/VankeStatementListBoard_iPhone.m @@ -20,7 +20,7 @@ #import "FootLoader.h" #import "VankeUtil.h" #import "GEToast.h" -#import "CDatePickerViewEx.h" +#import "SRMonthPicker.h" #import "NoDataCell_iPhoneCell.h" #import "VankeStatementListItemCell_iPhone.h" #import "VankeStatementDetailListBoard_iPhone.h" @@ -136,15 +136,21 @@ ON_SIGNAL3( VankeStatementListModel, RELOADED, signal ) #pragma VankeStatementMonthCell_iPhone +-(SRMonthPicker*) buildMonthPicker { + NSCalendar *calendar = [NSCalendar currentCalendar]; + calendar.locale = [[NSLocale alloc]initWithLocaleIdentifier:@"zh_Hans_CN"]; + SRMonthPicker *picker = [[SRMonthPicker alloc] initWithDate: _settlementBar.settleDate calendar: calendar]; + picker.yearFirst = YES; + NSDate *today = [NSDate date]; + picker.maximumYear = today.year; + picker.minimumYear = 2000; + return picker; +} + ON_SIGNAL3(VankeStatementMonthCell_iPhone, pickerMask, signal) { UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"\n\n\n\n\n\n\n\n\n\n" message:nil preferredStyle:UIAlertControllerStyleActionSheet]; -// CDatePickerViewEx *picker = [[CDatePickerViewEx alloc] init]; - UIDatePicker *picker = [[UIDatePicker alloc]init]; - [picker setDatePickerMode:UIDatePickerModeDate]; - [picker setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_Hans_CN"]]; - if (nil != _settlementBar.settleDate) { - [picker setDate:_settlementBar.settleDate]; - } + + SRMonthPicker *picker = [self buildMonthPicker]; [alertController.view addSubview:picker]; [alertController addAction:({ UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { @@ -173,7 +179,7 @@ ON_SIGNAL3(VankeStatementListItemCell_iPhone, mask, signal) { VankeStatementDetailListBoard_iPhone *board = [VankeStatementDetailListBoard_iPhone board]; board.data = cellValue; board.settleEquals = _model.settleEquals; - board.authorizedOrgUuidEquals = _authorizedOrgUuidEquals; + board.contractEquals = cellValue.contract; [self.stack pushBoard:board animated:YES]; } @@ -208,7 +214,7 @@ ON_SIGNAL3(VankeStatementListItemCell_iPhone, mask, signal) { } else { for ( BeeUIScrollItem *item in self.list.items ) { - item.size = CGSizeMake( self.list.width / self.list.lineCount, 70 ); + item.size = CGSizeMake( self.list.width / self.list.lineCount, 80 ); item.order = 0; item.rule = BeeUIScrollLayoutRule_Fall; item.clazz = [VankeStatementListItemCell_iPhone class]; @@ -241,7 +247,11 @@ ON_SIGNAL3(VankeStatementListItemCell_iPhone, mask, signal) { _model.shopLike = _shopLike; _model.projectsIn = [[NSArray alloc] initWithObjects:_authorizedOrgUuidEquals, nil]; - _model.settleEquals = [NSDate date]; + + NSDateFormatter *df = [[NSDateFormatter alloc]init]; + df.dateFormat = @"yyyy-MM-dd"; +// _model.settleEquals = [NSDate date]; + _model.settleEquals = [df dateFromString:@"2015-10-11"]; } @end diff --git a/vanke/view_iPhone/templates/statement/VankeStatementListBoard_iPhone.xml b/vanke/view_iPhone/templates/statement/VankeStatementListBoard_iPhone.xml index 1235602fca104a8275c7fabdd2fa288b5cf3bb82..2ac27e991503ff1b343e4a228c0f766fe981e838 100644 --- a/vanke/view_iPhone/templates/statement/VankeStatementListBoard_iPhone.xml +++ b/vanke/view_iPhone/templates/statement/VankeStatementListBoard_iPhone.xml @@ -5,7 +5,7 @@ <image class="bg" /> <list id="list"/> <VankeStatementMonthCell_iPhone id="settlementBar" /> - <searchbar id="searchBar" class="search-wrapper" /> + <searchbar id="searchBar" /> </linear> <style type="text/css"> @@ -27,30 +27,30 @@ background-color: #fafafa; } - #list { - position: absolute; - left: 0px; - top: 120px; - width: 100%; - height: 100%; - } - #settlementBar { height: 75px; width: 100%; position: absolute; left: 0px; - top: 64px; + top: 60px; } - .search-wrapper { + #searchBar { height: 45px; width: 100%; position: absolute; left: 0px; - top: 139px; + top: 132px; placeholder: "è¯·è¾“å…¥å•†å®¶ä»£ç æˆ–åç§°"; } + #list { + position: absolute; + left: 0px; + top: 115px; + width: 100%; + height: 100%; + } + </style> </ui> diff --git a/vanke/view_iPhone/templates/statement/VankeStatementListItemCell_iPhone.xml b/vanke/view_iPhone/templates/statement/VankeStatementListItemCell_iPhone.xml index 6e5973e9095d71eaf7c6c0a6fd66ec5f4732591c..da364be2b83aea1e4c0738cf43015b88e8365824 100644 --- a/vanke/view_iPhone/templates/statement/VankeStatementListItemCell_iPhone.xml +++ b/vanke/view_iPhone/templates/statement/VankeStatementListItemCell_iPhone.xml @@ -74,7 +74,7 @@ } .photo-col { - width: 25%; + width: 20%; } .photo-col .photo { @@ -86,8 +86,8 @@ } .name-col { - width: 35%; - margin-right: 5px; + width: 40%; + padding-right: 10px; } .name-col .name { diff --git a/vanke/view_iPhone/templates/statement/VankeStatementMonthCell_iPhone.m b/vanke/view_iPhone/templates/statement/VankeStatementMonthCell_iPhone.m index cae4fb2c282d2dba0d724ed7d518968d94f5ea91..28d6ffa83e647c560db7e096693203be162e1089 100644 --- a/vanke/view_iPhone/templates/statement/VankeStatementMonthCell_iPhone.m +++ b/vanke/view_iPhone/templates/statement/VankeStatementMonthCell_iPhone.m @@ -17,6 +17,7 @@ #import "VankeStatementMonthCell_iPhone.h" #import "VankeSettlementListAPI.h" +#import "VankeCommonModel.h" #pragma mark - @@ -57,6 +58,16 @@ DEF_OUTLET( BeeUILabel, lblTotalPrefix ) NSNumber *amount = resp.data.amount; $(self.lblAmount).DATA([NSString stringWithFormat:@"%.2f ", nil == amount? 0.0f:[amount doubleValue]]); + + VankeCommonModel *model = [VankeCommonModel sharedInstance]; + LoginResponseData *loginInfo = [model getLoginInfo]; + if (nil != loginInfo) { + if ([USER_POSITION_TENANT eq:loginInfo.position]) { + $(self.lblTotalPrefix).DATA(@"应付金é¢"); + } else { + $(self.lblTotalPrefix).DATA(@"应收金é¢"); + } + } } - (void)layoutDidFinish