Commit 98bbaba8 authored by pete谢兆麟's avatar pete谢兆麟

Merge branch 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into develop

# Conflicts:
#	galaxy/galaxy.xcodeproj/project.pbxproj
parents e0695060 e366f050
...@@ -55,6 +55,13 @@ ...@@ -55,6 +55,13 @@
04256DEE2C73338200A37BA4 /* YHGrabNumberListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DED2C73338200A37BA4 /* YHGrabNumberListCell.swift */; }; 04256DEE2C73338200A37BA4 /* YHGrabNumberListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DED2C73338200A37BA4 /* YHGrabNumberListCell.swift */; };
04256DF02C733B2D00A37BA4 /* YHGrabNumberInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DEF2C733B2D00A37BA4 /* YHGrabNumberInfoView.swift */; }; 04256DF02C733B2D00A37BA4 /* YHGrabNumberInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DEF2C733B2D00A37BA4 /* YHGrabNumberInfoView.swift */; };
04256DF22C734E7E00A37BA4 /* YHGrabFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DF12C734E7E00A37BA4 /* YHGrabFileCell.swift */; }; 04256DF22C734E7E00A37BA4 /* YHGrabFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DF12C734E7E00A37BA4 /* YHGrabFileCell.swift */; };
04256DF42C73626900A37BA4 /* YHServiceSelectAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DF32C73626900A37BA4 /* YHServiceSelectAlertView.swift */; };
04256DF62C736A0800A37BA4 /* YHServiceItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DF52C736A0800A37BA4 /* YHServiceItemCell.swift */; };
04256DF82C73726C00A37BA4 /* YHCerAppointViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DF72C73726C00A37BA4 /* YHCerAppointViewModel.swift */; };
04256DFA2C742A1500A37BA4 /* YHFamilyGroupModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DF92C742A1500A37BA4 /* YHFamilyGroupModel.swift */; };
04256DFC2C742C7D00A37BA4 /* YHFamilyInfoConfirmViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DFB2C742C7D00A37BA4 /* YHFamilyInfoConfirmViewModel.swift */; };
04256DFE2C743CB700A37BA4 /* YHCertificateInfoPhotoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DFD2C743CB700A37BA4 /* YHCertificateInfoPhotoCell.swift */; };
04256E002C7440A500A37BA4 /* YHFamilyWarmTipsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04256DFF2C7440A500A37BA4 /* YHFamilyWarmTipsCell.swift */; };
0425E63D2BA9345200A5E763 /* YHSchemeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E63C2BA9345200A5E763 /* YHSchemeTableViewCell.swift */; }; 0425E63D2BA9345200A5E763 /* YHSchemeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E63C2BA9345200A5E763 /* YHSchemeTableViewCell.swift */; };
0425E6402BA9357D00A5E763 /* YHScemeItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E63F2BA9357D00A5E763 /* YHScemeItemModel.swift */; }; 0425E6402BA9357D00A5E763 /* YHScemeItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E63F2BA9357D00A5E763 /* YHScemeItemModel.swift */; };
0425E6422BA95B1B00A5E763 /* YHSchemeTableFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E6412BA95B1B00A5E763 /* YHSchemeTableFooterView.swift */; }; 0425E6422BA95B1B00A5E763 /* YHSchemeTableFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E6412BA95B1B00A5E763 /* YHSchemeTableFooterView.swift */; };
...@@ -551,6 +558,11 @@ ...@@ -551,6 +558,11 @@
A57BFDE42C732AEF00A78E51 /* YHVisaPaymentVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57BFDE32C732AEF00A78E51 /* YHVisaPaymentVC.swift */; }; A57BFDE42C732AEF00A78E51 /* YHVisaPaymentVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57BFDE32C732AEF00A78E51 /* YHVisaPaymentVC.swift */; };
A57BFDE62C73332E00A78E51 /* YHVisaPaymentTipsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57BFDE52C73332E00A78E51 /* YHVisaPaymentTipsCell.swift */; }; A57BFDE62C73332E00A78E51 /* YHVisaPaymentTipsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57BFDE52C73332E00A78E51 /* YHVisaPaymentTipsCell.swift */; };
A57BFDE82C73371300A78E51 /* YHVisaPayTypeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57BFDE72C73371300A78E51 /* YHVisaPayTypeCell.swift */; }; A57BFDE82C73371300A78E51 /* YHVisaPayTypeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57BFDE72C73371300A78E51 /* YHVisaPayTypeCell.swift */; };
A57BFDEA2C73518700A78E51 /* YHPayMembersCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57BFDE92C73518700A78E51 /* YHPayMembersCell.swift */; };
A57BFDEC2C73629100A78E51 /* YHPayMemberItemsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57BFDEB2C73629100A78E51 /* YHPayMemberItemsView.swift */; };
A57BFDEE2C73640700A78E51 /* YHPayMemberSectionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57BFDED2C73640700A78E51 /* YHPayMemberSectionItem.swift */; };
A57BFDF02C73666400A78E51 /* YHPayMemberContentItems.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57BFDEF2C73666400A78E51 /* YHPayMemberContentItems.swift */; };
A57BFDF22C73703900A78E51 /* YHPayMemberContentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57BFDF12C73703900A78E51 /* YHPayMemberContentItem.swift */; };
A580371E2BAD784B0031C312 /* YHMySchemeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A580371D2BAD784B0031C312 /* YHMySchemeViewModel.swift */; }; A580371E2BAD784B0031C312 /* YHMySchemeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A580371D2BAD784B0031C312 /* YHMySchemeViewModel.swift */; };
A58037212BAD7B2A0031C312 /* YHMySchemeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58037202BAD7B2A0031C312 /* YHMySchemeModel.swift */; }; A58037212BAD7B2A0031C312 /* YHMySchemeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58037202BAD7B2A0031C312 /* YHMySchemeModel.swift */; };
A582B23D2BB944ED009D098C /* YHHKPlanDoctumentVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A582B23C2BB944ED009D098C /* YHHKPlanDoctumentVC.swift */; }; A582B23D2BB944ED009D098C /* YHHKPlanDoctumentVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A582B23C2BB944ED009D098C /* YHHKPlanDoctumentVC.swift */; };
...@@ -627,6 +639,9 @@ ...@@ -627,6 +639,9 @@
A5C382CF2B5F9A9100C5E65C /* YHServiceCenterMainViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C382CE2B5F9A9100C5E65C /* YHServiceCenterMainViewModel.swift */; }; A5C382CF2B5F9A9100C5E65C /* YHServiceCenterMainViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C382CE2B5F9A9100C5E65C /* YHServiceCenterMainViewModel.swift */; };
A5C382D12B5FAAB300C5E65C /* YHContactItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C382D02B5FAAB300C5E65C /* YHContactItemModel.swift */; }; A5C382D12B5FAAB300C5E65C /* YHContactItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C382D02B5FAAB300C5E65C /* YHContactItemModel.swift */; };
A5C5B2EE2B4F9B8800A7C5D1 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = A5C5B2ED2B4F9B8800A7C5D1 /* Localizable.xcstrings */; }; A5C5B2EE2B4F9B8800A7C5D1 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = A5C5B2ED2B4F9B8800A7C5D1 /* Localizable.xcstrings */; };
A5CA3F502C7447FB00EB22F5 /* YHUploadCertificateVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CA3F4F2C7447FB00EB22F5 /* YHUploadCertificateVC.swift */; };
A5CA3F522C744A5000EB22F5 /* YHUploadCertificateTitleCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CA3F512C744A4F00EB22F5 /* YHUploadCertificateTitleCell.swift */; };
A5CA3F542C744CAB00EB22F5 /* YHUploadCertificateDetailCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CA3F532C744CAB00EB22F5 /* YHUploadCertificateDetailCell.swift */; };
A5D001212BAA9D99001F003C /* YHChoiceButtonHoldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D001202BAA9D99001F003C /* YHChoiceButtonHoldView.swift */; }; A5D001212BAA9D99001F003C /* YHChoiceButtonHoldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D001202BAA9D99001F003C /* YHChoiceButtonHoldView.swift */; };
A5D0012A2BABC84A001F003C /* YHFileListHeaerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D001272BABC84A001F003C /* YHFileListHeaerView.swift */; }; A5D0012A2BABC84A001F003C /* YHFileListHeaerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D001272BABC84A001F003C /* YHFileListHeaerView.swift */; };
A5D0012C2BABC84A001F003C /* YHFileListBottomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D001292BABC84A001F003C /* YHFileListBottomView.swift */; }; A5D0012C2BABC84A001F003C /* YHFileListBottomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D001292BABC84A001F003C /* YHFileListBottomView.swift */; };
...@@ -749,6 +764,13 @@ ...@@ -749,6 +764,13 @@
04256DED2C73338200A37BA4 /* YHGrabNumberListCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGrabNumberListCell.swift; sourceTree = "<group>"; }; 04256DED2C73338200A37BA4 /* YHGrabNumberListCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGrabNumberListCell.swift; sourceTree = "<group>"; };
04256DEF2C733B2D00A37BA4 /* YHGrabNumberInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGrabNumberInfoView.swift; sourceTree = "<group>"; }; 04256DEF2C733B2D00A37BA4 /* YHGrabNumberInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGrabNumberInfoView.swift; sourceTree = "<group>"; };
04256DF12C734E7E00A37BA4 /* YHGrabFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGrabFileCell.swift; sourceTree = "<group>"; }; 04256DF12C734E7E00A37BA4 /* YHGrabFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGrabFileCell.swift; sourceTree = "<group>"; };
04256DF32C73626900A37BA4 /* YHServiceSelectAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceSelectAlertView.swift; sourceTree = "<group>"; };
04256DF52C736A0800A37BA4 /* YHServiceItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceItemCell.swift; sourceTree = "<group>"; };
04256DF72C73726C00A37BA4 /* YHCerAppointViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCerAppointViewModel.swift; sourceTree = "<group>"; };
04256DF92C742A1500A37BA4 /* YHFamilyGroupModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyGroupModel.swift; sourceTree = "<group>"; };
04256DFB2C742C7D00A37BA4 /* YHFamilyInfoConfirmViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyInfoConfirmViewModel.swift; sourceTree = "<group>"; };
04256DFD2C743CB700A37BA4 /* YHCertificateInfoPhotoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateInfoPhotoCell.swift; sourceTree = "<group>"; };
04256DFF2C7440A500A37BA4 /* YHFamilyWarmTipsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyWarmTipsCell.swift; sourceTree = "<group>"; };
0425E63C2BA9345200A5E763 /* YHSchemeTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSchemeTableViewCell.swift; sourceTree = "<group>"; }; 0425E63C2BA9345200A5E763 /* YHSchemeTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSchemeTableViewCell.swift; sourceTree = "<group>"; };
0425E63F2BA9357D00A5E763 /* YHScemeItemModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHScemeItemModel.swift; sourceTree = "<group>"; }; 0425E63F2BA9357D00A5E763 /* YHScemeItemModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHScemeItemModel.swift; sourceTree = "<group>"; };
0425E6412BA95B1B00A5E763 /* YHSchemeTableFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSchemeTableFooterView.swift; sourceTree = "<group>"; }; 0425E6412BA95B1B00A5E763 /* YHSchemeTableFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSchemeTableFooterView.swift; sourceTree = "<group>"; };
...@@ -1254,6 +1276,11 @@ ...@@ -1254,6 +1276,11 @@
A57BFDE32C732AEF00A78E51 /* YHVisaPaymentVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVisaPaymentVC.swift; sourceTree = "<group>"; }; A57BFDE32C732AEF00A78E51 /* YHVisaPaymentVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVisaPaymentVC.swift; sourceTree = "<group>"; };
A57BFDE52C73332E00A78E51 /* YHVisaPaymentTipsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVisaPaymentTipsCell.swift; sourceTree = "<group>"; }; A57BFDE52C73332E00A78E51 /* YHVisaPaymentTipsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVisaPaymentTipsCell.swift; sourceTree = "<group>"; };
A57BFDE72C73371300A78E51 /* YHVisaPayTypeCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVisaPayTypeCell.swift; sourceTree = "<group>"; }; A57BFDE72C73371300A78E51 /* YHVisaPayTypeCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVisaPayTypeCell.swift; sourceTree = "<group>"; };
A57BFDE92C73518700A78E51 /* YHPayMembersCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPayMembersCell.swift; sourceTree = "<group>"; };
A57BFDEB2C73629100A78E51 /* YHPayMemberItemsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPayMemberItemsView.swift; sourceTree = "<group>"; };
A57BFDED2C73640700A78E51 /* YHPayMemberSectionItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPayMemberSectionItem.swift; sourceTree = "<group>"; };
A57BFDEF2C73666400A78E51 /* YHPayMemberContentItems.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPayMemberContentItems.swift; sourceTree = "<group>"; };
A57BFDF12C73703900A78E51 /* YHPayMemberContentItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPayMemberContentItem.swift; sourceTree = "<group>"; };
A580371D2BAD784B0031C312 /* YHMySchemeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMySchemeViewModel.swift; sourceTree = "<group>"; }; A580371D2BAD784B0031C312 /* YHMySchemeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMySchemeViewModel.swift; sourceTree = "<group>"; };
A58037202BAD7B2A0031C312 /* YHMySchemeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMySchemeModel.swift; sourceTree = "<group>"; }; A58037202BAD7B2A0031C312 /* YHMySchemeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMySchemeModel.swift; sourceTree = "<group>"; };
A582B23C2BB944ED009D098C /* YHHKPlanDoctumentVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHKPlanDoctumentVC.swift; sourceTree = "<group>"; }; A582B23C2BB944ED009D098C /* YHHKPlanDoctumentVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHKPlanDoctumentVC.swift; sourceTree = "<group>"; };
...@@ -1331,6 +1358,9 @@ ...@@ -1331,6 +1358,9 @@
A5C382CE2B5F9A9100C5E65C /* YHServiceCenterMainViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceCenterMainViewModel.swift; sourceTree = "<group>"; }; A5C382CE2B5F9A9100C5E65C /* YHServiceCenterMainViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceCenterMainViewModel.swift; sourceTree = "<group>"; };
A5C382D02B5FAAB300C5E65C /* YHContactItemModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHContactItemModel.swift; sourceTree = "<group>"; }; A5C382D02B5FAAB300C5E65C /* YHContactItemModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHContactItemModel.swift; sourceTree = "<group>"; };
A5C5B2ED2B4F9B8800A7C5D1 /* Localizable.xcstrings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; }; A5C5B2ED2B4F9B8800A7C5D1 /* Localizable.xcstrings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
A5CA3F4F2C7447FB00EB22F5 /* YHUploadCertificateVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHUploadCertificateVC.swift; sourceTree = "<group>"; };
A5CA3F512C744A4F00EB22F5 /* YHUploadCertificateTitleCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHUploadCertificateTitleCell.swift; sourceTree = "<group>"; };
A5CA3F532C744CAB00EB22F5 /* YHUploadCertificateDetailCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHUploadCertificateDetailCell.swift; sourceTree = "<group>"; };
A5D001202BAA9D99001F003C /* YHChoiceButtonHoldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHChoiceButtonHoldView.swift; sourceTree = "<group>"; }; A5D001202BAA9D99001F003C /* YHChoiceButtonHoldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHChoiceButtonHoldView.swift; sourceTree = "<group>"; };
A5D001272BABC84A001F003C /* YHFileListHeaerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHFileListHeaerView.swift; sourceTree = "<group>"; }; A5D001272BABC84A001F003C /* YHFileListHeaerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHFileListHeaerView.swift; sourceTree = "<group>"; };
A5D001292BABC84A001F003C /* YHFileListBottomView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHFileListBottomView.swift; sourceTree = "<group>"; }; A5D001292BABC84A001F003C /* YHFileListBottomView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHFileListBottomView.swift; sourceTree = "<group>"; };
...@@ -1514,7 +1544,7 @@ ...@@ -1514,7 +1544,7 @@
path = V; path = V;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
04256DD72C72D9C200A37BA4 /* AppointCertificate(赴港办证预约) */ = { 04256DD72C72D9C200A37BA4 /* AppointCertificate(3 赴港办证预约) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
04256DDB2C72DA0400A37BA4 /* C */, 04256DDB2C72DA0400A37BA4 /* C */,
...@@ -1522,12 +1552,13 @@ ...@@ -1522,12 +1552,13 @@
04256DD92C72D9F800A37BA4 /* M */, 04256DD92C72D9F800A37BA4 /* M */,
04256DD82C72D9F000A37BA4 /* VM */, 04256DD82C72D9F000A37BA4 /* VM */,
); );
path = "AppointCertificate(赴港办证预约)"; path = "AppointCertificate(3 赴港办证预约)";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
04256DD82C72D9F000A37BA4 /* VM */ = { 04256DD82C72D9F000A37BA4 /* VM */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
04256DF72C73726C00A37BA4 /* YHCerAppointViewModel.swift */,
); );
path = VM; path = VM;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -1548,10 +1579,12 @@ ...@@ -1548,10 +1579,12 @@
04256DE72C7314B500A37BA4 /* YHSelectApplicantCell.swift */, 04256DE72C7314B500A37BA4 /* YHSelectApplicantCell.swift */,
04256DED2C73338200A37BA4 /* YHGrabNumberListCell.swift */, 04256DED2C73338200A37BA4 /* YHGrabNumberListCell.swift */,
04256DF12C734E7E00A37BA4 /* YHGrabFileCell.swift */, 04256DF12C734E7E00A37BA4 /* YHGrabFileCell.swift */,
04256DF52C736A0800A37BA4 /* YHServiceItemCell.swift */,
04256DE32C72E3FA00A37BA4 /* YHInfoItemOptionView.swift */, 04256DE32C72E3FA00A37BA4 /* YHInfoItemOptionView.swift */,
04256DE92C73263A00A37BA4 /* YHInfoItemSelectSheetView.swift */, 04256DE92C73263A00A37BA4 /* YHInfoItemSelectSheetView.swift */,
04256DEB2C732F6900A37BA4 /* YHGrabNumberListView.swift */, 04256DEB2C732F6900A37BA4 /* YHGrabNumberListView.swift */,
04256DEF2C733B2D00A37BA4 /* YHGrabNumberInfoView.swift */, 04256DEF2C733B2D00A37BA4 /* YHGrabNumberInfoView.swift */,
04256DF32C73626900A37BA4 /* YHServiceSelectAlertView.swift */,
); );
path = V; path = V;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -2407,10 +2440,11 @@ ...@@ -2407,10 +2440,11 @@
046A952B2C6EFA710059326A /* Certificate(办证段) */ = { 046A952B2C6EFA710059326A /* Certificate(办证段) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
A5CA3F4C2C74471C00EB22F5 /* UploadCertificate(7上传过关证件) */,
A57BFDE02C732A4700A78E51 /* VisaPayment(4电子签字缴费) */, A57BFDE02C732A4700A78E51 /* VisaPayment(4电子签字缴费) */,
0430E63C2C72DB48000511E2 /* AddAdopters */, 0430E63C2C72DB48000511E2 /* AddAdopters */,
04256DD72C72D9C200A37BA4 /* AppointCertificate(赴港办证预约) */, 04256DD72C72D9C200A37BA4 /* AppointCertificate(3 赴港办证预约) */,
049D62C32C6F259D00E811A1 /* FamilyInfoConfirm(家庭信息确认) */, 049D62C32C6F259D00E811A1 /* FamilyInfoConfirm(1 家庭信息确认) */,
); );
path = "Certificate(办证段)"; path = "Certificate(办证段)";
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -2418,6 +2452,7 @@ ...@@ -2418,6 +2452,7 @@
046A952C2C6EFAF30059326A /* M */ = { 046A952C2C6EFAF30059326A /* M */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
04256DF92C742A1500A37BA4 /* YHFamilyGroupModel.swift */,
); );
path = M; path = M;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -2430,6 +2465,8 @@ ...@@ -2430,6 +2465,8 @@
049D62C42C6F272800E811A1 /* YHRiskWarningCell.swift */, 049D62C42C6F272800E811A1 /* YHRiskWarningCell.swift */,
049D62C62C6F2F4F00E811A1 /* YHApproverInfoVerifyCell.swift */, 049D62C62C6F2F4F00E811A1 /* YHApproverInfoVerifyCell.swift */,
04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */, 04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */,
04256DFD2C743CB700A37BA4 /* YHCertificateInfoPhotoCell.swift */,
04256DFF2C7440A500A37BA4 /* YHFamilyWarmTipsCell.swift */,
04256DD12C704A3000A37BA4 /* YHIFamilyInfoListCell.swift */, 04256DD12C704A3000A37BA4 /* YHIFamilyInfoListCell.swift */,
04256DCF2C7041C700A37BA4 /* YHInfoItemView.swift */, 04256DCF2C7041C700A37BA4 /* YHInfoItemView.swift */,
); );
...@@ -2439,6 +2476,7 @@ ...@@ -2439,6 +2476,7 @@
046A952E2C6EFB090059326A /* VM */ = { 046A952E2C6EFB090059326A /* VM */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
04256DFB2C742C7D00A37BA4 /* YHFamilyInfoConfirmViewModel.swift */,
); );
path = VM; path = VM;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -2676,7 +2714,7 @@ ...@@ -2676,7 +2714,7 @@
path = M; path = M;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
049D62C32C6F259D00E811A1 /* FamilyInfoConfirm(家庭信息确认) */ = { 049D62C32C6F259D00E811A1 /* FamilyInfoConfirm(1 家庭信息确认) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
046A952F2C6EFB120059326A /* C */, 046A952F2C6EFB120059326A /* C */,
...@@ -2684,7 +2722,7 @@ ...@@ -2684,7 +2722,7 @@
046A952D2C6EFAFF0059326A /* V */, 046A952D2C6EFAFF0059326A /* V */,
046A952C2C6EFAF30059326A /* M */, 046A952C2C6EFAF30059326A /* M */,
); );
path = "FamilyInfoConfirm(家庭信息确认)"; path = "FamilyInfoConfirm(1 家庭信息确认)";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
04A671562B9F18C800C1FB91 /* MyCertificates(我的证书) */ = { 04A671562B9F18C800C1FB91 /* MyCertificates(我的证书) */ = {
...@@ -3192,6 +3230,11 @@ ...@@ -3192,6 +3230,11 @@
children = ( children = (
A57BFDE52C73332E00A78E51 /* YHVisaPaymentTipsCell.swift */, A57BFDE52C73332E00A78E51 /* YHVisaPaymentTipsCell.swift */,
A57BFDE72C73371300A78E51 /* YHVisaPayTypeCell.swift */, A57BFDE72C73371300A78E51 /* YHVisaPayTypeCell.swift */,
A57BFDE92C73518700A78E51 /* YHPayMembersCell.swift */,
A57BFDEB2C73629100A78E51 /* YHPayMemberItemsView.swift */,
A57BFDED2C73640700A78E51 /* YHPayMemberSectionItem.swift */,
A57BFDF12C73703900A78E51 /* YHPayMemberContentItem.swift */,
A57BFDEF2C73666400A78E51 /* YHPayMemberContentItems.swift */,
); );
path = V; path = V;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -3566,6 +3609,32 @@ ...@@ -3566,6 +3609,32 @@
path = VM; path = VM;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
A5CA3F4C2C74471C00EB22F5 /* UploadCertificate(7上传过关证件) */ = {
isa = PBXGroup;
children = (
A5CA3F4E2C7447C700EB22F5 /* V */,
A5CA3F4D2C7447BB00EB22F5 /* C */,
);
path = "UploadCertificate(7上传过关证件)";
sourceTree = "<group>";
};
A5CA3F4D2C7447BB00EB22F5 /* C */ = {
isa = PBXGroup;
children = (
A5CA3F4F2C7447FB00EB22F5 /* YHUploadCertificateVC.swift */,
);
path = C;
sourceTree = "<group>";
};
A5CA3F4E2C7447C700EB22F5 /* V */ = {
isa = PBXGroup;
children = (
A5CA3F512C744A4F00EB22F5 /* YHUploadCertificateTitleCell.swift */,
A5CA3F532C744CAB00EB22F5 /* YHUploadCertificateDetailCell.swift */,
);
path = V;
sourceTree = "<group>";
};
A5D001262BABC84A001F003C /* V */ = { A5D001262BABC84A001F003C /* V */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -3951,6 +4020,7 @@ ...@@ -3951,6 +4020,7 @@
045EEEE52B9F171A0022A143 /* YHMySignatureDetailViewController.swift in Sources */, 045EEEE52B9F171A0022A143 /* YHMySignatureDetailViewController.swift in Sources */,
A5ACE92F2B4564F7002C94D2 /* YHMyViewController.swift in Sources */, A5ACE92F2B4564F7002C94D2 /* YHMyViewController.swift in Sources */,
A5ACE9332B4564F7002C94D2 /* NetBaseModel.swift in Sources */, A5ACE9332B4564F7002C94D2 /* NetBaseModel.swift in Sources */,
04256DF62C736A0800A37BA4 /* YHServiceItemCell.swift in Sources */,
A5FF0F3A2C32F20A0069852B /* YHActivityDetailCell0.swift in Sources */, A5FF0F3A2C32F20A0069852B /* YHActivityDetailCell0.swift in Sources */,
045EEE9B2B9F171A0022A143 /* YHWorkExperienceViewModel.swift in Sources */, 045EEE9B2B9F171A0022A143 /* YHWorkExperienceViewModel.swift in Sources */,
04AD31772C22DE6600DF5655 /* YHEditInterestViewController.swift in Sources */, 04AD31772C22DE6600DF5655 /* YHEditInterestViewController.swift in Sources */,
...@@ -3999,7 +4069,9 @@ ...@@ -3999,7 +4069,9 @@
A5FF0F3E2C32F2590069852B /* YHActivityDetailCell2.swift in Sources */, A5FF0F3E2C32F2590069852B /* YHActivityDetailCell2.swift in Sources */,
04256DD42C70538400A37BA4 /* YHFamilyInfoUpdateViewController.swift in Sources */, 04256DD42C70538400A37BA4 /* YHFamilyInfoUpdateViewController.swift in Sources */,
04FD85702C21646200BEF9C5 /* YHMyInterestTopicCell.swift in Sources */, 04FD85702C21646200BEF9C5 /* YHMyInterestTopicCell.swift in Sources */,
A5CA3F542C744CAB00EB22F5 /* YHUploadCertificateDetailCell.swift in Sources */,
04A7BD172BA43A0F00BD35A2 /* YHMyDocumentsDetailViewModel.swift in Sources */, 04A7BD172BA43A0F00BD35A2 /* YHMyDocumentsDetailViewModel.swift in Sources */,
04256DF82C73726C00A37BA4 /* YHCerAppointViewModel.swift in Sources */,
045EEEB32B9F171A0022A143 /* YHWorkFileSyncTableViewCell.swift in Sources */, 045EEEB32B9F171A0022A143 /* YHWorkFileSyncTableViewCell.swift in Sources */,
045EEEF12B9F171A0022A143 /* YHChildInfoContainerVC.swift in Sources */, 045EEEF12B9F171A0022A143 /* YHChildInfoContainerVC.swift in Sources */,
045EEF0B2B9F171A0022A143 /* YHBasicInfoFillViewController.swift in Sources */, 045EEF0B2B9F171A0022A143 /* YHBasicInfoFillViewController.swift in Sources */,
...@@ -4035,6 +4107,7 @@ ...@@ -4035,6 +4107,7 @@
A53B61122BB128AF0010B573 /* YHFileListItemsView2.swift in Sources */, A53B61122BB128AF0010B573 /* YHFileListItemsView2.swift in Sources */,
044D0BF62C2154CA00C5CF5E /* YHAllowUseMyInfoViewController.swift in Sources */, 044D0BF62C2154CA00C5CF5E /* YHAllowUseMyInfoViewController.swift in Sources */,
0485DFE12C6A0B6200B50293 /* YHPrincipleApprovedResultVC.swift in Sources */, 0485DFE12C6A0B6200B50293 /* YHPrincipleApprovedResultVC.swift in Sources */,
04256DF42C73626900A37BA4 /* YHServiceSelectAlertView.swift in Sources */,
04F5F8702C1AC4C2004A463C /* YHHKEventWebViewController.swift in Sources */, 04F5F8702C1AC4C2004A463C /* YHHKEventWebViewController.swift in Sources */,
045EEE892B9F171A0022A143 /* YHPreviewBaseViewController.swift in Sources */, 045EEE892B9F171A0022A143 /* YHPreviewBaseViewController.swift in Sources */,
045EEEA42B9F171A0022A143 /* YHImageResultViewController.swift in Sources */, 045EEEA42B9F171A0022A143 /* YHImageResultViewController.swift in Sources */,
...@@ -4072,6 +4145,7 @@ ...@@ -4072,6 +4145,7 @@
A567E5AA2BD7643D00D5D5A0 /* YHGestureTableView.swift in Sources */, A567E5AA2BD7643D00D5D5A0 /* YHGestureTableView.swift in Sources */,
04CE1ADF2C2AD91F001CB80A /* YHActivityListCell.swift in Sources */, 04CE1ADF2C2AD91F001CB80A /* YHActivityListCell.swift in Sources */,
04F5F8642C19460D004A463C /* YHHKLifeViewController.swift in Sources */, 04F5F8642C19460D004A463C /* YHHKLifeViewController.swift in Sources */,
04256DFC2C742C7D00A37BA4 /* YHFamilyInfoConfirmViewModel.swift in Sources */,
A59B43CF2C4B5AD100B28379 /* YHShareViewOnTablebarView.swift in Sources */, A59B43CF2C4B5AD100B28379 /* YHShareViewOnTablebarView.swift in Sources */,
A5ACE94A2B4564F7002C94D2 /* YHHUDProgressView.swift in Sources */, A5ACE94A2B4564F7002C94D2 /* YHHUDProgressView.swift in Sources */,
04A271232BABFF3200652B1B /* YHCertificateUploadTypeCell.swift in Sources */, 04A271232BABFF3200652B1B /* YHCertificateUploadTypeCell.swift in Sources */,
...@@ -4105,6 +4179,7 @@ ...@@ -4105,6 +4179,7 @@
04D144762C0452E200EE3758 /* YHOneKeyLoginManager.swift in Sources */, 04D144762C0452E200EE3758 /* YHOneKeyLoginManager.swift in Sources */,
A5551FFE2B4C26CE00510980 /* YHBaseViewModel.swift in Sources */, A5551FFE2B4C26CE00510980 /* YHBaseViewModel.swift in Sources */,
04B360F72C646B4F001EB053 /* YHPrincipleEnvelopeModel.swift in Sources */, 04B360F72C646B4F001EB053 /* YHPrincipleEnvelopeModel.swift in Sources */,
A57BFDF02C73666400A78E51 /* YHPayMemberContentItems.swift in Sources */,
048B2A4A2BC7D9DC00A93BF0 /* YHMyLikeViewController.swift in Sources */, 048B2A4A2BC7D9DC00A93BF0 /* YHMyLikeViewController.swift in Sources */,
A567E5AE2BD7643D00D5D5A0 /* YHHomeKingKongBlockItem.swift in Sources */, A567E5AE2BD7643D00D5D5A0 /* YHHomeKingKongBlockItem.swift in Sources */,
045EEED92B9F171A0022A143 /* YHEducationDetailVC.swift in Sources */, 045EEED92B9F171A0022A143 /* YHEducationDetailVC.swift in Sources */,
...@@ -4134,6 +4209,7 @@ ...@@ -4134,6 +4209,7 @@
04CE1AD82C2AD91F001CB80A /* YHActivityListViewController.swift in Sources */, 04CE1AD82C2AD91F001CB80A /* YHActivityListViewController.swift in Sources */,
A5ACE94E2B4564F7002C94D2 /* AlignedCollectionViewFlowLayout.swift in Sources */, A5ACE94E2B4564F7002C94D2 /* AlignedCollectionViewFlowLayout.swift in Sources */,
A567E5B32BD7643D00D5D5A0 /* YHServiceOrderAlertView.swift in Sources */, A567E5B32BD7643D00D5D5A0 /* YHServiceOrderAlertView.swift in Sources */,
A57BFDF22C73703900A78E51 /* YHPayMemberContentItem.swift in Sources */,
A592FE932BA6CFFC0062FACA /* YHCertificateEntryBottomView.swift in Sources */, A592FE932BA6CFFC0062FACA /* YHCertificateEntryBottomView.swift in Sources */,
A5ACE93B2B4564F7002C94D2 /* UIFont+Extension.swift in Sources */, A5ACE93B2B4564F7002C94D2 /* UIFont+Extension.swift in Sources */,
A567E5A92BD7643D00D5D5A0 /* YHSearchInfoHistoryView.swift in Sources */, A567E5A92BD7643D00D5D5A0 /* YHSearchInfoHistoryView.swift in Sources */,
...@@ -4152,6 +4228,7 @@ ...@@ -4152,6 +4228,7 @@
04CE1AE22C2AD91F001CB80A /* YHActivityApplyInfoItemView.swift in Sources */, 04CE1AE22C2AD91F001CB80A /* YHActivityApplyInfoItemView.swift in Sources */,
045EEEC52B9F171A0022A143 /* YHOtherPickerView.swift in Sources */, 045EEEC52B9F171A0022A143 /* YHOtherPickerView.swift in Sources */,
045EEE842B9F171A0022A143 /* YHPreviewBasiceInformationViewController.swift in Sources */, 045EEE842B9F171A0022A143 /* YHPreviewBasiceInformationViewController.swift in Sources */,
A57BFDEA2C73518700A78E51 /* YHPayMembersCell.swift in Sources */,
A5ACE9282B4564F7002C94D2 /* YHSmsCodeView.swift in Sources */, A5ACE9282B4564F7002C94D2 /* YHSmsCodeView.swift in Sources */,
0499E3002C056EE30037E646 /* YHOneKeyLoginView.swift in Sources */, 0499E3002C056EE30037E646 /* YHOneKeyLoginView.swift in Sources */,
0430E6622C7473A7000511E2 /* YHAdopterTravelCardTableViewCell.swift in Sources */, 0430E6622C7473A7000511E2 /* YHAdopterTravelCardTableViewCell.swift in Sources */,
...@@ -4260,6 +4337,7 @@ ...@@ -4260,6 +4337,7 @@
A56D2D612B62020C009C83A8 /* YHContractMainItemStatusCell.swift in Sources */, A56D2D612B62020C009C83A8 /* YHContractMainItemStatusCell.swift in Sources */,
045EEECF2B9F171A0022A143 /* YHScoreOptionsView.swift in Sources */, 045EEECF2B9F171A0022A143 /* YHScoreOptionsView.swift in Sources */,
04CE1AD22C2AD91F001CB80A /* YHActivityModel.swift in Sources */, 04CE1AD22C2AD91F001CB80A /* YHActivityModel.swift in Sources */,
04256E002C7440A500A37BA4 /* YHFamilyWarmTipsCell.swift in Sources */,
0445E6AF2BE9CFF6003C52F9 /* YHAppVersionForceUpdateView.swift in Sources */, 0445E6AF2BE9CFF6003C52F9 /* YHAppVersionForceUpdateView.swift in Sources */,
04213B272C48C95E00797900 /* YHHomeIdentityCell.swift in Sources */, 04213B272C48C95E00797900 /* YHHomeIdentityCell.swift in Sources */,
0430E6542C73400A000511E2 /* YHAdopterUploadTableViewCell.swift in Sources */, 0430E6542C73400A000511E2 /* YHAdopterUploadTableViewCell.swift in Sources */,
...@@ -4318,6 +4396,7 @@ ...@@ -4318,6 +4396,7 @@
04AD31792C23FFC700DF5655 /* YHInterestModel.swift in Sources */, 04AD31792C23FFC700DF5655 /* YHInterestModel.swift in Sources */,
04256DD22C704A3000A37BA4 /* YHIFamilyInfoListCell.swift in Sources */, 04256DD22C704A3000A37BA4 /* YHIFamilyInfoListCell.swift in Sources */,
A596CADF2C6B9B3D00F85797 /* YHHomeAlertViewManager.swift in Sources */, A596CADF2C6B9B3D00F85797 /* YHHomeAlertViewManager.swift in Sources */,
04256DFE2C743CB700A37BA4 /* YHCertificateInfoPhotoCell.swift in Sources */,
04EA23082BB50753009DA928 /* YHDocumentMessageTableViewCell.swift in Sources */, 04EA23082BB50753009DA928 /* YHDocumentMessageTableViewCell.swift in Sources */,
045EEE8E2B9F171A0022A143 /* YHPreviewInfoWorkSummaryView.swift in Sources */, 045EEE8E2B9F171A0022A143 /* YHPreviewInfoWorkSummaryView.swift in Sources */,
045EEECE2B9F171A0022A143 /* YHScoreDetailViewController.swift in Sources */, 045EEECE2B9F171A0022A143 /* YHScoreDetailViewController.swift in Sources */,
...@@ -4330,6 +4409,7 @@ ...@@ -4330,6 +4409,7 @@
0477E17C2BA4238400436346 /* YHCertificateListContainerVC.swift in Sources */, 0477E17C2BA4238400436346 /* YHCertificateListContainerVC.swift in Sources */,
A517A4DF2BB53BE8000DEECD /* YHDocListBottomView.swift in Sources */, A517A4DF2BB53BE8000DEECD /* YHDocListBottomView.swift in Sources */,
A567E5AB2BD7643D00D5D5A0 /* YHHomeHeadView.swift in Sources */, A567E5AB2BD7643D00D5D5A0 /* YHHomeHeadView.swift in Sources */,
A57BFDEE2C73640700A78E51 /* YHPayMemberSectionItem.swift in Sources */,
04FD856E2C215DC900BEF9C5 /* YHMyWorkExperienceCell.swift in Sources */, 04FD856E2C215DC900BEF9C5 /* YHMyWorkExperienceCell.swift in Sources */,
0414BDAB2BC7E9C200225367 /* YHMyPermissionCell.swift in Sources */, 0414BDAB2BC7E9C200225367 /* YHMyPermissionCell.swift in Sources */,
04C8F4832B7216D800ADF59B /* YHUserInfoHeaderView.swift in Sources */, 04C8F4832B7216D800ADF59B /* YHUserInfoHeaderView.swift in Sources */,
...@@ -4345,6 +4425,7 @@ ...@@ -4345,6 +4425,7 @@
045EEEE22B9F171A0022A143 /* YHMySignatureDetailViewModel.swift in Sources */, 045EEEE22B9F171A0022A143 /* YHMySignatureDetailViewModel.swift in Sources */,
045EEE7D2B9F171A0022A143 /* YHWorkExpDataModel.swift in Sources */, 045EEE7D2B9F171A0022A143 /* YHWorkExpDataModel.swift in Sources */,
0485DFDA2C660EFA00B50293 /* YHPrincipleRequestModel.swift in Sources */, 0485DFDA2C660EFA00B50293 /* YHPrincipleRequestModel.swift in Sources */,
A5CA3F522C744A5000EB22F5 /* YHUploadCertificateTitleCell.swift in Sources */,
045EEE832B9F171A0022A143 /* YHMainInfoPreviewModel.swift in Sources */, 045EEE832B9F171A0022A143 /* YHMainInfoPreviewModel.swift in Sources */,
045EEEAB2B9F171A0022A143 /* YHImageClipperViewController.swift in Sources */, 045EEEAB2B9F171A0022A143 /* YHImageClipperViewController.swift in Sources */,
044414032BC39B8D00784A14 /* YHServerTableHeadView.swift in Sources */, 044414032BC39B8D00784A14 /* YHServerTableHeadView.swift in Sources */,
...@@ -4352,6 +4433,7 @@ ...@@ -4352,6 +4433,7 @@
A59B43CD2C4A36DF00B28379 /* YHStatusAdvantageBottomView.swift in Sources */, A59B43CD2C4A36DF00B28379 /* YHStatusAdvantageBottomView.swift in Sources */,
049AB5F02C0F339200155DDF /* YHVideoPlaySettingVC.swift in Sources */, 049AB5F02C0F339200155DDF /* YHVideoPlaySettingVC.swift in Sources */,
0430E6642C7482DD000511E2 /* YHYHAdopterTravelViewModel.swift in Sources */, 0430E6642C7482DD000511E2 /* YHYHAdopterTravelViewModel.swift in Sources */,
A5CA3F502C7447FB00EB22F5 /* YHUploadCertificateVC.swift in Sources */,
04A7BD192BA441D400BD35A2 /* YHMyDocumentsUrlModel.swift in Sources */, 04A7BD192BA441D400BD35A2 /* YHMyDocumentsUrlModel.swift in Sources */,
04174D792BCD5B74000BA46D /* YHMessageSessionCell.swift in Sources */, 04174D792BCD5B74000BA46D /* YHMessageSessionCell.swift in Sources */,
04C85DE92C36BF49008B20D6 /* YHMyFileListFooterView.swift in Sources */, 04C85DE92C36BF49008B20D6 /* YHMyFileListFooterView.swift in Sources */,
...@@ -4412,6 +4494,7 @@ ...@@ -4412,6 +4494,7 @@
045EEEFE2B9F171A0022A143 /* YHFormItemInputTextCell.swift in Sources */, 045EEEFE2B9F171A0022A143 /* YHFormItemInputTextCell.swift in Sources */,
0419A0A42C49184300A5FCFA /* YHInvitationNumberItemView.swift in Sources */, 0419A0A42C49184300A5FCFA /* YHInvitationNumberItemView.swift in Sources */,
045EEEDD2B9F171A0022A143 /* YHCollegeNameCell.swift in Sources */, 045EEEDD2B9F171A0022A143 /* YHCollegeNameCell.swift in Sources */,
04256DFA2C742A1500A37BA4 /* YHFamilyGroupModel.swift in Sources */,
045EEF162B9F171A0022A143 /* YHMainApplicantInformationViewController.swift in Sources */, 045EEF162B9F171A0022A143 /* YHMainApplicantInformationViewController.swift in Sources */,
048097712BA18D66000B9DCA /* YHCertificateSearchBar.swift in Sources */, 048097712BA18D66000B9DCA /* YHCertificateSearchBar.swift in Sources */,
045EEEAA2B9F171A0022A143 /* YHWorkExampleViewController.swift in Sources */, 045EEEAA2B9F171A0022A143 /* YHWorkExampleViewController.swift in Sources */,
...@@ -4485,6 +4568,7 @@ ...@@ -4485,6 +4568,7 @@
A5ACE9302B4564F7002C94D2 /* Algorithm.swift in Sources */, A5ACE9302B4564F7002C94D2 /* Algorithm.swift in Sources */,
045EEED52B9F171A0022A143 /* YHEducationRequestViewModel.swift in Sources */, 045EEED52B9F171A0022A143 /* YHEducationRequestViewModel.swift in Sources */,
04256DE22C72E1EA00A37BA4 /* YHCertificateAppointOptionCell.swift in Sources */, 04256DE22C72E1EA00A37BA4 /* YHCertificateAppointOptionCell.swift in Sources */,
A57BFDEC2C73629100A78E51 /* YHPayMemberItemsView.swift in Sources */,
045EEEB62B9F171A0022A143 /* YHWorkExperienceItemView.swift in Sources */, 045EEEB62B9F171A0022A143 /* YHWorkExperienceItemView.swift in Sources */,
047AA3E42C4A6ADC009C4554 /* YHLifeHeadView.swift in Sources */, 047AA3E42C4A6ADC009C4554 /* YHLifeHeadView.swift in Sources */,
A58A8C942BA6C7C600632765 /* YHCertificateEntryModel.swift in Sources */, A58A8C942BA6C7C600632765 /* YHCertificateEntryModel.swift in Sources */,
......
...@@ -11,6 +11,8 @@ import UIKit ...@@ -11,6 +11,8 @@ import UIKit
class YHCertificateAppointViewController: YHBaseViewController { class YHCertificateAppointViewController: YHBaseViewController {
var items = ["", "", ""] var items = ["", "", ""]
let viewModel = YHCerAppointViewModel()
lazy var tableView: UITableView = { lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped) let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 16.0 tableView.estimatedSectionHeaderHeight = 16.0
...@@ -78,6 +80,16 @@ extension YHCertificateAppointViewController: UITableViewDelegate, UITableViewDa ...@@ -78,6 +80,16 @@ extension YHCertificateAppointViewController: UITableViewDelegate, UITableViewDa
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.viewModel.getServicelist { success, error in
let view = YHServiceSelectAlertView.alertView()
view.items = self.viewModel.serviceArr
view.confirmBlock = {
[weak self] ids in
printLog("\(ids)")
}
view.show()
}
if 0 <= indexPath.section && indexPath.section < items.count { if 0 <= indexPath.section && indexPath.section < items.count {
} }
......
...@@ -29,7 +29,6 @@ class YHGrabFileCell: UICollectionViewCell { ...@@ -29,7 +29,6 @@ class YHGrabFileCell: UICollectionViewCell {
func createUI() { func createUI() {
self.layer.cornerRadius = 5.0 self.layer.cornerRadius = 5.0
self.layer.borderWidth = 0.5 self.layer.borderWidth = 0.5
self.layer.borderColor = UIColor.separatorColor.cgColor self.layer.borderColor = UIColor.init(hex: 0xD8D8D8).cgColor
self.backgroundColor = UIColor.init(hex: 0xD8D8D8)
} }
} }
//
// YHServiceItemCell.swift
// galaxy
//
// Created by edy on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHServiceItemCell: UICollectionViewCell {
static let cellReuseIdentifier = "YHServiceItemCell"
lazy var titleLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_M(ofSize: 13)
label.textColor = .mainTextColor
label.textAlignment = .center
return label
}()
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func updateItem(_ item: YHServiceItem) {
titleLabel.text = item.name
if item.isSelect {
self.layer.borderWidth = 1.0
self.layer.borderColor = UIColor.brandMainColor.cgColor
titleLabel.textColor = UIColor.brandMainColor
} else {
self.layer.borderWidth = 0.0
self.layer.borderColor = nil
titleLabel.textColor = UIColor.mainTextColor
}
}
func createUI() {
self.layer.cornerRadius = kCornerRadius3
self.backgroundColor = UIColor.init(hex: 0xF4F6FA)
self.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
}
}
//
// YHServiceSelectAlertView.swift
// galaxy
//
// Created by edy on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import AttributedString
import SmartCodable
class YHServiceItem: SmartCodable {
var id: Int = 0
var name: String = ""
var isSelect: Bool = false
required init() {
}
init(id: Int = 0, name: String = "") {
self.id = id
self.name = name
}
}
class YHServiceSelectAlertView: UICollectionViewCell {
var items:[YHServiceItem] = [] {
didSet {
var rowCount = items.count/3
if items.count%3 != 0 {
rowCount += 1
}
var height = 0.0
if rowCount > 0 {
height = 42.0 * Double(rowCount) + 16.0 * Double(rowCount-1)
}
collectionView.reloadData()
collectionView.snp.updateConstraints { make in
make.height.equalTo(height)
}
}
}
var confirmBlock:(([Int])->())?
// 底层蒙版
lazy var blackMaskView: UIView = {
let view = UIView()
view.backgroundColor = .alertMaskColor
return view
}()
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
return view
}()
lazy var bgImgView: UIView = {
let view = UIImageView(image: UIImage(named: "service_list_bg"))
return view
}()
lazy var iconImgView: UIView = {
let view = UIImageView(image: UIImage(named: "service_list_icon"))
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
let a: ASAttributedString = .init("期望银河在", .font(UIFont.PFSC_B(ofSize: 18)),.foreground(UIColor.mainTextColor))
let b: ASAttributedString = .init("办证阶段", .font(UIFont.PFSC_B(ofSize: 18)),.foreground(UIColor.brandMainColor))
let c: ASAttributedString = .init("\n提供哪些服务", .font(UIFont.PFSC_B(ofSize: 18)),.foreground(UIColor.mainTextColor))
label.attributed.text = a+b+c
return label
}()
lazy var collectionView: UICollectionView = {
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .vertical
layout.minimumInteritemSpacing = 8.0
layout.minimumLineSpacing = 16
let collectView = UICollectionView(frame:.zero, collectionViewLayout: layout)
collectView.delegate = self
collectView.dataSource = self
collectView.backgroundColor = .clear
// 注册自定义单元格
collectView.register(YHServiceItemCell.self, forCellWithReuseIdentifier: YHServiceItemCell.cellReuseIdentifier)
return collectView
}()
lazy var confirmBtn: UIButton = {
let btn = UIButton()
btn.backgroundColor = .brandMainColor
btn.titleLabel?.font = .PFSC_M(ofSize: 14)
btn.setTitle("确认", for: .normal)
btn.setTitleColor(.white, for: .normal)
btn.layer.cornerRadius = kCornerRadius3
btn.addTarget(self, action: #selector(didConfirmBtnClicked), for: .touchUpInside)
return btn
}()
lazy var closeBtn:UIButton = {
let btn = UIButton()
btn.setImage(UIImage(named: "update_close"), for: .normal)
btn.addTarget(self, action: #selector(didCloseBtnClicked), for: .touchUpInside)
return btn
}()
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
func createUI() {
self.addSubview(blackMaskView)
self.addSubview(whiteContentView)
self.addSubview(closeBtn)
whiteContentView.addSubview(bgImgView)
whiteContentView.addSubview(iconImgView)
whiteContentView.addSubview(titleLabel)
whiteContentView.addSubview(confirmBtn)
whiteContentView.addSubview(collectionView)
whiteContentView.addSubview(confirmBtn)
blackMaskView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
whiteContentView.snp.makeConstraints { make in
make.left.equalTo(38)
make.right.equalTo(-38)
make.centerX.equalToSuperview()
make.centerY.equalToSuperview().offset(-24)
}
bgImgView.snp.makeConstraints { make in
make.left.right.top.equalTo(0)
make.height.equalTo(153)
}
iconImgView.snp.makeConstraints { make in
make.width.equalTo(102)
make.height.equalTo(84)
make.top.equalTo(16)
make.right.equalTo(-16)
}
titleLabel.snp.makeConstraints { make in
make.top.equalTo(34)
make.left.equalTo(18)
make.right.equalTo(iconImgView.snp.left)
}
collectionView.snp.makeConstraints { make in
make.top.equalTo(iconImgView.snp.bottom).offset(20)
make.left.equalTo(16)
make.right.equalTo(-16)
make.height.equalTo(0)
make.bottom.equalTo(confirmBtn.snp.top).offset(-30)
}
confirmBtn.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.bottom.equalTo(-16)
make.height.equalTo(45)
}
closeBtn.snp.makeConstraints { make in
make.width.height.equalTo(24)
make.top.equalTo(whiteContentView.snp.bottom).offset(24)
make.centerX.equalTo(whiteContentView)
}
}
static func alertView() -> YHServiceSelectAlertView {
let alertView = YHServiceSelectAlertView(frame:UIScreen.main.bounds)
return alertView
}
@objc func show() {
UIApplication.shared.yhKeyWindow()?.addSubview(self)
}
@objc func dismiss() {
self.removeFromSuperview()
}
@objc func didConfirmBtnClicked() {
var ids = [Int]()
for item in items {
if item.isSelect {
ids.append(item.id)
}
}
confirmBlock?(ids)
dismiss()
}
@objc func didCloseBtnClicked() {
dismiss()
}
}
extension YHServiceSelectAlertView: UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
// 返回单元格数量
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return items.count
}
// 返回每个单元格的大小
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let width = floorl((KScreenWidth-54.0*2.0-10.0*2.0)/3.0)
return CGSize(width: width, height: 42)
}
// 返回自定义单元格
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHServiceItemCell.cellReuseIdentifier, for: indexPath) as! YHServiceItemCell
if 0 <= indexPath.item && indexPath.item < items.count {
let item = items[indexPath.item]
cell.updateItem(item)
}
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if 0 <= indexPath.item && indexPath.item < items.count {
let item = items[indexPath.item]
item.isSelect = !item.isSelect
collectionView.reloadData()
}
}
}
//
// YHCerAppointViewModel.swift
// galaxy
//
// Created by edy on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHCerAppointViewModel: NSObject {
var serviceArr:[YHServiceItem] = []
func getServicelist(_ callBack: @escaping (_ success: Bool,_ error: YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.MakeCertificate.servicelist
let _ = YHNetRequest.getRequest(url: strUrl) {
[weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog(json)
if json.code == 200 {
let dic = json.data
guard let list = [YHServiceItem].deserialize(array: dic as? [Any]) else {
let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
self.serviceArr = []
callBack(false, err)
return
}
self.serviceArr.removeAll()
for item in list {
if let item = item {
self.serviceArr.append(item)
}
}
callBack(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
self.serviceArr = []
callBack(false, error)
}
} failBlock: { err in
self.serviceArr = []
callBack(false, err)
}
}
}
...@@ -10,8 +10,11 @@ import UIKit ...@@ -10,8 +10,11 @@ import UIKit
class YHFamilyInfoConfirmViewController: YHBaseViewController { class YHFamilyInfoConfirmViewController: YHBaseViewController {
var items: [String] = ["1", "1"] var orderId: Int = 151086
var sectionItems:[String] = ["", "", "", ""]
var familyArr: [YHApplicantInfoModel] = []
let viewModel = YHFamilyInfoConfirmViewModel()
lazy var tableView: UITableView = { lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped) let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 16.0 tableView.estimatedSectionHeaderHeight = 16.0
...@@ -25,25 +28,62 @@ class YHFamilyInfoConfirmViewController: YHBaseViewController { ...@@ -25,25 +28,62 @@ class YHFamilyInfoConfirmViewController: YHBaseViewController {
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell") tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHRiskWarningCell.self, forCellReuseIdentifier: YHRiskWarningCell.cellReuseIdentifier) tableView.register(YHRiskWarningCell.self, forCellReuseIdentifier: YHRiskWarningCell.cellReuseIdentifier)
tableView.register(YHApproverInfoVerifyCell.self, forCellReuseIdentifier: YHApproverInfoVerifyCell.cellReuseIdentifier) tableView.register(YHApproverInfoVerifyCell.self, forCellReuseIdentifier: YHApproverInfoVerifyCell.cellReuseIdentifier)
tableView.register(YHCertificateInfoPhotoCell.self, forCellReuseIdentifier: YHCertificateInfoPhotoCell.cellReuseIdentifier)
tableView.register(YHFamilyWarmTipsCell.self, forCellReuseIdentifier: YHFamilyWarmTipsCell.cellReuseIdentifier)
return tableView return tableView
}() }()
lazy var bottomBtn: UIButton = {
let btn = UIButton()
btn.backgroundColor = .brandMainColor
btn.setTitle("确认修改,下一步", for: .normal)
btn.setTitleColor(.white, for: .normal)
btn.titleLabel?.font = UIFont.PFSC_M(ofSize: 16)
btn.addTarget(self, action: #selector(didBottomBtnClicked), for: .touchUpInside)
btn.layer.cornerRadius = kCornerRadius3
return btn
}()
lazy var bottomView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.addSubview(bottomBtn)
bottomBtn.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.top.equalTo(8)
make.height.equalTo(48)
}
return view
}()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
self.gk_navTitle = "家庭信息确认" self.gk_navTitle = "家庭信息确认"
self.view.backgroundColor = .white self.view.backgroundColor = .white
self.view.addSubview(self.tableView) self.view.addSubview(self.tableView)
self.view.addSubview(bottomView)
self.tableView.snp.makeConstraints { make in self.tableView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview() make.left.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar+16) make.top.equalTo(k_Height_NavigationtBarAndStatuBar+16)
make.bottom.equalTo(bottomView.snp.top)
}
self.bottomView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(98)
} }
getFamilyInfo()
}
@objc func didBottomBtnClicked() {
} }
} }
extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDataSource { extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int { func numberOfSections(in tableView: UITableView) -> Int {
return items.count return sectionItems.count
} }
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
...@@ -51,19 +91,25 @@ extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDat ...@@ -51,19 +91,25 @@ extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDat
} }
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// let cell = tableView.dequeueReusableCell(withIdentifier: YHRiskWarningCell.cellReuseIdentifier, for: indexPath) if 0 <= indexPath.section && indexPath.section < sectionItems.count {
if 0 <= indexPath.section && indexPath.section < items.count {
if indexPath.section == 0 { if indexPath.section == 0 {
let warningCell = tableView.dequeueReusableCell(withIdentifier: YHRiskWarningCell.cellReuseIdentifier, for: indexPath) let warningCell = tableView.dequeueReusableCell(withIdentifier: YHRiskWarningCell.cellReuseIdentifier, for: indexPath)
return warningCell return warningCell
} }
if indexPath.section == 1 {
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHApproverInfoVerifyCell.cellReuseIdentifier, for: indexPath) as! YHApproverInfoVerifyCell
approveCell.updateFamilyArr(self.familyArr)
return approveCell
}
if indexPath.section == 2 {
let certificateInfoCell = tableView.dequeueReusableCell(withIdentifier: YHCertificateInfoPhotoCell.cellReuseIdentifier, for: indexPath) as! YHCertificateInfoPhotoCell
return certificateInfoCell
}
} }
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHApproverInfoVerifyCell.cellReuseIdentifier, for: indexPath) let warmTipsCell = tableView.dequeueReusableCell(withIdentifier: YHFamilyWarmTipsCell.cellReuseIdentifier, for: indexPath) as! YHFamilyWarmTipsCell
return approveCell return warmTipsCell
} }
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
...@@ -72,7 +118,7 @@ extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDat ...@@ -72,7 +118,7 @@ extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDat
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.section && indexPath.section < items.count { if 0 <= indexPath.section && indexPath.section < sectionItems.count {
} }
} }
...@@ -97,3 +143,26 @@ extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDat ...@@ -97,3 +143,26 @@ extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDat
return view return view
} }
} }
extension YHFamilyInfoConfirmViewController {
func getFamilyInfo() {
YHHUD.show(.progress(message: "加载中..."))
self.viewModel.getFamilyInfo(param: ["orderId" : orderId]) {
[weak self] success, error in
YHHUD.hide()
guard let self = self else { return }
self.familyArr.removeAll()
if self.viewModel.familyInfo.main.info.id > 0 {
self.familyArr.append(self.viewModel.familyInfo.main)
}
if self.viewModel.familyInfo.spouse.info.id > 0 {
self.familyArr.append(self.viewModel.familyInfo.spouse)
}
for child in self.viewModel.familyInfo.children {
self.familyArr.append(child)
}
self.tableView.reloadData()
}
}
}
...@@ -18,6 +18,7 @@ enum YHFamilyMemberRelationType: Int { ...@@ -18,6 +18,7 @@ enum YHFamilyMemberRelationType: Int {
class YHFamilyInfoUpdateViewController: YHBaseViewController { class YHFamilyInfoUpdateViewController: YHBaseViewController {
var orderId: Int = 0
var relation:YHFamilyMemberRelationType = .mainApplicant var relation:YHFamilyMemberRelationType = .mainApplicant
var isInfoEditing: Bool = false var isInfoEditing: Bool = false
......
//
// YHFamilyInfoModel.swift
// galaxy
//
// Created by edy on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHFamilyGroupModel: SmartCodable {
var orderid: Int = 0
var main: YHApplicantInfoModel = YHApplicantInfoModel()
var spouse: YHApplicantInfoModel = YHApplicantInfoModel()
var children: [YHApplicantInfoModel] = []
enum CodingKeys: String, CodingKey {
case orderid = "order_id"
case main = "main"
case spouse = "spouse"
case children = "children"
}
required init() {
}
init(orderid: Int, main: YHApplicantInfoModel, spouse: YHApplicantInfoModel, children: [YHApplicantInfoModel]) {
self.orderid = orderid
self.main = main
self.spouse = spouse
self.children = children
}
}
// MARK: - Main
class YHApplicantInfoModel: SmartCodable {
var info: YHFamilyMemberInfoModel = YHFamilyMemberInfoModel()
var confirmStatus: Int = 0
enum CodingKeys: String, CodingKey {
case info = "info"
case confirmStatus = "confirm_status"
}
required init() {
}
init(info: YHFamilyMemberInfoModel, confirmStatus: Int) {
self.info = info
self.confirmStatus = confirmStatus
}
}
// MARK: - Info
class YHFamilyMemberInfoModel: SmartCodable {
var id: Int = -1
var name: String = ""
var nameHistory: String = ""
var familyName: String = ""
var familyNameHistory: String = ""
var givenName: String = ""
var givenNameHistory: String = ""
var married: String = ""
var marriedHistory: String = ""
var birthPlaceAboard: Int = -1
var birthPlaceAboardHistory: Int = -1
var birthPlace: YHApplicantBirthPlaceModel = YHApplicantBirthPlaceModel()
var birthPlaceHistory: YHApplicantBirthPlaceModel = YHApplicantBirthPlaceModel()
var nationalityType: Int = -1
var nationalityTypeHistory: Int = -1
var nationality: String = ""
var nationalityHistory: String = ""
var hkIdentityid: String = ""
var hkIdentityidHistory: String = ""
var identity: YHApplicantIdentityModel = YHApplicantIdentityModel()
var occupationName: String = ""
var occupationNameHistory: String = ""
// 自定义属性
var relation:Int = YHFamilyMemberRelationType.none.rawValue
func getRelation() -> String {
if relation == YHFamilyMemberRelationType.mainApplicant.rawValue {
return "主申人"
} else if relation == YHFamilyMemberRelationType.spouse.rawValue {
return "配偶"
} else if relation == YHFamilyMemberRelationType.child.rawValue {
return "子女"
}
return ""
}
required init() {
}
enum CodingKeys: String, CodingKey {
case id = "id"
case name = "name"
case nameHistory = "name_history"
case familyName = "family_name"
case familyNameHistory = "family_name_history"
case givenName = "given_name"
case givenNameHistory = "given_name_history"
case married = "married"
case marriedHistory = "married_history"
case birthPlaceAboard = "birth_place_aboard"
case birthPlaceAboardHistory = "birth_place_aboard_history"
case birthPlace = "birth_place"
case birthPlaceHistory = "birth_place_history"
case nationalityType = "nationality_type"
case nationalityTypeHistory = "nationality_type_history"
case nationality = "nationality"
case nationalityHistory = "nationality_history"
case hkIdentityid = "hk_identity_id"
case hkIdentityidHistory = "hk_identity_id_history"
case identity = "identity"
case occupationName = "occupation_name"
case occupationNameHistory = "occupation_name_history"
}
init(id: Int, name: String, nameHistory: String, familyName: String, familyNameHistory: String, givenName: String, givenNameHistory: String, married: String, marriedHistory: String, birthPlaceAboard: Int, birthPlaceAboardHistory: Int, birthPlace: YHApplicantBirthPlaceModel, birthPlaceHistory: YHApplicantBirthPlaceModel, nationalityType: Int, nationalityTypeHistory: Int, nationality: String, nationalityHistory: String, hkIdentityid: String, hkIdentityidHistory: String, identity: YHApplicantIdentityModel, occupationName: String, occupationNameHistory: String) {
self.id = id
self.name = name
self.nameHistory = nameHistory
self.familyName = familyName
self.familyNameHistory = familyNameHistory
self.givenName = givenName
self.givenNameHistory = givenNameHistory
self.married = married
self.marriedHistory = marriedHistory
self.birthPlaceAboard = birthPlaceAboard
self.birthPlaceAboardHistory = birthPlaceAboardHistory
self.birthPlace = birthPlace
self.birthPlaceHistory = birthPlaceHistory
self.nationalityType = nationalityType
self.nationalityTypeHistory = nationalityTypeHistory
self.nationality = nationality
self.nationalityHistory = nationalityHistory
self.hkIdentityid = hkIdentityid
self.hkIdentityidHistory = hkIdentityidHistory
self.identity = identity
self.occupationName = occupationName
self.occupationNameHistory = occupationNameHistory
}
}
// MARK: - BirthPlace
class YHApplicantBirthPlaceModel: SmartCodable {
var area: [String] = []
var country: String = ""
var details: String = ""
var foreign: String = ""
required init() {
}
enum CodingKeys: String, CodingKey {
case area = "area"
case country = "country"
case details = "details"
case foreign = "foreign"
}
init(area: [String], country: String, details: String, foreign: String) {
self.area = area
self.country = country
self.details = details
self.foreign = foreign
}
}
// MARK: - Identity
class YHApplicantIdentityModel: SmartCodable {
var type: Int = -1
var name: String = ""
var number: String = ""
required init() {
}
enum CodingKeys: String, CodingKey {
case type = "type"
case name = "name"
case number = "number"
}
init(type: Int, name: String, number: String) {
self.type = type
self.name = name
self.number = number
}
}
...@@ -13,9 +13,17 @@ class YHApproverInfoVerifyCell: UITableViewCell { ...@@ -13,9 +13,17 @@ class YHApproverInfoVerifyCell: UITableViewCell {
static let cellReuseIdentifier = "YHApproverInfoVerifyCell" static let cellReuseIdentifier = "YHApproverInfoVerifyCell"
var items:[String] = ["", "", "", "", ""] var familyArr:[YHApplicantInfoModel] = []
let memberRowHeight = 69.0 let memberRowHeight = 69.0
func updateFamilyArr(_ familyArr: [YHApplicantInfoModel]) {
self.familyArr = familyArr
tableView.snp.updateConstraints { make in
make.height.equalTo(memberRowHeight * Double(familyArr.count) + 4.0)
}
self.tableView.reloadData()
}
lazy var whiteContentView: UIView = { lazy var whiteContentView: UIView = {
let view = UIView() let view = UIView()
view.backgroundColor = .white view.backgroundColor = .white
...@@ -88,7 +96,7 @@ class YHApproverInfoVerifyCell: UITableViewCell { ...@@ -88,7 +96,7 @@ class YHApproverInfoVerifyCell: UITableViewCell {
tableView.snp.makeConstraints { make in tableView.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(12) make.top.equalTo(titleLabel.snp.bottom).offset(12)
make.height.equalTo(memberRowHeight * Double(items.count) + 4.0) make.height.equalTo(0)
make.left.right.bottom.equalToSuperview() make.left.right.bottom.equalToSuperview()
} }
tableView.reloadData() tableView.reloadData()
...@@ -98,15 +106,16 @@ class YHApproverInfoVerifyCell: UITableViewCell { ...@@ -98,15 +106,16 @@ class YHApproverInfoVerifyCell: UITableViewCell {
extension YHApproverInfoVerifyCell: UITableViewDelegate, UITableViewDataSource { extension YHApproverInfoVerifyCell: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count return familyArr.count
} }
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: YHFamilyMemberInfoCell.cellReuseIdentifier, for: indexPath) let cell = tableView.dequeueReusableCell(withIdentifier: YHFamilyMemberInfoCell.cellReuseIdentifier, for: indexPath) as! YHFamilyMemberInfoCell
if 0 <= indexPath.section && indexPath.section < items.count { if 0 <= indexPath.row && indexPath.row < familyArr.count {
let model = familyArr[indexPath.row]
cell.updateModel(model)
} }
return cell return cell
} }
...@@ -117,8 +126,10 @@ extension YHApproverInfoVerifyCell: UITableViewDelegate, UITableViewDataSource { ...@@ -117,8 +126,10 @@ extension YHApproverInfoVerifyCell: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.row && indexPath.row < items.count { if 0 <= indexPath.row && indexPath.row < familyArr.count {
let vc = YHFamilyInfoUpdateViewController() let model = familyArr[indexPath.row]
let vc = YHFamilyInfoConfirmViewController()
vc.orderId = model.info.id
UIViewController.current?.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} }
} }
......
//
// YHCertificateInfoPhotoCell.swift
// galaxy
//
// Created by edy on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHCertificateInfoPhotoCell: UITableViewCell {
static let cellReuseIdentifier = "YHCertificateInfoPhotoCell"
lazy var infoImgView: UIImageView = {
let view = UIImageView(image: UIImage(named: "family_certificate_info"))
return view
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
self.selectionStyle = .none
self.backgroundColor = .clear
self.contentView.backgroundColor = .clear
contentView.addSubview(infoImgView)
infoImgView.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(0)
make.bottom.equalTo(0)
make.height.equalTo(infoImgView.snp.width).multipliedBy(2716.0/343.0)
}
}
}
...@@ -9,9 +9,19 @@ ...@@ -9,9 +9,19 @@
import UIKit import UIKit
class YHFamilyMemberInfoCell: UITableViewCell { class YHFamilyMemberInfoCell: UITableViewCell {
static let cellReuseIdentifier = "YHFamilyMemberInfoCell" static let cellReuseIdentifier = "YHFamilyMemberInfoCell"
func updateModel(_ model: YHApplicantInfoModel) {
self.relationLabel.text = model.info.getRelation()
self.nameLabel.text = model.info.name
self.pinyinLabel.text = "\(model.info.familyName) \(model.info.givenName)"
self.statusLabel.text = model.confirmStatus == 1 ? "已确认" : "待核对"
let tintColor: UIColor = model.confirmStatus == 1 ? .brandMainColor : .init(hex: 0x3CC694)
let originArrowImg = UIImage(named: "family_info_status_arrow")
self.arrowImgView.image = originArrowImg?.withTintColor(tintColor, renderingMode: UIImage.RenderingMode.alwaysTemplate)
}
lazy var lineView: UIView = { lazy var lineView: UIView = {
let view = UIView() let view = UIView()
view.backgroundColor = .separatorColor view.backgroundColor = .separatorColor
......
//
// YHFamilyWarmTipsCell.swift
// galaxy
//
// Created by edy on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHFamilyWarmTipsCell: UITableViewCell {
static let cellReuseIdentifier = "YHFamilyWarmTipsCell"
lazy var infoImgView: UIImageView = {
let view = UIImageView(image: UIImage(named: "family_warm_tips"))
return view
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
self.selectionStyle = .none
self.backgroundColor = .clear
self.contentView.backgroundColor = .clear
contentView.addSubview(infoImgView)
infoImgView.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(0)
make.bottom.equalTo(0)
make.height.equalTo(infoImgView.snp.width).multipliedBy(250.0/343.0)
}
}
}
//
// YHFamilyInfoConfirmModel.swift
// galaxy
//
// Created by edy on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHFamilyInfoConfirmViewModel: NSObject {
var familyInfo: YHFamilyGroupModel = YHFamilyGroupModel()
func getFamilyInfo(param:[String : Any], callback:((_ success: Bool,_ error:YHErrorModel?)->())?) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.FamilyInfoConfirm.familyInfo
let _ = YHNetRequest.getRequest(url: strUrl,params: param) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
let dic = json.data
guard let resultModel = YHFamilyGroupModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
callback?(false, err)
return
}
self.familyInfo = resultModel
// 处理亲属关系
self.familyInfo.main.info.relation = YHFamilyMemberRelationType.mainApplicant.rawValue
self.familyInfo.spouse.info.relation = YHFamilyMemberRelationType.spouse.rawValue
for child in self.familyInfo.children {
child.info.relation = YHFamilyMemberRelationType.child.rawValue
}
callback?(true, nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callback?(false, err)
}
} failBlock: { err in
callback?(false, err)
}
}
}
//
// YHUploadCertificateVC.swift
// galaxy
//
// Created by davidhuangA on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHUploadCertificateVC: YHBaseViewController {
var items: [String] = ["1", "1"] //for test hjl
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 16.0
tableView.estimatedSectionFooterHeight = 0.01
tableView.contentInsetAdjustmentBehavior = .never
tableView.showsVerticalScrollIndicator = false
tableView.separatorStyle = .none
tableView.delegate = self
tableView.dataSource = self
tableView.backgroundColor = .clear
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHUploadCertificateTitleCell.self, forCellReuseIdentifier: YHUploadCertificateTitleCell.cellReuseIdentifier)
tableView.register(YHUploadCertificateDetailCell.self, forCellReuseIdentifier: YHUploadCertificateDetailCell.cellReuseIdentifier)
return tableView
}()
//我已悉知,确认
lazy var rewardBtn: UIButton = {
let button = UIButton(type: .custom)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 15)
button.contentHorizontalAlignment = .center
button.setTitle("我已全部缴费,下一步", for: .normal)
button.setTitle("缴费结果更新中,请耐心等待", for: .disabled)
button.setTitleColor(UIColor.white, for: .normal)
button.setTitleColor(UIColor.white, for: .disabled)
button.layer.cornerRadius = kCornerRadius3
button.clipsToBounds = true
button.addTarget(self, action: #selector(clickNextBtn), for: .touchUpInside)
button.backgroundColor = UIColor.brandMainColor
return button
}()
lazy var bottomView: UIView = {
let view = UIView()
view.backgroundColor = .clear
view.addSubview(self.rewardBtn)
self.rewardBtn.snp.makeConstraints { make in
make.top.equalToSuperview().offset(10)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(44)
}
view.layer.zPosition = 10
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
}
private extension YHUploadCertificateVC {
func setupUI() {
gk_navTitle = "上传过关证件"
gk_navBarAlpha = 1.0
gk_navBackgroundColor = .white
view.backgroundColor = UIColor.contentBkgColor
view.addSubview(tableView)
// view.addSubview(bottomView)
// bottomView.snp.makeConstraints { make in
// make.bottom.left.right.equalToSuperview()
// make.height.equalTo(98)
// }
tableView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(kMargin)
make.right.equalToSuperview().offset(-kMargin)
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalToSuperview()
}
}
@objc func clickNextBtn() {
YHHUD.flash(message: "预计会在1个工作日内更新缴费结果")
disableSureButton()
}
func disableSureButton() {
rewardBtn.isEnabled = false
rewardBtn.backgroundColor = UIColor.brandMainColor30
}
}
extension YHUploadCertificateVC: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 2
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4 //for test hjl
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if 0 <= indexPath.section && indexPath.section < items.count {
if indexPath.row == 0 {
let warningCell = tableView.dequeueReusableCell(withIdentifier: YHUploadCertificateTitleCell.cellReuseIdentifier, for: indexPath)
return warningCell
} else {
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHUploadCertificateDetailCell.cellReuseIdentifier, for: indexPath) as! YHUploadCertificateDetailCell
if indexPath.row == 3 {
approveCell.isLastCell = true
} else {
approveCell.isLastCell = false
}
return approveCell
}
}
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHVisaPayTypeCell.cellReuseIdentifier, for: indexPath)
return approveCell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.row == 0 {
return YHUploadCertificateTitleCell.cellH
}
return YHUploadCertificateDetailCell.cellH
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.section && indexPath.section < items.count {
}
}
private func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> CGFloat {
return 16.0
}
private func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> CGFloat {
return 0.01
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView()
return view
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let view = UIView()
return view
}
}
//
// YHUploadCertificateDetailCell.swift
// galaxy
//
// Created by davidhuangA on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHUploadCertificateDetailCell: UITableViewCell {
static let cellReuseIdentifier = "YHUploadCertificateDetailCell"
static let cellH : CGFloat = 69.0
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var titleLable: UILabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_R(ofSize:14)
label.text = "马尔扎哈"
return label
}()
lazy var statusLable: UILabel = {
let label = UILabel()
label.textColor = UIColor.brandMainColor
label.font = UIFont.PFSC_R(ofSize:14)
label.text = "待上传"
return label
}()
lazy var statusImageView: UIImageView = {
let view = UIImageView(image: UIImage(named: "blue_right_arrow"))
return view
}()
var isLastCell : Bool = false {
didSet {
updateCell()
}
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
}
private extension YHUploadCertificateDetailCell {
func updateCell() {
if isLastCell {
let corner = UIRectCorner(rawValue: UIRectCorner.bottomLeft.rawValue | UIRectCorner.bottomRight.rawValue)
let path = UIBezierPath(roundedRect:bounds,byRoundingCorners: corner,cornerRadii:CGSizeMake(8, 8));
let layer = CAShapeLayer();
layer.frame = whiteContentView.bounds;
layer.path = path.cgPath;
whiteContentView.layer.mask = layer;
whiteContentView.clipsToBounds = true
lineView.isHidden = true
} else {
whiteContentView.layer.mask = nil;
lineView.isHidden = false
}
}
func setupUI() {
selectionStyle = .none
backgroundColor = .clear
contentView.backgroundColor = .clear
contentView.addSubview(whiteContentView)
whiteContentView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
whiteContentView.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.bottom.equalToSuperview()
make.left.equalTo(18)
make.right.equalTo(-18)
make.height.equalTo(1)
}
whiteContentView.addSubview(statusImageView)
statusImageView.snp.makeConstraints { make in
make.right.equalTo(-18)
make.width.height.equalTo(20)
make.centerY.equalToSuperview()
}
whiteContentView.addSubview(statusLable)
statusLable.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.right.equalTo(statusImageView.snp.left)
make.height.equalTo(20)
}
whiteContentView.addSubview(titleLable)
titleLable.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalToSuperview().offset(18)
make.height.equalTo(20)
}
}
}
//
// YHUploadCertificateTitleCell.swift
// galaxy
//
// Created by davidhuangA on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHUploadCertificateTitleCell: UITableViewCell {
static let cellReuseIdentifier = "YHUploadCertificateTitleCell"
static let cellH : CGFloat = 53.0
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var titleLable: UILabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_M(ofSize:17)
label.text = "小白条"
return label
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
selectionStyle = .none
backgroundColor = .clear
contentView.backgroundColor = .clear
contentView.addSubview(whiteContentView)
whiteContentView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
whiteContentView.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.bottom.equalToSuperview()
make.left.equalTo(18)
make.right.equalTo(-18)
make.height.equalTo(1)
}
whiteContentView.addSubview(titleLable)
titleLable.snp.makeConstraints { make in
make.bottom.equalTo(lineView.snp.top)
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalToSuperview()
}
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
let corner = UIRectCorner(rawValue: UIRectCorner.topLeft.rawValue | UIRectCorner.topRight.rawValue)
let path = UIBezierPath(roundedRect:self.bounds,byRoundingCorners: corner,cornerRadii:CGSizeMake(8, 8));
let layer = CAShapeLayer();
layer.frame = CGRect(x: 0, y: 0, width: KScreenWidth - 16 * 2, height: YHUploadCertificateTitleCell.cellH);
layer.path = path.cgPath;
self.whiteContentView.layer.mask = layer;
self.whiteContentView.clipsToBounds = true
}
}
}
...@@ -10,7 +10,7 @@ import UIKit ...@@ -10,7 +10,7 @@ import UIKit
class YHVisaPaymentVC: YHBaseViewController { class YHVisaPaymentVC: YHBaseViewController {
var items: [String] = ["1", "1"] //for test hjl var items: [String] = ["1", "1","1"] //for test hjl
lazy var tableView: UITableView = { lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped) let tableView = UITableView(frame:.zero, style:.grouped)
...@@ -25,7 +25,7 @@ class YHVisaPaymentVC: YHBaseViewController { ...@@ -25,7 +25,7 @@ class YHVisaPaymentVC: YHBaseViewController {
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell") tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHVisaPaymentTipsCell.self, forCellReuseIdentifier: YHVisaPaymentTipsCell.cellReuseIdentifier) tableView.register(YHVisaPaymentTipsCell.self, forCellReuseIdentifier: YHVisaPaymentTipsCell.cellReuseIdentifier)
tableView.register(YHVisaPayTypeCell.self, forCellReuseIdentifier: YHVisaPayTypeCell.cellReuseIdentifier) tableView.register(YHVisaPayTypeCell.self, forCellReuseIdentifier: YHVisaPayTypeCell.cellReuseIdentifier)
tableView.register(YHPayMembersCell.self, forCellReuseIdentifier: YHPayMembersCell.cellReuseIdentifier)
return tableView return tableView
}() }()
...@@ -104,7 +104,7 @@ private extension YHVisaPaymentVC { ...@@ -104,7 +104,7 @@ private extension YHVisaPaymentVC {
extension YHVisaPaymentVC: UITableViewDelegate, UITableViewDataSource { extension YHVisaPaymentVC: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int { func numberOfSections(in tableView: UITableView) -> Int {
return 2 return 3
} }
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
...@@ -116,6 +116,15 @@ extension YHVisaPaymentVC: UITableViewDelegate, UITableViewDataSource { ...@@ -116,6 +116,15 @@ extension YHVisaPaymentVC: UITableViewDelegate, UITableViewDataSource {
if indexPath.section == 0 { if indexPath.section == 0 {
let warningCell = tableView.dequeueReusableCell(withIdentifier: YHVisaPaymentTipsCell.cellReuseIdentifier, for: indexPath) let warningCell = tableView.dequeueReusableCell(withIdentifier: YHVisaPaymentTipsCell.cellReuseIdentifier, for: indexPath)
return warningCell return warningCell
} else if indexPath.section == 1 {
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHVisaPayTypeCell.cellReuseIdentifier, for: indexPath)
return approveCell
} else if indexPath.section == 2 {
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHPayMembersCell.cellReuseIdentifier, for: indexPath)
return approveCell
} else {
} }
} }
......
//
// YHPayMemberContentItem.swift
// galaxy
//
// Created by davidhuangA on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPayMemberContentItem: UIView {
lazy var titleLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 13)
label.text = "档案号:"
label.textColor = UIColor.mainTextColor70
return label
}()
lazy var detailLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 13)
label.text = "TQEN-03709888-23"
label.textColor = UIColor.mainTextColor
label.textAlignment = .right
return label
}()
lazy var copyBtn: UIButton = {
let btn = UIButton()
btn.setTitle("复制", for: .normal)
btn.setTitleColor(UIColor.mainTextColor, for: .normal)
btn.titleLabel?.font = UIFont.PFSC_M(ofSize: 10)
btn.backgroundColor = UIColor.separatorColor
btn.layer.cornerRadius = 9.0 //36 18
btn.clipsToBounds = true
btn.addTarget(self, action: #selector(clickCopyBtn), for: .touchUpInside)
btn.layer.zPosition = 10
return btn
}()
//用来自动布局
lazy var fakeView: UIView = {
let view = UIView()
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
private extension YHPayMemberContentItem {
@objc func clickCopyBtn() {
UIPasteboard.general.string = "test_test"
YHHUD.flash(message: "已复制档案号")
}
func setupUI() {
backgroundColor = .clear
}
}
extension YHPayMemberContentItem {
func updateUI(title : String = "",detail : String = "",oneLine : Bool = true, showBtn : Bool = false) {
titleLabel.removeFromSuperview()
detailLabel.removeFromSuperview()
copyBtn.removeFromSuperview()
addSubview(titleLabel)
addSubview(detailLabel)
addSubview(fakeView)
titleLabel.text = title
detailLabel.text = detail
if oneLine {
copyBtn.setTitle("复制", for: .normal)
detailLabel.textAlignment = .right
titleLabel.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.height.equalTo(18)
make.left.equalToSuperview()
}
if showBtn {
addSubview(copyBtn)
copyBtn.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.height.equalTo(18)
make.width.equalTo(36)
make.right.equalToSuperview()
}
detailLabel.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.height.equalTo(18)
make.left.equalTo(titleLabel.snp.right).offset(kMargin)
make.right.equalToSuperview().offset(-42)
}
} else {
detailLabel.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.height.equalTo(18)
make.left.equalTo(titleLabel.snp.right).offset(kMargin)
make.right.equalToSuperview()
}
}
} else {
detailLabel.textAlignment = .left
copyBtn.setTitle("查看", for: .normal)
titleLabel.snp.makeConstraints { make in
make.top.equalToSuperview()
make.height.equalTo(18)
make.left.equalToSuperview()
make.right.equalToSuperview()
}
if showBtn {
detailLabel.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(8)
make.height.equalTo(20)
make.left.equalToSuperview()
make.right.equalToSuperview().offset(-42)
}
addSubview(copyBtn)
copyBtn.snp.makeConstraints { make in
make.centerY.equalTo(detailLabel.snp.centerY)
make.height.equalTo(18)
make.width.equalTo(36)
make.right.equalToSuperview()
}
} else {
detailLabel.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(8)
make.height.equalTo(20)
make.left.equalToSuperview()
make.right.equalToSuperview()
}
}
}
fakeView.snp.makeConstraints { make in
make.top.equalTo(detailLabel.snp.bottom)
make.left.right.equalToSuperview()
make.height.equalTo(1)
make.bottom.equalToSuperview()
}
copyBtn.YH_clickEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
}
}
//
// YHPayMemberContentItems.swift
// galaxy
//
// Created by davidhuangA on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPayMemberContentItems: UIView {
//用来自动布局
lazy var fakeView: UIView = {
let view = UIView()
return view
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .clear
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
private extension YHPayMemberContentItems {
func setupUI() {
backgroundColor = .contentBkgColor
layer.cornerRadius = kCornerRadius3
clipsToBounds = true
}
}
extension YHPayMemberContentItems {
func updateUI( type : Int) {
whiteContentView.removeSubviews()
removeSubviews()
addSubview(whiteContentView)
whiteContentView.snp.makeConstraints { make in
make.top.bottom.equalToSuperview()
make.right.equalToSuperview().offset(-14)
make.left.equalToSuperview().offset(14)
}
let item = YHPayMemberContentItem()
whiteContentView.addSubview(item)
item.snp.makeConstraints { make in
make.top.equalTo(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "档案号:",detail: "TQEN-03709888-23",showBtn: true)
var lastView : UIView = item
if type == 1 || type == 2 {
do {
let item = YHPayMemberContentItem()
whiteContentView.addSubview(item)
item.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "可缴费时间段:",detail: "2023.10.1 - 2023.11.20",showBtn: false)
lastView = item
}
do {
let item = YHPayMemberContentItem()
whiteContentView.addSubview(item)
item.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "缴费金额:",detail: "230港币(≈211.89人民币)",showBtn: false)
lastView = item
}
} else if type == 3 {
do {
let item = YHPayMemberContentItem()
whiteContentView.addSubview(item)
item.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "缴费金额:",detail: "230港币(≈211.89人民币)",showBtn: false)
lastView = item
}
do {
whiteContentView.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.height.equalTo(1)
make.left.right.equalToSuperview()
}
lastView = lineView
}
do {
let item = YHPayMemberContentItem()
whiteContentView.addSubview(item)
item.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "缴费电子签证:",detail: "Visa QMEN-0021813-22.pdf",oneLine: false,showBtn: true)
lastView = item
}
}
whiteContentView.addSubview(fakeView)
fakeView.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.height.equalTo(1)
make.left.bottom.right.equalToSuperview()
}
}
}
//
// YHPayMemberItemsView.swift
// galaxy
//
// Created by davidhuangA on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import AttributedString
class YHPayMemberItemsView: UIView {
lazy var sectionItem: YHPayMemberSectionItem = {
let view = YHPayMemberSectionItem()
return view
}()
lazy var contentItems: YHPayMemberContentItems = {
let view = YHPayMemberContentItems()
return view
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
private extension YHPayMemberItemsView {
func setupUI() {
updateUI() //for test hjl
}
}
extension YHPayMemberItemsView {
func updateUI(type : Int = 1) {
removeSubviews()
addSubview(sectionItem)
sectionItem.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(YHPayMemberSectionItem.viewH)
}
sectionItem.updateUI(type: type)
addSubview(contentItems)
contentItems.snp.makeConstraints { make in
make.top.equalTo(sectionItem.snp.bottom).offset(kMargin)
make.left.equalToSuperview()
make.right.equalToSuperview()
}
contentItems.updateUI(type: type)
addSubview(lineView)
lineView.snp.makeConstraints { make in
make.top.equalTo(contentItems.snp.bottom).offset(20)
make.left.right.equalToSuperview()
make.height.equalTo(1)
make.bottom.equalToSuperview()
}
if type == 3 {
lineView.isHidden = true
} else {
lineView.isHidden = false
}
}
}
//
// YHPayMemberSectionItem.swift
// galaxy
//
// Created by davidhuangA on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPayMemberSectionItem: UIView {
static let viewH : CGFloat = 22.0
lazy var tagView: UIView = {
let view = UIView()
view.backgroundColor = .brandMainColor
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_M(ofSize: 16)
label.text = "张全蛋"
return label
}()
lazy var detailLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_M(ofSize: 13)
label.text = "已缴费"
label.textColor = UIColor.mainTextColor50
label.textAlignment = .right
return label
}()
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
private extension YHPayMemberSectionItem {
func setupUI() {
addSubview(tagView)
addSubview(titleLabel)
addSubview(detailLabel)
tagView.snp.makeConstraints { make in
make.left.equalToSuperview()
make.centerY.equalToSuperview()
make.height.equalTo(14)
make.width.equalTo(3)
}
detailLabel.snp.makeConstraints { make in
make.right.equalToSuperview()
make.centerY.equalToSuperview()
make.height.equalTo(20)
}
titleLabel.snp.makeConstraints { make in
make.left.equalTo(tagView.snp.right).offset(6)
make.centerY.equalToSuperview()
make.right.equalTo(detailLabel.snp.left).offset(-kMargin)
make.height.equalTo(20)
}
}
}
extension YHPayMemberSectionItem {
func updateUI(type : Int) {
var txt = "待缴费"
var color : UIColor = UIColor.failColor
if type == 1 {
txt = "待缴费"
color = .brandMainColor
} else if type == 2 {
txt = "已过期"
color = .failColor
} else if type == 3 {
txt = "已缴费"
color = .mainTextColor50
}
detailLabel.text = txt
detailLabel.textColor = color
}
}
//
// YHPayMembersCell.swift
// galaxy
//
// Created by davidhuangA on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import AttributedString
class YHPayMembersCell: UITableViewCell {
static let cellReuseIdentifier = "YHPayMembersCell"
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
view.clipsToBounds = true
view.backgroundColor = .white
return view
}()
lazy var tipsLable: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.textColor = UIColor.yhGreyColor
label.font = UIFont.PFSC_M(ofSize:14)
label.text = "温馨提示:若此处缴费状态和港府官网显示不一致,可能存在延迟更新状态,可尝试更新缴费结果,缴费状态以港府为准"
return label
}()
//用来自动布局
lazy var fakeView: UIView = {
let view = UIView()
return view
}()
private var arrOtherView : [UIView] = []
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
}
private extension YHPayMembersCell {
func setupUI() {
selectionStyle = .none
backgroundColor = .clear
contentView.backgroundColor = .clear
contentView.addSubview(whiteContentView)
whiteContentView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
//
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_M(ofSize:17)
label.text = "缴费成员"
whiteContentView.addSubview(label)
label.snp.makeConstraints { make in
make.top.equalTo(kMargin)
make.left.equalTo(kMargin)
make.height.equalTo(24)
}
let line = UIView()
line.backgroundColor = .separatorColor
whiteContentView.addSubview(line)
line.snp.makeConstraints { make in
make.top.equalTo(label.snp.bottom).offset(12)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(1)
}
whiteContentView.addSubview(tipsLable)
tipsLable.snp.makeConstraints { make in
make.top.equalTo(line.snp.bottom).offset(kMargin)
make.left.equalTo(kMargin)
make.right.equalToSuperview().offset(-kMargin)
}
let a: ASAttributedString = .init("温馨提示:若此处缴费状态和港府官网显示不一致,可能存在延迟更新状态,", .font(UIFont.PFSC_R(ofSize: 12)),.foreground(UIColor.yhGreyColor))
let aa: ASAttributedString = .init(NSAttributedString(string: "可尝试更新缴费结果"), .font(UIFont.PFSC_R(ofSize: 12)),.foreground(UIColor.brandMainColor))
let aaa: ASAttributedString = .init(",缴费状态以港府为准", .font(UIFont.PFSC_R(ofSize: 12)),.foreground(UIColor.yhGreyColor))
tipsLable.attributed.text = a + aa + aaa
whiteContentView.addSubview(fakeView)
fakeView.snp.makeConstraints { make in
make.top.equalTo(tipsLable.snp.bottom).offset(kMargin)
make.left.equalTo(kMargin)
make.right.equalToSuperview().offset(-kMargin)
make.bottom.equalToSuperview()
}
updateUI() //for test hjl
}
}
private extension YHPayMembersCell {
func updateUI() {
for (index,item) in arrOtherView.enumerated() {
item.removeFromSuperview()
}
arrOtherView.removeAll()
//for test hjl
fakeView.snp.removeConstraints()
let arr : [Int] = [1,2,3]//for test hjl
var lastView : UIView = tipsLable
for (index, item) in arr.enumerated() {
let view = YHPayMemberItemsView()
whiteContentView.addSubview(view)
view.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.right.equalToSuperview().offset(-kMargin)
}
view.updateUI(type: index + 1)
lastView = view
arrOtherView.append(view)
}
fakeView.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.equalTo(kMargin)
make.right.equalToSuperview().offset(-kMargin)
make.height.equalTo(1)
make.bottom.equalToSuperview()
}
}
}
...@@ -19,5 +19,6 @@ class YHFileListModel: SmartCodable { ...@@ -19,5 +19,6 @@ class YHFileListModel: SmartCodable {
var arrTxt : [String] = [] //type=1时使用的内容 var arrTxt : [String] = [] //type=1时使用的内容
required init() { required init() {
} }
} }
...@@ -132,11 +132,14 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget { ...@@ -132,11 +132,14 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
view.collectClick = { view.collectClick = {
[weak self] in [weak self] in
guard let self = self else { return } guard let self = self else { return }
if !checkLogin() { return } // if !checkLogin() { return }
let vc = YHMyLikeActivityViewController() // let vc = YHMyLikeActivityViewController()
vc.myDefaultNavItemIndex = 1 // vc.myDefaultNavItemIndex = 1
self.navigationController?.pushViewController(vc) // self.navigationController?.pushViewController(vc)
print("收藏") // print("收藏")
let vc = YHUploadCertificateVC()
self.navigationController?.pushViewController(vc) //for test hjl
} }
view.recentScanClick = { view.recentScanClick = {
[weak self] in [weak self] in
...@@ -342,7 +345,7 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource { ...@@ -342,7 +345,7 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
if true { if true {
// test dy // test dy
let vc = YHCertificateAppointViewController() let vc = YHFamilyInfoConfirmViewController()
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
return return
} }
......
...@@ -403,4 +403,17 @@ class YHAllApiName { ...@@ -403,4 +403,17 @@ class YHAllApiName {
static let sendMail = "infoflow/file/send-mail" static let sendMail = "infoflow/file/send-mail"
} }
struct MakeCertificate {
// 获取香港服务列表
static let servicelist = "super-app/order/customer/journey/journey-service"
}
struct FamilyInfoConfirm {
// 获取获批者家庭信息
static let familyInfo = "super-app/order/family/information/obtain"
}
} }
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 2033195466@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 2033195466@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 2033195465@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 2033195465@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "箭头中@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "箭头中@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "箭头中@3x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "箭头中@2x 1.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Mask group@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Mask group@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 2033195689@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 2033195689@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment