Commit bee410eb authored by Steven杜宇's avatar Steven杜宇

// 学历/专业资格填写

parent 81df950a
...@@ -18,6 +18,10 @@ ...@@ -18,6 +18,10 @@
041B52D62B5F899E007EBCEB /* YHSpousePrimaryInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52D52B5F899E007EBCEB /* YHSpousePrimaryInfoVC.swift */; }; 041B52D62B5F899E007EBCEB /* YHSpousePrimaryInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52D52B5F899E007EBCEB /* YHSpousePrimaryInfoVC.swift */; };
041B52DB2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52DA2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift */; }; 041B52DB2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52DA2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift */; };
041B52DD2B60A889007EBCEB /* YHTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52DC2B60A889007EBCEB /* YHTest.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 */; }; 042FBBBB2B62806D00F9DE23 /* YHCertificateInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBA2B62806D00F9DE23 /* YHCertificateInfoController.swift */; };
042FBBBD2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBC2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift */; }; 042FBBBD2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBC2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift */; };
042FBBBF2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBE2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift */; }; 042FBBBF2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBE2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift */; };
...@@ -269,6 +273,10 @@ ...@@ -269,6 +273,10 @@
041B52D52B5F899E007EBCEB /* YHSpousePrimaryInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSpousePrimaryInfoVC.swift; sourceTree = "<group>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 042FBBBE2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSpouseBasicInfoVC.swift; sourceTree = "<group>"; };
...@@ -580,6 +588,17 @@ ...@@ -580,6 +588,17 @@
path = M; path = M;
sourceTree = "<group>"; 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 */ = { 042FBBD22B67A2F900F9DE23 /* PickerView */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -706,6 +725,7 @@ ...@@ -706,6 +725,7 @@
04C693652B73183E004C1758 /* 学历专业资格填写 */ = { 04C693652B73183E004C1758 /* 学历专业资格填写 */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
042F88892B847720008B60BD /* M */,
04C693672B7318D3004C1758 /* V */, 04C693672B7318D3004C1758 /* V */,
04C693662B7318CD004C1758 /* C */, 04C693662B7318CD004C1758 /* C */,
); );
...@@ -1535,6 +1555,7 @@ ...@@ -1535,6 +1555,7 @@
A5FD63DC2B6628F600D1D9DA /* scoreOptionData.plist in Resources */, A5FD63DC2B6628F600D1D9DA /* scoreOptionData.plist in Resources */,
04808C062B4686510056D53C /* ATAuthSDK.bundle in Resources */, 04808C062B4686510056D53C /* ATAuthSDK.bundle in Resources */,
A5C5B2EE2B4F9B8800A7C5D1 /* Localizable.xcstrings in Resources */, A5C5B2EE2B4F9B8800A7C5D1 /* Localizable.xcstrings in Resources */,
042F88952B84AFC7008B60BD /* YHQuestionList.plist in Resources */,
A58951C52B398D1000225C19 /* Launch Screen.storyboard in Resources */, A58951C52B398D1000225C19 /* Launch Screen.storyboard in Resources */,
0468D4772B68A08600CFB916 /* area.plist in Resources */, 0468D4772B68A08600CFB916 /* area.plist in Resources */,
A51044182B493675006B60BB /* README.md in Resources */, A51044182B493675006B60BB /* README.md in Resources */,
...@@ -1636,6 +1657,7 @@ ...@@ -1636,6 +1657,7 @@
A5ACE9292B4564F7002C94D2 /* YHSmsCodeInputView.swift in Sources */, A5ACE9292B4564F7002C94D2 /* YHSmsCodeInputView.swift in Sources */,
A5ACE9452B4564F7002C94D2 /* YHHUDContainerView.swift in Sources */, A5ACE9452B4564F7002C94D2 /* YHHUDContainerView.swift in Sources */,
A5ACE93A2B4564F7002C94D2 /* NSAttributedString+Extension.swift in Sources */, A5ACE93A2B4564F7002C94D2 /* NSAttributedString+Extension.swift in Sources */,
042F888B2B8477C6008B60BD /* YHEducationInfo.swift in Sources */,
04AF58C42B4FC51C0066011A /* YHLocalizable.swift in Sources */, 04AF58C42B4FC51C0066011A /* YHLocalizable.swift in Sources */,
042FBBBF2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift in Sources */, 042FBBBF2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift in Sources */,
A5C5B2E82B4EC95600A7C5D1 /* YHDavidTestCollectionViewCell.swift in Sources */, A5C5B2E82B4EC95600A7C5D1 /* YHDavidTestCollectionViewCell.swift in Sources */,
...@@ -1702,6 +1724,7 @@ ...@@ -1702,6 +1724,7 @@
A5C5B32D2B57D66000A7C5D1 /* YHBbxCollectionViewCell.swift in Sources */, A5C5B32D2B57D66000A7C5D1 /* YHBbxCollectionViewCell.swift in Sources */,
A50AB89D2B81F1FB00C227DE /* YHOtherInfoFillViewModel.swift in Sources */, A50AB89D2B81F1FB00C227DE /* YHOtherInfoFillViewModel.swift in Sources */,
0468D47C2B68A08600CFB916 /* YHAddressPickView.swift in Sources */, 0468D47C2B68A08600CFB916 /* YHAddressPickView.swift in Sources */,
042F888F2B847B2D008B60BD /* YHEducationRequestViewModel.swift in Sources */,
04C693622B723AB8004C1758 /* YHMySettingViewController.swift in Sources */, 04C693622B723AB8004C1758 /* YHMySettingViewController.swift in Sources */,
A5FD63D82B6603A500D1D9DA /* YHScoreResultView.swift in Sources */, A5FD63D82B6603A500D1D9DA /* YHScoreResultView.swift in Sources */,
A5ACE9342B4564F7002C94D2 /* YHAllApiName.swift in Sources */, A5ACE9342B4564F7002C94D2 /* YHAllApiName.swift in Sources */,
...@@ -1712,6 +1735,7 @@ ...@@ -1712,6 +1735,7 @@
A5FD63EA2B67D95100D1D9DA /* YHFamilyMemberViewController.swift in Sources */, A5FD63EA2B67D95100D1D9DA /* YHFamilyMemberViewController.swift in Sources */,
04E86E432B8357EC00A35F4B /* YHMainInformationModel.swift in Sources */, 04E86E432B8357EC00A35F4B /* YHMainInformationModel.swift in Sources */,
04E86E2F2B81EA1000A35F4B /* YHWorkExperienceListViewController.swift in Sources */, 04E86E2F2B81EA1000A35F4B /* YHWorkExperienceListViewController.swift in Sources */,
042F88932B84AEF0008B60BD /* YHQuestionInfo.swift in Sources */,
A5ACE93F2B4564F7002C94D2 /* UIViewController+Extension.swift in Sources */, A5ACE93F2B4564F7002C94D2 /* UIViewController+Extension.swift in Sources */,
042FBBD62B67BDD500F9DE23 /* YHBrotherInfoVC.swift in Sources */, 042FBBD62B67BDD500F9DE23 /* YHBrotherInfoVC.swift in Sources */,
A5ACE9472B4564F7002C94D2 /* YHHUD.swift in Sources */, A5ACE9472B4564F7002C94D2 /* YHHUD.swift in Sources */,
......
...@@ -325,6 +325,7 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource ...@@ -325,6 +325,7 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource
} else if indexPath.row == 1 { } else if indexPath.row == 1 {
//家庭程序信息 //家庭程序信息
let vc = YHFamilyMemberInfoVC(orderId: orderId ?? 0) let vc = YHFamilyMemberInfoVC(orderId: orderId ?? 0)
vc.orderId = 133971
navigationController?.pushViewController(vc) navigationController?.pushViewController(vc)
} else if indexPath.row == 2 { } else if indexPath.row == 2 {
//基本信息 //基本信息
...@@ -334,6 +335,8 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource ...@@ -334,6 +335,8 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource
} else if indexPath.row == 3 { } else if indexPath.row == 3 {
//学历/专业资格 //学历/专业资格
let vc = YHEducationalQualificationVC() let vc = YHEducationalQualificationVC()
vc.orderId = orderId
vc.orderId = 133971
navigationController?.pushViewController(vc) navigationController?.pushViewController(vc)
} else if indexPath.row == 4 { } else if indexPath.row == 4 {
......
...@@ -81,6 +81,8 @@ enum YHFormAddItemType:Int { ...@@ -81,6 +81,8 @@ enum YHFormAddItemType:Int {
case addChild = 1 case addChild = 1
case addBrother case addBrother
case addDegree case addDegree
case addEducation
case addCertificateInfo
} }
// 表单具体条目类型 // 表单具体条目类型
...@@ -189,6 +191,8 @@ enum YHFormDetailItemType:Int { ...@@ -189,6 +191,8 @@ enum YHFormDetailItemType:Int {
// 上课城市 // 上课城市
case educationCity case educationCity
// 证书信息
case certificateInfo
// 资格证书名称 // 资格证书名称
case qualificationCertificateName case qualificationCertificateName
// 颁授机构全称 // 颁授机构全称
...@@ -218,6 +222,10 @@ class YHFormAddItem : YHFormItemProtocol ...@@ -218,6 +222,10 @@ class YHFormAddItem : YHFormItemProtocol
return "新增兄弟姐妹".local return "新增兄弟姐妹".local
case .addDegree: case .addDegree:
return "增加学位信息".local return "增加学位信息".local
case .addEducation:
return "新增学历信息".local
case .addCertificateInfo:
return "新增证书信息".local
} }
} }
...@@ -481,6 +489,8 @@ class YHFormDetailItem : YHFormItemProtocol { ...@@ -481,6 +489,8 @@ class YHFormDetailItem : YHFormItemProtocol {
case .educationInfo: case .educationInfo:
return "".local return "".local
case .certificateInfo:
return "".local
case .universityFullName: case .universityFullName:
return "学校全称".local return "学校全称".local
case .educationStyle: case .educationStyle:
...@@ -510,9 +520,8 @@ class YHFormDetailItem : YHFormItemProtocol { ...@@ -510,9 +520,8 @@ class YHFormDetailItem : YHFormItemProtocol {
return "颁授国家/地区".local return "颁授国家/地区".local
case .conferCity: case .conferCity:
return "颁授城市".local return "颁授城市".local
} }
} }
func getSubTitle() -> String { func getSubTitle() -> String {
......
...@@ -11,11 +11,12 @@ import UIKit ...@@ -11,11 +11,12 @@ import UIKit
class YHEducationalQualificationVC: YHBaseViewController { class YHEducationalQualificationVC: YHBaseViewController {
let familyRequest:YHFamilyRequestViewModel = YHFamilyRequestViewModel() var orderId:Int?
let educationRequest:YHEducationRequestViewModel = YHEducationRequestViewModel()
var familyMemberInfo: YHFamilyMemberGroupInfo? var familyMemberInfo: YHFamilyMemberGroupInfo?
var isChildsEditMode: YHFormTitleItemEditType = .none var isChildsEditMode: YHFormTitleItemEditType = .none
var isBrothersEditMode: YHFormTitleItemEditType = .none var isBrothersEditMode: YHFormTitleItemEditType = .none
var educationInfo: YHEducationListInfo?
var items:[[YHFormItemProtocol]] = [] var items:[[YHFormItemProtocol]] = []
lazy var tableView: UITableView = { lazy var tableView: UITableView = {
...@@ -34,6 +35,9 @@ class YHEducationalQualificationVC: YHBaseViewController { ...@@ -34,6 +35,9 @@ class YHEducationalQualificationVC: YHBaseViewController {
tableView.register(YHEducationInfoCell.self, forCellReuseIdentifier: YHEducationInfoCell.cellReuseIdentifier) tableView.register(YHEducationInfoCell.self, forCellReuseIdentifier: YHEducationInfoCell.cellReuseIdentifier)
tableView.register(YHFormItemTitleCell.self, forCellReuseIdentifier: YHFormItemTitleCell.cellReuseIdentifier) tableView.register(YHFormItemTitleCell.self, forCellReuseIdentifier: YHFormItemTitleCell.cellReuseIdentifier)
tableView.register(YHFormItemAddCell.self, forCellReuseIdentifier: YHFormItemAddCell.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 return tableView
}() }()
...@@ -72,16 +76,56 @@ class YHEducationalQualificationVC: YHBaseViewController { ...@@ -72,16 +76,56 @@ class YHEducationalQualificationVC: YHBaseViewController {
} }
loadInfo() loadInfo()
requestEducationInfo()
} }
func loadInfo() { func loadInfo() {
guard let educationInfo = educationInfo else { return }
items.removeAll() items.removeAll()
// 主申请人学历
let title0 = YHFormTitleItem(type: .mainApplicantEducation) let title0 = YHFormTitleItem(type: .mainApplicantEducation)
let item00 = YHFormDetailItem(type: .educationInfo) var arr0:[YHFormItemProtocol] = [title0]
let arr0:[YHFormItemProtocol] = [title0, item00] 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) 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() self.tableView.reloadData()
} }
} }
...@@ -109,7 +153,6 @@ extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSou ...@@ -109,7 +153,6 @@ extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSou
let formItem = item as! YHFormTitleItem let formItem = item as! YHFormTitleItem
// 配偶父母子女兄妹title
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemTitleCell.cellReuseIdentifier, for: indexPath) as! YHFormItemTitleCell let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemTitleCell.cellReuseIdentifier, for: indexPath) as! YHFormItemTitleCell
cell.titleLabel.text = formItem.getTitle() cell.titleLabel.text = formItem.getTitle()
cell.subTitleLabel.text = formItem.getSubTitle() cell.subTitleLabel.text = formItem.getSubTitle()
...@@ -131,11 +174,91 @@ extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSou ...@@ -131,11 +174,91 @@ extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSou
return cell 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 = ""
}
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
return cell
}
if item is YHFormDetailItem { if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem let detailItem = item as! YHFormDetailItem
if detailItem.type == .educationInfo { if detailItem.type == .educationInfo {
let cell = tableView.dequeueReusableCell(withIdentifier: YHEducationInfoCell.cellReuseIdentifier, for: indexPath) as! YHEducationInfoCell if let eduList = educationInfo?.eduList {
return cell // 第一行是标题
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,6 +307,19 @@ extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSou ...@@ -184,6 +307,19 @@ extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSou
return return
} }
if item is YHFormAddItem {
let detailItem = item as! YHFormAddItem
if detailItem.type == .addEducation {
let vc = YHEducationDetailVC()
self.navigationController?.pushViewController(vc)
} else if detailItem.type == .addCertificateInfo {
let vc = YHProfessionalQualificationVC()
self.navigationController?.pushViewController(vc)
}
return
}
let vc = YHEducationDetailVC() let vc = YHEducationDetailVC()
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
} }
...@@ -209,4 +345,20 @@ extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSou ...@@ -209,4 +345,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()
}
}
}
}
//
// 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() {
}
}
//
// 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?
// 添加家庭成员
func requestEducationInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Education.educationInfoApi
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)
}
}
}
//
// 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 { ...@@ -13,7 +13,7 @@ class YHEducationInfoCell: UITableViewCell {
static let cellReuseIdentifier = "YHEducationInfoCell" static let cellReuseIdentifier = "YHEducationInfoCell"
let horizonalGap = 18.0 let horizonalGap = 18.0
private lazy var titleLabel: UILabel = { lazy var titleLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.textColor = .mainTextColor label.textColor = .mainTextColor
label.textAlignment = .left label.textAlignment = .left
...@@ -21,7 +21,7 @@ class YHEducationInfoCell: UITableViewCell { ...@@ -21,7 +21,7 @@ class YHEducationInfoCell: UITableViewCell {
return label return label
}() }()
private lazy var subTitleLabel: UILabel = { lazy var subTitleLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.textColor = .labelTextColor2 label.textColor = .labelTextColor2
label.textAlignment = .left label.textAlignment = .left
...@@ -30,7 +30,7 @@ class YHEducationInfoCell: UITableViewCell { ...@@ -30,7 +30,7 @@ class YHEducationInfoCell: UITableViewCell {
return label return label
}() }()
private lazy var timeLabel: UILabel = { lazy var timeLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.textColor = .labelTextColor2 label.textColor = .labelTextColor2
label.textAlignment = .right label.textAlignment = .right
...@@ -38,16 +38,6 @@ class YHEducationInfoCell: UITableViewCell { ...@@ -38,16 +38,6 @@ class YHEducationInfoCell: UITableViewCell {
return label 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 = { private lazy var arrowImgView: UIImageView = {
let imgView = UIImageView(image: UIImage(named: "form_right_arrow")) let imgView = UIImageView(image: UIImage(named: "form_right_arrow"))
return imgView return imgView
...@@ -83,15 +73,10 @@ class YHEducationInfoCell: UITableViewCell { ...@@ -83,15 +73,10 @@ class YHEducationInfoCell: UITableViewCell {
contentView.addSubview(subTitleLabel) contentView.addSubview(subTitleLabel)
contentView.addSubview(timeLabel) contentView.addSubview(timeLabel)
contentView.addSubview(arrowImgView) contentView.addSubview(arrowImgView)
contentView.addSubview(tipsLabel)
contentView.addSubview(bottomLine) contentView.addSubview(bottomLine)
titleLabel.setContentCompressionResistancePriority(.required, for: .horizontal) titleLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
titleLabel.text = "啊发沙发沙发"
subTitleLabel.text = "法术法"
timeLabel.text = "2141234124214123412421412341242141234124"
titleLabel.snp.makeConstraints { make in titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap) make.left.equalToSuperview().offset(horizonalGap)
make.right.equalTo(timeLabel.snp.left).offset(-8) make.right.equalTo(timeLabel.snp.left).offset(-8)
...@@ -112,6 +97,7 @@ class YHEducationInfoCell: UITableViewCell { ...@@ -112,6 +97,7 @@ class YHEducationInfoCell: UITableViewCell {
subTitleLabel.snp.makeConstraints { make in subTitleLabel.snp.makeConstraints { make in
make.left.equalTo(titleLabel) make.left.equalTo(titleLabel)
make.top.equalTo(titleLabel.snp.bottom).offset(4) make.top.equalTo(titleLabel.snp.bottom).offset(4)
make.bottom.equalToSuperview().offset(-16)
make.right.equalToSuperview().offset(-horizonalGap) make.right.equalToSuperview().offset(-horizonalGap)
} }
...@@ -121,31 +107,5 @@ class YHEducationInfoCell: UITableViewCell { ...@@ -121,31 +107,5 @@ class YHEducationInfoCell: UITableViewCell {
make.height.equalTo(1.0) make.height.equalTo(1.0)
make.bottom.equalToSuperview() 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()
} }
} }
...@@ -38,6 +38,13 @@ class YHAllApiName { ...@@ -38,6 +38,13 @@ class YHAllApiName {
static let familyInfoApi = "frontend/order/information/family" static let familyInfoApi = "frontend/order/information/family"
// 删除家庭成员信息 // 删除家庭成员信息
static let familyMemberDeleteApi = "frontend/order/information/family/delete" static let familyMemberDeleteApi = "frontend/order/information/family/delete"
}
struct Education {
// 获取学历及证书相关信息
static let educationInfoApi = "frontend/education/list"
} }
//Users //Users
......
...@@ -95,7 +95,7 @@ class YHNetRequest: NSObject { ...@@ -95,7 +95,7 @@ class YHNetRequest: NSObject {
requestHeader.add(name:"sign",value:sign) requestHeader.add(name:"sign",value:sign)
requestHeader.add(name: "token", value: "eyJpdiI6IkduSzJuR09VZFB6azU2OU9FRXZcL2JRPT0iLCJ2YWx1ZSI6IkZ1VWZjY1NoZVRHdnh1R2pjZUZ2eGdyU0JVWFJcL1hFemhWYlR3QzA5TnRLVkVCaEREbmpLNk5HenZCVERlaFdXY0J0czFxUlpwTFdkQnV3ckVMU01neDhERlwvSUc4bGprQk9QdzlIaGJaVGd4TjZcL1VMelFidmhrTklhbXZCSkpVVFp1KzQ1VnRYbDByaGwwV0lSNmtpRnJza29aSFJ6Wis4MXFVRWRQSElNNWRFbjF5bTdINlpKTlFhXC9LNExhQ2k0RzNyTFhxR3JKcjB2YzhMaW85WVhhU0dPNmhhUmhRbHVzTXh1Vjd0anc4NjdYWGdWWFBiMm15WGJCR0IyZlJ5NjFGQ0UyaVdXNjB6bXNScFpJXC81SVQ3ZFZkVWlcL1dJV09iMFhtUjBuSSt3NllSMER2aTNmVXNCa1NqWGZQTnBXRmVHaStpSHRhK2lYRHNyRXBzWE9kSE9BMkcwcWFHTzcwYjlNVlwvN2xoallsSVwvbkxkYzVQdUhCcW84K3FsQ25VakRJUXRIUHk3NHQ5ZGpETWRNUVlZOFduV01ZVDZBVGJnMm1RcTRuR0pJU24rN1c1YW05UFJGTXI3Z0xETnlVQWRQTlpvK2IrZlY5bGFIbUpGaHBuUnJkMlU0NGg3Kys1SGlaZENBZTdQXC9YVTM4MW9ONkVvVVg4QzYzVmRNT3l2QTE3U3JpamJzRFFTYlplbUE1VlRjYkNsaVhUdUczdTgxamhQVm1cL0RYZzBFeDQ0R1U1YjFBYXhkWmNWSDc2MXlrQlYzMjJzK0FoMnFyWWxKRVhZaTN0NTVkVm5QcFd2TTdaMUloVjA1TDNKVWN0eUo5QTZGcHJuenpNeFwvSnNpTFJjQW1YbUNvNUJmRHRKXC9ldnFET2JTYVFlSlgwNkF5dmpOOG9ZdW1VSGZtWnlFbzhQQURGc01DclhEM2NoYjVqd0lOb3hIMUcxcmVDdzhQZGdGc1dNSUtsWUpKR081SGtFUmpDWElkcXlaR21rbktWRkV4V0lwNDRrSFNOcnpzRkw2N2ZuS0RVT1wvWTk4TUo5dktaSCtYeENzRjM0c1Z3MGtjVXBzVGxxMGlUVVVDMTFldGlxREVzV2ZLRkNnWVZMWTRsSGFtNHZMSWJ3ZlBXSzA3c0FnWXp0Z2VKY1wvYm9IYkI0WWVUZVQ4OG1KMXZQaFJmMXc3Mjdqc1N1dFNjYkJNYVhjN1AwNmtJcXlVMTYxK1BoRVIrUFwvVTVRVWdvc3kwR1AzdHdlQXIzUzFyb1NBbXFlakxaV21uYmZ0Y29LQW1RVEJrZXpueWtnWE1hMkthY3F3Z0FOYjVFaDZZVFhJZ0VnVzhNOFVJYVZWR3RjNGp3cUUxdGdxR25rbGt4RUZjb1wvbEdiVVZ1d2l1UExjU1RWMVBGbXd1cWo0and0M1U5aGtHWm1RUGoranpjTjd5cUR3Z05cL25pUG5lY1wvUmgrbFRzXC9qZVZwVlNiM0FmK1Y0bTVHYk93OGtHMitUTzdSOWFHQlFnZXhqWmRwR2trZ1ZIZjJDNVFITnNXRm5jNmJzK1lqRFFwWWxEQnhFR2FLUStiZEJsbDV4Vit2dDc0cURiVVwvS2ExVkE4RmMxZEpJMkNJK01kWm9aajJjOUJaUGkzTjRNOVpTeHdQZW1UOUlCSTNacDlUSHNDOVwvN1B0U1dSUWFyalJqTis2SW5GckUrT0cxN2pmSDZ3RlJ4bDdSVVhBMWdocjM1RlVaOCtHYkw0RVoyYXVEOFhNNEpVa2Rzd3prM0hKSjFqQnlQYUsyaTJNNmVsbE1HbXZwR1RGNmxlK2ltU3Jka2lVN3VEeGtwQ0NYWlZEOFFOaHgzWHQ0YjdnMU1yeVhNMFwvRm1FSFhVMmpxZ2p2TlpYQitPZGxrS2s4dmoyWnhRMGg5d0Vld2x5MVIrZz09IiwibWFjIjoiMGNjNWM2OWIzMmJlZGNjZGRjNDBkY2RhMGQzMTk2ODg4MmRlNWEwNzZlNDc5MGVkMWRmNDBmOWVkMDA4YzQzZCJ9") requestHeader.add(name: "token", value: "eyJpdiI6Ik5aeEVDclZTK0FISEFBZUgxN2VkdGc9PSIsInZhbHVlIjoiRFRJOHlObzVrZlp4T2tVYW1MSE1ZK0Z3dXlyK3p4QlczNmxsTXdkdW5GQVY4Q2VqZlNNUDdrdVpsb0JcLytpYmJheUp2MWZTUE5pOWgrVWRLdEtIUkx4R1wvS3F6SmRSQ0dWeFVXanFINGkyRWNMTXB4TVlcLzhjXC9NSzVoMFwvZ1ZOaVIwb0VqWlo1VERPSHY2RWJhME1RdWtkXC8yanBQdm9lMWM4WXJVK1BnMDd6SncwVVlWMDNnbSswSnM3eVwveFRRck03M3pOaDFSc3g0UmlYMTJQdmZpSkhUWHVMa21RV2xRbXBkalVTTUFicmFaN2NVNXl1ZTJOeEJoKzhrMnZtdzdvM1U5Qmh4WXNiSEFERUpiZHNWNkxoM2ZkVVRUdFlMMU1MQnIyaWNxNSt4S1NocDVEbnNqeHphUCtVVk1qTlVnMk1ydVNPamJ0c2tDQ1wvWFk1SkxtSWtDMU9oT3ZqaFpuNU5aVUVicHpYVU56VnlqK01Cb20welJMbkQrcTFWOHFUbzlPK0RGdDRcLzJ1T094MjNjYTVZZmJcL2txRE93cEFUYzlKWWdVWE9cLzFnYnVwTFZ4VUtqMFQ5QlgzZitDQjhyNURpU3p0bktqblBicUxPekNBcWRWM0g0WklSOEc0T0RPVkNBMGZQdEtWV3ZqN3IrcHZDYm9UNjREdnA3U1RZY1Z1dFE3K1RRM2F2eGY0QXc2dGlha0RBUDVpVHdFWE53dzl2eVczVk9VNTJSa1Fzb1J4ZGd0c0RCdktPQ1FWOUQ5Y0krckQ3bFc4NkNJMHliSXlnNGtYU1ZCUHRZWTdCKzA5d1wvdldzWTlpeUdYaEg4eGhITHpRSUthMWpSVlZvZVhwZ3BvamxCTHFSUXJmQ1hQNThYbUNNanZnVGs0b3RDTUFmYkdsYTEzeEtnTXJpZVU0QnJHWDJoUk9sUklzaFFhUkJiNWk0Z2E0cUUwejU4RmF2RnE4Z2U0eEo3VmZ2SmFMTlVacFBvSFlZUmM2N3liVTdhTk5NWU9YS0xtalk3QUN3NWV2UTlPeE5hMmk0aHU4MSt0YjNJQytFczRMa2l6XC9jV0Jxc01QYU0yYXdTXC92RXBxTFNVOVd6SlwvRm9KM21jUHlcL2diRlMyU3REeEl0K1RxSjRuck8xaXlOaWY4NXVzMVBibXpVSEZJWkVZQnFUd2k5TUVJcDUwUEFjTmljTzYyaWFYaFkzZUtkR294d29LUzBUTFF1Y0xxbWtMNFF4ZlZkN2k4YktEUnRGekU3OEdaN2J3TUR4T2FpVHRKaGlqRWNcL2c5dlwvOUVEVmdLNUhBSk1wSGV5UXVoOFJydlczc09HU1EyeXI4SFZZQmJJQWx1cGFIaXhmK1VJNmdoNmwrOElMZXFxSHZtazQreW84RFBlOXFnVDI2bm1tZWl0K01OcU1DSGJEQXdnWW9Hc0ptWFVJbXVXdEpyT2FKUHprTzJ1MkxFSEViZGV4cFpuOWRXK3dUdVR4bmJHZ1VRRGJycFRBME5lWUtaT0JCYjViSWVvcVJ3RXllb2tQZ1VkUWFqVWo0UHQzMUQwWVMwZ05rTTU0Nk1QQUdxTm9rZFNISVYrTG5DWlArNkt5RkZxajdZN1luakRKQVdUaVpnOUhCUExYMEVKRXRRT3QyZTI4cU9TdlBrbWxVZkFLSWZFbXNha3lCZUhFRVpyTmxQOERjbVwvMytCc0JpNnZcL1Nvek9yR2pUWGF2XC9VMzN4OEY5T3VsdUNGRFNWbHZZMnBzNHhMeEdIR21majBOOUJNbEhlK1J4S3dFTnlJamdTeFQyTWlTTlhCUWxnSDF6VmNhWHIzVGpoREY5clB2XC9uZHZjSm1iTHZ1bjFIUUFRait6dUJlUk1WQ1FhdXFoN002YlQ5MVwvQVMzYzJJQ0RFR1czdEtqMFBTQT09IiwibWFjIjoiOGVlZjBmNTVmMzEwNjhkZjVmYTlkYzAwYzllMjJmNjUyZmRmN2U1ODFiZTIzNzRjMDVjMTNiOTNhOWRhMmVkYSJ9")
headers = requestHeader headers = requestHeader
} }
......
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