Commit f436230f authored by pete谢兆麟's avatar pete谢兆麟

Merge commit 'dc428ae0' into xiezhaolin

parents d72625df dc428ae0
......@@ -18,6 +18,10 @@
041B52D62B5F899E007EBCEB /* YHSpousePrimaryInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52D52B5F899E007EBCEB /* YHSpousePrimaryInfoVC.swift */; };
041B52DB2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52DA2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift */; };
041B52DD2B60A889007EBCEB /* YHTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52DC2B60A889007EBCEB /* YHTest.swift */; };
042F888B2B8477C6008B60BD /* YHEducationInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042F888A2B8477C6008B60BD /* YHEducationInfo.swift */; };
042F888F2B847B2D008B60BD /* YHEducationRequestViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042F888E2B847B2D008B60BD /* YHEducationRequestViewModel.swift */; };
042F88932B84AEF0008B60BD /* YHQuestionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042F88922B84AEF0008B60BD /* YHQuestionInfo.swift */; };
042F88952B84AFC7008B60BD /* YHQuestionList.plist in Resources */ = {isa = PBXBuildFile; fileRef = 042F88942B84AFC7008B60BD /* YHQuestionList.plist */; };
042FBBBB2B62806D00F9DE23 /* YHCertificateInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBA2B62806D00F9DE23 /* YHCertificateInfoController.swift */; };
042FBBBD2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBC2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift */; };
042FBBBF2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBE2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift */; };
......@@ -113,7 +117,6 @@
6203A87EDC96313BBE789D9C /* Pods_galaxy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */; };
A50AB89B2B81E96E00C227DE /* YHOtherInfoFillModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50AB89A2B81E96E00C227DE /* YHOtherInfoFillModel.swift */; };
A50AB89D2B81F1FB00C227DE /* YHOtherInfoFillViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50AB89C2B81F1FB00C227DE /* YHOtherInfoFillViewModel.swift */; };
A50AB89F2B82067200C227DE /* YHOtherInfoFillCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50AB89E2B82067200C227DE /* YHOtherInfoFillCell.swift */; };
A51044182B493675006B60BB /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = A51044172B493675006B60BB /* README.md */; };
A510441A2B495DD0006B60BB /* UIView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51044192B495DD0006B60BB /* UIView+Extension.swift */; };
A514E5DC2B60A2B700C93951 /* YHServiceCenterSecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A514E5DB2B60A2B700C93951 /* YHServiceCenterSecondViewController.swift */; };
......@@ -141,6 +144,12 @@
A58556C02B6C82AF003746B2 /* YHScoreResultBaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58556BF2B6C82AF003746B2 /* YHScoreResultBaseModel.swift */; };
A58556C22B6C8412003746B2 /* YHScoreResultModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58556C12B6C8412003746B2 /* YHScoreResultModel.swift */; };
A58951C52B398D1000225C19 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A58951C42B398D1000225C19 /* Launch Screen.storyboard */; };
A596C39F2B84D9100067BBB8 /* YHOtherResidenceFillView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A596C3992B84D9100067BBB8 /* YHOtherResidenceFillView.swift */; };
A596C3A02B84D9100067BBB8 /* YHOtherInfoFillCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A596C39A2B84D9100067BBB8 /* YHOtherInfoFillCell.swift */; };
A596C3A12B84D9100067BBB8 /* YHOtherTextViewItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A596C39B2B84D9100067BBB8 /* YHOtherTextViewItemView.swift */; };
A596C3A22B84D9100067BBB8 /* YHOtherYesOrNoItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A596C39C2B84D9100067BBB8 /* YHOtherYesOrNoItemView.swift */; };
A596C3A32B84D9100067BBB8 /* YHOtherSelecteItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A596C39D2B84D9100067BBB8 /* YHOtherSelecteItemView.swift */; };
A596C3A42B84D9100067BBB8 /* YHOtherInfoSessionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A596C39E2B84D9100067BBB8 /* YHOtherInfoSessionView.swift */; };
A5ACE9272B4564F7002C94D2 /* YHLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5ACE8DB2B4564F7002C94D2 /* YHLoginViewController.swift */; };
A5ACE9282B4564F7002C94D2 /* YHSmsCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5ACE8DE2B4564F7002C94D2 /* YHSmsCodeView.swift */; };
A5ACE9292B4564F7002C94D2 /* YHSmsCodeInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5ACE8E02B4564F7002C94D2 /* YHSmsCodeInputView.swift */; };
......@@ -284,6 +293,10 @@
041B52D52B5F899E007EBCEB /* YHSpousePrimaryInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSpousePrimaryInfoVC.swift; sourceTree = "<group>"; };
041B52DA2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyInitialInfo.swift; sourceTree = "<group>"; };
041B52DC2B60A889007EBCEB /* YHTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHTest.swift; sourceTree = "<group>"; };
042F888A2B8477C6008B60BD /* YHEducationInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHEducationInfo.swift; sourceTree = "<group>"; };
042F888E2B847B2D008B60BD /* YHEducationRequestViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHEducationRequestViewModel.swift; sourceTree = "<group>"; };
042F88922B84AEF0008B60BD /* YHQuestionInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHQuestionInfo.swift; sourceTree = "<group>"; };
042F88942B84AFC7008B60BD /* YHQuestionList.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = YHQuestionList.plist; sourceTree = "<group>"; };
042FBBBA2B62806D00F9DE23 /* YHCertificateInfoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateInfoController.swift; sourceTree = "<group>"; };
042FBBBC2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFormItemSelectSheetCell.swift; sourceTree = "<group>"; };
042FBBBE2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSpouseBasicInfoVC.swift; sourceTree = "<group>"; };
......@@ -380,7 +393,6 @@
987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_galaxy.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A50AB89A2B81E96E00C227DE /* YHOtherInfoFillModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHOtherInfoFillModel.swift; sourceTree = "<group>"; };
A50AB89C2B81F1FB00C227DE /* YHOtherInfoFillViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHOtherInfoFillViewModel.swift; sourceTree = "<group>"; };
A50AB89E2B82067200C227DE /* YHOtherInfoFillCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHOtherInfoFillCell.swift; sourceTree = "<group>"; };
A51044172B493675006B60BB /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
A51044192B495DD0006B60BB /* UIView+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+Extension.swift"; sourceTree = "<group>"; };
A514E5DB2B60A2B700C93951 /* YHServiceCenterSecondViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceCenterSecondViewController.swift; sourceTree = "<group>"; };
......@@ -411,6 +423,12 @@
A58556BF2B6C82AF003746B2 /* YHScoreResultBaseModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHScoreResultBaseModel.swift; sourceTree = "<group>"; };
A58556C12B6C8412003746B2 /* YHScoreResultModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHScoreResultModel.swift; sourceTree = "<group>"; };
A58951C42B398D1000225C19 /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = "<group>"; };
A596C3992B84D9100067BBB8 /* YHOtherResidenceFillView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHOtherResidenceFillView.swift; sourceTree = "<group>"; };
A596C39A2B84D9100067BBB8 /* YHOtherInfoFillCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHOtherInfoFillCell.swift; sourceTree = "<group>"; };
A596C39B2B84D9100067BBB8 /* YHOtherTextViewItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHOtherTextViewItemView.swift; sourceTree = "<group>"; };
A596C39C2B84D9100067BBB8 /* YHOtherYesOrNoItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHOtherYesOrNoItemView.swift; sourceTree = "<group>"; };
A596C39D2B84D9100067BBB8 /* YHOtherSelecteItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHOtherSelecteItemView.swift; sourceTree = "<group>"; };
A596C39E2B84D9100067BBB8 /* YHOtherInfoSessionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHOtherInfoSessionView.swift; sourceTree = "<group>"; };
A5ACE8DB2B4564F7002C94D2 /* YHLoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHLoginViewController.swift; sourceTree = "<group>"; };
A5ACE8DE2B4564F7002C94D2 /* YHSmsCodeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHSmsCodeView.swift; sourceTree = "<group>"; };
A5ACE8E02B4564F7002C94D2 /* YHSmsCodeInputView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHSmsCodeInputView.swift; sourceTree = "<group>"; };
......@@ -610,6 +628,17 @@
path = M;
sourceTree = "<group>";
};
042F88892B847720008B60BD /* M */ = {
isa = PBXGroup;
children = (
042F888A2B8477C6008B60BD /* YHEducationInfo.swift */,
042F888E2B847B2D008B60BD /* YHEducationRequestViewModel.swift */,
042F88922B84AEF0008B60BD /* YHQuestionInfo.swift */,
042F88942B84AFC7008B60BD /* YHQuestionList.plist */,
);
path = M;
sourceTree = "<group>";
};
042FBBD22B67A2F900F9DE23 /* PickerView */ = {
isa = PBXGroup;
children = (
......@@ -736,6 +765,7 @@
04C693652B73183E004C1758 /* 学历专业资格填写 */ = {
isa = PBXGroup;
children = (
042F88892B847720008B60BD /* M */,
04C693672B7318D3004C1758 /* V */,
04C693662B7318CD004C1758 /* C */,
);
......@@ -981,9 +1011,9 @@
A5234E382B72346A00A33433 /* OtherInformation(其他信息) */ = {
isa = PBXGroup;
children = (
A596C3982B84D9100067BBB8 /* V */,
A5234E3C2B72349F00A33433 /* VM */,
A5234E3B2B72349A00A33433 /* C */,
A5234E3A2B72349300A33433 /* V */,
A5234E392B72348C00A33433 /* M */,
);
path = "OtherInformation(其他信息)";
......@@ -997,14 +1027,6 @@
path = M;
sourceTree = "<group>";
};
A5234E3A2B72349300A33433 /* V */ = {
isa = PBXGroup;
children = (
A50AB89E2B82067200C227DE /* YHOtherInfoFillCell.swift */,
);
path = V;
sourceTree = "<group>";
};
A5234E3B2B72349A00A33433 /* C */ = {
isa = PBXGroup;
children = (
......@@ -1111,6 +1133,19 @@
path = C;
sourceTree = "<group>";
};
A596C3982B84D9100067BBB8 /* V */ = {
isa = PBXGroup;
children = (
A596C3992B84D9100067BBB8 /* YHOtherResidenceFillView.swift */,
A596C39A2B84D9100067BBB8 /* YHOtherInfoFillCell.swift */,
A596C39B2B84D9100067BBB8 /* YHOtherTextViewItemView.swift */,
A596C39C2B84D9100067BBB8 /* YHOtherYesOrNoItemView.swift */,
A596C39D2B84D9100067BBB8 /* YHOtherSelecteItemView.swift */,
A596C39E2B84D9100067BBB8 /* YHOtherInfoSessionView.swift */,
);
path = V;
sourceTree = "<group>";
};
A5ACE8D72B4564F7002C94D2 /* Classes */ = {
isa = PBXGroup;
children = (
......@@ -1580,6 +1615,7 @@
A5FD63DC2B6628F600D1D9DA /* scoreOptionData.plist in Resources */,
04808C062B4686510056D53C /* ATAuthSDK.bundle in Resources */,
A5C5B2EE2B4F9B8800A7C5D1 /* Localizable.xcstrings in Resources */,
042F88952B84AFC7008B60BD /* YHQuestionList.plist in Resources */,
A58951C52B398D1000225C19 /* Launch Screen.storyboard in Resources */,
0468D4772B68A08600CFB916 /* area.plist in Resources */,
A51044182B493675006B60BB /* README.md in Resources */,
......@@ -1650,11 +1686,13 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A596C3A22B84D9100067BBB8 /* YHOtherYesOrNoItemView.swift in Sources */,
A5FD63E62B67908000D1D9DA /* YHPersonInfoControllerHoldViewController.swift in Sources */,
A514E5DC2B60A2B700C93951 /* YHServiceCenterSecondViewController.swift in Sources */,
0468D4202B49320900CFB916 /* YHVerificationCodeLoginController.swift in Sources */,
043955252B70D20300955D49 /* YHFormItemQuestionsCell.swift in Sources */,
0468D4532B6782BE00CFB916 /* YHCardExampleView.swift in Sources */,
A596C3A12B84D9100067BBB8 /* YHOtherTextViewItemView.swift in Sources */,
04010B952B6A1DE90093F3BB /* YHSaveAndSubmitView.swift in Sources */,
A5ACE9362B4564F7002C94D2 /* YHNetworkStatusManager.swift in Sources */,
A5ACE92C2B4564F7002C94D2 /* YHLoginStyleButton.swift in Sources */,
......@@ -1684,6 +1722,7 @@
A5ACE9292B4564F7002C94D2 /* YHSmsCodeInputView.swift in Sources */,
A5ACE9452B4564F7002C94D2 /* YHHUDContainerView.swift in Sources */,
A5ACE93A2B4564F7002C94D2 /* NSAttributedString+Extension.swift in Sources */,
042F888B2B8477C6008B60BD /* YHEducationInfo.swift in Sources */,
04AF58C42B4FC51C0066011A /* YHLocalizable.swift in Sources */,
042FBBBF2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift in Sources */,
A5C5B2E82B4EC95600A7C5D1 /* YHDavidTestCollectionViewCell.swift in Sources */,
......@@ -1696,7 +1735,6 @@
0468D4512B67721700CFB916 /* YHMainInformationCardTableViewCell.swift in Sources */,
0468D4362B57752F00CFB916 /* YHUserModel.swift in Sources */,
A5ACE9512B4564F7002C94D2 /* YhConstant.swift in Sources */,
A50AB89F2B82067200C227DE /* YHOtherInfoFillCell.swift in Sources */,
A5FD63FC2B68DA6600D1D9DA /* YHPersonInfoCellModel2.swift in Sources */,
A5ACE94A2B4564F7002C94D2 /* YHHUDProgressView.swift in Sources */,
A5FD63E42B678AC000D1D9DA /* YHPersonInformMainViewController.swift in Sources */,
......@@ -1707,6 +1745,7 @@
A58556C22B6C8412003746B2 /* YHScoreResultModel.swift in Sources */,
0468D47A2B68A08600CFB916 /* YHAddressPickViewTableViewCell.swift in Sources */,
0468D4342B56587B00CFB916 /* YHOSSManager.swift in Sources */,
A596C3A42B84D9100067BBB8 /* YHOtherInfoSessionView.swift in Sources */,
A5234E372B70802400A33433 /* YHBasicInfoCellModel.swift in Sources */,
A5C382D12B5FAAB300C5E65C /* YHContactItemModel.swift in Sources */,
A5FD63EF2B68902400D1D9DA /* YHPersonInfoCellView.swift in Sources */,
......@@ -1715,6 +1754,7 @@
A5ACE9462B4564F7002C94D2 /* YHHUDSquareBaseView.swift in Sources */,
A5234E332B6F9CB700A33433 /* YHBasicInfoFillModel.swift in Sources */,
A5551FFE2B4C26CE00510980 /* YHBaseViewModel.swift in Sources */,
A596C39F2B84D9100067BBB8 /* YHOtherResidenceFillView.swift in Sources */,
A5C5B2F92B5515CE00A7C5D1 /* YHPageContentView.swift in Sources */,
A5C382CA2B5E1F4C00C5E65C /* YHLoginTipsView.swift in Sources */,
A5FD63F12B68963200D1D9DA /* YHPersonInfoSessionHoldView.swift in Sources */,
......@@ -1751,6 +1791,7 @@
A5C5B32D2B57D66000A7C5D1 /* YHBbxCollectionViewCell.swift in Sources */,
A50AB89D2B81F1FB00C227DE /* YHOtherInfoFillViewModel.swift in Sources */,
0468D47C2B68A08600CFB916 /* YHAddressPickView.swift in Sources */,
042F888F2B847B2D008B60BD /* YHEducationRequestViewModel.swift in Sources */,
04C693622B723AB8004C1758 /* YHMySettingViewController.swift in Sources */,
A5FD63D82B6603A500D1D9DA /* YHScoreResultView.swift in Sources */,
A5ACE9342B4564F7002C94D2 /* YHAllApiName.swift in Sources */,
......@@ -1761,6 +1802,7 @@
A5FD63EA2B67D95100D1D9DA /* YHFamilyMemberViewController.swift in Sources */,
04E86E432B8357EC00A35F4B /* YHMainInformationModel.swift in Sources */,
04E86E2F2B81EA1000A35F4B /* YHWorkExperienceListViewController.swift in Sources */,
042F88932B84AEF0008B60BD /* YHQuestionInfo.swift in Sources */,
A5ACE93F2B4564F7002C94D2 /* UIViewController+Extension.swift in Sources */,
042FBBD62B67BDD500F9DE23 /* YHBrotherInfoVC.swift in Sources */,
A5ACE9472B4564F7002C94D2 /* YHHUD.swift in Sources */,
......@@ -1788,6 +1830,7 @@
041B52D62B5F899E007EBCEB /* YHSpousePrimaryInfoVC.swift in Sources */,
A5D6AB1B2B46A1CC001C10A5 /* YHHomeModel.swift in Sources */,
A5D6AB1D2B46AAFB001C10A5 /* YHHomePageViewModel.swift in Sources */,
A596C3A32B84D9100067BBB8 /* YHOtherSelecteItemView.swift in Sources */,
A5ACE9552B4564F7002C94D2 /* YHTabBarViewController.swift in Sources */,
A5167B332B6A3A2D0084C08F /* YHPersonInfoBaseViewController.swift in Sources */,
A5C5B3122B57B47D00A7C5D1 /* YHDavidCell0.swift in Sources */,
......@@ -1814,6 +1857,7 @@
A58556BA2B6BCF1A003746B2 /* YHPersonInfoFillStepModel.swift in Sources */,
A5FD63D42B65F99500D1D9DA /* YHScoreItemCell.swift in Sources */,
A5ACE9432B4564F7002C94D2 /* UILable+Extension.swift in Sources */,
A596C3A02B84D9100067BBB8 /* YHOtherInfoFillCell.swift in Sources */,
A5ACE9382B4564F7002C94D2 /* UIApplication+Extension.swift in Sources */,
041B52872B5657B3007EBCEB /* IMAppKey.swift in Sources */,
043955212B70955200955D49 /* YHFormPickerViewType.swift in Sources */,
......
......@@ -22,11 +22,11 @@ class YHBaseViewController: UIViewController {
gk_navLineHidden = true
gk_navBarAlpha = 0
//
#if DEBUG
IQKeyboardManager.shared.enable = true
#endif
}
override var prefersStatusBarHidden: Bool {
......
......@@ -325,6 +325,7 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource
} else if indexPath.row == 1 {
//家庭程序信息
let vc = YHFamilyMemberInfoVC(orderId: orderId ?? 0)
vc.orderId = 133971
navigationController?.pushViewController(vc)
} else if indexPath.row == 2 {
//基本信息
......@@ -334,6 +335,8 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource
} else if indexPath.row == 3 {
//学历/专业资格
let vc = YHEducationalQualificationVC()
// vc.orderId = orderId
vc.orderId = 133971
navigationController?.pushViewController(vc)
} else if indexPath.row == 4 {
......
......@@ -192,9 +192,6 @@ private extension YHBasicInfoFillView {
}
myTextView = textView
myTextView.delegate = self
// NotificationCenter.default.addObserver(self, selector: #selector(textViewDidChange?(<#T##textView: UITextView##UITextView#>)), name: textDidChangeNotification, object: nil)
textView.contentInset = UIEdgeInsets(top: -8, left: 0, bottom: 0, right: 0)
......
......@@ -81,6 +81,8 @@ enum YHFormAddItemType:Int {
case addChild = 1
case addBrother
case addDegree
case addEducation
case addCertificateInfo
}
// 表单具体条目类型
......@@ -189,6 +191,8 @@ enum YHFormDetailItemType:Int {
// 上课城市
case educationCity
// 证书信息
case certificateInfo
// 资格证书名称
case qualificationCertificateName
// 颁授机构全称
......@@ -218,6 +222,10 @@ class YHFormAddItem : YHFormItemProtocol
return "新增兄弟姐妹".local
case .addDegree:
return "增加学位信息".local
case .addEducation:
return "新增学历信息".local
case .addCertificateInfo:
return "新增证书信息".local
}
}
......@@ -481,6 +489,8 @@ class YHFormDetailItem : YHFormItemProtocol {
case .educationInfo:
return "".local
case .certificateInfo:
return "".local
case .universityFullName:
return "学校全称".local
case .educationStyle:
......@@ -510,9 +520,8 @@ class YHFormDetailItem : YHFormItemProtocol {
return "颁授国家/地区".local
case .conferCity:
return "颁授城市".local
}
}
func getSubTitle() -> String {
......
......@@ -14,7 +14,7 @@ class YHFamilyRequestViewModel {
//请求所有家庭成员信息
func getFamilyInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.familyInfoApi
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyInfoApi
YHHUD.show(.progress(message: "数据加载中..."))
......@@ -82,7 +82,7 @@ if let brother = dic["brother"], brother is [[String: Any]] {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.familyInfoApi
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyInfoApi
let _ = YHNetRequest.postRequest(url: strUrl, params:params) {[weak self] json, code in
......@@ -109,7 +109,7 @@ if let brother = dic["brother"], brother is [[String: Any]] {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.familyMemberDeleteApi
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyMemberDeleteApi
let _ = YHNetRequest.postRequest(url: strUrl, params:params) { json, code in
YHHUD.hide()
......
......@@ -21,7 +21,11 @@
print(selectType.title)
}
// 【扩展新类型】
1)先增加一个YHFormPickerViewType类型
2)再扩展其关联类型 YHFormPickerViewSubType
3)补充新增类型后的方法 YHFormPickerView的getSubType方法 YHFormPickerViewSubType的title和index方法
4)填充数据源 详情见 属性 dataDict 懒加载方法
*/
......@@ -209,10 +213,21 @@ class YHFormPickerView: UIView {
[YHFormPickerViewItem(type: .degreeLocation(.domestic)),
YHFormPickerViewItem(type: .degreeLocation(.forgin))],
// 专业证书
.professionCertificate:
[YHFormPickerViewItem(type: .professionCertificate(.CFA)),
YHFormPickerViewItem(type: .professionCertificate(.CFP)),
YHFormPickerViewItem(type: .professionCertificate(.FRM)),
YHFormPickerViewItem(type: .professionCertificate(.FIA)),
YHFormPickerViewItem(type: .professionCertificate(.CPA)),
YHFormPickerViewItem(type: .professionCertificate(.CIIA)),
YHFormPickerViewItem(type: .professionCertificate(.RFC)),
YHFormPickerViewItem(type: .professionCertificate(.ACCA)),
YHFormPickerViewItem(type: .professionCertificate(.CIA)),
YHFormPickerViewItem(type: .professionCertificate(.CMA)),
YHFormPickerViewItem(type: .professionCertificate(.CQF)),
YHFormPickerViewItem(type: .professionCertificate(.CIMA)),
YHFormPickerViewItem(type: .professionCertificate(.ACA))],
]
}()
......@@ -365,6 +380,8 @@ class YHFormPickerView: UIView {
return "选择学位"
case .profession:
return "职业"
case .professionCertificate:
return "选择证书名称"
}
}
}
......@@ -401,6 +418,10 @@ extension YHFormPickerView: UIPickerViewDelegate, UIPickerViewDataSource {
}
}
func rowSize(forComponent component: Int) -> CGSize {
return CGSize(width: KScreenWidth, height: 250)
}
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let label = UILabel()
......@@ -556,8 +577,49 @@ extension YHFormPickerView {
} else if title.contains("其他") {
return .profession(.other)
}
case .professionCertificate:
if title.contains("CFA") {
return .professionCertificate(.CFA)
} else if title.contains("CFP") {
return .professionCertificate(.CFP)
} else if title.contains("FRM") {
return .professionCertificate(.FRM)
} else if title.contains("FIA") {
return .professionCertificate(.FIA)
} else if title.contains("CPA") {
return .professionCertificate(.CPA)
} else if title.contains("CIIA") {
return .professionCertificate(.CIIA)
} else if title.contains("RFC") {
return .professionCertificate(.RFC)
} else if title.contains("ACCA") {
return .professionCertificate(.ACCA)
} else if title.contains("CIA") {
return .professionCertificate(.CIA)
} else if title.contains("CMA") {
return .professionCertificate(.CMA)
} else if title.contains("CQF") {
return .professionCertificate(.CQF)
} else if title.contains("CIMA") {
return .professionCertificate(.CIMA)
} else if title.contains("英国皇家特许会计师") {
return .professionCertificate(.ACA)
}
}
return .none
}
......
......@@ -31,6 +31,8 @@ enum YHFormPickerViewType: Int {
case identity
// 颁发地区
case degreeLocation
// 专业证书
case professionCertificate
}
......@@ -157,6 +159,35 @@ enum YHPickerViewDegreeLocationType:Int {
case forgin = 2
}
enum YHPickerViewProfessionalCertificateType:Int {
// CFA(注册金融分析师)
case CFA = 0
// CFP(CFP证书是目前世界上权威的权威理财顾问认证项目之一)
case CFP
// FRM(金融风险管理师)
case FRM
// FIA(保险精算师)
case FIA
// CPA(注册会计师)
case CPA
// CIIA(注册国际投资分析师)
case CIIA
// RFC(财务顾问师)
case RFC
// ACCA(特许公认会计师)
case ACCA
// CIA(国际注册内部审计师)
case CIA
// CMA(美国管理会计师)
case CMA
// CQF(国际数量金融工程认证)
case CQF
// CIMA(管理会计师考试)
case CIMA
// The Associate Chartered Accountant(英国皇家特许会计师)
case ACA
}
enum YHFormPickerViewSubType {
case none
......@@ -170,6 +201,7 @@ enum YHFormPickerViewSubType {
case identity(YHPickerViewIdentityType)
case degreeLocation(YHPickerViewDegreeLocationType)
case profession(YHPicerViewProfessionType)
case professionCertificate(YHPickerViewProfessionalCertificateType)
var title:String {
switch self {
......@@ -279,6 +311,33 @@ enum YHFormPickerViewSubType {
case .profession(.other):
return "其他".local
case .professionCertificate(.CFA):
return "CFA(注册金融分析师)"
case .professionCertificate(.CFP):
return "CFP(CFP证书是目前世界上权威的权威理财顾问认证项目之一)"
case .professionCertificate(.FRM):
return "FRM(金融风险管理师)"
case .professionCertificate(.FIA):
return "FIA(保险精算师)"
case .professionCertificate(.CPA):
return "CPA(注册会计师)"
case .professionCertificate(.CIIA):
return "CIIA(注册国际投资分析师)"
case .professionCertificate(.RFC):
return "RFC(财务顾问师)"
case .professionCertificate(.ACCA):
return "ACCA(特许公认会计师)"
case .professionCertificate(.CIA):
return "CIA(国际注册内部审计师)"
case .professionCertificate(.CMA):
return "CMA(美国管理会计师)"
case .professionCertificate(.CQF):
return "CQF(国际数量金融工程认证)"
case .professionCertificate(.CIMA):
return "CIMA(管理会计师考试)"
case .professionCertificate(.ACA):
return "The Associate Chartered Accountant(英国皇家特许会计师)"
return ""
}
}
......@@ -391,7 +450,35 @@ enum YHFormPickerViewSubType {
return 10
case .profession(.other):
return 11
}
case .professionCertificate(.CFA):
return 1
case .professionCertificate(.CFP):
return 2
case .professionCertificate(.FRM):
return 3
case .professionCertificate(.FIA):
return 4
case .professionCertificate(.CPA):
return 5
case .professionCertificate(.CIIA):
return 6
case .professionCertificate(.RFC):
return 7
case .professionCertificate(.ACCA):
return 8
case .professionCertificate(.CIA):
return 9
case .professionCertificate(.CMA):
return 10
case .professionCertificate(.CQF):
return 11
case .professionCertificate(.CIMA):
return 12
case .professionCertificate(.ACA):
return 13
return -1
}
}
}
......@@ -94,6 +94,9 @@ extension YHOtherInfoFillViewController {
private func saveData() {
let model = otherInfoVM.otherInfoFillData
printLog(model?.toDictionary())
//保存
// let arr = basicInfoVM.arrBasicInfoSessionDataForEdit
//
......@@ -237,6 +240,10 @@ extension YHOtherInfoFillViewController : UITableViewDelegate,UITableViewDataSou
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHOtherInfoFillCell.self)
cell.selectionStyle = .none
cell.block = {
self.homeTableView.reloadData()
}
cell.dataModel = otherInfoVM.otherInfoFillData
return cell
}
......
......@@ -25,15 +25,13 @@ class YHOtherInfoFillModel: SmartCodable {
class Residence : SmartCodable {
var id: Int = -1
var country: String = ""
var startTime: String = ""
var endTime: String = ""
var start_time: String = ""
var end_time: String = ""
var orderID: Int = -1
var endTimeChecked: Bool = false
required init() {
}
}
......@@ -41,6 +39,7 @@ class Residence : SmartCodable {
class LanguageDetail : SmartCodable {
var schoolAddressAboard: Bool = false
var level: Int = -1
var levelDes : String = ""
var name: String = ""
var remark: String = ""
......@@ -52,21 +51,22 @@ class LanguageDetail : SmartCodable {
// MARK: - Profession
class Profession : SmartCodable{
var option: Int = -1
var optionDes : String = ""
var remark: String = ""
required init() {
}
}
// MARK: - Question
class Question : SmartCodable {
var professionalQualification : Int = -1
var professional_qualification : Int = -1
var paper : Int = -1
var scholarship : Int = -1
var mediaInterview : Int = -1
var academicAwards : String = ""
var otherInformation: String = ""
var media_interview : Int = -1
var academic_awards : String = ""
var professional_awards : String = ""
var other_information: String = ""
required init() {
}
......
......@@ -9,8 +9,13 @@
import UIKit
class YHOtherInfoFillCell: UITableViewCell {
static let cellReuseIdentifier = "YHOtherInfoFillCell"
typealias Block = () -> ()
var block: Block?
var dataModel: YHOtherInfoFillModel? {
didSet {
updateUI()
......@@ -21,17 +26,369 @@ class YHOtherInfoFillCell: UITableViewCell {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
override func layoutSubviews() {
super.layoutSubviews()
// dotLineLayer.path = UIBezierPath(roundedRect: addBtn.bounds, cornerRadius: kCornerRadius6).cgPath
}
lazy var addBtn: UIButton = {
let btn = UIButton()
btn.setTitle("新增居住信息".local, for: .normal)
btn.titleLabel?.font = UIFont.PFSC_M(ofSize: 14)
btn.setTitleColor(UIColor.brandMainColor, for: .normal)
btn.iconInLeft(spacing: 6)
btn.setImage(UIImage(named: "form_add_info"), for: .normal)
btn.addTarget(self, action: #selector(didClickAddBtn), for: .touchUpInside)
return btn
}()
lazy var dotLineLayer:CAShapeLayer = {
let borderLayer = CAShapeLayer()
borderLayer.position = CGPoint(x: addBtn.bounds.midX, y: addBtn.bounds.midY);
borderLayer.path = UIBezierPath(roundedRect: borderLayer.bounds, cornerRadius: addBtn.layer.cornerRadius).cgPath
borderLayer.lineWidth = 1
//[数组第一个数字表示单个虚线长度,第二个数字表示间隔]
borderLayer.lineDashPattern = [3,1] as [NSNumber]?
//前边是虚线的长度,后边是虚线之间空隙的长度
borderLayer.lineDashPhase = 0.1
//实线边框
borderLayer.fillColor = UIColor.clear.cgColor
borderLayer.strokeColor = UIColor.brandMainColor.cgColor
return borderLayer
}()
}
extension YHOtherInfoFillCell {
@objc func didClickAddBtn() {
printLog("点击了 添加按钮")
let model = Residence()
dataModel?.residences.append(model)
self.block?()
}
func updateUI() {
guard let dataModel = dataModel else { return}
contentView.removeSubviews()
contentView.backgroundColor = .clear
backgroundColor = .clear
//1.居住信息
let holdView1 = createHoldView()
contentView.addSubview(holdView1)
holdView1.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
}
do {
var lastTargetView : UIView!
if dataModel.residences.count > 1 {
for (index,item) in dataModel.residences.enumerated() {
if index == 0 {
let sessionView = YHOtherInfoSessionView(frame: .zero)
sessionView.type = 3
sessionView.updateTitle(title: "居住信息")
holdView1.addSubview(sessionView)
sessionView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherInfoSessionView.viewH)
}
let residenceView = YHOtherResidenceFillView(frame: .zero)
residenceView.dataModel = item
holdView1.addSubview(residenceView)
residenceView.snp.makeConstraints { make in
make.top.equalTo(sessionView.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
}
lastTargetView = residenceView
} else {
let sessionView = YHOtherInfoSessionView(frame: .zero)
let title = "居住信息" + String(index + 1)
sessionView.updateTitle(title: title)
sessionView.type = 1
sessionView.tag = index
sessionView.block = { tag in
if tag < dataModel.residences.count {
dataModel.residences.remove(at: tag)
self.block?()
}
}
holdView1.addSubview(sessionView)
sessionView.snp.makeConstraints { make in
make.top.equalTo(lastTargetView.snp.bottom).offset(kMargin)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherInfoSessionView.viewH)
}
let residenceView = YHOtherResidenceFillView(frame: .zero)
residenceView.dataModel = item
holdView1.addSubview(residenceView)
residenceView.snp.makeConstraints { make in
make.top.equalTo(sessionView.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
}
lastTargetView = residenceView
}
}
} else {
let sessionView = YHOtherInfoSessionView(frame: .zero)
sessionView.type = 3
sessionView.updateTitle(title: "居住信息")
holdView1.addSubview(sessionView)
sessionView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherInfoSessionView.viewH)
}
let residenceView = YHOtherResidenceFillView(frame: .zero)
residenceView.dataModel = dataModel.residences[0] //for test hjl
holdView1.addSubview(residenceView)
residenceView.snp.makeConstraints { make in
make.top.equalTo(sessionView.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
}
lastTargetView = residenceView
}
//添加按钮
holdView1.addSubview(addBtn)
addBtn.layer.addSublayer(dotLineLayer)
addBtn.snp.makeConstraints { make in
make.top.equalTo(lastTargetView.snp.bottom).offset(kMargin)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(44)
make.bottom.equalToSuperview().offset(-18).priority(.high)
}
addBtn.layoutIfNeeded()
dotLineLayer.path = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: KScreenWidth - 18 * 2 - 16 * 2, height: 44), cornerRadius: kCornerRadius6).cgPath
}
holdView1.layoutIfNeeded()
//2.语言水平
let holdView2 = createHoldView()
contentView.addSubview(holdView2)
holdView2.snp.makeConstraints { make in
make.top.equalTo(holdView1.snp.bottom).offset(18).priority(.low)
make.left.right.equalToSuperview()
}
do {
let sessionView = YHOtherInfoSessionView(frame: .zero)
sessionView.updateTitle(title: "语言水平")
holdView2.addSubview(sessionView)
sessionView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherInfoSessionView.viewH)
}
let view = YHOtherSelecteItemView()
view.updateKeyName(name: "您的语言水平与下列哪一项符合", keyValue:dataModel.language_detail?.levelDes ?? "")
view.type = 2
holdView2.addSubview(view)
view.snp.makeConstraints { make in
make.top.equalTo(sessionView.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 2))
make.bottom.equalToSuperview()
}
}
//3.专业技能行业
let holdView3 = createHoldView()
contentView.addSubview(holdView3)
holdView3.snp.makeConstraints { make in
make.top.equalTo(holdView2.snp.bottom).offset(18)
make.left.right.equalToSuperview()
}
do {
let sessionView = YHOtherInfoSessionView(frame: .zero)
sessionView.updateTitle(title: "专业技能行业")
holdView3.addSubview(sessionView)
sessionView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherInfoSessionView.viewH)
}
let view = YHOtherSelecteItemView()
view.updateKeyName(name: "最能代表你的专业技能的行业", keyValue: dataModel.profession?.optionDes ?? "")
view.type = 2
holdView3.addSubview(view)
view.snp.makeConstraints { make in
make.top.equalTo(sessionView.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 2))
make.bottom.equalToSuperview()
}
}
//4.辅助资料
let holdView4 = createHoldView()
contentView.addSubview(holdView4)
holdView4.snp.makeConstraints { make in
make.top.equalTo(holdView3.snp.bottom).offset(18)
make.left.right.equalToSuperview()
make.bottom.equalToSuperview().offset(-18)
}
do {
let sessionView = YHOtherInfoSessionView(frame: .zero)
sessionView.type = 2
sessionView.updateTitle(title: "辅助资料")
holdView4.addSubview(sessionView)
sessionView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherInfoSessionView.viewH)
}
//1、您是否有行业内的专业资格证书?
let fzView1 = YHOtherYesOrNoItemView(frame: .zero)
fzView1.updateUI(title: "1、您是否有行业内的专业资格证书?", answer: dataModel.question?.professional_qualification ?? -1)
fzView1.block = { answer in
dataModel.question?.professional_qualification = answer
}
holdView4.addSubview(fzView1)
fzView1.snp.makeConstraints { make in
make.top.equalTo(sessionView.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
}
// 2、您是否在期刊或杂志上发表过论文、文章、书籍等(与工作、资质有关的)?
let fzView2 = YHOtherYesOrNoItemView(frame: .zero)
fzView2.updateUI(title: "2、您是否在期刊或杂志上发表过论文、文章、书籍等(与工作、资质有关的)?", answer: dataModel.question?.paper ?? -1)
fzView2.block = { answer in
dataModel.question?.paper = answer
}
holdView4.addSubview(fzView2)
fzView2.snp.makeConstraints { make in
make.top.equalTo(fzView1.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
}
// 3、您是否有大学奖学金证明、专利证书、获奖证书(工作单位颁发的可以)?
let fzView3 = YHOtherYesOrNoItemView(frame: .zero)
fzView3.updateUI(title: "3、您是否有大学奖学金证明、专利证书、获奖证书(工作单位颁发的可以)?", answer: dataModel.question?.scholarship ?? -1)
fzView3.block = { answer in
dataModel.question?.scholarship = answer
}
holdView4.addSubview(fzView3)
fzView3.snp.makeConstraints { make in
make.top.equalTo(fzView2.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
}
// 4、您是否被媒体采访过,专访您的文章被发表在杂志上或网络上?
let fzView4 = YHOtherYesOrNoItemView(frame: .zero)
fzView4.updateUI(title: "4、您是否被媒体采访过,专访您的文章被发表在杂志上或网络上?", answer: dataModel.question?.media_interview ?? -1)
fzView4.block = { answer in
dataModel.question?.media_interview = answer
}
holdView4.addSubview(fzView4)
fzView4.snp.makeConstraints { make in
make.top.equalTo(fzView3.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
}
//5、专业奖项
let fzView5 = YHOtherTextViewItemView(frame: .zero)
fzView5.updateUI(title: "5、专业奖项", value: dataModel.question?.professional_awards ?? "",type: .professionAwards)
fzView5.block = { txt in
dataModel.question?.professional_awards = txt
}
holdView4.addSubview(fzView5)
fzView5.snp.makeConstraints { make in
make.top.equalTo(fzView4.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherTextViewItemView.viewH)
}
//6、学业奖项
let fzView6 = YHOtherTextViewItemView(frame: .zero)
fzView6.updateUI(title: "6、学业奖项", value: dataModel.question?.academic_awards ?? "",type: .academicAwards)
fzView6.block = { txt in
dataModel.question?.academic_awards = txt
}
holdView4.addSubview(fzView6)
fzView6.snp.makeConstraints { make in
make.top.equalTo(fzView5.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherTextViewItemView.viewH)
}
//7、其他奖励
let fzView7 = YHOtherTextViewItemView(frame: .zero)
fzView7.updateUI(title: "7、其他奖励", value: dataModel.question?.other_information ?? "",type: .otherAwards)
fzView7.block = { txt in
dataModel.question?.other_information = txt
}
holdView4.addSubview(fzView7)
fzView7.snp.makeConstraints { make in
make.top.equalTo(fzView6.snp.bottom)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherTextViewItemView.viewH)
make.bottom.equalToSuperview()
}
}
}
func createHoldView() -> UIView {
let holdView1 = UIView()
holdView1.backgroundColor = .white
holdView1.layer.cornerRadius = kCornerRadius6
holdView1.clipsToBounds = true
return holdView1
}
}
//
// YHOtherInfoSessionView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHOtherInfoSessionView: UIView {
static let viewH : CGFloat = 52
typealias Block = (Int) -> ()
var block: Block?
//0-默认只有title 1-带删除按钮 2-有subNameLabel 3-带默认图标
var type : Int = 0 {
didSet {
if type == 1 {
delButton.isHidden = false
} else if type == 2 {
subNameLable.isHidden = false
} else if type == 3 {
iconImageV.isHidden = false
}
}
}
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
//title
private lazy var nameLable : UILabel = {
let lable0 = UILabel(text: "居住信息")
lable0.textColor = UIColor.mainTextColor
lable0.font = UIFont.PFSC_M(ofSize: 17)
return lable0
}()
private lazy var subNameLable : UILabel = {
let lable0 = UILabel(text: "(是否有以下【辅助性】资料)")
lable0.textColor = UIColor.labelTextColor2
lable0.font = UIFont.PFSC_R(ofSize: 12)
lable0.isHidden = true
return lable0
}()
private lazy var bottomLine : UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xF0F0F0)
return view
}()
private lazy var iconImageV : UIImageView = {
let view = UIImageView()
view.image = UIImage(named: "other_info_warning")
view.contentMode = .scaleAspectFill
view.isHidden = true
return view
}()
private lazy var delButton : UIButton = {
let btn = UIButton(type: .custom)
btn.setTitle("删除", for: .normal)
btn.setTitleColor(UIColor.failColor, for: .normal)
btn.titleLabel?.textAlignment = .right
btn.titleLabel?.font = UIFont.PFSC_R(ofSize: 14)
btn.isHidden = true
return btn
}()
private func setupUI() {
addSubview(bottomLine)
bottomLine.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(0.5)
}
addSubview(nameLable)
nameLable.snp.makeConstraints { make in
make.left.equalToSuperview()
make.top.equalToSuperview()
make.bottom.equalTo(bottomLine.snp.top)
}
//subName
addSubview(subNameLable)
subNameLable.snp.makeConstraints { make in
make.left.equalTo(nameLable.snp.right)
make.centerY.equalTo(nameLable)
make.height.equalTo(20)
}
//iconImageV
addSubview(iconImageV)
iconImageV.snp.makeConstraints { make in
make.left.equalTo(nameLable.snp.right).offset(4)
make.centerY.equalTo(nameLable)
make.height.width.equalTo(16)
}
//delButton
addSubview(delButton)
delButton.snp.makeConstraints { make in
make.right.equalToSuperview()
make.centerY.equalTo(nameLable)
make.height.equalTo(44)
make.width.equalTo(44)
}
delButton.addTarget(self, action: #selector(clickDeleteBtn), for: .touchUpInside)
}
}
extension YHOtherInfoSessionView {
func updateTitle(title : String) {
nameLable.text = title
}
@objc func clickDeleteBtn() {
printLog("点击了 删除 按钮")
block?(self.tag)
}
}
//
// YHOtherResidenceFillView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHOtherResidenceFillView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
var dataModel : Residence? {
didSet {
updateUI()
}
}
let nationView : YHOtherSelecteItemView = YHOtherSelecteItemView()
let startView : YHOtherSelecteItemView = YHOtherSelecteItemView()
let endView : YHOtherSelecteItemView = YHOtherSelecteItemView()
}
extension YHOtherResidenceFillView {
func setupUI() {
//1.国家
let view = nationView
view.updateKeyName(name: "国家", keyValue: "")
addSubview(view)
view.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 1))
}
let tap1 = UITapGestureRecognizer(target: self, action: #selector(tapCountry))
view.addGestureRecognizer(tap1)
//2.开始时间
let view2 = startView
view2.updateKeyName(name: "开始时间", keyValue: "")
addSubview(view2)
view2.snp.makeConstraints { make in
make.top.equalTo(view.snp.bottom)
make.left.right.equalToSuperview()
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 1))
}
let tap2 = UITapGestureRecognizer(target: self, action: #selector(tapStartDate))
view2.addGestureRecognizer(tap2)
//3.结束时间
let view3 = endView
view3.updateKeyName(name: "结束时间", keyValue: "")
addSubview(view3)
view3.snp.makeConstraints { make in
make.top.equalTo(view2.snp.bottom)
make.left.right.equalToSuperview()
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 1))
make.bottom.equalToSuperview()
}
let tap3 = UITapGestureRecognizer(target: self, action: #selector(tapEndDate))
view3.addGestureRecognizer(tap3)
}
func updateUI() {
guard let dataModel = dataModel else { return }
nationView.updateKeyName(name: "国家", keyValue: dataModel.country)
startView.updateKeyName(name: "开始时间", keyValue: dataModel.start_time)
endView.updateKeyName(name: "结束时间", keyValue: dataModel.end_time)
}
}
extension YHOtherResidenceFillView {
@objc func tapCountry(_ gestureRecognizer: UIPanGestureRecognizer) {
let vc = YHSelectCountryViewController()
vc.backLocationStringController = { country in
printLog(country)
self.nationView.updateKeyName(name: "国家", keyValue: country)
self.dataModel?.country = country
}
self.parentViewController?.navigationController?.pushViewController(vc)
}
@objc func tapStartDate(_ gestureRecognizer: UIPanGestureRecognizer) {
YHDatePickView.show(type: .yyyymmdd) { date in
printLog(date)
self.startView.updateKeyName(name: "开始时间", keyValue: date)
self.dataModel?.start_time = date
}
}
@objc func tapEndDate(_ gestureRecognizer: UIPanGestureRecognizer) {
YHDatePickView.show(type: .yyyymmdd) { date in
printLog(date)
self.endView.updateKeyName(name: "结束时间", keyValue: date)
self.dataModel?.end_time = date
}
}
}
//
// YHOtherSelecteItemView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
enum YHOtherSelecteItemType: Int {
case unknow = 0
case language = 1 //语言能力
case skill = 2 //专业技能
}
class YHOtherSelecteItemView: UIView {
static let viewH : CGFloat = 52 // type == 1时的高度
static let viewH2 : CGFloat = 88 //type == 2时的高度
//1- 一行布局 2-2行布局
var type : Int = 1 {
didSet {
layoutIfNeeded()
}
}
//获取高度
static func getViewHBy(type : Int)->CGFloat {
return type == 1 ? viewH : viewH2
}
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 14)
label.lineBreakMode = .byCharWrapping
return label
}()
private lazy var textField: UITextField = {
let label = UITextField()
label.placeholder = "请选择"
label.isEnabled = false
label.font = UIFont.PFSC_R(ofSize: 14)
return label
}()
private lazy var bottomLine : UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xF0F0F0)
return view
}()
var title:String? {
didSet {
if let question = title {
let str = "* "+question
let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.PFSC_R(ofSize: 14),
.foregroundColor: UIColor.mainTextColor
]
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
titleLabel.attributedText = questionAttrStr
}
}
}
var subHoldView : UIView = {
let view = UIView()
return view
}()
override func layoutSubviews() {
super.layoutSubviews()
if type == 1 {
bottomLine.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.height.equalTo(0.5)
}
titleLabel.snp.makeConstraints { make in
make.top.left.bottom.equalToSuperview()
make.width.equalTo(80)
}
subHoldView.snp.makeConstraints { make in
make.top.right.bottom.equalToSuperview()
make.left.equalTo(titleLabel.snp.right).offset(40)
}
} else if type == 2 {
bottomLine.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.height.equalTo(0.5)
}
subHoldView.snp.makeConstraints { make in
make.bottom.equalTo(bottomLine.snp.top)
make.right.left.equalToSuperview()
make.height.equalTo(52)
}
titleLabel.snp.makeConstraints { make in
make.bottom.equalTo(subHoldView.snp.top)
make.left.right.equalToSuperview()
make.height.equalTo(20)
}
} else {
}
}
}
extension YHOtherSelecteItemView {
func setupUI() {
addSubview(bottomLine)
addSubview(titleLabel)
addSubview(subHoldView)
title = "开始时间"
let rightIcon = UIImageView()
rightIcon.image = UIImage(named: "form_right_arrow")
rightIcon.contentMode = .scaleAspectFill
subHoldView.addSubview(rightIcon)
rightIcon.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.right.equalToSuperview()
make.width.height.equalTo(20)
}
subHoldView.addSubview(textField)
textField.snp.makeConstraints { make in
make.right.equalTo(rightIcon.snp.left).offset(-4)
make.bottom.top.left.equalToSuperview()
}
}
}
extension YHOtherSelecteItemView {
func updateKeyName(name : String, keyValue : String) {
title = name
textField.text = keyValue
}
}
//
// YHOtherTextViewItemView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
enum YHOtherTextViewItemType: Int {
case unknowAwards = 0
case professionAwards = 5 //专业奖项
case academicAwards = 6 //学业奖项
case otherAwards = 7 //其他
}
class YHOtherTextViewItemView: UIView, UITextViewDelegate {
static let viewH : CGFloat = 172.0
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
typealias Block = (String) -> ()
var block: Block?
var itemType : YHOtherTextViewItemType = .unknowAwards {
didSet {
switch itemType {
case .unknowAwards:
kTipsString = "请输入"
break
case .professionAwards:
kTipsString = "请填写您在所属的专业界别内曾获取由国家或国际认可/著名的团体颁授的专业资格、曾取得的奖项等"
break
case .academicAwards:
kTipsString = "请填写您的学业成绩、曾取得的奖项等"
break
case .otherAwards:
kTipsString = "请填写其他能对申请带来帮助的重要资料(如:拥有有利于申请的社会任职、相关国际人脉/业务或随行人员所具备的优势点等)"
break
}
tipsLabel.text = kTipsString
}
}
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 14)
label.lineBreakMode = .byCharWrapping
label.text = "5、专业奖项"
return label
}()
private lazy var tipsLabel: UILabel = {
let label = UILabel()
label.textColor = .placeHolderColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 14)
label.lineBreakMode = .byCharWrapping
label.text = "5、专业奖项"
return label
}()
private lazy var bottomLine : UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xF0F0F0)
return view
}()
private lazy var additionHoldView : UIView = {
let view = UIView()
view.backgroundColor = UIColor.contentBkgColor
view.layer.cornerRadius = kCornerRadius6
view.clipsToBounds = true
return view
}()
private var myTextView : UITextView!
private var kTipsString : String = "如选择“是”,请详细说明"
}
private extension YHOtherTextViewItemView {
func setupUI() {
backgroundColor = .clear
// title = "1、是否曾在香港或其他地方因任何罪行或违法行为被定罪?"
addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.top.equalTo(kMargin)
make.left.right.equalToSuperview()
make.height.equalTo(20)
}
addSubview(additionHoldView)
additionHoldView.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
make.height.equalTo(104)
}
let textView : UITextView = UITextView()
textView.backgroundColor = .clear
textView.font = UIFont.PFSC_R(ofSize: 14)
additionHoldView.addSubview(textView)
textView.snp.makeConstraints { make in
make.edges.equalTo(0)
}
myTextView = textView
myTextView.delegate = self
myTextView.contentInset = UIEdgeInsets(top: 12, left: 12, bottom: 12, right: 12)
additionHoldView.addSubview(tipsLabel)
tipsLabel.snp.makeConstraints { make in
make.top.equalTo(20)
make.left.equalTo(16)
make.right.equalTo(-12)
}
// tipsLabel.text = kTipsString
addSubview(bottomLine)
bottomLine.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.height.equalTo(0.5)
make.bottom.equalToSuperview()
}
}
}
extension YHOtherTextViewItemView : UITextFieldDelegate {
internal func textViewDidChange(_ textView: UITextView) {
if textView.text == "" {
tipsLabel.isHidden = false
} else {
tipsLabel.isHidden = true
}
self.block?(textView.text)
}
}
extension YHOtherTextViewItemView {
func updateUI(title : String,value : String, type : YHOtherTextViewItemType = .unknowAwards) {
titleLabel.text = title
myTextView.text = value
itemType = type
if value.count > 0 {
tipsLabel.isHidden = true
} else {
tipsLabel.isHidden = false
}
}
}
//
// YHOtherYesOrNoItemView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHOtherYesOrNoItemView: UIView, UITextViewDelegate {
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
typealias Block = (Int) -> ()
var block: Block?
private let btnWidth = 70.0
private let btnHeight = 32.0
private let btnTitleSelectColor = UIColor.brandMainColor
private let btnTitleDefaultColor = UIColor.mainTextColor
private let btnBgDefaultColor = UIColor.contentBkgColor
private let btnBgSelectColor = UIColor.brandMainColor.withAlphaComponent(0.08)
private let answerBaseTag = 9527
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 14)
label.lineBreakMode = .byCharWrapping
return label
}()
private lazy var answer1Btn: UIButton = {
let btn = UIButton()
btn.setTitle("否", for: .normal)
btn.titleLabel?.font = UIFont.PFSC_R(ofSize: 14)
btn.setTitleColor(btnTitleDefaultColor, for: .normal)
btn.backgroundColor = btnBgDefaultColor
btn.layer.cornerRadius = btnHeight/2.0
btn.layer.masksToBounds = true
btn.layer.borderWidth = 1
btn.layer.borderColor = UIColor.clear.cgColor
btn.tag = answerBaseTag
btn.addTarget(self, action: #selector(didClickResponseBtn(btn:)), for: .touchUpInside)
return btn
}()
private lazy var answer2Btn: UIButton = {
let btn = UIButton()
btn.setTitle("是", for: .normal)
btn.titleLabel?.font = UIFont.PFSC_R(ofSize: 14)
btn.setTitleColor(btnTitleDefaultColor, for: .normal)
btn.backgroundColor = btnBgDefaultColor
btn.layer.cornerRadius = btnHeight/2.0
btn.layer.masksToBounds = true
btn.layer.borderWidth = 1
btn.layer.borderColor = UIColor.clear.cgColor
btn.tag = answerBaseTag+1
btn.addTarget(self, action: #selector(didClickResponseBtn(btn:)), for: .touchUpInside)
return btn
}()
private lazy var bottomLine : UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xF0F0F0)
return view
}()
var title:String? {
didSet {
if let question = title {
let str = "* "+question
let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.PFSC_R(ofSize: 14),
.foregroundColor: UIColor.mainTextColor
]
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
titleLabel.attributedText = questionAttrStr
}
}
}
private var lastSelectedBtn : UIButton?
}
private extension YHOtherYesOrNoItemView {
func setupUI() {
backgroundColor = .clear
title = "1、您是否有行业内的专业资格证书?"
addSubview(titleLabel)
addSubview(answer2Btn)
addSubview(answer1Btn)
titleLabel.snp.makeConstraints { make in
make.top.equalTo(kMargin)
make.left.right.equalToSuperview()
}
answer1Btn.snp.makeConstraints { make in
make.size.equalTo(CGSize(width: btnWidth, height: btnHeight))
make.left.equalTo(titleLabel.snp.left)
make.top.equalTo(titleLabel.snp.bottom).offset(12)
}
answer2Btn.snp.makeConstraints { make in
make.size.equalTo(CGSize(width: btnWidth, height: btnHeight))
make.left.equalTo(answer1Btn.snp.right).offset(12)
make.top.equalTo(answer1Btn.snp.top)
}
addSubview(bottomLine)
bottomLine.snp.makeConstraints { make in
make.top.equalTo(answer1Btn.snp.bottom).offset(12)
make.left.right.equalToSuperview()
make.height.equalTo(0.5)
make.bottom.equalToSuperview()
}
}
@objc func didClickResponseBtn(btn: UIButton) {
printLog("点击了按钮哈 \(btn.tag)")
if lastSelectedBtn == btn {
printLog("连续点击了同一个按钮......")
return
}
lastSelectedBtn = btn
btn.isSelected = true
updateAnswerButton(btn, true)
if btn == answer1Btn {
answer2Btn.isSelected = false
updateAnswerButton(answer2Btn, false)
} else {
answer1Btn.isSelected = false
updateAnswerButton(answer1Btn, false)
}
self.block?(answer2Btn.isSelected == true ? 2 : 1)
}
// 更新答案按钮选中状态
private func updateAnswerButton(_ btn:UIButton, _ isSelect:Bool) {
btn.layer.borderColor = (isSelect ? btnTitleSelectColor : .clear).cgColor
btn.setTitleColor((isSelect ? btnTitleSelectColor : btnTitleDefaultColor), for: .normal)
btn.backgroundColor = (isSelect ? btnBgSelectColor : btnBgDefaultColor)
}
}
extension YHOtherYesOrNoItemView {
func updateUI(title : String , answer : Int) {
self.title = title
if answer == 2 {
didClickResponseBtn(btn: answer2Btn)
} else if answer == 1 {
didClickResponseBtn(btn: answer1Btn)
}
}
}
......@@ -10,14 +10,136 @@ import UIKit
class YHOtherInfoFillViewModel: YHBaseViewModel {
var otherInfoFillData : YHOtherInfoFillModel?
var arrLanguage : [[String : String]] = [
["id":"1",
"title": "中文及英文",
"dec": "国外大学(英语国家)毕业,英文授课,获得学位证。(如为中外联合办学,在中国上课的,不算)",
],
[
"id": "2",
"title": "中文及英文",
"dec": " 有近两年的雅思或托福成绩单(雅思考试G类或A类总分达6分;托福笔试达550分,计算机达213分,网考达80分)",
],
[
"id": "4",
"title": "中文及另一种外语",
"dec": "非英文的外语,如:法文、日文等(需提供相关证书)",
],
[
"id": "5",
"title": "仅中文",
"dec": "",
],
[
"id": "6",
"title": "仅英文",
"dec": "",
],
]
var arrSkill : [[String : String]] = [
[
"title": "学术研究及教育",
"dec": "幼儿教育、高等教育、学术研究",
"val": "",
"value": "1",
],
[
"title": "建筑、测量、工程及建造",
"dec": "园景设计、建筑、测量、土木/电机/机器/机构/环境工程",
"val": "",
"value": "2",
],
[
"title": "艺术及文化",
"dec": "表演艺术、美术、博物馆、图书馆、摄影",
"val": "",
"value": "3",
],
[
"title": "广播及娱乐",
"dec": "广播及节目制作、电影、录像及电视制作、唱片及音乐出版",
"val": "",
"value": "4",
],
[
"title": "业务支援及人力资源",
"dec": "业务咨询顾问、公司秘书、行政支援、人事管理、招聘服务、公关关系服务、广告、信息服务",
"val": "",
"value": "5",
],
[
"title": "餐饮服务及旅游",
"dec": "酒吧、餐厅、酒店、旅行代理",
"val": "",
"value": "6",
],
[
"title": "商业及贸易",
"dec": "进出口、零售、批发",
"val": "",
"value": "7",
],
[
"title": "金融及会计服务",
"dec": "会计、银行、保险、证券、投资银行",
"val": "",
"value": "8",
],
[
"title": "医疗保健及兽医服务",
"dec": "西医药、中医药、牙科服务、医学科技、职业治疗、护理、兽医服务",
"val": "",
"value": "9",
],
[
"title": "资讯科技及电讯",
"dec": "资讯科技顾问、固网及无线通信",
"val": "",
"value": "10",
],
[
"title": "法律服务",
"dec": "法律事务",
"val": "",
"value": "11",
],
[
"title": "物流运输",
"dec": "物流、空运、海运、陆运",
"val": "",
"value": "12",
],
[
"title": "工业制造",
"dec": "电机、电子、食物及饮料、化工、金属、玩具、纺织、钟表、珠宝、印刷及出版",
"val": "",
"value": "13",
],
[
"title": "体育运动",
"dec": "体育运动",
"val": "",
"value": "14",
],
[
"title": "其他",
"example": "",
"val": "",
"value": "15",
"dec": ""
],
]
}
extension YHOtherInfoFillViewModel {
//获取其他资料信息
func getOtherInfo( params:[String : Any],callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
// createOrgBasiceInfoData()
// callBackBlock(true,nil)//先返回数据 让界面展示相关的UI
// createOrgBasiceInfoData()
// callBackBlock(true,nil)//先返回数据 让界面展示相关的UI
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.otherInfoFillApi
......@@ -37,6 +159,9 @@ extension YHOtherInfoFillViewModel {
}
self.otherInfoFillData = resultModel
handleData()
//根据返回值 组装 真实的数据
callBackBlock(true,nil)
} failBlock: { err in
......@@ -57,13 +182,13 @@ extension YHOtherInfoFillViewModel {
return
}
printLog("model 是 ==> \(model)")
// let dic = model.data?.peel
// guard let resultModel = YHBasicInfoFillModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
// callBackBlock(false,nil)
// return
// }
//
// self.dataModelForBasicInfo = resultModel
// let dic = model.data?.peel
// guard let resultModel = YHBasicInfoFillModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
// callBackBlock(false,nil)
// return
// }
//
// self.dataModelForBasicInfo = resultModel
//根据返回值 组装 真实的数据
callBackBlock(true,nil)
} failBlock: { err in
......@@ -72,3 +197,36 @@ extension YHOtherInfoFillViewModel {
}
}
extension YHOtherInfoFillViewModel {
func handleData() {
if let language = self.otherInfoFillData?.language_detail {
if language.level > 0 {
let target = String(language.level)
for(_,item) in arrLanguage.enumerated() {
if target == item["id"] {
language.levelDes = item["title"] ?? ""
break
}
}
}
}
if let profession = self.otherInfoFillData?.profession {
if profession.option > 0 {
let target = String(profession.option)
for(_,item) in arrSkill.enumerated() {
if target == item["value"] {
profession.optionDes = item["title"] ?? ""
break
}
}
}
}
}
}
......@@ -24,8 +24,6 @@ class YHPersonInfoSessionView: UIView {
let lable0 = UILabel(text: "--")
lable0.textColor = UIColor.mainTextColor
lable0.font = UIFont.PFSC_M(ofSize: 17)
// lable0.numberOfLines = 0
// lable0.lineBreakMode = .byWordWrapping
return lable0
}()
......@@ -48,7 +46,6 @@ class YHPersonInfoSessionView: UIView {
make.top.equalToSuperview()
make.bottom.equalTo(bottomLine.snp.top)
}
// nameLable.backgroundColor = .yellow//for test hjl
}
}
......
......@@ -7,11 +7,15 @@
//
import UIKit
import SwifterSwift
class YHEducationDetailVC: YHBaseViewController {
let familyRequest:YHFamilyRequestViewModel = YHFamilyRequestViewModel()
var familyMemberInfo: YHFamilyMemberGroupInfo?
// 订单ID
var orderId: Int = 0
// 学历ID
var detailId: Int = 0
let educationRequest:YHEducationRequestViewModel = YHEducationRequestViewModel()
var detailInfo: YHEducationDetailInfo = YHEducationDetailInfo()
var isChildsEditMode: YHFormTitleItemEditType = .none
var isBrothersEditMode: YHFormTitleItemEditType = .none
......@@ -44,7 +48,7 @@ class YHEducationDetailVC: YHBaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.gk_navTitle = "学历X".local
self.gk_navTitle = "学历".local
view.backgroundColor = UIColor(hexString:"#F8F8F8")
createUI()
}
......@@ -58,6 +62,12 @@ class YHEducationDetailVC: YHBaseViewController {
view.addSubview(tableView);
view.addSubview(bottomView)
bottomView.saveBlock = {
[weak self] in
guard let self = self else { return }
saveDetailInfo()
}
bottomView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.bottom.equalToSuperview().offset(-k_Height_safeAreaInsetsBottom())
......@@ -72,32 +82,65 @@ class YHEducationDetailVC: YHBaseViewController {
}
loadInfo()
if self.detailId != 0 { // 有学历ID则有历史学历
getDetailInfo()
} else {
detailInfo.orderId = orderId
}
}
func loadInfo() {
items.removeAll()
let title0 = YHFormTitleItem(type: .mainApplicantEducation)
let item00 = YHFormDetailItem(type: .universityFullName)
item00.placeHolder = "请输入学校全称,例:清华,需填全称“清华大学".local
item00.value = detailInfo.college
let item01 = YHFormDetailItem(type: .educationStyle)
item01.placeHolder = "请选择授课形式".local
item01.value = detailInfo.type
let item02 = YHFormDetailItem(type: .educationTime)
item02.placeHolder = "请选择年月".local
item02.value = detailInfo.admissionTime
let item03 = YHFormDetailItem(type: .graduateTime)
item03.placeHolder = "请选择年月".local
item03.value = detailInfo.graduateTime
let item04 = YHFormDetailItem(type: .educationMajor)
item04.placeHolder = "请输入专业".local
item04.value = detailInfo.professional
let item05 = YHFormDetailItem(type: .educationDegree)
item05.placeHolder = "请选择学位".local
item05.value = detailInfo.background
let item06 = YHFormDetailItem(type: .degreeType)
item06.placeHolder = "请输入学位类型,如管理学".local
item06.value = detailInfo.degreeType
let item07 = YHFormDetailItem(type: .educationCountry)
item07.placeHolder = "请输入国家及地区".local
item07.value = detailInfo.schoolAddress?.country
let item08 = YHFormDetailItem(type: .educationCity)
item08.placeHolder = "请选择城市".local
if detailInfo.isSchoolInAboard() {
item08.value = detailInfo.schoolAddress?.foreign
item08.placeHolder = "请输入城市".local
item08.tips = "请输入城市".local
} else {
item08.value = detailInfo.schoolAddress?.area?.joined(separator: ",")
item08.placeHolder = "请选择出生城市".local
item08.tips = "请选择出生城市".local
}
let arr0:[YHFormItemProtocol] = [title0, item00, item01, item02, item03, item04, item05, item06, item07, item08]
items.append(arr0)
self.tableView.reloadData()
......@@ -126,8 +169,6 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
if item is YHFormTitleItem { // 是标题
let formItem = item as! YHFormTitleItem
// 配偶父母子女兄妹title
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemTitleCell.cellReuseIdentifier, for: indexPath) as! YHFormItemTitleCell
cell.titleLabel.text = formItem.getTitle()
cell.subTitleLabel.text = formItem.getSubTitle()
......@@ -143,6 +184,22 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
cell.placeHolder = detailItem.placeHolder
cell.isMust = detailItem.isNeed
cell.title = detailItem.getTitle()
cell.text = detailItem.value
cell.textChange = {
[weak self] (text, isEditEnd) in
guard let self = self else { return }
// 只有国外城市才需输入,国内城市使用的是选择器
if detailItem.type == .educationCity {
detailInfo.schoolAddress?.foreign = text
} else if detailItem.type == .educationMajor {
detailInfo.professional = text
}
if isEditEnd {
loadInfo()
saveDetailInfo()
}
}
return cell
} else if cellType == .selectSheet {
......@@ -150,7 +207,7 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
cell.placeHolder = detailItem.placeHolder
cell.isMust = detailItem.isNeed
cell.title = detailItem.getTitle()
cell.detail = ""
cell.detail = detailItem.value
return cell
}
}
......@@ -190,11 +247,6 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let vc = YHProfessionalQualificationVC()
self.navigationController?.pushViewController(vc)
return
/*
let arr = items[indexPath.section]
let item:YHFormItemProtocol = arr[indexPath.row]
......@@ -204,11 +256,16 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
}
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .educationStyle { // 授课形式
if detailItem.type == .universityFullName { // 选择大学名称
} else if detailItem.type == .educationStyle { // 授课形式
YHFormPickerView.show(type: .edution, selectType: .education(.fullTime)) {
[weak self] selectType in
guard let self = self else { return }
detailInfo.type = selectType.title
loadInfo()
saveDetailInfo()
}
} else if detailItem.type == .educationTime || detailItem.type == .graduateTime { // 入学及毕业年月
......@@ -216,36 +273,56 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
YHDatePickView.show(type: .yyyymm) {
[weak self] date in
guard let self = self else { return }
if detailItem.type == .educationTime {
detailInfo.admissionTime = date
} else if detailItem.type == .graduateTime {
detailInfo.graduateTime = date
}
loadInfo()
saveDetailInfo()
}
} else if detailItem.type == .educationDegree { // 学位
YHFormPickerView.show(type: .degree, selectType: .degree(.bachelor)) {
[weak self] selectType in
[weak self] selectType in
guard let self = self else { return }
detailInfo.background = selectType.title
loadInfo()
saveDetailInfo()
}
} else if detailItem.type == .degreeType { // 学位类型
} else if detailItem.type == .educationCountry { // 上课国家/地区
let vc = YHSelectCountryViewController()
vc.backLocationStringController = {
[weak self] country in
guard let self = self else { return }
detailInfo.schoolAddress?.country = country
loadInfo()
saveDetailInfo()
}
self.navigationController?.pushViewController(vc)
} else if detailItem.type == .educationCity { // 上课城市
if detailInfo.isSchoolInAboard() { return }
let vc = YHAddressViewController()
vc.backLocationStringController = {
[weak self] (string1, string2, string3, string4) in
guard let self = self else { return }
detailInfo.schoolAddress?.area = [string1, string2, string3, string4]
loadInfo()
saveDetailInfo()
}
self.present(vc, animated: true)
}
}
*/
}
func createDefaultCell(_ indexPath: IndexPath) -> UITableViewCell {
......@@ -275,23 +352,73 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .universityFullName
|| detailItem.type == .degreeType
|| detailItem.type == .educationMajor {
if detailItem.type == .educationCity {
if detailInfo.isSchoolInAboard() {
return .inputText
}
return .selectSheet
}
if detailItem.type == .educationMajor
{
return .inputText
}
if detailItem.type == .educationStyle
if detailItem.type == .universityFullName
|| detailItem.type == .educationStyle
|| detailItem.type == .educationTime
|| detailItem.type == .graduateTime
|| detailItem.type == .educationDegree
|| detailItem.type == .degreeType
|| detailItem.type == .educationCountry
|| detailItem.type == .educationCity {
{
return .selectSheet
}
}
return .defaultType
}
}
extension YHEducationDetailVC {
func getDetailInfo() {
self.educationRequest.getEducationDetailInfo(params: ["id": self.detailId]) {
[weak self] success, error in
guard let self = self else { return }
if success {
detailInfo = self.educationRequest.educationDetailInfo!
loadInfo()
}
}
}
func saveDetailInfo() {
// detailInfo.toDictionary() 对于值为空的字段不会添加 而后台需要 所以如下处理
let dict:[String : Any] = ["verify": 0,
"id": detailInfo.id,
"order_id": detailInfo.orderId,
"admission_time": detailInfo.admissionTime ?? "",
"background": detailInfo.background ?? "",
"college": detailInfo.college ?? "",
"degree_type": detailInfo.degreeType ?? "",
"graduate_time": detailInfo.graduateTime ?? "",
"professional": detailInfo.professional ?? "",
"school_address_aboard": "",
"type": "",
"school_address": ["country": detailInfo.schoolAddress?.country ?? "",
"area": detailInfo.schoolAddress?.area ?? "",
"foreign": detailInfo.schoolAddress?.foreign ?? ""],
]
self.educationRequest.saveEducationInfo(params: dict) {
[weak self] success, error in
guard let self = self else { return }
if success {
// YHHUD.show(.success(message: "保存成功"))
} else {
// YHHUD.show(.error(message: "保存失败"))
}
}
}
}
......@@ -11,11 +11,12 @@ import UIKit
class YHEducationalQualificationVC: YHBaseViewController {
let familyRequest:YHFamilyRequestViewModel = YHFamilyRequestViewModel()
var orderId:Int = 0
let educationRequest:YHEducationRequestViewModel = YHEducationRequestViewModel()
var familyMemberInfo: YHFamilyMemberGroupInfo?
var isChildsEditMode: YHFormTitleItemEditType = .none
var isBrothersEditMode: YHFormTitleItemEditType = .none
var educationInfo: YHEducationListInfo?
var items:[[YHFormItemProtocol]] = []
lazy var tableView: UITableView = {
......@@ -34,6 +35,9 @@ class YHEducationalQualificationVC: YHBaseViewController {
tableView.register(YHEducationInfoCell.self, forCellReuseIdentifier: YHEducationInfoCell.cellReuseIdentifier)
tableView.register(YHFormItemTitleCell.self, forCellReuseIdentifier: YHFormItemTitleCell.cellReuseIdentifier)
tableView.register(YHFormItemAddCell.self, forCellReuseIdentifier: YHFormItemAddCell.cellReuseIdentifier)
tableView.register(YHFormItemEnterDetailCell.self, forCellReuseIdentifier: YHFormItemEnterDetailCell.cellReuseIdentifier)
tableView.register(YHFormItemAddCell.self, forCellReuseIdentifier: YHFormItemAddCell.cellReuseIdentifier)
tableView.register(YHFormItemQuestionsCell.self, forCellReuseIdentifier: YHFormItemQuestionsCell.cellReuseIdentifier)
return tableView
}()
......@@ -51,6 +55,7 @@ class YHEducationalQualificationVC: YHBaseViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
requestEducationInfo()
}
func createUI() {
......@@ -76,12 +81,51 @@ class YHEducationalQualificationVC: YHBaseViewController {
func loadInfo() {
guard let educationInfo = educationInfo else { return }
items.removeAll()
// 主申请人学历
let title0 = YHFormTitleItem(type: .mainApplicantEducation)
let item00 = YHFormDetailItem(type: .educationInfo)
let arr0:[YHFormItemProtocol] = [title0, item00]
var arr0:[YHFormItemProtocol] = [title0]
if let eduList = educationInfo.eduList {
for (index, eduInfo) in eduList.enumerated() {
let item = YHFormDetailItem(type: .educationInfo)
arr0.append(item)
}
}
// 新增学历信息
arr0.append(YHFormAddItem(type: .addEducation))
items.append(arr0)
// 主申请人专业资格及会员资格
let title1 = YHFormTitleItem(type: .mainApplicantProfessionalQualification)
var arr1:[YHFormItemProtocol] = [title1]
if let quaList = educationInfo.quaList {
for (index, quaInfo) in quaList.enumerated() {
let item = YHFormDetailItem(type: .certificateInfo)
arr1.append(item)
}
}
// 新增学历信息
arr1.append(YHFormAddItem(type: .addCertificateInfo))
items.append(arr1)
// 学历证书姓名及出生日期正确性
let title2 = YHFormTitleItem(type: .edutionalCertificateNameAndBirthday)
var arr2:[YHFormItemProtocol] = [title2]
// 问题集合
let questions = YHQuestionInfo.getEducationQuestion()
for questionInfo in questions {
if questionInfo.key == "qualification" {
questionInfo.answer = educationInfo.qualification
} else if questionInfo.key == "graduate" {
questionInfo.answer = educationInfo.graduate
}
arr2.append(questionInfo)
}
items.append(arr2)
self.tableView.reloadData()
}
}
......@@ -109,7 +153,6 @@ extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSou
let formItem = item as! YHFormTitleItem
// 配偶父母子女兄妹title
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemTitleCell.cellReuseIdentifier, for: indexPath) as! YHFormItemTitleCell
cell.titleLabel.text = formItem.getTitle()
cell.subTitleLabel.text = formItem.getSubTitle()
......@@ -131,11 +174,123 @@ extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSou
return cell
}
if item is YHFormAddItem {
let detailItem = item as! YHFormAddItem
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemAddCell.cellReuseIdentifier, for: indexPath) as! YHFormItemAddCell
if detailItem.type == .addEducation {
cell.title = "新增学历信息"
} else if detailItem.type == .addCertificateInfo {
cell.title = "新增证书信息"
} else {
cell.title = ""
}
cell.clickBlock = {
[weak self] in
guard let self = self else { return }
if detailItem.type == .addEducation { // 学历
let vc = YHEducationDetailVC()
vc.orderId = self.orderId
self.navigationController?.pushViewController(vc)
} else if detailItem.type == .addCertificateInfo { // 证书
let vc = YHProfessionalQualificationVC()
self.navigationController?.pushViewController(vc)
}
return
}
return cell
}
if item is YHQuestionInfo {
let detailItem = item as! YHQuestionInfo
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemQuestionsCell.cellReuseIdentifier, for: indexPath) as! YHFormItemQuestionsCell
cell.isMust = true
cell.title = String(format: "%d、\(detailItem.question)", indexPath.row)
var select0 = false
var select1 = false
if detailItem.answer == 1 {
select0 = true
} else if detailItem.answer == 2 {
select1 = true
}
let answers = [YHFormChoiceItem(title: "是".local, isSelect: select0),YHFormChoiceItem(title: "否".local, isSelect: select1)]
cell.answerArr = answers
cell.answerBlock = {
[weak self] (arr, selectIndex) in
guard let self = self else { return }
let selectItem:YHFormChoiceItem = arr[selectIndex]
let option = (selectItem.title == "是".local ? 1 : 2)
if detailItem.key == "qualification" {
self.educationInfo?.qualification = option
} else if detailItem.key == "graduate" {
self.educationInfo?.graduate = option
}
loadInfo()
}
return cell
}
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .educationInfo {
let cell = tableView.dequeueReusableCell(withIdentifier: YHEducationInfoCell.cellReuseIdentifier, for: indexPath) as! YHEducationInfoCell
return cell
if let eduList = educationInfo?.eduList {
// 第一行是标题
let eduInfo:YHEducationInfo = eduList[indexPath.row-1]
if eduInfo.vacantNum > 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemEnterDetailCell.cellReuseIdentifier, for: indexPath) as! YHFormItemEnterDetailCell
if let college = eduInfo.college, !college.isEmpty {
cell.title = eduInfo.college
} else {
cell.title = "学历标题".local
}
cell.detailLabel.text = String(format: "有%d项未填", eduInfo.vacantNum)
return cell
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: YHEducationInfoCell.cellReuseIdentifier, for: indexPath) as! YHEducationInfoCell
cell.titleLabel.text = eduInfo.college
cell.subTitleLabel.text = ""
if let professional = eduInfo.professional, let background = eduInfo.background {
cell.subTitleLabel.text = String("\(background)-\(professional)")
}
cell.timeLabel.text = ""
if let admissionTime = eduInfo.admissionTime, let graduateTime = eduInfo.graduateTime {
cell.timeLabel.text = String("\(admissionTime)-\(graduateTime)")
}
return cell
}
}
}
if detailItem.type == .certificateInfo {
if let quaList = educationInfo?.quaList {
// 第一行是标题
let quaInfo:YHQualificationInfo = quaList[indexPath.row-1]
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemEnterDetailCell.cellReuseIdentifier, for: indexPath) as! YHFormItemEnterDetailCell
cell.title = "证书标题"
if let qualification = quaInfo.qualification, !qualification.isEmpty {
cell.title = qualification
}
if quaInfo.vacantNum > 0 {
cell.detailLabel.text = String(format: "有%d项未填", quaInfo.vacantNum)
} else {
cell.detailLabel.text = "已填完".local
}
return cell
}
}
}
......@@ -184,8 +339,27 @@ extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSou
return
}
let vc = YHEducationDetailVC()
self.navigationController?.pushViewController(vc)
if item is YHFormAddItem {
return
}
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .educationInfo { // 学历
let vc = YHEducationDetailVC()
if let eduList = educationInfo?.eduList, indexPath.row-1 < eduList.count {
let eduInfo = eduList[indexPath.row-1]
vc.detailId = eduInfo.id
}
self.navigationController?.pushViewController(vc)
return
}
if detailItem.type == .certificateInfo { // 证书
let vc = YHProfessionalQualificationVC()
self.navigationController?.pushViewController(vc)
return
}
}
}
func createDefaultCell(_ indexPath: IndexPath) -> UITableViewCell {
......@@ -209,4 +383,20 @@ extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSou
}
}
extension YHEducationalQualificationVC {
// 请求家庭成员信息
func requestEducationInfo() {
self.educationRequest.requestEducationInfo(params: ["order_id": self.orderId]) {
[weak self] success, error in
guard let self = self else { return }
if success {
educationInfo = self.educationRequest.educationInfo
loadInfo()
}
}
}
}
......@@ -80,7 +80,7 @@ class YHProfessionalQualificationVC: YHBaseViewController {
let title0 = YHFormTitleItem(type: .mainApplicantEducation)
let item00 = YHFormDetailItem(type: .qualificationCertificateName)
item00.placeHolder = "请输入资格证书名称".local
item00.placeHolder = "请选择资格证书名称".local
let item01 = YHFormDetailItem(type: .conferAgencyFullName)
item01.placeHolder = "请输入颁授机构全称".local
let item02 = YHFormDetailItem(type: .conferTime)
......@@ -194,7 +194,16 @@ extension YHProfessionalQualificationVC : UITableViewDelegate, UITableViewDataSo
}
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .conferTime { // 授权年份
if detailItem.type == .qualificationCertificateName { // 资格证书名称
YHFormPickerView.show(type: .professionCertificate, selectType: .professionCertificate(.ACA)) {
[weak self] selectType in
guard let self = self else { return }
}
} else if detailItem.type == .conferTime { // 授权年份
YHDatePickView.show(type: .yyyy) {
[weak self] date in
......@@ -250,13 +259,13 @@ extension YHProfessionalQualificationVC : UITableViewDelegate, UITableViewDataSo
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .conferAgencyFullName
|| detailItem.type == .qualificationCertificateName {
if detailItem.type == .conferAgencyFullName {
return .inputText
}
if detailItem.type == .conferTime
|| detailItem.type == .conferCountry
|| detailItem.type == .conferCity {
|| detailItem.type == .conferCity
|| detailItem.type == .qualificationCertificateName{
return .selectSheet
}
......
//
// YHEducationInfo.swift
// galaxy
//
// Created by edy on 2024/2/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHEducationListInfo: SmartCodable {
var eduList: [YHEducationInfo]?
var eduCount: Int = 0
var quaList: [YHQualificationInfo]?
var quaCount: Int = 0
var qualification: Int = 0
var graduate: Int = 0
var married: Int = 0
enum CodingKeys: String, CodingKey {
case eduList = "edu_list"
case eduCount = "edu_count"
case quaList = "qua_list"
case quaCount = "qua_count"
case qualification = "qualification"
case graduate = "graduate"
case married = "married"
}
required init() {
}
}
class YHEducationInfo: SmartCodable {
var id: Int = -1
var orderId: Int = -1
var college: String?
var background: String?
var professional: String?
var admissionTime: String?
var graduateTime: String?
var vacantNum: Int = 0
enum CodingKeys: String, CodingKey {
case id = "id"
case orderId = "order_id"
case college = "college"
case background = "background"
case professional = "professional"
case admissionTime = "admission_time"
case graduateTime = "graduate_time"
case vacantNum = "vacant_num"
}
required init() {
}
}
class YHQualificationInfo: SmartCodable {
var id: Int = -1
var orderId: Int = -1
var qualification: String?
var vacantNum: Int = 0
enum CodingKeys: String, CodingKey {
case id = "id"
case orderId = "order_id"
case qualification = "qualification"
case vacantNum = "vacant_num"
}
required init() {
}
}
class YHEducationDetailInfo: SmartCodable {
var id: Int = 0
var orderId: Int = 0
var college: String?
var isTop: Int = 0
var type: String?
var admissionTime: String?
var graduateTime: String?
var background: String?
var professional: String?
var degreeType: String?
var remark: String?
var average: String?
var schoolAddress: YHSchoolAddress?
var schoolAddressAboard: Int = 0
var oldId: Int = 0
var createdAt: String?
var updatedAt: String?
var deletedAt: SmartAny?
var isShow: Int = 0
var operatorName: SmartAny?
var operatorEnglishName: SmartAny?
var operatorId: Int = 0
var matchListing: Int = 0
var createFromAppid: Int = 0
var updateFromAppid: Int = 0
var customerCenterId: Int = 0
enum CodingKeys: String, CodingKey {
case id = "id"
case orderId = "order_id"
case college = "college"
case isTop = "is_top"
case type = "type"
case admissionTime = "admission_time"
case graduateTime = "graduate_time"
case background = "background"
case professional = "professional"
case degreeType = "degree_type"
case remark = "remark"
case average = "average"
case schoolAddress = "school_address"
case schoolAddressAboard = "school_address_aboard"
case oldId = "old_id"
case createdAt = "created_at"
case updatedAt = "updated_at"
case deletedAt = "deleted_at"
case isShow = "is_show"
case operatorName = "operator_name"
case operatorEnglishName = "operator_english_name"
case operatorId = "operator_id"
case matchListing = "match_listing"
case createFromAppid = "create_from_appid"
case updateFromAppid = "update_from_appid"
case customerCenterId = "customer_center_id"
}
required init() {
}
// 学校是否在国外 默认是在国内
func isSchoolInAboard() -> Bool {
guard let schoolAddress = schoolAddress else { return false }
guard let country = schoolAddress.country else { return false }
if country.contains("中国") {
return false
}
return true
}
}
class YHSchoolAddress: Codable {
var area: [String]?
var country: String?
var foreign: String?
enum CodingKeys: String, CodingKey {
case area = "area"
case country = "country"
case foreign = "foreign"
}
required init(area: [String]?, country: String?, foreign: String?) {
self.area = area
self.country = country
self.foreign = foreign
}
}
//
// YHEducationRequestViewModel.swift
// galaxy
//
// Created by edy on 2024/2/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHEducationRequestViewModel {
// 学历和专业信息
var educationInfo: YHEducationListInfo?
// 学历详情信息
var educationDetailInfo:YHEducationDetailInfo?
// 请求学历和专业证书信息
func requestEducationInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Education.getEducationAndQulificationInfoApi
let _ = YHNetRequest.getRequest(url: strUrl, params:params) {[weak self] json, code in
YHHUD.hide()
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
printLog("model 是 ==> \(model)")
let dic = model.data?.peel as? [AnyHashable : Any]
guard let resultModel = YHEducationListInfo.deserialize(dict: dic as? [AnyHashable : Any]) else {
callBackBlock(false,nil)
return
}
educationInfo = resultModel
callBackBlock(true,nil)
} failBlock: { err in
callBackBlock(false,err)
}
}
// 获取学历详情
func getEducationDetailInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Education.getEducationDetailInfoApi
let _ = YHNetRequest.getRequest(url: strUrl, params:params) {[weak self] json, code in
YHHUD.hide()
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
printLog("model 是 ==> \(model)")
let dic = model.data?.peel as? [AnyHashable : Any]
guard let resultModel = YHEducationDetailInfo.deserialize(dict: dic as? [AnyHashable : Any]) else {
callBackBlock(false,nil)
return
}
educationDetailInfo = resultModel
callBackBlock(true,nil)
} failBlock: { err in
callBackBlock(false,err)
}
}
// 保存学历
func saveEducationInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Education.saveEducationInfoApi
let _ = YHNetRequest.postRequest(url: strUrl, params:params) {[weak self] json, code in
YHHUD.hide()
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
printLog("model 是 ==> \(model)")
if model.code == NetWorkCode.success.rawValue {
callBackBlock(true,nil)
} else {
callBackBlock(false, nil)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
}
//
// YHQuestionInfo.swift
// galaxy
//
// Created by edy on 2024/2/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHQuestionInfo: SmartCodable, YHFormItemProtocol {
var key: String = ""
var question: String = ""
var answer: Int = 0
enum CodingKeys: String, CodingKey {
case key = "key"
case question = "question"
case answer = "answer"
}
required init() {
}
func getTitle() -> String {
return question
}
func getSubTitle() -> String {
return ""
}
}
extension YHQuestionInfo {
// 【问题】学历证书姓名及出生日期正确性
static func getEducationQuestion() -> [YHQuestionInfo] {
let path = Bundle.main.path(forResource: "YHQuestionList", ofType: "plist")
let questions:[Dictionary] = NSArray(contentsOfFile:path!) as! [Dictionary<String, Any>]
var res:[YHQuestionInfo] = []
for dict in questions {
guard let questionInfo = YHQuestionInfo.deserialize(dict: dict as? [AnyHashable : Any]) else {
continue
}
res.append(questionInfo)
}
return res
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>key</key>
<string>qualification</string>
<key>question</key>
<string>您的所有学历及资格证书上的姓名及出生日期,是否与身份证完全一致 ?(例如:身份证上是【张四】。学位证上是【张三】,则为不相同)</string>
<key>answer</key>
<integer>0</integer>
</dict>
<dict>
<key>key</key>
<string>graduate</string>
<key>question</key>
<string>您配偶的大学毕业证和学位证上的姓名及出生日期,是否与身份证完全一致?</string>
<key>answer</key>
<integer>0</integer>
</dict>
</array>
</plist>
......@@ -13,7 +13,7 @@ class YHEducationInfoCell: UITableViewCell {
static let cellReuseIdentifier = "YHEducationInfoCell"
let horizonalGap = 18.0
private lazy var titleLabel: UILabel = {
lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.textAlignment = .left
......@@ -21,7 +21,7 @@ class YHEducationInfoCell: UITableViewCell {
return label
}()
private lazy var subTitleLabel: UILabel = {
lazy var subTitleLabel: UILabel = {
let label = UILabel()
label.textColor = .labelTextColor2
label.textAlignment = .left
......@@ -30,7 +30,7 @@ class YHEducationInfoCell: UITableViewCell {
return label
}()
private lazy var timeLabel: UILabel = {
lazy var timeLabel: UILabel = {
let label = UILabel()
label.textColor = .labelTextColor2
label.textAlignment = .right
......@@ -38,16 +38,6 @@ class YHEducationInfoCell: UITableViewCell {
return label
}()
private lazy var tipsLabel: UILabel = {
let label = UILabel()
label.textColor = .failColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 12)
label.isHidden = true
return label
}()
private lazy var arrowImgView: UIImageView = {
let imgView = UIImageView(image: UIImage(named: "form_right_arrow"))
return imgView
......@@ -83,15 +73,10 @@ class YHEducationInfoCell: UITableViewCell {
contentView.addSubview(subTitleLabel)
contentView.addSubview(timeLabel)
contentView.addSubview(arrowImgView)
contentView.addSubview(tipsLabel)
contentView.addSubview(bottomLine)
titleLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
titleLabel.text = "啊发沙发沙发"
subTitleLabel.text = "法术法"
timeLabel.text = "2141234124214123412421412341242141234124"
titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalTo(timeLabel.snp.left).offset(-8)
......@@ -112,6 +97,7 @@ class YHEducationInfoCell: UITableViewCell {
subTitleLabel.snp.makeConstraints { make in
make.left.equalTo(titleLabel)
make.top.equalTo(titleLabel.snp.bottom).offset(4)
make.bottom.equalToSuperview().offset(-16)
make.right.equalToSuperview().offset(-horizonalGap)
}
......@@ -121,31 +107,5 @@ class YHEducationInfoCell: UITableViewCell {
make.height.equalTo(1.0)
make.bottom.equalToSuperview()
}
setTips("asdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfa", isShow: true)
}
func setTips(_ tips:String?, isShow:Bool) {
tipsLabel.text = tips
tipsLabel.isHidden = !isShow
if isShow {
tipsLabel.snp.remakeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalToSuperview().offset(-horizonalGap)
make.top.equalTo(subTitleLabel.snp.bottom)
make.bottom.equalToSuperview().offset(-16)
}
} else {
tipsLabel.snp.remakeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalToSuperview().offset(-horizonalGap)
make.top.equalTo(subTitleLabel.snp.bottom)
make.height.equalTo(0)
make.bottom.equalToSuperview().offset(-16)
}
}
self.setNeedsLayout()
self.layoutIfNeeded()
}
}
......@@ -37,11 +37,11 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
lazy var items: [PersonalModuleItem] = {
return [PersonalModuleItem(icon: "mine_item_msg", title: "我的消息".local),
PersonalModuleItem(icon: "mine_item_progress", title: "我的进度".local),
PersonalModuleItem(icon: "mine_manager", title: "积分中心".local),
PersonalModuleItem(icon: "mine_manager", title: "推荐有礼".local),
PersonalModuleItem(icon: "mine_manager", title: "我的海报".local),
PersonalModuleItem(icon: "mine_manager", title: "我的测评码".local),
PersonalModuleItem(icon: "mine_manager", title: "预约银河湾".local),]
PersonalModuleItem(icon: "mine_item_scoreCenter", title: "积分中心".local),
PersonalModuleItem(icon: "mine_item_recommend", title: "推荐有礼".local),
PersonalModuleItem(icon: "mine_item_poster", title: "我的海报".local),
PersonalModuleItem(icon: "mine_item_code", title: "我的测评码".local),
PersonalModuleItem(icon: "mine_item_appoint", title: "预约银河湾".local),]
}()
lazy var headerView: YHUserInfoHeaderView = {
......
......@@ -19,9 +19,9 @@ class YHPersonalCenterCell: UITableViewCell {
lazy var titleLabel:UILabel = {
let label = UILabel()
label.textColor = UIColor(hexString:"#333333")
label.textColor = UIColor(hexString:"#141414")
label.textAlignment = NSTextAlignment.left
label.font = UIFont.systemFont(ofSize: 15)
label.font = UIFont.PFSC_R(ofSize:15)
return label
}()
......
......@@ -32,12 +32,23 @@ class YHAllApiName {
//保存其他资料信息
static let updateOtherInfoApi = "frontend/order/updateOrderOtherInformation"
}
struct Family {
// 获取家庭成员信息 添加家庭成员也用这个
static let familyInfoApi = "frontend/order/information/family"
// 删除家庭成员信息
static let familyMemberDeleteApi = "frontend/order/information/family/delete"
}
struct Education {
// 获取学历及证书相关信息
static let getEducationAndQulificationInfoApi = "frontend/education/list"
// 获取学历详情信息
static let getEducationDetailInfoApi = "frontend/education/detail"
// 保存学历信息
static let saveEducationInfoApi = "frontend/education/save"
}
//Users
......
......@@ -95,7 +95,7 @@ class YHNetRequest: NSObject {
requestHeader.add(name:"sign",value:sign)
requestHeader.add(name: "token", value: "eyJpdiI6IkduSzJuR09VZFB6azU2OU9FRXZcL2JRPT0iLCJ2YWx1ZSI6IkZ1VWZjY1NoZVRHdnh1R2pjZUZ2eGdyU0JVWFJcL1hFemhWYlR3QzA5TnRLVkVCaEREbmpLNk5HenZCVERlaFdXY0J0czFxUlpwTFdkQnV3ckVMU01neDhERlwvSUc4bGprQk9QdzlIaGJaVGd4TjZcL1VMelFidmhrTklhbXZCSkpVVFp1KzQ1VnRYbDByaGwwV0lSNmtpRnJza29aSFJ6Wis4MXFVRWRQSElNNWRFbjF5bTdINlpKTlFhXC9LNExhQ2k0RzNyTFhxR3JKcjB2YzhMaW85WVhhU0dPNmhhUmhRbHVzTXh1Vjd0anc4NjdYWGdWWFBiMm15WGJCR0IyZlJ5NjFGQ0UyaVdXNjB6bXNScFpJXC81SVQ3ZFZkVWlcL1dJV09iMFhtUjBuSSt3NllSMER2aTNmVXNCa1NqWGZQTnBXRmVHaStpSHRhK2lYRHNyRXBzWE9kSE9BMkcwcWFHTzcwYjlNVlwvN2xoallsSVwvbkxkYzVQdUhCcW84K3FsQ25VakRJUXRIUHk3NHQ5ZGpETWRNUVlZOFduV01ZVDZBVGJnMm1RcTRuR0pJU24rN1c1YW05UFJGTXI3Z0xETnlVQWRQTlpvK2IrZlY5bGFIbUpGaHBuUnJkMlU0NGg3Kys1SGlaZENBZTdQXC9YVTM4MW9ONkVvVVg4QzYzVmRNT3l2QTE3U3JpamJzRFFTYlplbUE1VlRjYkNsaVhUdUczdTgxamhQVm1cL0RYZzBFeDQ0R1U1YjFBYXhkWmNWSDc2MXlrQlYzMjJzK0FoMnFyWWxKRVhZaTN0NTVkVm5QcFd2TTdaMUloVjA1TDNKVWN0eUo5QTZGcHJuenpNeFwvSnNpTFJjQW1YbUNvNUJmRHRKXC9ldnFET2JTYVFlSlgwNkF5dmpOOG9ZdW1VSGZtWnlFbzhQQURGc01DclhEM2NoYjVqd0lOb3hIMUcxcmVDdzhQZGdGc1dNSUtsWUpKR081SGtFUmpDWElkcXlaR21rbktWRkV4V0lwNDRrSFNOcnpzRkw2N2ZuS0RVT1wvWTk4TUo5dktaSCtYeENzRjM0c1Z3MGtjVXBzVGxxMGlUVVVDMTFldGlxREVzV2ZLRkNnWVZMWTRsSGFtNHZMSWJ3ZlBXSzA3c0FnWXp0Z2VKY1wvYm9IYkI0WWVUZVQ4OG1KMXZQaFJmMXc3Mjdqc1N1dFNjYkJNYVhjN1AwNmtJcXlVMTYxK1BoRVIrUFwvVTVRVWdvc3kwR1AzdHdlQXIzUzFyb1NBbXFlakxaV21uYmZ0Y29LQW1RVEJrZXpueWtnWE1hMkthY3F3Z0FOYjVFaDZZVFhJZ0VnVzhNOFVJYVZWR3RjNGp3cUUxdGdxR25rbGt4RUZjb1wvbEdiVVZ1d2l1UExjU1RWMVBGbXd1cWo0and0M1U5aGtHWm1RUGoranpjTjd5cUR3Z05cL25pUG5lY1wvUmgrbFRzXC9qZVZwVlNiM0FmK1Y0bTVHYk93OGtHMitUTzdSOWFHQlFnZXhqWmRwR2trZ1ZIZjJDNVFITnNXRm5jNmJzK1lqRFFwWWxEQnhFR2FLUStiZEJsbDV4Vit2dDc0cURiVVwvS2ExVkE4RmMxZEpJMkNJK01kWm9aajJjOUJaUGkzTjRNOVpTeHdQZW1UOUlCSTNacDlUSHNDOVwvN1B0U1dSUWFyalJqTis2SW5GckUrT0cxN2pmSDZ3RlJ4bDdSVVhBMWdocjM1RlVaOCtHYkw0RVoyYXVEOFhNNEpVa2Rzd3prM0hKSjFqQnlQYUsyaTJNNmVsbE1HbXZwR1RGNmxlK2ltU3Jka2lVN3VEeGtwQ0NYWlZEOFFOaHgzWHQ0YjdnMU1yeVhNMFwvRm1FSFhVMmpxZ2p2TlpYQitPZGxrS2s4dmoyWnhRMGg5d0Vld2x5MVIrZz09IiwibWFjIjoiMGNjNWM2OWIzMmJlZGNjZGRjNDBkY2RhMGQzMTk2ODg4MmRlNWEwNzZlNDc5MGVkMWRmNDBmOWVkMDA4YzQzZCJ9")
requestHeader.add(name: "token", value: "eyJpdiI6Ik5aeEVDclZTK0FISEFBZUgxN2VkdGc9PSIsInZhbHVlIjoiRFRJOHlObzVrZlp4T2tVYW1MSE1ZK0Z3dXlyK3p4QlczNmxsTXdkdW5GQVY4Q2VqZlNNUDdrdVpsb0JcLytpYmJheUp2MWZTUE5pOWgrVWRLdEtIUkx4R1wvS3F6SmRSQ0dWeFVXanFINGkyRWNMTXB4TVlcLzhjXC9NSzVoMFwvZ1ZOaVIwb0VqWlo1VERPSHY2RWJhME1RdWtkXC8yanBQdm9lMWM4WXJVK1BnMDd6SncwVVlWMDNnbSswSnM3eVwveFRRck03M3pOaDFSc3g0UmlYMTJQdmZpSkhUWHVMa21RV2xRbXBkalVTTUFicmFaN2NVNXl1ZTJOeEJoKzhrMnZtdzdvM1U5Qmh4WXNiSEFERUpiZHNWNkxoM2ZkVVRUdFlMMU1MQnIyaWNxNSt4S1NocDVEbnNqeHphUCtVVk1qTlVnMk1ydVNPamJ0c2tDQ1wvWFk1SkxtSWtDMU9oT3ZqaFpuNU5aVUVicHpYVU56VnlqK01Cb20welJMbkQrcTFWOHFUbzlPK0RGdDRcLzJ1T094MjNjYTVZZmJcL2txRE93cEFUYzlKWWdVWE9cLzFnYnVwTFZ4VUtqMFQ5QlgzZitDQjhyNURpU3p0bktqblBicUxPekNBcWRWM0g0WklSOEc0T0RPVkNBMGZQdEtWV3ZqN3IrcHZDYm9UNjREdnA3U1RZY1Z1dFE3K1RRM2F2eGY0QXc2dGlha0RBUDVpVHdFWE53dzl2eVczVk9VNTJSa1Fzb1J4ZGd0c0RCdktPQ1FWOUQ5Y0krckQ3bFc4NkNJMHliSXlnNGtYU1ZCUHRZWTdCKzA5d1wvdldzWTlpeUdYaEg4eGhITHpRSUthMWpSVlZvZVhwZ3BvamxCTHFSUXJmQ1hQNThYbUNNanZnVGs0b3RDTUFmYkdsYTEzeEtnTXJpZVU0QnJHWDJoUk9sUklzaFFhUkJiNWk0Z2E0cUUwejU4RmF2RnE4Z2U0eEo3VmZ2SmFMTlVacFBvSFlZUmM2N3liVTdhTk5NWU9YS0xtalk3QUN3NWV2UTlPeE5hMmk0aHU4MSt0YjNJQytFczRMa2l6XC9jV0Jxc01QYU0yYXdTXC92RXBxTFNVOVd6SlwvRm9KM21jUHlcL2diRlMyU3REeEl0K1RxSjRuck8xaXlOaWY4NXVzMVBibXpVSEZJWkVZQnFUd2k5TUVJcDUwUEFjTmljTzYyaWFYaFkzZUtkR294d29LUzBUTFF1Y0xxbWtMNFF4ZlZkN2k4YktEUnRGekU3OEdaN2J3TUR4T2FpVHRKaGlqRWNcL2c5dlwvOUVEVmdLNUhBSk1wSGV5UXVoOFJydlczc09HU1EyeXI4SFZZQmJJQWx1cGFIaXhmK1VJNmdoNmwrOElMZXFxSHZtazQreW84RFBlOXFnVDI2bm1tZWl0K01OcU1DSGJEQXdnWW9Hc0ptWFVJbXVXdEpyT2FKUHprTzJ1MkxFSEViZGV4cFpuOWRXK3dUdVR4bmJHZ1VRRGJycFRBME5lWUtaT0JCYjViSWVvcVJ3RXllb2tQZ1VkUWFqVWo0UHQzMUQwWVMwZ05rTTU0Nk1QQUdxTm9rZFNISVYrTG5DWlArNkt5RkZxajdZN1luakRKQVdUaVpnOUhCUExYMEVKRXRRT3QyZTI4cU9TdlBrbWxVZkFLSWZFbXNha3lCZUhFRVpyTmxQOERjbVwvMytCc0JpNnZcL1Nvek9yR2pUWGF2XC9VMzN4OEY5T3VsdUNGRFNWbHZZMnBzNHhMeEdIR21majBOOUJNbEhlK1J4S3dFTnlJamdTeFQyTWlTTlhCUWxnSDF6VmNhWHIzVGpoREY5clB2XC9uZHZjSm1iTHZ1bjFIUUFRait6dUJlUk1WQ1FhdXFoN002YlQ5MVwvQVMzYzJJQ0RFR1czdEtqMFBTQT09IiwibWFjIjoiOGVlZjBmNTVmMzEwNjhkZjVmYTlkYzAwYzllMjJmNjUyZmRmN2U1ODFiZTIzNzRjMDVjMTNiOTNhOWRhMmVkYSJ9")
headers = requestHeader
}
......
{
"images" : [
{
"filename" : "箭头中.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_item_appoint@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_item_appoint@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_item_code@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_item_code@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "我的个人中心页面内的花瓣采集图片-木初十@2x.png",
"filename" : "wode_xiaoxi@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "我的个人中心页面内的花瓣采集图片-木初十@3x.png",
"filename" : "wode_xiaoxi@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_item_poster@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_item_poster@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "我的个人中心页面内的花瓣采集图片-木初十.png",
"filename" : "wode_jindu@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "我的个人中心页面内的花瓣采集图片-木初十-1.png",
"filename" : "wode_jindu@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_item_recommend@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_item_recommend@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_item_scoreCenter@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_item_scoreCenter@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "mine_manager@2x.png",
"filename" : "Frame@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_manager@3x.png",
"filename" : "Frame@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
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