Commit 9a350d11 authored by Steven杜宇's avatar Steven杜宇

// 子女信息

parent 028d8c27
...@@ -62,43 +62,91 @@ class YHChildBasicInfoVC: YHBaseViewController { ...@@ -62,43 +62,91 @@ class YHChildBasicInfoVC: YHBaseViewController {
func loadBasicInfo() { func loadBasicInfo() {
guard let child = child else { return }
items.removeAll()
// 子女信息 // 子女信息
let title0 = YHFormTitleItem(type: .childInfo) let title0 = YHFormTitleItem(type: .childInfo)
let item00 = YHFormDetailItem(type: .childName) let item00 = YHFormDetailItem(type: .childName)
let item01 = YHFormDetailItem(type: .everName) item00.value = child.subsetName
let item02 = YHFormDetailItem(type: .befourMarryFirstName) item00.placeHolder = "请输入".local
let item01 = YHFormDetailItem(type: .everName, isNeed: false)
item01.value = child.usedName
item01.placeHolder = "请输入".local
let item02 = YHFormDetailItem(type: .befourMarryFirstName, isNeed: false)
item02.value = child.surname
item02.placeHolder = "请输入".local
let item03 = YHFormDetailItem(type: .gender) let item03 = YHFormDetailItem(type: .gender)
item03.value = child.sexName()
let item04 = YHFormDetailItem(type: .marriageState) let item04 = YHFormDetailItem(type: .marriageState)
item04.value = child.married
let item05 = YHFormDetailItem(type: .birthday) let item05 = YHFormDetailItem(type: .birthday)
item05.value = child.birthday
let item06 = YHFormDetailItem(type: .birthNation) let item06 = YHFormDetailItem(type: .birthNation)
item06.value = String(child.isBirthOverSeas())
let item07 = YHFormDetailItem(type: .birthCity) let item07 = YHFormDetailItem(type: .birthCity)
let arr0:[YHFormItemProtocol] = [title0, item00, item01, item02, item03, item04, item05, item06, item07]
// 职业
if child.isBirthOverSeas() {
item07.value = child.birthPlace?.foreign
item07.placeHolder = "请输入".local
} else {
item07.value = child.birthPlace?.area?.joined(separator: ",")
item07.placeHolder = "请选择".local
}
let arr0:[YHFormItemProtocol] = [title0, item00, item01, item02, item03, item04, item05, item06, item07]
// 职业信息
let title1 = YHFormTitleItem(type: .occupationInfo) let title1 = YHFormTitleItem(type: .occupationInfo)
let item10 = YHFormDetailItem(type: .occupation) let item10 = YHFormDetailItem(type: .occupation)
let item11 = YHFormDetailItem(type: .occupationName) item10.value = child.occupation
let arr1:[YHFormItemProtocol] = [title1, item10, item11] item10.placeHolder = "请选择".local
var arr1:[YHFormItemProtocol] = [title1, item10]
if child.isNowHaveJob() {
let item11 = YHFormDetailItem(type: .occupationName)
item11.value = child.occupationName
item11.placeHolder = "请输入".local
arr1.append(item11)
}
// 婚姻 // 是否前次婚姻子女
let title2 = YHFormTitleItem(type: .isPreviousMarriageChild) let title2 = YHFormTitleItem(type: .isPreviousMarriageChild)
let item20 = YHFormDetailItem(type: .isPreviousMarriageChild) let item20 = YHFormDetailItem(type: .isPreviousMarriageChild)
item20.value = String(child.isPreviousMarriageChild())
let arr2:[YHFormItemProtocol] = [title2, item20] let arr2:[YHFormItemProtocol] = [title2, item20]
// 在港信息 // 在港信息
let title3 = YHFormTitleItem(type: .inHongKongInfo) let title3 = YHFormTitleItem(type: .inHongKongInfo)
let item30 = YHFormDetailItem(type: .isNowInHK) let item30 = YHFormDetailItem(type: .isNowInHK)
let item31 = YHFormDetailItem(type: .stayHKDate) item30.value = String(child.isNowInHK())
let item32 = YHFormDetailItem(type: .roleInHK) var arr3:[YHFormItemProtocol] = [title3, item30]
let arr3:[YHFormItemProtocol] = [title3, item30, item31, item32]
if child.isNowInHK() { // 目前在港才显示 逗留期限和在港身份
let item31 = YHFormDetailItem(type: .stayHKDate)
item31.placeHolder = "请选择".local
item31.value = child.childInHk?.info
let item32 = YHFormDetailItem(type: .roleInHK)
item32.placeHolder = "请选择".local
item32.value = child.hkIdentity
arr3.append(contentsOf: [item31, item32])
}
// 香港身份证 // 香港身份证
let title4 = YHFormTitleItem(type: .hkIdentityCardInfo) let title4 = YHFormTitleItem(type: .hkIdentityCardInfo)
let item40 = YHFormDetailItem(type: .isHaveHkIdentityCard) let item40 = YHFormDetailItem(type: .isHaveHkIdentityCard)
let item41 = YHFormDetailItem(type: .hkIdentityCardNumber) item40.value = String(child.isHaveHKIdentityCard())
let arr4:[YHFormItemProtocol] = [title4, item40, item41] var arr4:[YHFormItemProtocol] = [title4, item40]
if child.isHaveHKIdentityCard() { // 办理过香港身份证才显示证号
let item41 = YHFormDetailItem(type: .hkIdentityCardNumber)
item41.value = child.hkIdentityCard
arr4.append(item41)
}
items.append(contentsOf: [arr0, arr1, arr2, arr3, arr4]) items.append(contentsOf: [arr0, arr1, arr2, arr3, arr4])
tableView.reloadData() tableView.reloadData()
...@@ -109,11 +157,21 @@ class YHChildBasicInfoVC: YHBaseViewController { ...@@ -109,11 +157,21 @@ class YHChildBasicInfoVC: YHBaseViewController {
return .title return .title
} }
if item is YHFormAddItem {
return .addItem
}
if item is YHFormDetailItem { if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem let detailItem = item as! YHFormDetailItem
if detailItem.type == .birthCity {
var isBirthOverSeas = false
if let child = child {
isBirthOverSeas = child.isBirthOverSeas()
}
if isBirthOverSeas {
return .inputText
} else {
return .selectSheet
}
}
if detailItem.type == .childName if detailItem.type == .childName
|| detailItem.type == .everName || detailItem.type == .everName
|| detailItem.type == .befourMarryFirstName || detailItem.type == .befourMarryFirstName
...@@ -123,7 +181,6 @@ class YHChildBasicInfoVC: YHBaseViewController { ...@@ -123,7 +181,6 @@ class YHChildBasicInfoVC: YHBaseViewController {
return .inputText return .inputText
} }
if detailItem.type == .birthday if detailItem.type == .birthday
|| detailItem.type == .birthCity
|| detailItem.type == .occupation || detailItem.type == .occupation
|| detailItem.type == .stayHKDate || detailItem.type == .stayHKDate
|| detailItem.type == .roleInHK || detailItem.type == .roleInHK
...@@ -178,39 +235,111 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -178,39 +235,111 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
return cell return cell
} }
if cellType == .inputText { // 输入文字cell if item is YHFormDetailItem {
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemInputTextCell.cellReuseIdentifier, for: indexPath) as! YHFormItemInputTextCell let detailItem = item as! YHFormDetailItem
cell.title = item.getTitle()
return cell
}
if cellType == .selectSheet { // 点击选择列表cell
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemSelectSheetCell.cellReuseIdentifier, for: indexPath) as! YHFormItemSelectSheetCell
cell.title = item.getTitle()
return cell
}
if cellType == .twoChoice { // 双项选择cell
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemDoubleChoiceCell.cellReuseIdentifier, for: indexPath) as! YHFormItemDoubleChoiceCell if cellType == .inputText { // 输入文字cell
cell.title = item.getTitle() let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemInputTextCell.cellReuseIdentifier, for: indexPath) as! YHFormItemInputTextCell
let answers = [YHFormChoiceItem(title: "是".local, isSelect: true), cell.isMust = detailItem.isNeed
YHFormChoiceItem(title: "否".local, isSelect: false)] cell.placeHolder = detailItem.placeHolder
cell.answerArr = answers cell.title = detailItem.getTitle()
return cell cell.text = detailItem.value
} cell.textChange = {
[weak self] (text, isEditEnd) in
if cellType == .addItem { // 新增item cell guard let self = self else { return }
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemAddCell.cellReuseIdentifier, for: indexPath) as! YHFormItemAddCell
cell.title = item.getTitle() if detailItem.type == .childName {
return cell self.child?.subsetName = text
}
} else if detailItem.type == .everName {
if cellType == .degreeDetailInfo { // 学位cell self.child?.usedName = text
} else if detailItem.type == .befourMarryFirstName {
self.child?.surname = text
} else if detailItem.type == .birthCity {
self.child?.birthPlace?.foreign = text
} else if detailItem.type == .occupationName {
self.child?.occupationName = text
} else if detailItem.type == .hkIdentityCardNumber {
self.child?.hkIdentityCard = text
}
if isEditEnd {
self.loadBasicInfo()
if let delegate = delegate {
delegate.saveInfo?()
}
}
}
return cell
}
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemDegreeInfoCell.cellReuseIdentifier, for: indexPath) as! YHFormItemDegreeInfoCell if cellType == .selectSheet { // 点击选择列表cell
cell.title = item.getTitle() let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemSelectSheetCell.cellReuseIdentifier, for: indexPath) as! YHFormItemSelectSheetCell
return cell cell.isMust = detailItem.isNeed
cell.placeHolder = detailItem.placeHolder
cell.title = detailItem.getTitle()
cell.detail = detailItem.value
return cell
}
if cellType == .twoChoice { // 双项选择cell
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemDoubleChoiceCell.cellReuseIdentifier, for: indexPath) as! YHFormItemDoubleChoiceCell
cell.isMust = detailItem.isNeed
cell.title = item.getTitle()
cell.answerArr = nil
if detailItem.type == .birthNation { // 出生国家
var select = false
if let value = detailItem.value {
select = Bool(value)!
}
let answers = [YHFormChoiceItem(title: "国内".local, isSelect: !select),
YHFormChoiceItem(title: "国外".local, isSelect: select)]
cell.answerArr = answers
cell.answerBlock = {
[weak self] (answers, index) in
guard let self = self else { return }
let selectItem = answers[index]
self.child?.setBirthOverSeas(selectItem.title == "国外".local)
self.loadBasicInfo()
if let delegate = delegate {
delegate.saveInfo?()
}
}
} else if detailItem.type == .isHaveHkIdentityCard || detailItem.type == .isNowInHK || detailItem.type == .isPreviousMarriageChild { // 是否办理过香港身份证 是否在岗 是否前次婚姻子女
var select = false
if let value = detailItem.value {
select = Bool(value)!
}
let answers = [YHFormChoiceItem(title: "是".local, isSelect: select),
YHFormChoiceItem(title: "否".local, isSelect: !select)]
cell.answerArr = answers
cell.answerBlock = {
[weak self] (answers, index) in
guard let self = self else { return }
let selectItem = answers[index]
let option = selectItem.title == "是".local
if detailItem.type == .isNowInHK {
self.child?.setNowIsInHK(option)
} else if detailItem.type == .isHaveHkIdentityCard {
self.child?.setHaveHKIdentityCard(option)
} else if detailItem.type == .isPreviousMarriageChild {
self.child?.setPreviousMarriageChild(option)
}
self.loadBasicInfo()
if let delegate = delegate {
delegate.saveInfo?()
}
}
}
return cell
}
} }
return createDefaultCell(indexPath) return createDefaultCell(indexPath)
} }
...@@ -268,8 +397,102 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -268,8 +397,102 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let vc = YHParentInfoVC() if !(0..<items.count).contains(indexPath.section) { return }
self.navigationController?.pushViewController(vc) let arr:[YHFormItemProtocol] = items[indexPath.section]
if !(0..<arr.count).contains(indexPath.row) { return }
let item = arr[indexPath.row]
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .birthday || detailItem.type == .stayHKDate { // 出生日期/获准滞留至
YHDatePickView.show(type: .yyyymmdd) { [weak self] date in
guard let self = self else { return }
if detailItem.type == .birthday {
self.child?.birthday = date
} else if detailItem.type == .stayHKDate {
self.child?.childInHk?.info = date
}
self.loadBasicInfo()
if let delegate = delegate {
delegate.saveInfo?()
}
}
} else if detailItem.type == .birthCity { // 出生城市
var isBirthOverSeas = false
if let child = child {
isBirthOverSeas = child.isBirthOverSeas()
}
// 出生国外时 出生城市是输入框
if isBirthOverSeas { return }
let vc = YHAddressViewController()
vc.backLocationStringController = {
[weak self] (string1, string2, string3, string4) in
guard let self = self else { return }
print("\(string1)\n\(string2)\n\(string3)\n\(string4)")
self.child?.birthPlace?.area = [string2, string3, string4]
self.loadBasicInfo()
if let delegate = delegate {
delegate.saveInfo?()
}
}
self.present(vc, animated: true)
} else if detailItem.type == .roleInHK { // 在港身份
let identity = self.child?.hkIdentity ?? ""
YHFormPickerView.show(type: .identity, selectTitle:identity ) {
[weak self] selectType in
guard let self = self else { return }
self.child?.hkIdentity = selectType.title
self.loadBasicInfo()
if let delegate = delegate {
delegate.saveInfo?()
}
}
} else if detailItem.type == .occupation { // 职业
let occupation = self.child?.occupation ?? ""
YHFormPickerView.show(type: .occupation, selectTitle:occupation ) {
[weak self] selectType in
guard let self = self else { return }
self.child?.occupation = selectType.title
self.loadBasicInfo()
if let delegate = delegate {
delegate.saveInfo?()
}
}
} else if detailItem.type == .gender { // 性别
guard let child = child else { return }
let isMale = child.isMale()
let selectType:YHFormPickerViewSubType = isMale ? .gender(.male) : .gender(.female)
YHFormPickerView.show(type: .gender, selectType:selectType) {
[weak self] selectType in
guard let self = self else { return }
let selectMale = (selectType.index == YHFormPickerViewSubType.gender(.male).index)
self.child?.setMale(selectMale)
self.loadBasicInfo()
if let delegate = delegate {
delegate.saveInfo?()
}
}
} else if detailItem.type == .marriageState { // 婚姻
let marriage = self.child?.married
YHFormPickerView.show(type: .marriage, selectTitle:marriage) {
[weak self] selectType in
guard let self = self else { return }
self.child?.married = selectType.title
self.loadBasicInfo()
if let delegate = delegate {
delegate.saveInfo?()
}
}
}
}
} }
func createCorner(cell:UITableViewCell, arr:Array<Any>, indexPath:IndexPath) { func createCorner(cell:UITableViewCell, arr:Array<Any>, indexPath:IndexPath) {
......
...@@ -118,14 +118,16 @@ class YHSpouseBasicInfoVC: YHBaseViewController { ...@@ -118,14 +118,16 @@ class YHSpouseBasicInfoVC: YHBaseViewController {
let item10 = YHFormDetailItem(type: .occupation) let item10 = YHFormDetailItem(type: .occupation)
item10.value = spouse.occupation item10.value = spouse.occupation
item10.placeHolder = "请输入".local item10.placeHolder = "请输入".local
var arr1:[YHFormItemProtocol] = [title1, item10]
let item11 = YHFormDetailItem(type: .occupationName)
item11.value = spouse.occupationName
item11.placeHolder = "请输入".local
let arr1:[YHFormItemProtocol] = [title1, item10, item11]
// 职业信息 if spouse.isNowHaveJob() {
let item11 = YHFormDetailItem(type: .occupationName)
item11.value = spouse.occupationName
item11.placeHolder = "请输入".local
arr1.append(item11)
}
// 学位信息
let title2 = YHFormTitleItem(type: .degreeInfo) let title2 = YHFormTitleItem(type: .degreeInfo)
let item20 = YHFormDetailItem(type: .ownDegree) let item20 = YHFormDetailItem(type: .ownDegree)
item20.placeHolder = "请选择".local item20.placeHolder = "请选择".local
......
...@@ -523,7 +523,7 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -523,7 +523,7 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
var operatorAme: SmartAny? var operatorAme: SmartAny?
// 香港身份证号 // 香港身份证号
var hkIdentityCard: String? var hkIdentityCard: String?
// 性别 // 性别 男:1 女:2
var sex: Int = 0 var sex: Int = 0
// 婚姻状况 // 婚姻状况
var married: String? var married: String?
...@@ -534,6 +534,7 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -534,6 +534,7 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
// 香港身份证信息 // 香港身份证信息
var childHasHkId: YHChildStepchildClass? var childHasHkId: YHChildStepchildClass?
// 是否前次婚姻子女
var childStepchild: YHChildStepchildClass? var childStepchild: YHChildStepchildClass?
// 在港信息 // 在港信息
var childInHk: YHChildStepchildClass? var childInHk: YHChildStepchildClass?
...@@ -721,6 +722,34 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -721,6 +722,34 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
self.custody = val ? 1 : 0 self.custody = val ? 1 : 0
} }
// 是否是男性
func isMale() -> Bool {
return self.sex == 1
}
func setMale(_ val: Bool) {
self.sex = (val ? 1 : 2)
}
func sexName() -> String? {
if self.sex == 1 {
return "男".local
} else if self.sex == 2 {
return "女".local
}
return ""
}
// 是否前一次婚姻子女
func isPreviousMarriageChild() -> Bool {
return self.childStepchild?.has == "Y"
}
func setPreviousMarriageChild(_ val: Bool) {
self.childStepchild?.has = (val ? "Y" : "N")
}
var relationType:YHFamilyMemberType { var relationType:YHFamilyMemberType {
if relation == "1" { if relation == "1" {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment