Commit ae3125bf authored by David黄金龙's avatar David黄金龙

代码合并

parents 4f79df52 94e5bc52
...@@ -156,9 +156,11 @@ ...@@ -156,9 +156,11 @@
044867B42BA1953B00DFAD4A /* YHCertificateFilterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B32BA1953B00DFAD4A /* YHCertificateFilterView.swift */; }; 044867B42BA1953B00DFAD4A /* YHCertificateFilterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B32BA1953B00DFAD4A /* YHCertificateFilterView.swift */; };
044867B62BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B52BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift */; }; 044867B62BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B52BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift */; };
044867B82BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B72BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift */; }; 044867B82BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B72BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift */; };
0449EEE92C8EEB1E00A397FD /* YHResinMaterialManageListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0449EEE82C8EEB1E00A397FD /* YHResinMaterialManageListVC.swift */; }; 0449EEE92C8EEB1E00A397FD /* YHResinMaterialManageContainerVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0449EEE82C8EEB1E00A397FD /* YHResinMaterialManageContainerVC.swift */; };
0449EEEB2C8EF2B700A397FD /* YHResignMaterialUploadVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0449EEEA2C8EF2B700A397FD /* YHResignMaterialUploadVC.swift */; }; 0449EEEB2C8EF2B700A397FD /* YHResignMaterialListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0449EEEA2C8EF2B700A397FD /* YHResignMaterialListVC.swift */; };
0449EEEE2C8EF8CB00A397FD /* YHResignMaterialCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0449EEED2C8EF8CB00A397FD /* YHResignMaterialCell.swift */; }; 0449EEEE2C8EF8CB00A397FD /* YHResignMaterialCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0449EEED2C8EF8CB00A397FD /* YHResignMaterialCell.swift */; };
0449EEF02C902A4100A397FD /* YHResignMaterialUploadVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0449EEEF2C902A4100A397FD /* YHResignMaterialUploadVC.swift */; };
0449EEF32C903A4100A397FD /* YHMaterialListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0449EEF22C903A4100A397FD /* YHMaterialListModel.swift */; };
044BACC72BCFA58E00184C64 /* YHNoDataTipsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044BACC62BCFA58E00184C64 /* YHNoDataTipsView.swift */; }; 044BACC72BCFA58E00184C64 /* YHNoDataTipsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044BACC62BCFA58E00184C64 /* YHNoDataTipsView.swift */; };
044CF8D42BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CF8D32BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift */; }; 044CF8D42BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CF8D32BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift */; };
044CF8D62BBA57DC00008CE8 /* YHFailPromptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CF8D52BBA57DC00008CE8 /* YHFailPromptView.swift */; }; 044CF8D62BBA57DC00008CE8 /* YHFailPromptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CF8D52BBA57DC00008CE8 /* YHFailPromptView.swift */; };
...@@ -181,6 +183,13 @@ ...@@ -181,6 +183,13 @@
044D0C1C2C22C30B00C5CF5E /* YHEditSchoolViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044D0C1B2C22C30B00C5CF5E /* YHEditSchoolViewController.swift */; }; 044D0C1C2C22C30B00C5CF5E /* YHEditSchoolViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044D0C1B2C22C30B00C5CF5E /* YHEditSchoolViewController.swift */; };
044D0C1E2C22CFBF00C5CF5E /* YHEditWorkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044D0C1D2C22CFBF00C5CF5E /* YHEditWorkViewController.swift */; }; 044D0C1E2C22CFBF00C5CF5E /* YHEditWorkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044D0C1D2C22CFBF00C5CF5E /* YHEditWorkViewController.swift */; };
044D0C202C22D37500C5CF5E /* YHEditHonorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044D0C1F2C22D37500C5CF5E /* YHEditHonorViewController.swift */; }; 044D0C202C22D37500C5CF5E /* YHEditHonorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044D0C1F2C22D37500C5CF5E /* YHEditHonorViewController.swift */; };
044EE2232C8FE1D000A2FE3A /* YHServiceCenterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044EE2222C8FE1D000A2FE3A /* YHServiceCenterViewController.swift */; };
044EE2252C90138000A2FE3A /* YHServerCenterHoldViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044EE2242C90138000A2FE3A /* YHServerCenterHoldViewController.swift */; };
044EE2272C91367800A2FE3A /* YHServiceStepThreeSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044EE2262C91367800A2FE3A /* YHServiceStepThreeSectionView.swift */; };
044EE2292C913D6400A2FE3A /* YHServiceCenterStepThreeTableHeadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044EE2282C913D6400A2FE3A /* YHServiceCenterStepThreeTableHeadView.swift */; };
044EE22B2C91683800A2FE3A /* YHServiceCenterViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044EE22A2C91683800A2FE3A /* YHServiceCenterViewModel.swift */; };
044EE22D2C9184CD00A2FE3A /* YHServiceMoreAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044EE22C2C9184CD00A2FE3A /* YHServiceMoreAlertView.swift */; };
044EE22F2C918D1400A2FE3A /* YHServiceStepAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044EE22E2C918D1400A2FE3A /* YHServiceStepAlertView.swift */; };
04506F552C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */; }; 04506F552C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */; };
045A08C02C37ABF500BCBABA /* YHSegmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045A08BF2C37ABF500BCBABA /* YHSegmentView.swift */; }; 045A08C02C37ABF500BCBABA /* YHSegmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045A08BF2C37ABF500BCBABA /* YHSegmentView.swift */; };
045A08C22C37EB8B00BCBABA /* YHMyFileListNoneCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045A08C12C37EB8B00BCBABA /* YHMyFileListNoneCell.swift */; }; 045A08C22C37EB8B00BCBABA /* YHMyFileListNoneCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045A08C12C37EB8B00BCBABA /* YHMyFileListNoneCell.swift */; };
...@@ -519,6 +528,7 @@ ...@@ -519,6 +528,7 @@
04EA376F2BEA071600DBAF64 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 04EA376E2BEA070500DBAF64 /* libc++.tbd */; }; 04EA376F2BEA071600DBAF64 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 04EA376E2BEA070500DBAF64 /* libc++.tbd */; };
04EA37742BEA0A3400DBAF64 /* YHShareManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04EA37732BEA0A3400DBAF64 /* YHShareManager.swift */; }; 04EA37742BEA0A3400DBAF64 /* YHShareManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04EA37732BEA0A3400DBAF64 /* YHShareManager.swift */; };
04EC2F812C22888E002907D7 /* YHFriendRequestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04EC2F802C22888E002907D7 /* YHFriendRequestView.swift */; }; 04EC2F812C22888E002907D7 /* YHFriendRequestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04EC2F802C22888E002907D7 /* YHFriendRequestView.swift */; };
04EFC8E92C903F1100FC680F /* YHResignMaterialViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04EFC8E82C903F1100FC680F /* YHResignMaterialViewModel.swift */; };
04F0ABF32C364F9400518C30 /* home.json in Resources */ = {isa = PBXBuildFile; fileRef = 04F0ABF02C364F9400518C30 /* home.json */; }; 04F0ABF32C364F9400518C30 /* home.json in Resources */ = {isa = PBXBuildFile; fileRef = 04F0ABF02C364F9400518C30 /* home.json */; };
04F0ABF42C364F9400518C30 /* my.json in Resources */ = {isa = PBXBuildFile; fileRef = 04F0ABF12C364F9400518C30 /* my.json */; }; 04F0ABF42C364F9400518C30 /* my.json in Resources */ = {isa = PBXBuildFile; fileRef = 04F0ABF12C364F9400518C30 /* my.json */; };
04F0ABF52C364F9400518C30 /* community.json in Resources */ = {isa = PBXBuildFile; fileRef = 04F0ABF22C364F9400518C30 /* community.json */; }; 04F0ABF52C364F9400518C30 /* community.json in Resources */ = {isa = PBXBuildFile; fileRef = 04F0ABF22C364F9400518C30 /* community.json */; };
...@@ -928,9 +938,11 @@ ...@@ -928,9 +938,11 @@
044867B32BA1953B00DFAD4A /* YHCertificateFilterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateFilterView.swift; sourceTree = "<group>"; }; 044867B32BA1953B00DFAD4A /* YHCertificateFilterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateFilterView.swift; sourceTree = "<group>"; };
044867B52BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateFilterItemCell.swift; sourceTree = "<group>"; }; 044867B52BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateFilterItemCell.swift; sourceTree = "<group>"; };
044867B72BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateUploadFailTipsView.swift; sourceTree = "<group>"; }; 044867B72BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateUploadFailTipsView.swift; sourceTree = "<group>"; };
0449EEE82C8EEB1E00A397FD /* YHResinMaterialManageListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResinMaterialManageListVC.swift; sourceTree = "<group>"; }; 0449EEE82C8EEB1E00A397FD /* YHResinMaterialManageContainerVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResinMaterialManageContainerVC.swift; sourceTree = "<group>"; };
0449EEEA2C8EF2B700A397FD /* YHResignMaterialUploadVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignMaterialUploadVC.swift; sourceTree = "<group>"; }; 0449EEEA2C8EF2B700A397FD /* YHResignMaterialListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignMaterialListVC.swift; sourceTree = "<group>"; };
0449EEED2C8EF8CB00A397FD /* YHResignMaterialCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignMaterialCell.swift; sourceTree = "<group>"; }; 0449EEED2C8EF8CB00A397FD /* YHResignMaterialCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignMaterialCell.swift; sourceTree = "<group>"; };
0449EEEF2C902A4100A397FD /* YHResignMaterialUploadVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignMaterialUploadVC.swift; sourceTree = "<group>"; };
0449EEF22C903A4100A397FD /* YHMaterialListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMaterialListModel.swift; sourceTree = "<group>"; };
044BACC62BCFA58E00184C64 /* YHNoDataTipsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHNoDataTipsView.swift; sourceTree = "<group>"; }; 044BACC62BCFA58E00184C64 /* YHNoDataTipsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHNoDataTipsView.swift; sourceTree = "<group>"; };
044CF8D32BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSignatureUploadTableViewCell.swift; sourceTree = "<group>"; }; 044CF8D32BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSignatureUploadTableViewCell.swift; sourceTree = "<group>"; };
044CF8D52BBA57DC00008CE8 /* YHFailPromptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFailPromptView.swift; sourceTree = "<group>"; }; 044CF8D52BBA57DC00008CE8 /* YHFailPromptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFailPromptView.swift; sourceTree = "<group>"; };
...@@ -953,6 +965,13 @@ ...@@ -953,6 +965,13 @@
044D0C1B2C22C30B00C5CF5E /* YHEditSchoolViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHEditSchoolViewController.swift; sourceTree = "<group>"; }; 044D0C1B2C22C30B00C5CF5E /* YHEditSchoolViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHEditSchoolViewController.swift; sourceTree = "<group>"; };
044D0C1D2C22CFBF00C5CF5E /* YHEditWorkViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHEditWorkViewController.swift; sourceTree = "<group>"; }; 044D0C1D2C22CFBF00C5CF5E /* YHEditWorkViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHEditWorkViewController.swift; sourceTree = "<group>"; };
044D0C1F2C22D37500C5CF5E /* YHEditHonorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHEditHonorViewController.swift; sourceTree = "<group>"; }; 044D0C1F2C22D37500C5CF5E /* YHEditHonorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHEditHonorViewController.swift; sourceTree = "<group>"; };
044EE2222C8FE1D000A2FE3A /* YHServiceCenterViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceCenterViewController.swift; sourceTree = "<group>"; };
044EE2242C90138000A2FE3A /* YHServerCenterHoldViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServerCenterHoldViewController.swift; sourceTree = "<group>"; };
044EE2262C91367800A2FE3A /* YHServiceStepThreeSectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceStepThreeSectionView.swift; sourceTree = "<group>"; };
044EE2282C913D6400A2FE3A /* YHServiceCenterStepThreeTableHeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceCenterStepThreeTableHeadView.swift; sourceTree = "<group>"; };
044EE22A2C91683800A2FE3A /* YHServiceCenterViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceCenterViewModel.swift; sourceTree = "<group>"; };
044EE22C2C9184CD00A2FE3A /* YHServiceMoreAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceMoreAlertView.swift; sourceTree = "<group>"; };
044EE22E2C918D1400A2FE3A /* YHServiceStepAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceStepAlertView.swift; sourceTree = "<group>"; };
04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyMemberInfoCell.swift; sourceTree = "<group>"; }; 04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyMemberInfoCell.swift; sourceTree = "<group>"; };
045A08BF2C37ABF500BCBABA /* YHSegmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSegmentView.swift; sourceTree = "<group>"; }; 045A08BF2C37ABF500BCBABA /* YHSegmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSegmentView.swift; sourceTree = "<group>"; };
045A08C12C37EB8B00BCBABA /* YHMyFileListNoneCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMyFileListNoneCell.swift; sourceTree = "<group>"; }; 045A08C12C37EB8B00BCBABA /* YHMyFileListNoneCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMyFileListNoneCell.swift; sourceTree = "<group>"; };
...@@ -1294,6 +1313,7 @@ ...@@ -1294,6 +1313,7 @@
04EA376E2BEA070500DBAF64 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; 04EA376E2BEA070500DBAF64 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
04EA37732BEA0A3400DBAF64 /* YHShareManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHShareManager.swift; sourceTree = "<group>"; }; 04EA37732BEA0A3400DBAF64 /* YHShareManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHShareManager.swift; sourceTree = "<group>"; };
04EC2F802C22888E002907D7 /* YHFriendRequestView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFriendRequestView.swift; sourceTree = "<group>"; }; 04EC2F802C22888E002907D7 /* YHFriendRequestView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFriendRequestView.swift; sourceTree = "<group>"; };
04EFC8E82C903F1100FC680F /* YHResignMaterialViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignMaterialViewModel.swift; sourceTree = "<group>"; };
04F0ABF02C364F9400518C30 /* home.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = home.json; sourceTree = "<group>"; }; 04F0ABF02C364F9400518C30 /* home.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = home.json; sourceTree = "<group>"; };
04F0ABF12C364F9400518C30 /* my.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = my.json; sourceTree = "<group>"; }; 04F0ABF12C364F9400518C30 /* my.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = my.json; sourceTree = "<group>"; };
04F0ABF22C364F9400518C30 /* community.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = community.json; sourceTree = "<group>"; }; 04F0ABF22C364F9400518C30 /* community.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = community.json; sourceTree = "<group>"; };
...@@ -1968,6 +1988,8 @@ ...@@ -1968,6 +1988,8 @@
0449EEE62C8EEA2B00A397FD /* ResignMaterialManage(续期资料管理) */ = { 0449EEE62C8EEA2B00A397FD /* ResignMaterialManage(续期资料管理) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
04EFC8E72C903EEC00FC680F /* VM */,
0449EEF12C9039F000A397FD /* M */,
0449EEEC2C8EF7BA00A397FD /* V */, 0449EEEC2C8EF7BA00A397FD /* V */,
0449EEE72C8EEA8A00A397FD /* C */, 0449EEE72C8EEA8A00A397FD /* C */,
); );
...@@ -1977,8 +1999,9 @@ ...@@ -1977,8 +1999,9 @@
0449EEE72C8EEA8A00A397FD /* C */ = { 0449EEE72C8EEA8A00A397FD /* C */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
0449EEE82C8EEB1E00A397FD /* YHResinMaterialManageListVC.swift */, 0449EEE82C8EEB1E00A397FD /* YHResinMaterialManageContainerVC.swift */,
0449EEEA2C8EF2B700A397FD /* YHResignMaterialUploadVC.swift */, 0449EEEA2C8EF2B700A397FD /* YHResignMaterialListVC.swift */,
0449EEEF2C902A4100A397FD /* YHResignMaterialUploadVC.swift */,
); );
path = C; path = C;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -1991,6 +2014,14 @@ ...@@ -1991,6 +2014,14 @@
path = V; path = V;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
0449EEF12C9039F000A397FD /* M */ = {
isa = PBXGroup;
children = (
0449EEF22C903A4100A397FD /* YHMaterialListModel.swift */,
);
path = M;
sourceTree = "<group>";
};
044D0BE82C2019AC00C5CF5E /* Community(社区) */ = { 044D0BE82C2019AC00C5CF5E /* Community(社区) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -3215,6 +3246,14 @@ ...@@ -3215,6 +3246,14 @@
path = Server; path = Server;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
04EFC8E72C903EEC00FC680F /* VM */ = {
isa = PBXGroup;
children = (
04EFC8E82C903F1100FC680F /* YHResignMaterialViewModel.swift */,
);
path = VM;
sourceTree = "<group>";
};
04F957492C2032A0003C631C /* V */ = { 04F957492C2032A0003C631C /* V */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -3832,6 +3871,8 @@ ...@@ -3832,6 +3871,8 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
A5ACE9192B4564F7002C94D2 /* YHServiceCenterMainViewController.swift */, A5ACE9192B4564F7002C94D2 /* YHServiceCenterMainViewController.swift */,
044EE2222C8FE1D000A2FE3A /* YHServiceCenterViewController.swift */,
044EE2242C90138000A2FE3A /* YHServerCenterHoldViewController.swift */,
04E41DE72BD240570077EAE3 /* YHOrderDetailViewController.swift */, 04E41DE72BD240570077EAE3 /* YHOrderDetailViewController.swift */,
048787D42BCE880B0036E221 /* YHServiceOrderListViewController.swift */, 048787D42BCE880B0036E221 /* YHServiceOrderListViewController.swift */,
A5FD63BC2B623C2C00D1D9DA /* YHInformationPerfectListVC.swift */, A5FD63BC2B623C2C00D1D9DA /* YHInformationPerfectListVC.swift */,
...@@ -3860,6 +3901,10 @@ ...@@ -3860,6 +3901,10 @@
048787D62BCE96F50036E221 /* YHServiceOrderProgressTableViewCell.swift */, 048787D62BCE96F50036E221 /* YHServiceOrderProgressTableViewCell.swift */,
048787D82BCF68530036E221 /* YHProgressView.swift */, 048787D82BCF68530036E221 /* YHProgressView.swift */,
044BACC62BCFA58E00184C64 /* YHNoDataTipsView.swift */, 044BACC62BCFA58E00184C64 /* YHNoDataTipsView.swift */,
044EE2262C91367800A2FE3A /* YHServiceStepThreeSectionView.swift */,
044EE2282C913D6400A2FE3A /* YHServiceCenterStepThreeTableHeadView.swift */,
044EE22C2C9184CD00A2FE3A /* YHServiceMoreAlertView.swift */,
044EE22E2C918D1400A2FE3A /* YHServiceStepAlertView.swift */,
); );
path = V; path = V;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -3923,6 +3968,7 @@ ...@@ -3923,6 +3968,7 @@
children = ( children = (
A5C382CE2B5F9A9100C5E65C /* YHServiceCenterMainViewModel.swift */, A5C382CE2B5F9A9100C5E65C /* YHServiceCenterMainViewModel.swift */,
043D2C8B2C0F037B00172438 /* YHServiceOrderSearchViewModel.swift */, 043D2C8B2C0F037B00172438 /* YHServiceOrderSearchViewModel.swift */,
044EE22A2C91683800A2FE3A /* YHServiceCenterViewModel.swift */,
); );
path = VM; path = VM;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -4425,6 +4471,7 @@ ...@@ -4425,6 +4471,7 @@
04CC2EF02BC3DDB2000305DD /* YHServiceBannerView.swift in Sources */, 04CC2EF02BC3DDB2000305DD /* YHServiceBannerView.swift in Sources */,
A598E9DA2C7CA28200F84739 /* YHTravelDocsPreparationListCell.swift in Sources */, A598E9DA2C7CA28200F84739 /* YHTravelDocsPreparationListCell.swift in Sources */,
045EEEA32B9F171A0022A143 /* YHCompanyModel.swift in Sources */, 045EEEA32B9F171A0022A143 /* YHCompanyModel.swift in Sources */,
044EE22B2C91683800A2FE3A /* YHServiceCenterViewModel.swift in Sources */,
0430E64E2C733477000511E2 /* YHAdopterIncomeDetailViewController.swift in Sources */, 0430E64E2C733477000511E2 /* YHAdopterIncomeDetailViewController.swift in Sources */,
045EEEC62B9F171A0022A143 /* YHOtherTextViewItemView.swift in Sources */, 045EEEC62B9F171A0022A143 /* YHOtherTextViewItemView.swift in Sources */,
046A95312C6EFB980059326A /* YHFamilyMemberRiskWarningAlertView.swift in Sources */, 046A95312C6EFB980059326A /* YHFamilyMemberRiskWarningAlertView.swift in Sources */,
...@@ -4452,6 +4499,7 @@ ...@@ -4452,6 +4499,7 @@
045EEEDE2B9F171A0022A143 /* YHEducationInfoCell.swift in Sources */, 045EEEDE2B9F171A0022A143 /* YHEducationInfoCell.swift in Sources */,
0409BEEB2C5B41D4003FCFD7 /* YHPrincipleProfileListCell.swift in Sources */, 0409BEEB2C5B41D4003FCFD7 /* YHPrincipleProfileListCell.swift in Sources */,
A5ACE93A2B4564F7002C94D2 /* NSAttributedString+Extension.swift in Sources */, A5ACE93A2B4564F7002C94D2 /* NSAttributedString+Extension.swift in Sources */,
044EE2292C913D6400A2FE3A /* YHServiceCenterStepThreeTableHeadView.swift in Sources */,
A5F886B42C61CEA700B63CF5 /* YHPictureReviewManager.swift in Sources */, A5F886B42C61CEA700B63CF5 /* YHPictureReviewManager.swift in Sources */,
04E86E662B86EB6F00A35F4B /* YHLoginManager.swift in Sources */, 04E86E662B86EB6F00A35F4B /* YHLoginManager.swift in Sources */,
04A7BD112BA4218B00BD35A2 /* YHMyDocumentsListViewModel.swift in Sources */, 04A7BD112BA4218B00BD35A2 /* YHMyDocumentsListViewModel.swift in Sources */,
...@@ -4519,6 +4567,7 @@ ...@@ -4519,6 +4567,7 @@
04CE1ADF2C2AD91F001CB80A /* YHActivityListCell.swift in Sources */, 04CE1ADF2C2AD91F001CB80A /* YHActivityListCell.swift in Sources */,
04256DFC2C742C7D00A37BA4 /* YHFamilyInfoConfirmViewModel.swift in Sources */, 04256DFC2C742C7D00A37BA4 /* YHFamilyInfoConfirmViewModel.swift in Sources */,
A59B43CF2C4B5AD100B28379 /* YHShareViewOnTablebarView.swift in Sources */, A59B43CF2C4B5AD100B28379 /* YHShareViewOnTablebarView.swift in Sources */,
044EE22F2C918D1400A2FE3A /* YHServiceStepAlertView.swift in Sources */,
A5ACE94A2B4564F7002C94D2 /* YHHUDProgressView.swift in Sources */, A5ACE94A2B4564F7002C94D2 /* YHHUDProgressView.swift in Sources */,
04A271232BABFF3200652B1B /* YHCertificateUploadTypeCell.swift in Sources */, 04A271232BABFF3200652B1B /* YHCertificateUploadTypeCell.swift in Sources */,
04B360F32C636525001EB053 /* YHPrincipleWaitResultViewController.swift in Sources */, 04B360F32C636525001EB053 /* YHPrincipleWaitResultViewController.swift in Sources */,
...@@ -4572,6 +4621,7 @@ ...@@ -4572,6 +4621,7 @@
04FA8B302C0874CA00ABE43F /* YHOneKeyLoginViewModel.swift in Sources */, 04FA8B302C0874CA00ABE43F /* YHOneKeyLoginViewModel.swift in Sources */,
04256E112C75BD2700A37BA4 /* YHVisaPaymentListModel.swift in Sources */, 04256E112C75BD2700A37BA4 /* YHVisaPaymentListModel.swift in Sources */,
04A7BD0F2BA41C9800BD35A2 /* YHMyDocumentsModel.swift in Sources */, 04A7BD0F2BA41C9800BD35A2 /* YHMyDocumentsModel.swift in Sources */,
0449EEF02C902A4100A397FD /* YHResignMaterialUploadVC.swift in Sources */,
04174D642BCD52BD000BA46D /* YHDeviceInfoViewController.swift in Sources */, 04174D642BCD52BD000BA46D /* YHDeviceInfoViewController.swift in Sources */,
0472E25E2C534723008EAB6E /* YHLifeDetailViewController.swift in Sources */, 0472E25E2C534723008EAB6E /* YHLifeDetailViewController.swift in Sources */,
A5ACE92E2B4564F7002C94D2 /* YHValidateCodeInputView.swift in Sources */, A5ACE92E2B4564F7002C94D2 /* YHValidateCodeInputView.swift in Sources */,
...@@ -4585,6 +4635,7 @@ ...@@ -4585,6 +4635,7 @@
A567E5B32BD7643D00D5D5A0 /* YHServiceOrderAlertView.swift in Sources */, A567E5B32BD7643D00D5D5A0 /* YHServiceOrderAlertView.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 */,
044EE2232C8FE1D000A2FE3A /* YHServiceCenterViewController.swift in Sources */,
A567E5A92BD7643D00D5D5A0 /* YHSearchInfoHistoryView.swift in Sources */, A567E5A92BD7643D00D5D5A0 /* YHSearchInfoHistoryView.swift in Sources */,
045EEE802B9F171A0022A143 /* YHAcademicPreviewModel.swift in Sources */, 045EEE802B9F171A0022A143 /* YHAcademicPreviewModel.swift in Sources */,
04256E122C75BD2700A37BA4 /* YHPayMemberContentItem.swift in Sources */, 04256E122C75BD2700A37BA4 /* YHPayMemberContentItem.swift in Sources */,
...@@ -4667,10 +4718,11 @@ ...@@ -4667,10 +4718,11 @@
A5ACE9312B4564F7002C94D2 /* YHPersonalCenterCell.swift in Sources */, A5ACE9312B4564F7002C94D2 /* YHPersonalCenterCell.swift in Sources */,
0430E6562C7342AB000511E2 /* YHAdopterIncomeFileCountTableViewCell.swift in Sources */, 0430E6562C7342AB000511E2 /* YHAdopterIncomeFileCountTableViewCell.swift in Sources */,
045EEE9A2B9F171A0022A143 /* YHWorkIntroductionViewModel.swift in Sources */, 045EEE9A2B9F171A0022A143 /* YHWorkIntroductionViewModel.swift in Sources */,
0449EEEB2C8EF2B700A397FD /* YHResignMaterialUploadVC.swift in Sources */, 0449EEEB2C8EF2B700A397FD /* YHResignMaterialListVC.swift in Sources */,
044D0C1C2C22C30B00C5CF5E /* YHEditSchoolViewController.swift in Sources */, 044D0C1C2C22C30B00C5CF5E /* YHEditSchoolViewController.swift in Sources */,
A5CA3F562C74850200EB22F5 /* YHUploadCertificateDetailVC.swift in Sources */, A5CA3F562C74850200EB22F5 /* YHUploadCertificateDetailVC.swift in Sources */,
A5ACE9532B4564F7002C94D2 /* YHBaseViewController.swift in Sources */, A5ACE9532B4564F7002C94D2 /* YHBaseViewController.swift in Sources */,
04EFC8E92C903F1100FC680F /* YHResignMaterialViewModel.swift in Sources */,
04256DE82C7314B500A37BA4 /* YHSelectApplicantCell.swift in Sources */, 04256DE82C7314B500A37BA4 /* YHSelectApplicantCell.swift in Sources */,
045EEE9D2B9F171A0022A143 /* YHWorkItemListViewModel.swift in Sources */, 045EEE9D2B9F171A0022A143 /* YHWorkItemListViewModel.swift in Sources */,
A5ACE9392B4564F7002C94D2 /* UIDevice+Extension.swift in Sources */, A5ACE9392B4564F7002C94D2 /* UIDevice+Extension.swift in Sources */,
...@@ -4729,7 +4781,7 @@ ...@@ -4729,7 +4781,7 @@
04256E002C7440A500A37BA4 /* YHFamilyWarmTipsCell.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 */,
0449EEE92C8EEB1E00A397FD /* YHResinMaterialManageListVC.swift in Sources */, 0449EEE92C8EEB1E00A397FD /* YHResinMaterialManageContainerVC.swift in Sources */,
0430E6542C73400A000511E2 /* YHAdopterUploadTableViewCell.swift in Sources */, 0430E6542C73400A000511E2 /* YHAdopterUploadTableViewCell.swift in Sources */,
04CE1AD32C2AD91F001CB80A /* YHTravelModel.swift in Sources */, 04CE1AD32C2AD91F001CB80A /* YHTravelModel.swift in Sources */,
04213B372C4F87C600797900 /* YHHomeLifeCategoryDetailModel.swift in Sources */, 04213B372C4F87C600797900 /* YHHomeLifeCategoryDetailModel.swift in Sources */,
...@@ -4755,6 +4807,7 @@ ...@@ -4755,6 +4807,7 @@
04213B2F2C49154900797900 /* YHHomeInfoDetailContainerViewController.swift in Sources */, 04213B2F2C49154900797900 /* YHHomeInfoDetailContainerViewController.swift in Sources */,
047AA3FA2C60739E009C4554 /* YHInvitationWithGiftsSelectItemView.swift in Sources */, 047AA3FA2C60739E009C4554 /* YHInvitationWithGiftsSelectItemView.swift in Sources */,
A567E5A42BD7643D00D5D5A0 /* YHSearchInfoCell.swift in Sources */, A567E5A42BD7643D00D5D5A0 /* YHSearchInfoCell.swift in Sources */,
044EE2272C91367800A2FE3A /* YHServiceStepThreeSectionView.swift in Sources */,
045EEE932B9F171A0022A143 /* YHPreviewInfoSingleLineTitleView.swift in Sources */, 045EEE932B9F171A0022A143 /* YHPreviewInfoSingleLineTitleView.swift in Sources */,
045EEF1D2B9F171A0022A143 /* YHAddressPickView.swift in Sources */, 045EEF1D2B9F171A0022A143 /* YHAddressPickView.swift in Sources */,
A58AC0A12BAC0B2900A30FA9 /* YHFileListItemView.swift in Sources */, A58AC0A12BAC0B2900A30FA9 /* YHFileListItemView.swift in Sources */,
...@@ -4809,6 +4862,7 @@ ...@@ -4809,6 +4862,7 @@
045EEEAF2B9F171A0022A143 /* YHWorkExperienceTextItemView.swift in Sources */, 045EEEAF2B9F171A0022A143 /* YHWorkExperienceTextItemView.swift in Sources */,
A5ACE9492B4564F7002C94D2 /* YHHUDSuccessView.swift in Sources */, A5ACE9492B4564F7002C94D2 /* YHHUDSuccessView.swift in Sources */,
04B360EF2C620975001EB053 /* YHPrincipleUploadStatusCell.swift in Sources */, 04B360EF2C620975001EB053 /* YHPrincipleUploadStatusCell.swift in Sources */,
044EE2252C90138000A2FE3A /* YHServerCenterHoldViewController.swift in Sources */,
045EEE9C2B9F171A0022A143 /* YHCompanyViewModel.swift in Sources */, 045EEE9C2B9F171A0022A143 /* YHCompanyViewModel.swift in Sources */,
A58556BA2B6BCF1A003746B2 /* YHPersonInfoFillStepModel.swift in Sources */, A58556BA2B6BCF1A003746B2 /* YHPersonInfoFillStepModel.swift in Sources */,
045EEEC92B9F171A0022A143 /* YHOtherInfoSessionView.swift in Sources */, 045EEEC92B9F171A0022A143 /* YHOtherInfoSessionView.swift in Sources */,
...@@ -4901,6 +4955,7 @@ ...@@ -4901,6 +4955,7 @@
045EEEDD2B9F171A0022A143 /* YHCollegeNameCell.swift in Sources */, 045EEEDD2B9F171A0022A143 /* YHCollegeNameCell.swift in Sources */,
04256DFA2C742A1500A37BA4 /* YHFamilyGroupModel.swift in Sources */, 04256DFA2C742A1500A37BA4 /* YHFamilyGroupModel.swift in Sources */,
045EEF162B9F171A0022A143 /* YHMainApplicantInformationViewController.swift in Sources */, 045EEF162B9F171A0022A143 /* YHMainApplicantInformationViewController.swift in Sources */,
0449EEF32C903A4100A397FD /* YHMaterialListModel.swift in Sources */,
048097712BA18D66000B9DCA /* YHCertificateSearchBar.swift in Sources */, 048097712BA18D66000B9DCA /* YHCertificateSearchBar.swift in Sources */,
04256E172C75BD2700A37BA4 /* YHVisaPaymentTipsCell.swift in Sources */, 04256E172C75BD2700A37BA4 /* YHVisaPaymentTipsCell.swift in Sources */,
045EEEAA2B9F171A0022A143 /* YHWorkExampleViewController.swift in Sources */, 045EEEAA2B9F171A0022A143 /* YHWorkExampleViewController.swift in Sources */,
...@@ -5027,6 +5082,7 @@ ...@@ -5027,6 +5082,7 @@
A5F8AC082B9F414000A21EFA /* YHCustomTextView.swift in Sources */, A5F8AC082B9F414000A21EFA /* YHCustomTextView.swift in Sources */,
0414BDAD2BC7F02C00225367 /* YHMyNotifySettingVC.swift in Sources */, 0414BDAD2BC7F02C00225367 /* YHMyNotifySettingVC.swift in Sources */,
0425E6402BA9357D00A5E763 /* YHScemeItemModel.swift in Sources */, 0425E6402BA9357D00A5E763 /* YHScemeItemModel.swift in Sources */,
044EE22D2C9184CD00A2FE3A /* YHServiceMoreAlertView.swift in Sources */,
A5D335F92BCE51E700236F21 /* YHServiceCenterProgressModel.swift in Sources */, A5D335F92BCE51E700236F21 /* YHServiceCenterProgressModel.swift in Sources */,
045EEECC2B9F171A0022A143 /* YHScoreResultModel.swift in Sources */, 045EEECC2B9F171A0022A143 /* YHScoreResultModel.swift in Sources */,
A5DF9C672C78B7E600CE48E6 /* YHUploadCertificateListModel.swift in Sources */, A5DF9C672C78B7E600CE48E6 /* YHUploadCertificateListModel.swift in Sources */,
......
...@@ -205,7 +205,7 @@ extension AppDelegate { ...@@ -205,7 +205,7 @@ extension AppDelegate {
let homeVC = YHHomeHoldViewPageViewController() let homeVC = YHHomeHoldViewPageViewController()
tabBarController.delegate = homeVC tabBarController.delegate = homeVC
let v0 = YHNavigationController(rootVC:homeVC) let v0 = YHNavigationController(rootVC:homeVC)
let v1 = YHNavigationController(rootVC:YHServiceCenterMainViewController()) let v1 = YHNavigationController(rootVC:YHServiceCenterViewController())
let v2 = YHNavigationController(rootVC:YHCommunityViewController()) let v2 = YHNavigationController(rootVC:YHCommunityViewController())
let v3 = YHNavigationController(rootVC:YHMyViewController()) let v3 = YHNavigationController(rootVC:YHMyViewController())
......
...@@ -15,10 +15,11 @@ class YHButlerServiceViewModel { ...@@ -15,10 +15,11 @@ class YHButlerServiceViewModel {
let params: [String : Any] = ["yh_id": id] let params: [String : Any] = ["yh_id": id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.QiYu.userInfomation let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.QiYu.userInfomation
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
guard let data = json.data, let jsonData = try? JSONSerialization.data(withJSONObject: data, options: []), let dataString = jsonData.string(encoding: .utf8) else { guard let data = json.data?.peel as? [String : Any], let dataString = data.yh_toJSONString() else {
callBackBlock(nil, nil, YHErrorModel()) callBackBlock(nil, nil, YHErrorModel())
return return
} }
let avatar = self?.getAvatarFromJsonObject(data) let avatar = self?.getAvatarFromJsonObject(data)
callBackBlock(dataString, avatar, nil) callBackBlock(dataString, avatar, nil)
} failBlock: { err in } failBlock: { err in
......
...@@ -13,13 +13,14 @@ class YHFriendListModel: SmartCodable { ...@@ -13,13 +13,14 @@ class YHFriendListModel: SmartCodable {
var friends: [YHFriendModel] = [] var friends: [YHFriendModel] = []
var applyFriends: [YHFriendModel] = [] var applyFriends: [YHFriendModel] = []
required init() {
}
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case friends case friends
case applyFriends = "apply_friends" case applyFriends = "apply_friends"
} }
required init() {
}
} }
class YHFriendModel: SmartCodable { class YHFriendModel: SmartCodable {
......
...@@ -22,7 +22,6 @@ class YHMatchUserViewModel: NSObject { ...@@ -22,7 +22,6 @@ class YHMatchUserViewModel: NSObject {
[weak self] json, code in [weak self] json, code in
//1. json字符串 转 对象 //1. json字符串 转 对象
guard let self = self else { return } guard let self = self else { return }
printLog(json)
if json.code == 200 { if json.code == 200 {
guard let dic = json.data?.peel as? [Any],let resultModel = [YHMatchUserInfo].deserialize(from: dic) else { guard let dic = json.data?.peel as? [Any],let resultModel = [YHMatchUserInfo].deserialize(from: dic) else {
......
...@@ -183,7 +183,7 @@ private extension YHStartPageViewController { ...@@ -183,7 +183,7 @@ private extension YHStartPageViewController {
let homeVC = YHHomeHoldViewPageViewController() let homeVC = YHHomeHoldViewPageViewController()
tabBarController.delegate = homeVC tabBarController.delegate = homeVC
let v0 = YHNavigationController(rootVC:homeVC) let v0 = YHNavigationController(rootVC:homeVC)
let v1 = YHNavigationController(rootVC:YHServiceCenterMainViewController()) let v1 = YHNavigationController(rootVC:YHServiceCenterViewController())
let v2 = YHNavigationController(rootVC:YHCommunityViewController()) let v2 = YHNavigationController(rootVC:YHCommunityViewController())
let v3 = YHNavigationController(rootVC:YHMyViewController()) let v3 = YHNavigationController(rootVC:YHMyViewController())
......
...@@ -136,19 +136,12 @@ extension YHHomePageViewModel { ...@@ -136,19 +136,12 @@ extension YHHomePageViewModel {
self.isRequestHomeNewsDataFlag = false self.isRequestHomeNewsDataFlag = false
//1. json字符串 转 对象 //1. json字符串 转 对象
if json.code == 200 { if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any] else { guard let dic = json.data?.peel as? [String : Any],let result = YHHomeListTotalModel.deserialize(from: dic) else {
self.arrHomeNewsData = [] self.arrHomeNewsData = []
callBackBlock(false,nil) callBackBlock(false,nil)
return return
} }
guard let result = YHHomeListTotalModel.deserialize(from: dic) else {
self.arrHomeNewsData = []
callBackBlock(false,nil)
return
}
for item in result.data { for item in result.data {
item.calHeightParam() item.calHeightParam()
} }
......
...@@ -117,7 +117,7 @@ extension YHOrderSearchViewController: UITableViewDelegate, UITableViewDataSourc ...@@ -117,7 +117,7 @@ extension YHOrderSearchViewController: UITableViewDelegate, UITableViewDataSourc
if self.mobile == model.mobile { if self.mobile == model.mobile {
self.navigationController?.popToRootViewController(animated: true) self.navigationController?.popToRootViewController(animated: true)
} else { } else {
let vc = YHServiceCenterMainViewController() let vc = YHServiceCenterViewController()
vc.model = model vc.model = model
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
} }
......
//
// YHServerCenterHoldViewController.swift
// galaxy
//
// Created by EDY on 2024/9/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import JXSegmentedView
class YHServerCenterHoldViewController: UIViewController {
var mobile: String = ""
var orderId: Int = 0 {
didSet {
for i in 0..<arrItemTitles.count {
let vc = arrItemVCs[i] as YHServiceOrderListView
vc.type = i
if i == 1 {
vc.type = 2
}
if i == 2 {
vc.type = 1
}
vc.orderID = orderId
vc.mobile = mobile
vc.arrDataForSeviceCenterProgress = arrDataForSeviceCenterProgress
vc.state = state
vc.loadData()
}
}
}
var arrDataForSeviceCenterProgress: [YHServiceCenterProgressModel] = []
var state: Int = 0
var canScroll : Bool = false {
didSet {
for vc in arrItemVCs {
vc.vcCanScroll = canScroll
}
}
}
var controllerOne: YHServiceOrderListView = YHServiceOrderListView()
var controllerTwo: YHServiceOrderListView = YHServiceOrderListView()
var controllerThree: YHServiceOrderListView = YHServiceOrderListView()
var controllerFour: YHServiceOrderListView = YHServiceOrderListView()
var arrItemTitles = ["全部", "进行中", "待开始", "已完成"]
var arrItemVCs: [YHServiceOrderListView] = []
var segmentedView : JXSegmentedView = JXSegmentedView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 48))
lazy var segmentedDataSource: JXSegmentedDotDataSource = {
let dataSource = JXSegmentedDotDataSource()
dataSource.isTitleColorGradientEnabled = true
dataSource.titles = arrItemTitles
dataSource.titleNormalFont = UIFont.PFSC_M(ofSize: 14)
dataSource.titleNormalColor = .labelTextColor2
dataSource.titleSelectedFont = UIFont.PFSC_M(ofSize: 14)
dataSource.titleSelectedColor = .mainTextColor
dataSource.isItemSpacingAverageEnabled = false
dataSource.itemWidth = JXSegmentedViewAutomaticDimension
dataSource.itemSpacing = 16
dataSource.dotStates = [false, false, false, false]
dataSource.dotSize = CGSize(width: 6, height: 6)
return dataSource
}()
//分类title 所对应的VC
lazy var listContainerView: JXSegmentedListContainerView! = {
return JXSegmentedListContainerView(dataSource: self, type: .scrollView)
}()
override func viewDidLoad() {
super.viewDidLoad()
setupView()
// Do any additional setup after loading the view.
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
segmentedView.snp.remakeConstraints { make in
make.right.equalTo(-4)
make.left.equalTo(4)
make.top.equalTo(0)
make.height.equalTo(48)
}
listContainerView.snp.remakeConstraints { make in
make.right.left.equalToSuperview()
make.top.equalTo(segmentedView.snp.bottom)
make.bottom.equalToSuperview()
}
}
func setupView() {
view.backgroundColor = .clear
controllerOne.type = 0
controllerOne.orderID = orderId
controllerOne.block = {[weak self] type, count, flag in
guard let self = self else { return }
arrItemTitles[0] = "全部(\(count))"
self.updata(flag: flag, type: 0)
}
controllerTwo.type = 2
controllerTwo.orderID = orderId
controllerTwo.block = {[weak self] type, count, flag in
guard let self = self else { return }
arrItemTitles[1] = "进行中(\(count))"
self.updata(flag: flag, type: 2)
}
controllerThree.type = 1
controllerThree.orderID = orderId
controllerThree.block = {[weak self] type, count, flag in
guard let self = self else { return }
arrItemTitles[2] = "待开始(\(count))"
self.updata(flag: flag, type: 1)
}
controllerFour.type = 3
controllerFour.orderID = orderId
controllerFour.block = {[weak self] type, count, flag in
guard let self = self else { return }
arrItemTitles[3] = "已完成(\(count))"
self.updata(flag: flag, type: 3)
}
arrItemVCs.append(controllerOne)
arrItemVCs.append(controllerTwo)
arrItemVCs.append(controllerThree)
arrItemVCs.append(controllerFour)
//segmentedViewDataSource一定要通过属性强持有!!!!!!!!!
// segmentedView.backgroundColor = .clear
segmentedView.collectionView.backgroundColor = .white
// segmentedView.contentScrollView?.backgroundColor = .clear
view.addSubview(segmentedView)
segmentedView.listContainer = listContainerView
view.addSubview(listContainerView)
//分类Title
segmentedView.dataSource = segmentedDataSource
segmentedView.delegate = self
//配置指示器
let indicator = JXSegmentedIndicatorLineView()
indicator.indicatorWidth = 16
indicator.indicatorColor = UIColor.brandMainColor
indicator.indicatorCornerRadius = 0
indicator.verticalOffset = 4
segmentedView.indicators = [indicator]
segmentedView.backgroundColor = UIColor(red: 0.95, green: 0.95, blue: 0.95, alpha: 1)
segmentedView.defaultSelectedIndex = 1
}
func updata(flag: Bool, type: Int){
DispatchQueue.main.async {
self.segmentedDataSource.titles = self.arrItemTitles
if type == 3 {
self.segmentedDataSource.dotStates = [false,false,false,flag]
}
self.segmentedView.reloadData()
}
}
}
extension YHServerCenterHoldViewController: JXSegmentedViewDelegate {
func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
// NotificationCenter.default.post(name: Notification.Name(rawValue: "scrollViewDidEndDragging"), object: nil)
}
/// 正在滚动中的回调
///
/// - Parameters:
/// - segmentedView: JXSegmentedView
/// - leftIndex: 正在滚动中,相对位置处于左边的index
/// - rightIndex: 正在滚动中,相对位置处于右边的index
/// - percent: 从左往右计算的百分比
func segmentedView(_ segmentedView: JXSegmentedView, scrollingFrom leftIndex: Int, to rightIndex: Int, percent: CGFloat) {
// NotificationCenter.default.post(name: Notification.Name(rawValue: "scrollViewWillBeginDragging"), object: nil)
}
}
extension YHServerCenterHoldViewController: JXSegmentedListContainerViewDataSource {
func numberOfLists(in listContainerView: JXSegmentedListContainerView) -> Int {
if let titleDataSource = segmentedView.dataSource as? JXSegmentedBaseDataSource {
return titleDataSource.dataSource.count
}
return 0
}
func listContainerView(_ listContainerView: JXSegmentedListContainerView, initListAt index: Int) -> JXSegmentedListContainerViewListDelegate {
return arrItemVCs[index]
}
}
...@@ -22,7 +22,6 @@ class YHServiceCenterMainViewController: YHBaseViewController { ...@@ -22,7 +22,6 @@ class YHServiceCenterMainViewController: YHBaseViewController {
var mobile: String = "" var mobile: String = ""
var model: YHContactItemModel = YHContactItemModel() var model: YHContactItemModel = YHContactItemModel()
var oldModel: YHContactItemModel = YHContactItemModel() var oldModel: YHContactItemModel = YHContactItemModel()
var doneCount: Int = 0
private lazy var topBkg : UIView = { private lazy var topBkg : UIView = {
let imagV = UIImageView() let imagV = UIImageView()
imagV.image = UIImage(named: "service_center_head_bkg4") imagV.image = UIImage(named: "service_center_head_bkg4")
...@@ -446,7 +445,6 @@ extension YHServiceCenterMainViewController { ...@@ -446,7 +445,6 @@ extension YHServiceCenterMainViewController {
guard let self = self else { return } guard let self = self else { return }
arrItemTitles[3] = "已完成(\(count))" arrItemTitles[3] = "已完成(\(count))"
self.updata(flag: flag, type: 3) self.updata(flag: flag, type: 3)
doneCount = count
self.getStep() self.getStep()
} }
arrItemVCs.append(controllerOne) arrItemVCs.append(controllerOne)
......
//
// YHServiceCenterViewController.swift
// galaxy
//
// Created by EDY on 2024/9/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import JXSegmentedView
import AttributedString
class YHServiceCenterViewController: YHBaseViewController {
private let serviceCenterMainReqVM : YHServiceCenterViewModel = YHServiceCenterViewModel()
var titleLabel: UIButton!
var orderButton: UIButton!
var headView = YHServiceCenterStepThreeTableHeadView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 100))
var orderId: Int = 0
var mobile: String = ""
var model: YHContactItemModel = YHContactItemModel()
var oldModel: YHContactItemModel = YHContactItemModel()
var doneCount: Int = 0
var canScroll : Bool = true
var arrDataForSeviceCenterProgress: [YHServiceCenterProgressModel] = []
var state: Int = 0
var isCanSelectStep: Bool = false
private lazy var topBkg : UIView = {
let imagV = UIImageView()
imagV.image = UIImage(named: "service_center_head_bkg4")
imagV.contentMode = .scaleAspectFill
imagV.isUserInteractionEnabled = true
return imagV
}()
lazy var navBar: UIView = {
let bar = UIView()
let backBtn = UIButton()
backBtn.setImage(UIImage(named: "back_icon"), for: .normal)
backBtn.addTarget(self, action: #selector(didBackBtnClicked), for: .touchUpInside)
backBtn.YH_clickEdgeInsets = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)
bar.addSubview(backBtn)
backBtn.snp.makeConstraints { make in
make.width.height.equalTo(21)
make.centerY.equalToSuperview()
make.left.equalToSuperview().offset(16)
}
return bar
}()
private let noDataView : YHServiceNoOrderView = {
let view = YHServiceNoOrderView()
view.isHidden = true
return view
}()
var myCellHeight : CGFloat {
get {
return view.bounds.size.height - 90 - k_Height_TabBar
}
}
var myDefaultIndex : Int = 0 {
didSet {
DispatchQueue.global().asyncAfter(wallDeadline: .now() ) {[weak self] in
DispatchQueue.main.async {
// self?.cellView.myDefaultNavItemIndex = self?.myDefaultIndex ?? 0
}
}
}
}
lazy var cellView: YHServerCenterHoldViewController = {
let ttt = YHServerCenterHoldViewController()
// ttt.myDefaultNavItemIndex = self.myDefaultIndex
return ttt
}()
var homeTableView: UITableView = {
let tableView = UITableView(frame: .zero, style: .grouped)
tableView.backgroundColor = .clear
tableView.separatorStyle = .none
tableView.showsHorizontalScrollIndicator = false
tableView.showsVerticalScrollIndicator = false
return tableView
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
addListView()
noDataView.clickBackBtnClickBlock = {[weak self] in
guard self != nil else { return }
//跳转测评页
let vc = YHH5WebViewVC()
vc.url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/evaluation?channel=APP-zrll"
vc.isShowRightShareItemFlag = true
self?.navigationController?.pushViewController(vc)
}
noDataView.clickShowBtnClickBlock = {
YHServiceOrderAlertView.show()
}
NotificationCenter.default.addObserver(self, selector: #selector(logoutSuccess), name: YhConstant.YhNotification.didLogoutSuccessNotifiction, object: nil)
noDataView.isHidden = false
homeTableView.isHidden = true
NotificationCenter.default.addObserver(self, selector: #selector(leaveTopOp), name:Notification.Name(rawValue: "leaveTop0"), object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(beginDragging), name:Notification.Name(rawValue: "scrollViewWillBeginDragging0"), object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(endDragging), name:Notification.Name(rawValue: "scrollViewDidEndDragging0"), object: nil)
}
@objc func logoutSuccess() {
self.model = YHContactItemModel()
self.oldModel = YHContactItemModel()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
loadData()
}
}
extension YHServiceCenterViewController {
func loadData() {
if model.id != -1 {
noDataView.isHidden = true
homeTableView.isHidden = false
if self.navigationController?.viewControllers.count != 2 && self.navigationController?.viewControllers.count != 1 {
orderButton.isHidden = true
}
orderId = model.id
mobile = model.mobile
UserDefaults.standard.set(orderId, forKey: "orderIdForPreview")
UserDefaults.standard.synchronize()
getStep()
} else {
serviceCenterMainReqVM.getContactList {[weak self] success, error in
guard let self = self else { return }
if success == true {
} else {
YHHUD.flash(message: error?.errorMsg ?? "请求出错")
}
self.handleRightUI()
}
}
}
@objc func didBackBtnClicked() {
self.navigationController?.popViewController(animated: true)
}
func setupUI() {
gk_navBarAlpha = 0
gk_navigationBar.isHidden = true
view.backgroundColor = .white
view.addSubview(topBkg)
topBkg.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(202)
}
titleLabel = {
let button = UIButton(type: .custom)
button.setTitle("申请阶段", for: .normal)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 21)
button.setTitleColor(UIColor.mainTextColor, for: .normal)
button.setImage(UIImage(named: "service_center_select_step"), for: .normal)
button.addTarget(self, action: #selector(selectTimeStep), for: .touchUpInside)
return button
}()
view.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.top.equalTo(53)
make.left.equalTo(20)
make.height.equalTo(29)
make.width.equalTo(102)
}
titleLabel.iconInRight(with: 8)
view.addSubview(navBar)
navBar.snp.makeConstraints { make in
make.left.equalToSuperview()
// make.top.equalToSuperview().offset(k_Height_statusBar())
make.height.equalTo(k_Height_NavContentBar)
make.width.equalTo(47)
make.centerY.equalTo(titleLabel.snp.centerY)
}
orderButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "service_center_more"), for: .normal)
button.addTarget(self, action: #selector(pushOrderView), for: .touchUpInside)
return button
}()
view.addSubview(orderButton)
orderButton.snp.makeConstraints { make in
make.right.equalTo(-20)
make.centerY.equalTo(titleLabel.snp.centerY)
make.height.equalTo(24)
make.width.equalTo(24)
}
homeTableView.delegate = self
homeTableView.dataSource = self
view.addSubview(homeTableView)
homeTableView.snp.makeConstraints { make in
make.top.equalTo(90)
make.left.right.equalToSuperview()
make.bottom.equalTo(-k_Height_TabBar)
}
if self.navigationController?.viewControllers.count != 2 && self.navigationController?.viewControllers.count != 1 {
titleLabel.setTitle("订单详情", for: .normal)
orderButton.isHidden = true
} else {
navBar.isHidden = true
}
NotificationCenter.default.addObserver(self, selector: #selector(goToServiceTabFromFileListPage), name: YhConstant.YhNotification.didClickFileListBackToServiceTabNotifiction, object: nil)
}
@objc func pushOrderView() {
var flag = true
if self.state == 1 || self.state == 3 {
flag = false
}
YHServiceMoreAlertView.show(flag) {[weak self] index in
guard let self = self else { return }
if index == 1 {
let vc = YHOrderDetailViewController()
vc.model = oldModel
vc.backDate = { [weak self] model in
guard let self = self else { return }
self.model = model
self.state = 0
}
self.navigationController?.pushViewController(vc)
} else {
let view = YHOffivialApprovalGuildLineCheckView.sheetView()
view.show()
}
}
}
@objc func selectTimeStep() {
if !isCanSelectStep {
return
}
var flag = true
if self.state == 3 {
flag = false
}
YHServiceStepAlertView.show(flag) {[weak self] index in
guard let self = self else { return }
if index == 1 {
self.state = 3
} else {
self.state = 2
}
if self.state == 2 {
self.arrDataForSeviceCenterProgress = self.serviceCenterMainReqVM.mainModel.certificateSection.list
self.homeTableView.tableHeaderView = UIView()
self.titleLabel.setTitle("办证阶段", for: .normal)
self.titleLabel.setImage(UIImage(named: "service_center_select_step"), for: .normal)
}
if self.state == 3 {
self.arrDataForSeviceCenterProgress = self.serviceCenterMainReqVM.mainModel.renewalSection.list.first?.list ?? []
self.homeTableView.tableHeaderView = headView
self.headView.block = {[weak self] array in
guard let self = self else { return }
self.arrDataForSeviceCenterProgress = array
self.homeTableView.reloadData()
}
self.headView.dataSource = self.serviceCenterMainReqVM.mainModel.renewalSection.list
self.titleLabel.setTitle("续签阶段", for: .normal)
self.titleLabel.setImage(UIImage(named: "service_center_select_step"), for: .normal)
self.isCanSelectStep = true
}
self.homeTableView.reloadData()
}
}
}
extension YHServiceCenterViewController {
private func handleRightUI() {
if serviceCenterMainReqVM.arrContactList.isEmpty {
noDataView.isHidden = false
homeTableView.isHidden = true
} else {
guard let model = serviceCenterMainReqVM.arrContactList.first else {
return
}
noDataView.isHidden = true
homeTableView.isHidden = false
if self.navigationController?.viewControllers.count != 2 && self.navigationController?.viewControllers.count != 1 {
orderButton.isHidden = true
}
orderId = model.id
mobile = model.mobile
self.model = model
self.oldModel = model
UserDefaults.standard.set(orderId, forKey: "orderIdForPreview")
UserDefaults.standard.synchronize()
getStep()
}
}
func getStep() {
serviceCenterMainReqVM.getServiceMainData(orderId: orderId) {[weak self] success, error in
guard let self = self else { return }
if self.serviceCenterMainReqVM.mainModel.stage == 3 {
self.isCanSelectStep = true
}
if self.state == 0 {
self.state = self.serviceCenterMainReqVM.mainModel.stage
}
if self.state == 1 {
self.arrDataForSeviceCenterProgress = self.serviceCenterMainReqVM.mainModel.applySection.list
self.homeTableView.tableHeaderView = UIView()
self.titleLabel.setTitle("申请阶段", for: .normal)
self.titleLabel.setImage(UIImage(named: ""), for: .normal)
}
if self.state == 2 {
self.arrDataForSeviceCenterProgress = self.serviceCenterMainReqVM.mainModel.certificateSection.list
self.homeTableView.tableHeaderView = UIView()
self.titleLabel.setTitle("办证阶段", for: .normal)
if isCanSelectStep {
self.titleLabel.setImage(UIImage(named: "service_center_select_step"), for: .normal)
} else {
self.titleLabel.setImage(UIImage(named: ""), for: .normal)
}
}
if self.state == 3 {
self.arrDataForSeviceCenterProgress = self.serviceCenterMainReqVM.mainModel.renewalSection.list.first?.list ?? []
self.homeTableView.tableHeaderView = headView
self.headView.block = {[weak self] array in
guard let self = self else { return }
self.arrDataForSeviceCenterProgress = array
self.homeTableView.reloadData()
}
self.headView.dataSource = self.serviceCenterMainReqVM.mainModel.renewalSection.list
self.titleLabel.setTitle("续签阶段", for: .normal)
self.titleLabel.setImage(UIImage(named: "service_center_select_step"), for: .normal)
}
self.homeTableView.reloadData()
}
}
func addListView() {
view.addSubview(noDataView)
noDataView.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(236)
make.width.equalTo(KScreenWidth)
make.height.equalTo(265)
}
}
}
extension YHServiceCenterViewController {
@objc func goToServiceTabFromFileListPage() {
// 进行中有数据则切换到进行中,进行中无数据则切换到全部
YHHUD.show(.progress(message: "加载中..."))
self.serviceCenterMainReqVM.getServiceCenterProgressList(self.orderId, 2) {
[weak self] success, error in
YHHUD.hide()
guard let self = self else { return }
var targetTabIndex = 0 // 全部
if self.serviceCenterMainReqVM.arrDataForSeviceCenterProgress.count > 0 {
// 进行中
targetTabIndex = 1
}
// self.segmentedView.selectItemAt(index: targetTabIndex)
// self.segmentedView.listContainer?.didClickSelectedItem(at: targetTabIndex)
UIViewController.current?.navigationController?.popToRootViewController(animated: true)
goTabBarBy(tabType: .service)
}
}
}
extension YHServiceCenterViewController : UITableViewDelegate,UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 0.001
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 0.001))
return view
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.001
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 0.001))
return view
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return myCellHeight
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cellView.view.frame = CGRect(x: 0, y: 0, width: cell.contentView.bounds.size.width, height: myCellHeight)
cell.contentView.addSubview(cellView.view)
cellView.view.snp.makeConstraints { make in
make.edges.equalTo(0)
}
cellView.arrDataForSeviceCenterProgress = arrDataForSeviceCenterProgress
cellView.mobile = model.mobile
cellView.state = state
cellView.orderId = orderId
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
}
extension YHServiceCenterViewController: UIScrollViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let bottomCellOffset: CGFloat = homeTableView.rect(forSection: 0).origin.y
if (scrollView.contentOffset.y >= bottomCellOffset) {
scrollView.contentOffset = CGPointMake(0, bottomCellOffset)
if canScroll == true {
// canScroll = false
// //传递参数到 子VC
// cellView.canScroll = true
}
canScroll = false
//传递参数到 子VC
cellView.canScroll = true
}else{
if canScroll == false {
scrollView.contentOffset = CGPoint(x: 0, y: bottomCellOffset)
}
}
self.homeTableView.showsVerticalScrollIndicator = false
}
}
extension YHServiceCenterViewController {
@objc func leaveTopOp() {
canScroll = true
}
@objc func beginDragging() {
homeTableView.isScrollEnabled = false
canScroll = false
}
@objc func endDragging() {
homeTableView.isScrollEnabled = true
canScroll = true
}
}
...@@ -10,9 +10,9 @@ import UIKit ...@@ -10,9 +10,9 @@ import UIKit
import JXSegmentedView import JXSegmentedView
class YHServiceOrderListView: YHBaseViewController { class YHServiceOrderListView: YHBaseViewController {
private let viewModel : YHServiceCenterMainViewModel = YHServiceCenterMainViewModel()
let principleViewModel: YHPrincleViewModel = YHPrincleViewModel() let principleViewModel: YHPrincleViewModel = YHPrincleViewModel()
let appointViewModel = YHCerAppointViewModel() let appointViewModel = YHCerAppointViewModel()
public var vcCanScroll : Bool = true
typealias Block = (Int,Int,Bool) -> () typealias Block = (Int,Int,Bool) -> ()
var block: Block? var block: Block?
...@@ -21,11 +21,25 @@ class YHServiceOrderListView: YHBaseViewController { ...@@ -21,11 +21,25 @@ class YHServiceOrderListView: YHBaseViewController {
var mobile: String = "" var mobile: String = ""
var homeTableView: UITableView! var homeTableView: UITableView!
var orderType: Int = 0 var orderType: Int = 0
var state: Int = 0
var arrDataForSeviceCenterProgress: [YHServiceCenterProgressModel] = []
lazy var noDataView: YHEmptyDataView = { lazy var noDataView: YHEmptyDataView = {
let view = YHEmptyDataView.createView("暂无", kEmptyCommonBgName) let view = YHEmptyDataView.createView("暂无", kEmptyCommonBgName)
view.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: 150)
view.backgroundColor = .clear view.backgroundColor = .clear
view.isHidden = true return view
}()
lazy var footView: UIView = {
let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 590))
view.addSubview(self.noDataView)
self.noDataView.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.centerY.equalToSuperview()
make.width.equalTo(KScreenWidth)
make.height.equalTo(150)
}
return view return view
}() }()
...@@ -33,30 +47,30 @@ class YHServiceOrderListView: YHBaseViewController { ...@@ -33,30 +47,30 @@ class YHServiceOrderListView: YHBaseViewController {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
loadData() loadData()
NotificationCenter.default.addObserver(self, selector: #selector(beginDragging), name:Notification.Name(rawValue: "scrollViewWillBeginDragging0"), object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(endDragging), name:Notification.Name(rawValue: "scrollViewDidEndDragging0"), object: nil)
} }
} }
extension YHServiceOrderListView { extension YHServiceOrderListView {
func loadData() { func loadData() {
if YHLoginManager.shared.isLogin() { var array: [YHServiceCenterProgressModel] = []
viewModel.getStageInformation(params: ["orderId":orderID]) {[weak self] success, error in for item in arrDataForSeviceCenterProgress {
guard let self = self else { return } if type == 0 {
var state = 1 array.append(item)
if self.viewModel.personInfoModel.type == 1 { } else if item.status == type {
state = 1 array.append(item)
} else {
state = 2
} }
viewModel.getNewServiceCenterProgressList(orderID, type, orderType: state) {[weak self] success, error in }
guard let self = self else { return } self.arrDataForSeviceCenterProgress = array
if (self.homeTableView != nil) { if (self.homeTableView != nil) {
if self.viewModel.arrDataForSeviceCenterProgress.count == 0 { if self.arrDataForSeviceCenterProgress.count == 0 {
self.homeTableView.isHidden = true self.homeTableView.tableFooterView = footView
self.noDataView.isHidden = false self.homeTableView.reloadData()
} else { } else {
self.homeTableView.isHidden = false self.homeTableView.tableFooterView = UIView()
self.noDataView.isHidden = true
self.homeTableView.reloadData() self.homeTableView.reloadData()
} }
} }
...@@ -64,7 +78,7 @@ extension YHServiceOrderListView { ...@@ -64,7 +78,7 @@ extension YHServiceOrderListView {
if type == 3 { if type == 3 {
var oneflag = false var oneflag = false
var twoflag = false var twoflag = false
for item in self.viewModel.arrDataForSeviceCenterProgress { for item in self.arrDataForSeviceCenterProgress {
if item.type == 3 { if item.type == 3 {
oneflag = isNeedShowRedPointFor(key: kMyScoreRedPointInfoKey, proVersion: item.pro_version) oneflag = isNeedShowRedPointFor(key: kMyScoreRedPointInfoKey, proVersion: item.pro_version)
} }
...@@ -72,12 +86,9 @@ extension YHServiceOrderListView { ...@@ -72,12 +86,9 @@ extension YHServiceOrderListView {
twoflag = isNeedShowRedPointFor(key: kMyPlanRedPointInfoKey, proVersion: item.pro_version) twoflag = isNeedShowRedPointFor(key: kMyPlanRedPointInfoKey, proVersion: item.pro_version)
} }
} }
block(type, self.viewModel.arrDataForSeviceCenterProgress.count, oneflag||twoflag) block(type, self.arrDataForSeviceCenterProgress.count, oneflag||twoflag)
} else { } else {
block(type, self.viewModel.arrDataForSeviceCenterProgress.count, false) block(type, self.arrDataForSeviceCenterProgress.count, false)
}
}
}
} }
} }
} }
...@@ -86,7 +97,7 @@ extension YHServiceOrderListView { ...@@ -86,7 +97,7 @@ extension YHServiceOrderListView {
gk_navBarAlpha = 0 gk_navBarAlpha = 0
gk_navigationBar.isHidden = true gk_navigationBar.isHidden = true
homeTableView = { homeTableView = {
let tableView = UITableView(frame: .zero, style: .grouped) let tableView = YHGestureTableView(frame: .zero, style: .grouped)
tableView.backgroundColor = .clear tableView.backgroundColor = .clear
tableView.separatorStyle = .none tableView.separatorStyle = .none
tableView.showsHorizontalScrollIndicator = false tableView.showsHorizontalScrollIndicator = false
...@@ -102,14 +113,6 @@ extension YHServiceOrderListView { ...@@ -102,14 +113,6 @@ extension YHServiceOrderListView {
homeTableView.snp.makeConstraints { make in homeTableView.snp.makeConstraints { make in
make.top.right.left.bottom.equalToSuperview() make.top.right.left.bottom.equalToSuperview()
} }
view.addSubview(noDataView)
noDataView.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.centerY.equalToSuperview()
make.width.equalTo(KScreenWidth)
make.height.equalTo(150)
}
} }
func isNeedShowRedPointFor(key: String, proVersion: Int) -> Bool { func isNeedShowRedPointFor(key: String, proVersion: Int) -> Bool {
...@@ -139,22 +142,43 @@ extension YHServiceOrderListView { ...@@ -139,22 +142,43 @@ extension YHServiceOrderListView {
extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource { extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int { func numberOfSections(in tableView: UITableView) -> Int {
return self.viewModel.arrDataForSeviceCenterProgress.count return 1
} }
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1 return self.arrDataForSeviceCenterProgress.count
} }
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if state == 3 && (type == 0 || type == 2) {
return 104
} else {
return kMargin return kMargin
} }
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if state == 3 && (type == 0 || type == 2) {
let view = YHServiceStepThreeSectionView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 104))
view.block = { [weak self] tag in
guard let self = self else { return }
if tag == 1 {
//身份续签指引
} else if tag == 2 {
//我的续签方案
} else if tag == 3 {
//添加在港记录
} else if tag == 4 {
//续签证件管理
}
}
return view
} else {
let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: kMargin)) let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: kMargin))
return view return view
} }
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0 return 0
...@@ -166,29 +190,29 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource { ...@@ -166,29 +190,29 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource {
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let arr = self.viewModel.arrDataForSeviceCenterProgress let arr = self.arrDataForSeviceCenterProgress
if 0 <= indexPath.section, indexPath.section < arr.count { if 0 <= indexPath.row, indexPath.row < arr.count {
let model = arr[indexPath.section] let model = arr[indexPath.row]
if model.type == 27 { if model.type == 27 || model.type == 32 || model.type == 31 {
return 146 return 162
} }
return 128 return 144
} }
return 128 return 144
} }
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell0 = tableView.dequeueReusableCell(withClass: YHServiceOrderProgressTableViewCell.self) let cell0 = tableView.dequeueReusableCell(withClass: YHServiceOrderProgressTableViewCell.self)
cell0.selectionStyle = .none cell0.selectionStyle = .none
if indexPath.section < self.viewModel.arrDataForSeviceCenterProgress.count { if indexPath.row < self.arrDataForSeviceCenterProgress.count {
cell0.set(dataModel: self.viewModel.arrDataForSeviceCenterProgress[indexPath.section], orderId: orderID) cell0.set(dataModel: self.arrDataForSeviceCenterProgress[indexPath.row], orderId: orderID)
} }
return cell0 return cell0
} }
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let model = self.viewModel.arrDataForSeviceCenterProgress[indexPath.section] let model = self.arrDataForSeviceCenterProgress[indexPath.row]
if model.status == 1 || model.status == 4 { if model.status == 1 || model.status == 4 {
return return
} else { } else {
...@@ -196,12 +220,12 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource { ...@@ -196,12 +220,12 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource {
if model.type == 1 { if model.type == 1 {
let vc = YHMineCertificateEntryViewController() let vc = YHMineCertificateEntryViewController()
vc.orderId = orderID vc.orderId = orderID
navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 2 { } else if model.type == 2 {
let vc = YHInformationPerfectListVC() let vc = YHInformationPerfectListVC()
vc.orderId = orderID vc.orderId = orderID
navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 3 { // 评分 } else if model.type == 3 { // 评分
...@@ -209,23 +233,23 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource { ...@@ -209,23 +233,23 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource {
let vc = YHScoreDetailViewController() let vc = YHScoreDetailViewController()
vc.orderId = orderID vc.orderId = orderID
// vc.model = serviceCenterMainReqVM.allInfoScoreModel // vc.model = serviceCenterMainReqVM.allInfoScoreModel
navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 4 { // 方案 } else if model.type == 4 { // 方案
handleRedPointFor(key: kMyPlanRedPointInfoKey, model: model) handleRedPointFor(key: kMyPlanRedPointInfoKey, model: model)
let vc = YHMineSchemeViewController() let vc = YHMineSchemeViewController()
navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 5 { } else if model.type == 5 {
let vc = YHMySignatureListViewController() let vc = YHMySignatureListViewController()
vc.orderId = orderID vc.orderId = orderID
navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 6 { } else if model.type == 6 {
let vc = YHMyDocumentsListViewController() let vc = YHMyDocumentsListViewController()
vc.orderId = orderID vc.orderId = orderID
vc.mobile = mobile vc.mobile = mobile
navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 11 || model.type == 12 || model.type == 14 { } else if model.type == 11 || model.type == 12 || model.type == 14 {
...@@ -236,37 +260,38 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource { ...@@ -236,37 +260,38 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource {
let vc = YHPrincipleWaitResultViewController() let vc = YHPrincipleWaitResultViewController()
vc.status = model.type vc.status = model.type
vc.orderId = orderID vc.orderId = orderID
navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 13 { //原则批已获批~ } else if model.type == 13 { //原则批已获批~
let vc = YHPrincipleApprovedResultVC() let vc = YHPrincipleApprovedResultVC()
vc.orderId = orderID vc.orderId = orderID
navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 15 { } else if model.type == 15 {
//正式批已获批~ //正式批已获批~
let vc = YHOfficialApprovalResultVC() let vc = YHOfficialApprovalResultVC()
self.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 21 { } else if model.type == 21 {
//新增受养人 //新增受养人
let vc = YHAddAdoptersViewController() let vc = YHAddAdoptersViewController()
vc.orderId = orderID vc.orderId = orderID
navigationController?.pushViewController(vc) // navigationController?.pushViewController(vc)
UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 22 { } else if model.type == 22 {
//家庭信息确认 //家庭信息确认
let vc = YHFamilyInfoConfirmViewController() let vc = YHFamilyInfoConfirmViewController()
vc.orderId = orderID vc.orderId = orderID
self.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 23 { } else if model.type == 23 {
//电子签字缴费 //电子签字缴费
let vc = YHVisaPaymentVC() let vc = YHVisaPaymentVC()
vc.orderID = orderID vc.orderID = orderID
navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 24 { } else if model.type == 24 {
//赴港时间预约 //赴港时间预约
let vc = YHCertificateAppointViewController() let vc = YHCertificateAppointViewController()
vc.orderId = orderID vc.orderId = orderID
self.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 25 { } else if model.type == 25 {
// 赴港行程指引 // 赴港行程指引
...@@ -291,7 +316,7 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource { ...@@ -291,7 +316,7 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource {
alert.confirmBlock = { alert.confirmBlock = {
let vc = YHCertificateAppointViewController() let vc = YHCertificateAppointViewController()
vc.orderId = self.orderID vc.orderId = self.orderID
self.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} }
alert.show() alert.show()
...@@ -311,7 +336,7 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource { ...@@ -311,7 +336,7 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource {
vc.isFullScreenFlag = false vc.isFullScreenFlag = false
vc.navTitle = "赴港行程指引" vc.navTitle = "赴港行程指引"
vc.isNeedRefreshDataFlag = true vc.isNeedRefreshDataFlag = true
self.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} }
} }
} }
...@@ -320,12 +345,18 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource { ...@@ -320,12 +345,18 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource {
//旅行证件准备 //旅行证件准备
let vc = YHTravelDocsPreparationListViewController() let vc = YHTravelDocsPreparationListViewController()
vc.orderId = orderID vc.orderId = orderID
navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 27 { } else if model.type == 27 {
//上传过关证件 //上传过关证件
let vc = YHUploadCertificateVC() let vc = YHUploadCertificateVC()
vc.orderId = orderID vc.orderId = orderID
navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 31 {
//续签资料管理
} else if model.type == 32 {
//续签文书管理
} }
} }
} }
...@@ -357,3 +388,34 @@ extension YHServiceOrderListView: JXSegmentedListContainerViewListDelegate { ...@@ -357,3 +388,34 @@ extension YHServiceOrderListView: JXSegmentedListContainerViewListDelegate {
return view return view
} }
} }
extension YHServiceOrderListView: UIScrollViewDelegate {
//控制滑动交互
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let scrollViewSet: CGFloat = scrollView.contentOffset.y
if vcCanScroll == false {//不能滚动时
scrollView.contentOffset = CGPoint(x: 0, y: 0)
} else {
if (scrollViewSet <= 0) {
scrollView.contentOffset = CGPoint(x: 0, y: 0)
vcCanScroll = false
NotificationCenter.default.post(name: Notification.Name(rawValue: "leaveTop0"), object: nil)
} else {
scrollView.contentOffset = CGPoint(x: 0, y: scrollViewSet)
}
}
}
}
extension YHServiceOrderListView {
@objc func beginDragging() {
homeTableView.isScrollEnabled = false
vcCanScroll = false
}
@objc func endDragging() {
homeTableView.isScrollEnabled = true
vcCanScroll = true
}
}
...@@ -130,7 +130,7 @@ class YHFamilyInfoConfirmViewModel: NSObject { ...@@ -130,7 +130,7 @@ class YHFamilyInfoConfirmViewModel: NSObject {
printLog("model 是 ==> \(json)") printLog("model 是 ==> \(json)")
if json.code == 200 { if json.code == 200 {
if let flag = json.data as? Bool { if let flag = json.data?.peel as? Bool {
self.isHaveShowRiskAlert = flag self.isHaveShowRiskAlert = flag
} else { } else {
self.isHaveShowRiskAlert = false self.isHaveShowRiskAlert = false
......
...@@ -126,7 +126,7 @@ extension YHPrincleViewModel { ...@@ -126,7 +126,7 @@ extension YHPrincleViewModel {
printLog("model 是 ==> \(json)") printLog("model 是 ==> \(json)")
if json.code == 200 { if json.code == 200 {
if let flag = json.data as? Bool { if let flag = json.data?.peel as? Bool {
self.isOfficialGuildCheckFlag = flag self.isOfficialGuildCheckFlag = flag
} else { } else {
self.isOfficialGuildCheckFlag = false self.isOfficialGuildCheckFlag = false
...@@ -290,7 +290,7 @@ extension YHPrincleViewModel { ...@@ -290,7 +290,7 @@ extension YHPrincleViewModel {
printLog("model 是 ==> \(json)") printLog("model 是 ==> \(json)")
if json.code == 200 { if json.code == 200 {
if let isSend = json.data as? Bool { if let isSend = json.data?.peel as? Bool {
callback?(isSend) callback?(isSend)
} else { } else {
callback?(false) callback?(false)
......
...@@ -28,7 +28,6 @@ class YHServiceSearchModel: SmartCodable { ...@@ -28,7 +28,6 @@ class YHServiceSearchModel: SmartCodable {
required init() { required init() {
} }
} }
class YHServiceProgressModel : SmartCodable { class YHServiceProgressModel : SmartCodable {
var title : String = "" var title : String = ""
var type : Int = 0 var type : Int = 0
...@@ -36,3 +35,22 @@ class YHServiceProgressModel : SmartCodable { ...@@ -36,3 +35,22 @@ class YHServiceProgressModel : SmartCodable {
required init() { required init() {
} }
} }
struct YHServiceStepProgressModel: SmartCodable {
var title : String = ""
var type : Int = 0
var list : [YHServiceStepProgressThreeModel] = []
}
struct YHServiceStepProgressThreeModel: SmartCodable {
var personStr : String = ""
var type : Int = 0
var list : [YHServiceCenterProgressModel] = []
}
struct YHServiceCenterMainModel: SmartCodable {
var applySection: YHServiceProgressModel = YHServiceProgressModel()
var certificateSection: YHServiceProgressModel = YHServiceProgressModel()
var renewalSection: YHServiceStepProgressModel = YHServiceStepProgressModel()
var stage: Int = 0 // 1 申请阶段 2办证阶段 3续期阶段
}
...@@ -77,7 +77,6 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel { ...@@ -77,7 +77,6 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel {
//1. json字符串 转 对象 //1. json字符串 转 对象
guard self != nil else { return } guard self != nil else { return }
if json.code == 200 { if json.code == 200 {
_ = json.data
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
...@@ -95,7 +94,6 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel { ...@@ -95,7 +94,6 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel {
//1. json字符串 转 对象 //1. json字符串 转 对象
guard self != nil else { return } guard self != nil else { return }
if json.code == 200 { if json.code == 200 {
_ = json.data
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
...@@ -115,7 +113,6 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel { ...@@ -115,7 +113,6 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel {
//1. json字符串 转 对象 //1. json字符串 转 对象
guard self != nil else { return } guard self != nil else { return }
if json.code == 200 { if json.code == 200 {
_ = json.data
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
...@@ -133,7 +130,7 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel { ...@@ -133,7 +130,7 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel {
//1. json字符串 转 对象 //1. json字符串 转 对象
guard let self = self else { return } guard let self = self else { return }
if json.code == 200 { if json.code == 200 {
self.pageUrl = json.data as? String self.pageUrl = json.data?.peel as? String
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
...@@ -195,8 +192,7 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel { ...@@ -195,8 +192,7 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel {
//1. json字符串 转 对象 //1. json字符串 转 对象
guard let self = self else { return } guard let self = self else { return }
if json.code == 200 { if json.code == 200 {
_ = json.data self.pageUrl = json.data?.peel as? String
self.pageUrl = json.data as? String
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
...@@ -239,12 +235,11 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel { ...@@ -239,12 +235,11 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel {
//1. json字符串 转 对象 //1. json字符串 转 对象
guard self != nil else { return } guard self != nil else { return }
if json.code == 200 { if json.code == 200 {
_ = json.data guard let dic = json.data?.peel as? [String : Any], let result = YHMySignatureURLModel.deserialize(from: dic) else {
// guard let result = YHMySignatureURLModel.deserialize(from: dic) else { callBackBlock(false,nil)
// callBackBlock(false,nil) return
// return }
// } self?.pageUrl = result.url
// self.pageUrl = result.url
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
......
...@@ -48,7 +48,7 @@ class YHMySignatureDetailViewModel: YHBaseViewModel { ...@@ -48,7 +48,7 @@ class YHMySignatureDetailViewModel: YHBaseViewModel {
//1. json字符串 转 对象 //1. json字符串 转 对象
guard let self = self else { return } guard let self = self else { return }
if json.code == 200 { if json.code == 200 {
self.pageUrl = json.data as? String self.pageUrl = json.data?.peel as? String
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
......
//
// YHResignMaterialUploadVC.swift
// galaxy
//
// Created by edy on 2024/9/9.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import JXSegmentedView
class YHResignMaterialListVC: YHBaseViewController {
var items:[YHResignMaterialInfo] = [] {
didSet {
self.tableView.reloadData()
}
}
// 列表是否是展开
var isUnfold = true
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 14.0
tableView.estimatedSectionFooterHeight = 1.0
tableView.showsVerticalScrollIndicator = false
tableView.separatorStyle = .none
tableView.delegate = self
tableView.dataSource = self
tableView.backgroundColor = UIColor(hexString:"#F8F9FB")
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHResignMaterialCell.self, forCellReuseIdentifier: YHResignMaterialCell.cellReuseIdentifier)
tableView.backgroundView = emptyDataTipsView
return tableView
}()
lazy var emptyDataTipsView: YHEmptyDataView = {
let view = YHEmptyDataView.createView("没有找到相关资料哦~", kEmptyCommonBgName)
view.topMargin = 130
view.isHidden = true
return view
}()
lazy var previewFileTool:YHFilePreviewTool = {
let tool = YHFilePreviewTool(targetVC: self)
return tool
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
self.gk_navigationBar.isHidden = true
createUI()
}
func createUI() {
view.addSubview(tableView)
tableView.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(KScreenHeight - k_Height_NavigationtBarAndStatuBar - YHResinMaterialManageContainerVC.segmentHeight-4)
}
getData()
}
func getData() {
self.tableView.reloadData()
}
}
extension YHResignMaterialListVC: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return items.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if 0 <= section && section < items.count {
let list = items[section]
return list.materials.count
}
return 0
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: YHResignMaterialCell.cellReuseIdentifier, for: indexPath) as! YHResignMaterialCell
if 0 <= indexPath.section && indexPath.section < items.count {
let list = items[indexPath.section]
if 0 <= indexPath.row, indexPath.row < list.materials.count {
let item = list.materials[indexPath.row]
cell.updateModel(item)
cell.templateBlock = {
[weak self] in
guard let self = self else { return }
let model = YHTemplateInfo()
let view = YHCertificateTemplateSheetView.templateView(model)
view.scanTemplateBlock = {
[weak self] path in
guard let self = self else { return }
if let url = path?.url, !url.isEmpty {
print(url)
self.previewFileTool.openXLSXRemoteFile(urlString:url, fileName:"预览")
}
}
view.show()
}
}
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.section && indexPath.section < items.count {
// let item = items[indexPath.section]
//
// if item.checkStatus == YHCertificateUploadStatus.preUpload.rawValue { // 待上传
// showUploadSheetView(supplementId:item.id)
// return
// }
// // 非待上传的进入详情
// let vc = YHCertificateUploadContentListVC()
// vc.orderId = orderId ?? 0
// vc.categoryId = categoryInfo.categoryId
// vc.supplementId = item.id
// self.navigationController?.pushViewController(vc)
}
}
private func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> CGFloat {
return section == 0 ? 56.0 : 52.0
}
private func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> CGFloat {
return 0.01
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView()
let titleLabel = UILabel()
titleLabel.font = UIFont.PFSC_R(ofSize: 15)
titleLabel.textColor = .mainTextColor
view.addSubview(titleLabel)
if 0 <= section && section < items.count {
let info = items[section]
titleLabel.text = info.title
}
let img = isUnfold ? "resign_material_list_unfold" : "resign_material_list_fold"
let arrowImgV = UIImageView(image: UIImage(named: img))
view.addSubview(arrowImgV)
titleLabel.snp.makeConstraints { make in
make.left.equalTo(16)
make.top.equalTo(section == 0 ? 20.0 : 16.0)
make.right.equalTo(arrowImgV.snp.left)
make.bottom.equalTo(-16)
}
arrowImgV.snp.makeConstraints { make in
make.width.height.equalTo(21.0)
make.right.equalTo(-16)
make.top.equalTo(titleLabel)
}
return view
}
}
// MARK: - JXSegmentedListContainerViewListDelegate
extension YHResignMaterialListVC: JXSegmentedListContainerViewListDelegate {
func listView() -> UIView {
return view
}
}
...@@ -2,138 +2,17 @@ ...@@ -2,138 +2,17 @@
// YHResignMaterialUploadVC.swift // YHResignMaterialUploadVC.swift
// galaxy // galaxy
// //
// Created by edy on 2024/9/9. // Created by edy on 2024/9/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved. // Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
// //
import UIKit import UIKit
import JXSegmentedView
class YHResignMaterialUploadVC: YHBaseViewController { class YHResignMaterialUploadVC: YHBaseViewController {
var items:[[YHSupplementInfo]] = []
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 14.0
tableView.estimatedSectionFooterHeight = 1.0
tableView.showsVerticalScrollIndicator = false
tableView.separatorStyle = .none
tableView.delegate = self
tableView.dataSource = self
tableView.backgroundColor = UIColor(hexString:"#F8F8F8")
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHCertificateInfoCell.self, forCellReuseIdentifier: YHCertificateInfoCell.cellReuseIdentifier)
tableView.backgroundView = emptyDataTipsView
return tableView
}()
lazy var emptyDataTipsView: YHEmptyDataView = {
let view = YHEmptyDataView.createView("没有找到相关资料哦~", kEmptyCommonBgName)
view.topMargin = 130
view.isHidden = false
return view
}()
lazy var previewFileTool:YHFilePreviewTool = {
let tool = YHFilePreviewTool(targetVC: self)
return tool
}()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
extension YHResignMaterialUploadVC: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return items.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if 0 <= section && section < items.count {
let arr = items[section]
return arr.count
}
return 0
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: YHResignMaterialCell.cellReuseIdentifier, for: indexPath) as! YHResignMaterialCell
if 0 <= indexPath.section && indexPath.section < items.count {
let arr = items[indexPath.section]
if 0 <= indexPath.row, indexPath.row < arr.count {
let item = arr[indexPath.row]
cell.updateModel(item)
cell.templateBlock = {
[weak self] in
guard let self = self else { return }
let view = YHCertificateTemplateSheetView.templateView(item.templateInfo)
view.scanTemplateBlock = {
[weak self] path in
guard let self = self else { return }
if let url = path?.url, !url.isEmpty {
print(url)
self.previewFileTool.openXLSXRemoteFile(urlString:url, fileName:"预览")
}
}
view.show()
}
}
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.section && indexPath.section < items.count {
// let item = items[indexPath.section]
//
// if item.checkStatus == YHCertificateUploadStatus.preUpload.rawValue { // 待上传
// showUploadSheetView(supplementId:item.id)
// return
// }
// // 非待上传的进入详情
// let vc = YHCertificateUploadContentListVC()
// vc.orderId = orderId ?? 0
// vc.categoryId = categoryInfo.categoryId
// vc.supplementId = item.id
// self.navigationController?.pushViewController(vc)
}
}
private func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> CGFloat {
return 0.01
}
private func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> CGFloat {
return 0.01
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return UIView()
}
}
// MARK: - JXSegmentedListContainerViewListDelegate
extension YHResignMaterialUploadVC: JXSegmentedListContainerViewListDelegate {
func listView() -> UIView {
return view
} }
} }
...@@ -9,11 +9,16 @@ ...@@ -9,11 +9,16 @@
import UIKit import UIKit
import JXSegmentedView import JXSegmentedView
class YHResinMaterialManageListVC: YHBaseViewController { class YHResinMaterialManageContainerVC: YHBaseViewController {
static let segmentHeight = 49.0 static let segmentHeight = 40.0
let viewModel = YHResignMaterialViewModel()
var titles = ["全部", "待上传(0)", "已驳回(0)", "审核中(0)", "已完成(0)"] var titles = ["全部", "待上传(0)", "已驳回(0)", "审核中(0)", "已完成(0)"]
var itemVCs:[YHResignMaterialUploadVC] = [] let itemVCs:[YHResignMaterialListVC] = [YHResignMaterialListVC(),
YHResignMaterialListVC(),
YHResignMaterialListVC(),
YHResignMaterialListVC(),
YHResignMaterialListVC()]
//分类title 所对应的VC //分类title 所对应的VC
lazy var listContainerView: JXSegmentedListContainerView! = { lazy var listContainerView: JXSegmentedListContainerView! = {
...@@ -27,7 +32,8 @@ class YHResinMaterialManageListVC: YHBaseViewController { ...@@ -27,7 +32,8 @@ class YHResinMaterialManageListVC: YHBaseViewController {
//配置指示器 //配置指示器
let indicator = JXSegmentedIndicatorLineView() let indicator = JXSegmentedIndicatorLineView()
indicator.indicatorWidth = 16 indicator.indicatorWidth = 16
indicator.indicatorHeight = 4.0 indicator.indicatorHeight = 2.0
indicator.indicatorCornerRadius = 0.0
indicator.indicatorColor = .brandMainColor indicator.indicatorColor = .brandMainColor
segview.indicators = [indicator] segview.indicators = [indicator]
segview.backgroundColor = .clear segview.backgroundColor = .clear
...@@ -47,37 +53,45 @@ class YHResinMaterialManageListVC: YHBaseViewController { ...@@ -47,37 +53,45 @@ class YHResinMaterialManageListVC: YHBaseViewController {
dataSource.isTitleColorGradientEnabled = true dataSource.isTitleColorGradientEnabled = true
dataSource.titles = titles dataSource.titles = titles
dataSource.titleNormalFont = UIFont.PFSC_R(ofSize: 14) dataSource.titleNormalFont = UIFont.PFSC_R(ofSize: 14)
dataSource.titleNormalColor = .labelTextColor2 dataSource.titleNormalColor = .yhGreyColor
dataSource.titleSelectedFont = UIFont.PFSC_M(ofSize: 16) dataSource.titleSelectedFont = UIFont.PFSC_M(ofSize: 14)
dataSource.titleSelectedColor = UIColor(hexString: "#000000")! dataSource.titleSelectedColor = .mainTextColor
dataSource.isItemSpacingAverageEnabled = false dataSource.isItemSpacingAverageEnabled = false
dataSource.itemWidth = JXSegmentedViewAutomaticDimension dataSource.itemWidth = JXSegmentedViewAutomaticDimension
dataSource.itemSpacing = 24 dataSource.titleSelectedZoomScale = 1.0
dataSource.itemSpacing = 16
return dataSource return dataSource
}() }()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
createUI()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
requestData()
} }
func setupUI() { func createUI() {
self.gk_navTitle = "续签资料管理"
self.view.backgroundColor = .white
view.addSubview(segmentContainerView) view.addSubview(segmentContainerView)
segmentContainerView.addSubview(segmentedView) segmentContainerView.addSubview(segmentedView)
view.addSubview(listContainerView) view.addSubview(listContainerView)
segmentContainerView.snp.makeConstraints { make in segmentContainerView.snp.makeConstraints { make in
make.left.right.equalToSuperview() make.left.equalToSuperview().offset(4.0)
make.right.equalToSuperview().offset(-4)
make.top.equalToSuperview().offset(k_Height_NavigationtBarAndStatuBar) make.top.equalToSuperview().offset(k_Height_NavigationtBarAndStatuBar)
make.height.equalTo(Self.segmentHeight+4) make.height.equalTo(Self.segmentHeight+4)
} }
segmentedView.snp.makeConstraints { make in segmentedView.snp.makeConstraints { make in
make.top.left.equalToSuperview() make.top.left.equalToSuperview()
make.right.equalToSuperview().offset(-21-18) make.right.equalToSuperview()
make.height.equalTo(Self.segmentHeight) make.height.equalTo(Self.segmentHeight)
} }
...@@ -87,9 +101,41 @@ class YHResinMaterialManageListVC: YHBaseViewController { ...@@ -87,9 +101,41 @@ class YHResinMaterialManageListVC: YHBaseViewController {
make.bottom.equalToSuperview() make.bottom.equalToSuperview()
} }
} }
func requestData() {
let params: [String : Any] = ["order_id" : 151336,
"id" : 351]
viewModel.getMaterialList(param: params) { success, error in
for (index, vc) in self.itemVCs.enumerated() {
if index == 0 {
vc.items = self.viewModel.allGroup.getDataArr()
} else if index == 1 {
vc.items = self.viewModel.preuploadGroup.getDataArr()
} else if index == 2 {
vc.items = self.viewModel.rejectedGroup.getDataArr()
} else if index == 3 {
vc.items = self.viewModel.reviewGroup.getDataArr()
} else if index == 4 {
vc.items = self.viewModel.finishGroup.getDataArr()
}
}
self.titles = ["全部",
"带上传(\(self.viewModel.preuploadGroup.getTotalCount()))",
"已驳回(\(self.viewModel.rejectedGroup.getTotalCount()))",
"审核中(\(self.viewModel.reviewGroup.getTotalCount()))",
"已完成(\(self.viewModel.finishGroup.getTotalCount()))",]
self.segmentedDataSource.titles = self.titles
self.segmentedView.reloadDataWithoutListContainer()
}
}
} }
extension YHResinMaterialManageListVC: JXSegmentedListContainerViewDataSource { extension YHResinMaterialManageContainerVC: JXSegmentedListContainerViewDataSource {
func numberOfLists(in listContainerView: JXSegmentedListContainerView) -> Int { func numberOfLists(in listContainerView: JXSegmentedListContainerView) -> Int {
if let titleDataSource = segmentedView.dataSource as? JXSegmentedBaseDataSource { if let titleDataSource = segmentedView.dataSource as? JXSegmentedBaseDataSource {
...@@ -99,11 +145,15 @@ extension YHResinMaterialManageListVC: JXSegmentedListContainerViewDataSource { ...@@ -99,11 +145,15 @@ extension YHResinMaterialManageListVC: JXSegmentedListContainerViewDataSource {
} }
func listContainerView(_ listContainerView: JXSegmentedListContainerView, initListAt index: Int) -> JXSegmentedListContainerViewListDelegate { func listContainerView(_ listContainerView: JXSegmentedListContainerView, initListAt index: Int) -> JXSegmentedListContainerViewListDelegate {
if 0 <= index, index < itemVCs.count {
return itemVCs[index] return itemVCs[index]
} }
return YHResignMaterialListVC()
}
} }
extension YHResinMaterialManageListVC: JXSegmentedViewDelegate { extension YHResinMaterialManageContainerVC: JXSegmentedViewDelegate {
func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) { func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
if 0 <= index && index < itemVCs.count { if 0 <= index && index < itemVCs.count {
......
//
// YHMaterialListModel.swift
// galaxy
//
// Created by edy on 2024/9/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
enum YHMaterialType: String {
// 资料类型(CERT=证件资料 WORK=工作资料 LIVE=生活资料)
case cer = "CERT"
case work = "WORK"
case live = "LIVE"
}
enum YHMaterialStatus: String {
case all = "ALL" // 自定义
// (未开始=NOT_OPEN 待上传=TO_BE_UPLOAD 待审核= PENDING_AUDIT 已驳回=REJECTED 已完成= COMPLETED)
case unOpen = "NOT_OPEN"
case preUpload = "TO_BE_UPLOAD"
case review = "PENDING_AUDIT"
case rejected = "REJECTED"
case completed = "COMPLETED"
}
class YHMaterialListModel: SmartCodable {
var id: Int = 0
var order_sn: String = ""
var status: String = ""
var stay_deadline: String = ""
var material: [YHMaterialModel] = []
var members: [YHMembersModel] = []
required init() {
}
}
class YHMaterialModel: SmartCodable {
var id: Int = 0
var renewal_id: Int = 0
var order_id: Int = 0
var subset_id: Int = 0
var information_id: Int = 0
var template_id: Int = 0
var relation: Int = 0
// 资料类型(CERT=证件资料 WORK=工作资料 LIVE=生活资料)
var mtype: String = ""
var name: String = ""
var info: String = ""
var upload_require: String = ""
var audit_at: String = ""
var audit_uid: Int = 0
// 状态(待上传=TO_BE_UPLOAD 待审核= PENDING_AUDIT 已驳回=REJECTED 已完成= COMPLETED)
var status: String = ""
var remark: String = ""
var audit_remark: String = ""
var created_at: String = ""
var updated_at: String = ""
var deleted_at: String = ""
required init() {
}
}
class YHMembersModel: SmartCodable {
var id: Int = 0
var renewal_number: Int = 0
var apply_name: String = ""
var apply_relation: Int = 0
var apply_relation_text: String = ""
required init() {
}
}
...@@ -20,13 +20,15 @@ enum YHMaterialUploadStatus : Int { ...@@ -20,13 +20,15 @@ enum YHMaterialUploadStatus : Int {
case rejected = 2 case rejected = 2
// 待上传 // 待上传
case preUpload = 3 case preUpload = 3
// 未开始
case unStarted = 4
} }
class YHResignMaterialCell: UITableViewCell { class YHResignMaterialCell: UITableViewCell {
static let cellReuseIdentifier = "YHResignMaterialCell" static let cellReuseIdentifier = "YHResignMaterialCell"
var model: YHSupplementInfo = YHSupplementInfo() var model: YHMaterialModel = YHMaterialModel()
var status : YHCertificateUploadStatus = .preUpload var status : YHCertificateUploadStatus = .preUpload
var templateBlock:(()->())? var templateBlock:(()->())?
var whiteView: UIView! var whiteView: UIView!
...@@ -50,9 +52,6 @@ class YHResignMaterialCell: UITableViewCell { ...@@ -50,9 +52,6 @@ class YHResignMaterialCell: UITableViewCell {
}() }()
@objc func didTemplateBtnClicked() { @objc func didTemplateBtnClicked() {
if self.model.isNeedDealt { // 银河代办
return
}
if let templateBlock = templateBlock { if let templateBlock = templateBlock {
templateBlock() templateBlock()
} }
...@@ -67,83 +66,60 @@ class YHResignMaterialCell: UITableViewCell { ...@@ -67,83 +66,60 @@ class YHResignMaterialCell: UITableViewCell {
setupUI() setupUI()
} }
func updateModel(_ model: YHSupplementInfo) { func updateModel(_ model: YHMaterialModel) {
self.model = model self.model = model
if let status = YHCertificateUploadStatus(rawValue: model.checkStatus) {
var titleColor: UIColor = .labelTextColor2 var titleColor: UIColor = .labelTextColor2
var title = "" var title = ""
switch status {
case .preUpload: if model.status == YHMaterialStatus.unOpen.rawValue {
titleColor = .mainTextColor(alpha: 0.5)
title = "未开始".local
} else if model.status == YHMaterialStatus.preUpload.rawValue {
titleColor = .brandMainColor titleColor = .brandMainColor
title = "待上传".local title = "待上传".local
case .rejected:
} else if model.status == YHMaterialStatus.rejected.rawValue {
titleColor = .failColor titleColor = .failColor
title = "已驳回".local title = "已驳回".local
case .review:
titleColor = .warnColor } else if model.status == YHMaterialStatus.review.rawValue {
titleColor = .init(hex: 0xFF8000)
title = "审核中".local title = "审核中".local
case .finish:
titleColor = .labelTextColor2 } else if model.status == YHMaterialStatus.completed.rawValue {
titleColor = .init(hex: 0x3CC694)
title = "已完成".local title = "已完成".local
case .all:
titleColor = .labelTextColor2
} }
statusLabel.text = title statusLabel.text = title
statusLabel.textColor = titleColor statusLabel.textColor = titleColor
}
var infoStr = ""
var typeStr = "无"
var ownerStr = "无"
if !model.typeName.isEmpty {
typeStr = model.typeName
}
if !model.nameExtra.applicant.isEmpty {
ownerStr = model.nameExtra.applicant
}
infoStr = "类型: \(typeStr)\n所属人: \(ownerStr)"
let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.PFSC_R(ofSize:12),
.foregroundColor: UIColor.labelTextColor2
]
let attrString = NSMutableAttributedString(string: infoStr, attributes: attributes)
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 4.0 // 设置行间距为 8 点
attrString.addAttribute(.paragraphStyle, value: paragraphStyle, range: NSRange(location: 0, length: infoStr.count))
infoLabel.attributedText = attrString let img = UIImage(named: "family_info_status_arrow")?.withRenderingMode(.alwaysTemplate)
self.rightArrowImgV.image = img
self.rightArrowImgV.tintColor = titleColor
var result:ASAttributedString = .init(string:"", .font(UIFont.PFSC_M(ofSize: 16)), .foreground(UIColor.mainTextColor)) var result:ASAttributedString = .init(string:"", .font(UIFont.PFSC_M(ofSize: 16)), .foreground(UIColor.mainTextColor))
let mustTag: ASAttributedString = .init("*", .font(UIFont.PFSC_M(ofSize: 16)),.foreground(UIColor.failColor)) let mustTag: ASAttributedString = .init("*", .font(UIFont.PFSC_M(ofSize: 16)),.foreground(UIColor.failColor))
var name = model.name var name = model.name
if !model.nameExtra.organization.isEmpty {
name += "(\(model.nameExtra.organization))"
}
let cerName: ASAttributedString = .init(string:name , .font(UIFont.PFSC_M(ofSize: 16)), .foreground(UIColor.mainTextColor)) let cerName: ASAttributedString = .init(string:name , .font(UIFont.PFSC_M(ofSize: 16)), .foreground(UIColor.mainTextColor))
var template: ASAttributedString = " \(.view(templateButton, .original(.center)))" var template: ASAttributedString = " \(.view(templateButton, .original(.center)))"
// 是否展示右边的模版按钮 // 是否展示右边的模版按钮
var showTemplateBtn = true var showTemplateBtn = true
if model.isNeedDealt { // if model.templateInfo.materialPath.isEmpty && model.templateInfo.guideFilePath.isEmpty && model.templateInfo.description.isEmpty {
templateButton.setTitle("银河代办", for: .normal) //
template = " \(.view(templateButton, .original(.center)))" // showTemplateBtn = false
} else { // }
templateButton.setTitle("资料模版", for: .normal)
template = " \(.view(templateButton, .original(.center)))"
if model.templateInfo.materialPath.isEmpty && model.templateInfo.guideFilePath.isEmpty && model.templateInfo.description.isEmpty {
showTemplateBtn = false
}
}
if model.isNeedSupplemnt() { if true {
result += mustTag result += mustTag
} }
result += cerName result += cerName
showTemplateBtn = true
if showTemplateBtn { if showTemplateBtn {
result += template result += template
} }
...@@ -174,35 +150,37 @@ class YHResignMaterialCell: UITableViewCell { ...@@ -174,35 +150,37 @@ class YHResignMaterialCell: UITableViewCell {
""" """
statusLabel = UILabel() statusLabel = UILabel()
statusLabel.textColor = UIColor.labelTextColor2 statusLabel.textColor = UIColor.mainTextColor(alpha: 0.5)
statusLabel.textAlignment = .left statusLabel.textAlignment = .left
statusLabel.font = UIFont.PFSC_R(ofSize:14) statusLabel.font = UIFont.PFSC_R(ofSize:14)
whiteView.addSubview(statusLabel) whiteView.addSubview(statusLabel)
rightArrowImgV = UIImageView(image: UIImage(named: "service_center_right_next_icon")) rightArrowImgV = UIImageView(image: UIImage(named: "family_info_status_arrow"))
whiteView.addSubview(rightArrowImgV) whiteView.addSubview(rightArrowImgV)
whiteView.snp.makeConstraints { make in whiteView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20) make.left.equalToSuperview().offset(16)
make.right.equalToSuperview().offset(-20) make.right.equalToSuperview().offset(-16)
make.top.bottom.equalToSuperview() make.top.equalToSuperview()
make.bottom.equalToSuperview().offset(-16)
} }
nameTextView.snp.makeConstraints { make in nameTextView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(10) make.left.equalToSuperview().offset(20)
make.top.equalToSuperview().offset(4) make.top.equalToSuperview().offset(12)
make.right.equalTo(statusLabel.snp.left).offset(-26) make.right.equalTo(statusLabel.snp.left).offset(-14)
make.bottom.equalTo(-12)
} }
statusLabel.snp.makeConstraints { make in statusLabel.snp.makeConstraints { make in
make.right.equalTo(rightArrowImgV.snp.left).offset(-6) make.right.equalTo(rightArrowImgV.snp.left).offset(0)
make.size.equalTo(CGSize(width: 42, height: 20)) make.size.equalTo(CGSize(width: 42, height: 20))
make.centerY.equalToSuperview() make.centerY.equalToSuperview()
} }
rightArrowImgV.snp.makeConstraints { make in rightArrowImgV.snp.makeConstraints { make in
make.right.equalToSuperview().offset(-16) make.right.equalToSuperview().offset(-14)
make.size.equalTo(CGSize(width: 16, height: 16)) make.size.equalTo(CGSize(width: 20, height: 20))
make.centerY.equalToSuperview() make.centerY.equalToSuperview()
} }
} }
......
//
// YHResignMaterialViewModel.swift
// galaxy
//
// Created by edy on 2024/9/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHResignMaterialInfo {
var title: String = ""
var materials: [YHMaterialModel] = []
init(title: String, materials: [YHMaterialModel]) {
self.title = title
self.materials = materials
}
}
class YHResignMaterialGroup {
var status: YHMaterialStatus = .all
// 工作资料
var works:[YHMaterialModel] = []
// 生活资料
var lifes:[YHMaterialModel] = []
// 证件资料
var cers: [YHMaterialModel] = []
func getTotalCount() -> Int {
return works.count + lifes.count + cers.count
}
func clear() {
works.removeAll()
lifes.removeAll()
cers.removeAll()
}
func getDataArr()-> [YHResignMaterialInfo] {
var arr:[YHResignMaterialInfo] = []
if works.count > 0 {
let work = YHResignMaterialInfo(title: "工作资料", materials: works)
arr.append(work)
}
if lifes.count > 0 {
let life = YHResignMaterialInfo(title: "生活资料", materials: lifes)
arr.append(life)
}
if cers.count > 0 {
let cer = YHResignMaterialInfo(title: "证件资料", materials: cers)
arr.append(cer)
}
return arr
}
}
class YHResignMaterialViewModel: NSObject {
// 全部
var allGroup: YHResignMaterialGroup = YHResignMaterialGroup()
// 待上传
var preuploadGroup: YHResignMaterialGroup = YHResignMaterialGroup()
// 已驳回
var rejectedGroup: YHResignMaterialGroup = YHResignMaterialGroup()
// 审核中
var reviewGroup: YHResignMaterialGroup = YHResignMaterialGroup()
// 已完成
var finishGroup: YHResignMaterialGroup = YHResignMaterialGroup()
func clear() {
self.allGroup.clear()
self.preuploadGroup.clear()
self.rejectedGroup.clear()
self.reviewGroup.clear()
self.finishGroup.clear()
}
func getMaterialList(param:[String : Any], callback:((_ success: Bool,_ error:YHErrorModel?)->())?) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.ResignMaterial.resignMaterialList
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 {
guard let dic = json.data?.peel as? [String : Any],let resultModel = YHMaterialListModel.deserialize(from: dic) else {
let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
self.clear()
callback?(false, err)
return
}
let materials = resultModel.material
self.allGroup = self.generateGroup(status: .all, materials:materials)
self.preuploadGroup = self.generateGroup(status: .preUpload, materials:materials)
self.rejectedGroup = self.generateGroup(status: .rejected, materials:materials)
self.reviewGroup = self.generateGroup(status: .review, materials:materials)
self.finishGroup = self.generateGroup(status: .completed, materials:materials)
callback?(true, nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
self.clear()
callback?(false, err)
}
} failBlock: { err in
self.clear()
callback?(false, err)
}
}
func generateGroup(status: YHMaterialStatus, materials:[YHMaterialModel]) -> YHResignMaterialGroup {
let group = YHResignMaterialGroup()
group.status = status
for material in materials {
let condition: Bool = (status == .all ? true : material.status == status.rawValue)
if condition {
if material.mtype == YHMaterialType.work.rawValue {
group.works.append(material)
}
if material.mtype == YHMaterialType.live.rawValue {
group.lifes.append(material)
}
if material.mtype == YHMaterialType.cer.rawValue {
group.cers.append(material)
}
}
}
return group
}
}
//
// YHServiceCenterStepThreeTableHeadView.swift
// galaxy
//
// Created by EDY on 2024/9/11.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHServiceCenterStepThreeTableHeadView: UIView {
typealias Block = ([YHServiceCenterProgressModel]) -> ()
var block: Block?
var dataSource: [YHServiceStepProgressThreeModel] = [] {
didSet {
selectIndex = 0
let model = dataSource[selectIndex]
explainLabel.text = model.personStr
if model.personStr.count > 20 {
moreButton.isHidden = false
} else {
moreButton.isHidden = true
}
self.myCollectView.reloadData()
}
}
var bgView: UIView!
var moreButton: UIButton!
var explainLabel: UILabel!
var selectIndex = 0
lazy var myCollectView = {
// 设置布局方向
let flowLayout = UICollectionViewFlowLayout()
flowLayout.itemSize = CGSize(width: 81, height: 26)
flowLayout.minimumInteritemSpacing = 12.0
flowLayout.minimumLineSpacing = 12.0
flowLayout.scrollDirection = .horizontal
let collectinoView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout)
collectinoView.backgroundColor = .clear
collectinoView.contentInset = UIEdgeInsets(top: 16, left: 20, bottom: 16, right: 20)
collectinoView.register(YHServiceSectionStepThreeCollectionViewCell.self, forCellWithReuseIdentifier:YHServiceSectionStepThreeCollectionViewCell.cellReuseIdentifier)
collectinoView.delegate = self
collectinoView.dataSource = self
collectinoView.translatesAutoresizingMaskIntoConstraints = false
collectinoView.alwaysBounceVertical = true
collectinoView.bounces = false
collectinoView.showsHorizontalScrollIndicator = false
collectinoView.showsVerticalScrollIndicator = false
return collectinoView
}()
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .white
setUpView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setUpView() {
backgroundColor = .clear
addSubview(myCollectView)
myCollectView.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(58)
}
bgView = {
let view = UIView()
view.backgroundColor = UIColor.pageBkgColor
return view
}()
addSubview(bgView)
bgView.snp.makeConstraints { make in
make.bottom.equalToSuperview()
make.height.equalTo(42)
make.left.equalTo(20)
make.right.equalTo(-20)
}
explainLabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor70
label.text = "本期人员:张大大 (首次)、张笑笑 (第2次)"
label.font = UIFont.PFSC_M(ofSize: 13)
return label
}()
bgView.addSubview(explainLabel)
explainLabel.snp.makeConstraints { make in
make.top.bottom.equalToSuperview()
make.left.equalTo(12)
make.right.equalTo(-38)
}
moreButton = {
let button = UIButton(type: .custom)
button.setTitle("更多", for: .normal)
button.setTitleColor(UIColor.brandMainColor, for: .normal)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 13)
button.addTarget(self, action: #selector(showAlert), for: .touchUpInside)
return button
}()
bgView.addSubview(moreButton)
moreButton.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.width.equalTo(26)
make.height.equalTo(18)
make.right.equalTo(-12)
}
// self.myCollectView.es.addInfiniteScrolling {
// self.loadFakeData()
// }
}
@objc func showAlert() {
YHCommonAlertView.show("", explainLabel.text, "我知道了",fullGuestureEnable: false) {
} callBack: {
}
}
}
extension YHServiceCenterStepThreeTableHeadView: UICollectionViewDelegate, UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return dataSource.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHServiceSectionStepThreeCollectionViewCell.cellReuseIdentifier, for: indexPath) as! YHServiceSectionStepThreeCollectionViewCell
cell.dataSource = indexPath.row + 1
if indexPath.row == selectIndex {
cell.setSelectedStyle()
} else {
cell.setDeSelectedStyle()
}
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
selectIndex = indexPath.row
let model = dataSource[selectIndex]
explainLabel.text = model.personStr
if model.personStr.count > 20 {
moreButton.isHidden = false
} else {
moreButton.isHidden = true
}
collectionView.reloadData()
let array = model.list
if let block = block {
block(array)
}
}
}
class YHServiceSectionStepThreeCollectionViewCell: UICollectionViewCell {
static let cellReuseIdentifier = "YHServiceSectionStepThreeCollectionViewCell"
func setSelectedStyle() {
descripeLable.textColor = UIColor.mainTextColor
descripeLable.layer.borderColor = UIColor.mainTextColor.cgColor
}
func setDeSelectedStyle() {
descripeLable.textColor = UIColor.mainTextColor50
descripeLable.layer.borderColor = UIColor.mainTextColor18.cgColor
}
var dataSource: Int = 0 {
didSet {
updataAllSubViews()
}
}
lazy var descripeLable:UILabel = {
let label = UILabel()
label.text = "赴港"
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_R(ofSize: 13)
label.textAlignment = .center
label.layer.borderColor = UIColor.mainTextColor.cgColor
label.layer.borderWidth = 1
return label
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
private func setupUI() {
contentView.addSubview(descripeLable)
descripeLable.snp.makeConstraints { make in
make.top.left.right.bottom.equalToSuperview()
}
}
func updataAllSubViews() {
descripeLable.text = "第\(dataSource)批续签"
}
}
//
// YHServiceMoreAlertView.swift
// galaxy
//
// Created by EDY on 2024/9/11.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHServiceMoreAlertView: UIView {
typealias Block = (Int) -> ()
var block: Block?
var centerView: UIView!
var orderButton: UIButton!
var guideButton: UIButton!
var isShowGuide: Bool = false {
didSet {
if isShowGuide {
guideButton.isHidden = false
centerView.snp.remakeConstraints { make in
make.right.equalTo(-20)
make.height.equalTo(112)
make.width.equalTo(132)
make.top.equalTo(85)
}
} else {
guideButton.isHidden = true
centerView.snp.remakeConstraints { make in
make.right.equalTo(-20)
make.height.equalTo(64)
make.width.equalTo(132)
make.top.equalTo(85)
}
}
}
}
static func show(_ flag: Bool = false, callBack: @escaping ((Int) -> Void)) {
let view = YHServiceMoreAlertView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.isShowGuide = flag
view.block = callBack
let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view)
}
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor(white: 0.5, alpha: 0.1)
let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap))
tap.delegate = self
addGestureRecognizer(tap)
setView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setView() {
backgroundColor = UIColor(hex: 0x0000, alpha: 0.5)
centerView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius8
return view
}()
addSubview(centerView)
centerView.snp.makeConstraints { make in
make.right.equalTo(-20)
make.height.equalTo(64)
make.width.equalTo(132)
make.top.equalTo(85)
}
orderButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "service_more_order"), for: .normal)
button.setTitle("我的订单", for: .normal)
button.setTitleColor(UIColor.mainTextColor, for: .normal)
button.titleLabel?.font = UIFont.PFSC_R(ofSize: 16)
button.addTarget(self, action: #selector(orderButtonClick), for: .touchUpInside)
return button
}()
centerView.addSubview(orderButton)
orderButton.snp.makeConstraints { make in
make.right.equalTo(-20)
make.height.equalTo(20)
make.width.equalTo(92)
make.top.equalTo(24)
}
guideButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "service_more_guide"), for: .normal)
button.setTitle("操作指引", for: .normal)
button.setTitleColor(UIColor.mainTextColor, for: .normal)
button.titleLabel?.font = UIFont.PFSC_R(ofSize: 16)
button.addTarget(self, action: #selector(guideButtonClick), for: .touchUpInside)
return button
}()
centerView.addSubview(guideButton)
guideButton.snp.makeConstraints { make in
make.right.equalTo(-20)
make.height.equalTo(20)
make.width.equalTo(92)
make.bottom.equalTo(-24)
}
orderButton.iconInLeft(spacing: 8)
guideButton.iconInLeft(spacing: 8)
}
@objc private func handleTap(_ sender: AnyObject?) {
print("处理点击手势")
dismiss()
}
@objc func dismiss() {
removeFromSuperview()
}
@objc func orderButtonClick() {
if let block = block {
block(1)
}
dismiss()
}
@objc func guideButtonClick() {
if let block = block {
block(2)
}
dismiss()
}
}
extension YHServiceMoreAlertView: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer:UIGestureRecognizer, shouldReceive touch:UITouch) -> Bool {
if touch.view == self {
return true
}
return false
}
}
...@@ -160,6 +160,16 @@ extension YHServiceOrderProgressTableViewCell { ...@@ -160,6 +160,16 @@ extension YHServiceOrderProgressTableViewCell {
titleLabel.text = "上传过关证件" titleLabel.text = "上传过关证件"
messageLabel.text = "点击保存入境小白条及香港身份证(后续身份续期、永居均涉及)" messageLabel.text = "点击保存入境小白条及香港身份证(后续身份续期、永居均涉及)"
} }
if model.type == 31 {
titleLabel.text = "续签资料管理"
messageLabel.text = "请确认您的续签文书内容并完成签字~"
}
if model.type == 32 {
titleLabel.text = "续签文书管理"
messageLabel.text = "点击保存入境小白条及香港身份证(后续身份续期、永居均涉及)"
}
} }
if model.status == 2 { if model.status == 2 {
titleLabel.textColor = UIColor.mainTextColor titleLabel.textColor = UIColor.mainTextColor
...@@ -363,6 +373,17 @@ extension YHServiceOrderProgressTableViewCell { ...@@ -363,6 +373,17 @@ extension YHServiceOrderProgressTableViewCell {
buttonLabel.text = "去上传" buttonLabel.text = "去上传"
messageLabel.textColor = UIColor.yhGreyColor50 messageLabel.textColor = UIColor.yhGreyColor50
} }
if model.type == 31 {
titleLabel.text = "续签资料管理"
messageLabel.text = "请确认您的续签文书内容并完成签字~"
buttonLabel.text = "去上传"
}
if model.type == 32 {
titleLabel.text = "续签文书管理"
messageLabel.text = "点击保存入境小白条及香港身份证(后续身份续期、永居均涉及)"
buttonLabel.text = "去确认"
}
} }
if model.status == 3 { if model.status == 3 {
titleLabel.textColor = UIColor.mainTextColor titleLabel.textColor = UIColor.mainTextColor
...@@ -432,9 +453,22 @@ extension YHServiceOrderProgressTableViewCell { ...@@ -432,9 +453,22 @@ extension YHServiceOrderProgressTableViewCell {
messageLabel.text = "点击保存入境小白条及香港身份证(后续身份续期、永居均涉及)" messageLabel.text = "点击保存入境小白条及香港身份证(后续身份续期、永居均涉及)"
buttonLabel.text = "已完成" buttonLabel.text = "已完成"
} }
if model.type == 31 {
titleLabel.text = "续签资料管理"
messageLabel.text = "请确认您的续签文书内容并完成签字~"
buttonLabel.text = "已完成"
}
if model.type == 32 {
titleLabel.text = "续签文书管理"
messageLabel.text = "点击保存入境小白条及香港身份证(后续身份续期、永居均涉及)"
buttonLabel.text = "已完成"
}
let b: ASAttributedString = .init(NSAttributedString(string: "\(model.percentage)"), .font(UIFont(name: "DINAlternate-Bold", size: 24)!),.foreground(UIColor.mainTextColor)) let b: ASAttributedString = .init(NSAttributedString(string: "\(model.percentage)"), .font(UIFont(name: "DINAlternate-Bold", size: 24)!),.foreground(UIColor.mainTextColor))
let bb: ASAttributedString = .init("%", .font(UIFont.PFSC_M(ofSize: 10)),.foreground(UIColor.mainTextColor.withAlphaComponent(0.3))) let bb: ASAttributedString = .init("%", .font(UIFont.PFSC_M(ofSize: 10)),.foreground(UIColor.mainTextColor.withAlphaComponent(0.3)))
progressLabel.attributed.text = b + bb progressLabel.attributed.text = b + bb
} }
if model.status == 4 { if model.status == 4 {
titleLabel.textColor = UIColor.mainTextColor titleLabel.textColor = UIColor.mainTextColor
...@@ -535,7 +569,8 @@ extension YHServiceOrderProgressTableViewCell { ...@@ -535,7 +569,8 @@ extension YHServiceOrderProgressTableViewCell {
contentView.addSubview(holdView) contentView.addSubview(holdView)
holdView.snp.makeConstraints { make in holdView.snp.makeConstraints { make in
make.top.bottom.equalToSuperview() make.top.equalTo(8)
make.bottom.equalTo(-8)
make.left.equalTo(kMargin) make.left.equalTo(kMargin)
make.right.equalTo(-kMargin) make.right.equalTo(-kMargin)
} }
......
//
// YHServiceStepAlertVIew.swift
// galaxy
//
// Created by EDY on 2024/9/11.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHServiceStepAlertView: UIView {
typealias Block = (Int) -> ()
var block: Block?
var centerView: UIView!
var orderButton: UIButton!
var guideButton: UIButton!
var isStepOne: Bool = false {
didSet {
if isStepOne {
orderButton.isSelected = false
guideButton.isSelected = true
} else {
orderButton.isSelected = true
guideButton.isSelected = false
}
}
}
static func show(_ flag: Bool = false, callBack: @escaping ((Int) -> Void)) {
let view = YHServiceStepAlertView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.isStepOne = flag
view.block = callBack
let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view)
}
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor(white: 0.5, alpha: 0.1)
let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap))
tap.delegate = self
addGestureRecognizer(tap)
setView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setView() {
backgroundColor = UIColor(hex: 0x0000, alpha: 0.5)
centerView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius8
return view
}()
addSubview(centerView)
centerView.snp.makeConstraints { make in
make.left.equalTo(20)
make.height.equalTo(120)
make.width.equalTo(135)
make.top.equalTo(85)
}
orderButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "service_step_select"), for: .selected)
button.setTitle("续签阶段", for: .normal)
button.setImage(UIImage.init(color: UIColor.white, size: CGSize(width: 15, height: 15)), for: .normal)
button.setTitleColor(UIColor.mainTextColor, for: .normal)
button.setTitleColor(UIColor.brandMainColor, for: .selected)
button.setBackgroundColor(color: UIColor.white, forState: .normal)
button.setBackgroundColor(color: UIColor.brandMainColor8, forState: .selected)
button.titleLabel?.font = UIFont.PFSC_R(ofSize: 14)
button.addTarget(self, action: #selector(orderButtonClick), for: .touchUpInside)
button.isSelected = false
return button
}()
centerView.addSubview(orderButton)
orderButton.snp.makeConstraints { make in
make.right.equalTo(0)
make.height.equalTo(52)
make.width.equalTo(135)
make.top.equalTo(8)
}
guideButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "service_step_select"), for: .selected)
button.setTitle("办证阶段", for: .normal)
button.setImage(UIImage.init(color: UIColor.white, size: CGSize(width: 15, height: 15)), for: .normal)
button.setTitleColor(UIColor.mainTextColor, for: .normal)
button.setTitleColor(UIColor.brandMainColor, for: .selected)
button.setBackgroundColor(color: UIColor.white, forState: .normal)
button.setBackgroundColor(color: UIColor.brandMainColor8, forState: .selected)
button.titleLabel?.font = UIFont.PFSC_R(ofSize: 14)
button.addTarget(self, action: #selector(guideButtonClick), for: .touchUpInside)
button.isSelected = false
return button
}()
centerView.addSubview(guideButton)
guideButton.snp.makeConstraints { make in
make.right.equalTo(0)
make.height.equalTo(52)
make.width.equalTo(135)
make.bottom.equalTo(-8)
}
orderButton.iconInRight(with: 32)
guideButton.iconInRight(with: 32)
}
@objc private func handleTap(_ sender: AnyObject?) {
print("处理点击手势")
dismiss()
}
@objc func dismiss() {
removeFromSuperview()
}
@objc func orderButtonClick() {
if let block = block {
block(1)
}
dismiss()
}
@objc func guideButtonClick() {
if let block = block {
block(2)
}
dismiss()
}
}
extension YHServiceStepAlertView: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer:UIGestureRecognizer, shouldReceive touch:UITouch) -> Bool {
if touch.view == self {
return true
}
return false
}
}
//
// YHServiceStepThreeSectionView.swift
// galaxy
//
// Created by EDY on 2024/9/11.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHServiceStepThreeSectionView: UIView {
typealias Block = (Int) -> ()
var block: Block?
var oneButton: UIButton!
var twoButton: UIButton!
var threeButton: UIButton!
var fourButton: UIButton!
public override init(frame: CGRect) {
super.init(frame:frame)
initView()
}
private func initView() {
let space = (KScreenWidth - 77 * 4 - 32)/3.0
oneButton = {
let btn = UIButton(type: .custom)
btn.setBackgroundImage(UIImage(named: "service_center_step_section_one"), for: .normal)
btn.addTarget(self, action: #selector(oneBtnClick), for: .touchUpInside)
return btn
}()
addSubview(oneButton)
oneButton.snp.makeConstraints { make in
make.top.equalTo(16)
make.left.equalTo(16)
make.height.equalTo(80)
make.width.equalTo(77)
}
twoButton = {
let btn = UIButton(type: .custom)
btn.setBackgroundImage(UIImage(named: "service_center_step_section_two"), for: .normal)
btn.addTarget(self, action: #selector(twoBtnClick), for: .touchUpInside)
return btn
}()
addSubview(twoButton)
twoButton.snp.makeConstraints { make in
make.top.equalTo(16)
make.left.equalTo(oneButton.snp.right).offset(space)
make.height.equalTo(80)
make.width.equalTo(77)
}
fourButton = {
let btn = UIButton(type: .custom)
btn.setBackgroundImage(UIImage(named: "service_center_step_section_four"), for: .normal)
btn.addTarget(self, action: #selector(fourBtnClick), for: .touchUpInside)
return btn
}()
addSubview(fourButton)
fourButton.snp.makeConstraints { make in
make.top.equalTo(16)
make.right.equalTo(-16)
make.height.equalTo(80)
make.width.equalTo(77)
}
threeButton = {
let btn = UIButton(type: .custom)
btn.setBackgroundImage(UIImage(named: "service_center_step_section_three"), for: .normal)
btn.addTarget(self, action: #selector(threeBtnClick), for: .touchUpInside)
return btn
}()
addSubview(threeButton)
threeButton.snp.makeConstraints { make in
make.top.equalTo(16)
make.right.equalTo(fourButton.snp.left).offset(-space)
make.height.equalTo(80)
make.width.equalTo(77)
}
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
@objc func oneBtnClick() {
if let block = block {
block(1)
}
}
@objc func twoBtnClick() {
if let block = block {
block(2)
}
}
@objc func threeBtnClick() {
if let block = block {
block(3)
}
}
@objc func fourBtnClick() {
if let block = block {
block(4)
}
}
}
...@@ -78,9 +78,6 @@ extension YHServiceCenterMainViewModel { ...@@ -78,9 +78,6 @@ extension YHServiceCenterMainViewModel {
let params: [String : Any] = ["orderId": orderId, let params: [String : Any] = ["orderId": orderId,
"status": type] "status": type]
if type == 3 {
}
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.process let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.process
let _ = YHNetRequest.getRequest(url: strUrl,params: params) { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl,params: params) { [weak self] json, code in
...@@ -94,9 +91,6 @@ extension YHServiceCenterMainViewModel { ...@@ -94,9 +91,6 @@ extension YHServiceCenterMainViewModel {
return return
} }
if type == 3 {
}
var resultItem = YHServiceProgressModel() var resultItem = YHServiceProgressModel()
for item in result { for item in result {
if item.type == orderType { if item.type == orderType {
......
//
// YHServiceCenterViewModel.swift
// galaxy
//
// Created by EDY on 2024/9/11.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHServiceCenterViewModel: YHBaseViewModel {
//合同列表 数据
var arrContactList : [YHContactItemModel] = []
//服务中心进度模型
var arrDataForSeviceCenterProgress: [YHServiceCenterProgressModel] = []
var mainModel: YHServiceCenterMainModel = YHServiceCenterMainModel()
}
//请求接口
extension YHServiceCenterViewModel {
//请求合同项
func getContactList(callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.contractListApi
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)")
arrContactList.removeAll()
if json.code == 200 {
DispatchQueue.global().async {
guard let dic = json.data?.peel as? [String : Any],let resultModel = YHContactItemHoldModel.deserialize(from: dic) else {
DispatchQueue.main.async {
self.arrContactList = []
callBackBlock(false,nil)
}
return
}
DispatchQueue.main.async {
self.arrContactList = resultModel.orders
callBackBlock(true,nil)
}
}
} else {
arrContactList = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code),errorMsg: json.msg.count > 0 ? json.msg : "数据错误")
callBackBlock(false,error)
}
} failBlock: { err in
self.arrContactList = []
callBackBlock(false,err)
}
}
func getServiceCenterProgressList(_ orderId: Int, _ type: Int,callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
/*
orderId integer 订单id 可选
status integer 可选 0全部 1待开始 2进行中 3 已完成
let arr = ["orderId":id,"status"]
*/
let params: [String : Any] = ["orderId": orderId,
"status": type]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.serviceCenterProgressApi
let _ = YHNetRequest.getRequest(url: strUrl,params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
guard let dic = json.data?.peel as? [Any], let result = [YHServiceCenterProgressModel].deserialize(from:dic) else {
callBackBlock(false,nil)
return
}
self.arrDataForSeviceCenterProgress = result
callBackBlock(true, nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callBackBlock(false,err)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
func getServiceMainData(orderId: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["orderId": orderId,
"status": 0]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.main
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
DispatchQueue.global().async {
guard let dic = json.data?.peel as? [String : Any], let resultModel = YHServiceCenterMainModel.deserialize(from: dic) else {
DispatchQueue.main.async {
callBackBlock(false,nil)
}
return
}
DispatchQueue.main.async {
self.mainModel = resultModel
callBackBlock(true,nil)
}
}
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code),errorMsg: json.msg.count > 0 ? json.msg : "数据错误")
callBackBlock(false,error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
}
...@@ -18,7 +18,7 @@ class YHServiceOrderSearchViewModel: YHBaseViewModel { ...@@ -18,7 +18,7 @@ class YHServiceOrderSearchViewModel: YHBaseViewModel {
//1. json字符串 转 对象 //1. json字符串 转 对象
guard self != nil else { return } guard self != nil else { return }
if json.code == 200 { if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any],let data = dic["Data"],let result = [YHServiceSearchModel].deserialize(from: data as? [Any]) else { guard let dic = json.data?.peel as? [String : Any],let data = dic["Data"] as? [Any],let result = [YHServiceSearchModel].deserialize(from: data) else {
callBackBlock(false,nil) callBackBlock(false,nil)
return return
} }
......
...@@ -98,9 +98,6 @@ extension YHLoginViewModel { ...@@ -98,9 +98,6 @@ extension YHLoginViewModel {
[weak self] json, code in [weak self] json, code in
//1. json字符串 转 对象 //1. json字符串 转 对象
guard self != nil else { return } guard self != nil else { return }
printLog(json)
_ = json.data
if json.code == 200 { if json.code == 200 {
callBackBlock(true, nil) callBackBlock(true, nil)
...@@ -122,17 +119,12 @@ extension YHLoginViewModel { ...@@ -122,17 +119,12 @@ extension YHLoginViewModel {
[weak self] json, code in [weak self] json, code in
//1. json字符串 转 对象 //1. json字符串 转 对象
guard self != nil else { return } guard self != nil else { return }
printLog(json)
_ = json.data
if json.code == 200 { if json.code == 200 {
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error) callBackBlock(false, error)
} }
} failBlock: { error in } failBlock: { error in
callBackBlock(false, error) callBackBlock(false, error)
} }
......
...@@ -341,6 +341,13 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource { ...@@ -341,6 +341,13 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
return return
} }
// if true {
// TEST DY
// let vc = YHResinMaterialManageContainerVC()
// self.navigationController?.pushViewController(vc)
// return
// }
let item: PersonalModuleItem = items[indexPath.row] let item: PersonalModuleItem = items[indexPath.row]
switch item.type { switch item.type {
case .myCard://我的名片 case .myCard://我的名片
......
...@@ -128,7 +128,7 @@ class YHAllApiName { ...@@ -128,7 +128,7 @@ class YHAllApiName {
//合同列表 //合同列表
static let contractListApi = "infoflow/order/list" static let contractListApi = "infoflow/order/list"
static let main = "super-app/order/process_v2"
//合同填写进度 //合同填写进度
static let contractStatusApi = "infoflow/order/progress" static let contractStatusApi = "infoflow/order/progress"
...@@ -516,4 +516,9 @@ class YHAllApiName { ...@@ -516,4 +516,9 @@ class YHAllApiName {
static let userInfomation = "super-app/qiyu/user/information" static let userInfomation = "super-app/qiyu/user/information"
} }
// 续签资料
struct ResignMaterial {
static let resignMaterialList = "super-app/identity-renewal/renewal-batch-list"
}
} }
...@@ -75,11 +75,7 @@ class YHOSSManager: NSObject, URLSessionDelegate { ...@@ -75,11 +75,7 @@ class YHOSSManager: NSObject, URLSessionDelegate {
let _ = YHNetRequest.getRequest(url: strUrl, params: param, "5000000") { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl, params: param, "5000000") { [weak self] json, code in
//1. json字符串 转 对象 //1. json字符串 转 对象
guard let self = self else { return } guard let self = self else { return }
guard let dic = json.data?.peel as? [String : String] else { guard let dic = json.data?.peel as? [String : Any],let resultModel = YHOSSModel.deserialize(from: dic) else {
return
}
guard let resultModel = YHOSSModel.deserialize(from: dic) else {
return return
} }
self.publicModel = resultModel self.publicModel = resultModel
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_center_more@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_center_more@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_center_select_step@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_center_select_step@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_center_step_section_four@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_center_step_section_four@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_center_step_section_one@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_center_step_section_one@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_center_step_section_three@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_center_step_section_three@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_center_step_section_two@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_center_step_section_two@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_more_guide@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_more_guide@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_more_order@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_more_order@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_step_select@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_step_select@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "icon-展开@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "icon-展开@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "icon-展开@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "icon-展开@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