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

// 家庭成员信息model 更新

parent 6b0bd7e5
......@@ -10,7 +10,7 @@ import UIKit
class YHBrotherInfoVC: YHBaseViewController {
var brotherInfo:YHBrother?
var brotherInfo:YHFamilyMember?
var items:[[YHFormItemProtocol]] = [[YHFormItemProtocol]]()
......
......@@ -10,7 +10,7 @@ import UIKit
class YHCertificateViewController: YHBaseViewController {
var spouse:YHSpouse?
var spouse:YHFamilyMember?
var cardInfo: YHCNIdentityCard?
......
......@@ -10,7 +10,7 @@ import UIKit
class YHChildBasicInfoVC: YHBaseViewController {
var child:YHChild?
var child:YHFamilyMember?
var cardInfo: YHCNIdentityCard?
......
......@@ -10,7 +10,7 @@ import UIKit
class YHChildInitialInfoVC: YHBaseViewController {
var child:YHChild?
var child:YHFamilyMember?
lazy var items:[[YHFormItemProtocol]] = [[YHFormItemProtocol]]()
......
......@@ -17,7 +17,7 @@ enum YHFormTitleItemEditType:Int {
class YHFamilyMemberFormVC: YHBaseViewController {
var familyMemberInfo: YHFamilyMemberInfo?
var familyMemberInfo: YHFamilyMemberGroupInfo?
var isChildsEditMode: YHFormTitleItemEditType = .none
var isBrothersEditMode: YHFormTitleItemEditType = .none
......@@ -269,7 +269,7 @@ class YHFamilyMemberFormVC: YHBaseViewController {
]
] as [String : Any]
familyMemberInfo = YHFamilyMemberInfo.deserialize(dict: dic)
familyMemberInfo = YHFamilyMemberGroupInfo.deserialize(dict: dic)
loadFamilyMember()
}
......@@ -280,6 +280,8 @@ class YHFamilyMemberFormVC: YHBaseViewController {
// 配偶section
if let sponse = familyMemberInfo?.spouse {
// 信息未填写时服务器返回的relation=0
sponse.relation = String(format: "%d", YHFamilyMemberType.spouse.rawValue)
let sponseArray:[YHFormItemProtocol] = [YHFormTitleItem(type: .sponse), sponse]
items.append(sponseArray)
}
......@@ -287,9 +289,13 @@ class YHFamilyMemberFormVC: YHBaseViewController {
// 父母section
var parents = [YHFormItemProtocol]()
if let father = familyMemberInfo?.father {
// 信息未填写时服务器返回的relation=0
father.relation = String(format: "%d", YHFamilyMemberType.father.rawValue)
parents.append(father)
}
if let mother = familyMemberInfo?.mother {
// 信息未填写时服务器返回的relation=0
mother.relation = String(format: "%d", YHFamilyMemberType.mother.rawValue)
parents.append(mother)
}
if !parents.isEmpty {
......@@ -308,6 +314,10 @@ class YHFamilyMemberFormVC: YHBaseViewController {
// 兄妹section
var brotherArr:[YHFormItemProtocol] = [YHFormTitleItem(type: .brother), YHFormAddItem(type: .addBrother)]
if let brothers = familyMemberInfo?.brother, !brothers.isEmpty {
for brother in brothers {
// 信息未填写时服务器返回的relation=0
brother.relation = String(format: "%d", YHFamilyMemberType.brother.rawValue)
}
brotherArr.insert(contentsOf: brothers, at:1)
}
items.append(brotherArr)
......@@ -391,7 +401,7 @@ extension YHFamilyMemberFormVC {
"certificates": []
] as [String : Any]
let brother:YHBrother = YHBrother.deserialize(dict: dict)!
let brother:YHFamilyMember = YHFamilyMember.deserialize(dict: dict)!
if var brothers = familyMemberInfo?.brother {
brothers.append(brother)
......@@ -466,7 +476,7 @@ extension YHFamilyMemberFormVC {
"certificates":[]
] as [String : Any]
let child = YHChild.deserialize(dict: dict)!
let child = YHFamilyMember.deserialize(dict: dict)!
if var childs = familyMemberInfo?.child {
childs.append(child)
familyMemberInfo!.child = childs
......@@ -534,22 +544,24 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
}
// 配偶父母子女兄妹具体条目
if item is YHParent || item is YHChild || item is YHSpouse || item is YHBrother {
if item is YHFamilyMember {
let detailItem = item as! YHFamilyMember
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemEnterDetailCell.cellReuseIdentifier, for: indexPath) as! YHFormItemEnterDetailCell
cell.isShowDeleteBtn = false
cell.deleteBlock = nil
if item is YHChild || item is YHBrother {
if detailItem.relationType == .child || detailItem.relationType == .brother {
if item is YHChild {
if detailItem.relationType == .child {
cell.isShowDeleteBtn = (isChildsEditMode == .canCancel)
} else if item is YHBrother {
} else if detailItem.relationType == .brother {
cell.isShowDeleteBtn = (isBrothersEditMode == .canCancel)
}
// 删除子女兄妹处理
cell.deleteBlock = { [weak self] in
if item is YHChild {
if detailItem.relationType == .child {
let childCount = self?.familyMemberInfo?.child?.count ?? 0
// 因为子女兄妹section第一行都是标题所以row-1
if (indexPath.row-1 < childCount) {
......@@ -557,7 +569,7 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
self?.isChildsEditMode = .none
self?.isBrothersEditMode = .none
}
} else if item is YHBrother {
} else if detailItem.relationType == .brother {
let brotherCount = self?.familyMemberInfo?.brother?.count ?? 0
// 因为子女兄妹section第一行都是标题所以row-1
......@@ -629,11 +641,6 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
IQKeyboardManager.shared.enable = true
let caseList = YHFormTitleItemType.allCases.map({ "\($0)" }).joined(separator: ", ")
print(caseList)
let arr = items[indexPath.section]
let item:YHFormItemProtocol = arr[indexPath.row]
......@@ -652,42 +659,42 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
}
return
}
if item is YHFamilyMember {
let detailItem = item as! YHFamilyMember
// 父母
if item is YHParent {
let parent = item as! YHParent
if detailItem.relationType == .father || detailItem.relationType == .mother {
let vc = YHParentInfoVC()
vc.parentInfo = parent
vc.parentInfo = detailItem
self.navigationController?.pushViewController(vc)
return
}
// 配偶
if item is YHSpouse {
let spouse = item as! YHSpouse
if detailItem.relationType == .spouse {
let vc = YHSpouseInitialInfoVC()
vc.spouse = spouse
vc.spouse = detailItem
self.navigationController?.pushViewController(vc)
return
}
// 子女
if item is YHChild {
let child = item as! YHChild
if detailItem.relationType == .child {
let vc = YHChildInitialInfoVC()
vc.child = child
vc.child = detailItem
self.navigationController?.pushViewController(vc)
return
}
// 兄弟姐妹
if item is YHBrother {
let brother = item as! YHBrother
if detailItem.relationType == .brother {
let vc = YHBrotherInfoVC()
vc.brotherInfo = brother
vc.brotherInfo = detailItem
self.navigationController?.pushViewController(vc)
return
}
}
}
func createCorner(cell:UITableViewCell, arr:Array<Any>, indexPath:IndexPath) {
// 设置每块section圆角
......
......@@ -10,7 +10,7 @@ import UIKit
class YHParentInfoVC: YHBaseViewController {
var parentInfo: YHParent?
var parentInfo: YHFamilyMember?
var items:[[YHFormItemProtocol]] = [[YHFormItemProtocol]]()
......@@ -72,7 +72,7 @@ class YHParentInfoVC: YHBaseViewController {
// 父母亲信息
var arr1 = [YHFormItemProtocol]()
if parentInfo.sex == -1 { // 父亲
if parentInfo.relationType == .father { // 父亲
let title1:YHFormItemProtocol = YHFormTitleItem(type: .fatherInfo)
let item10:YHFormItemProtocol = YHFormDetailItem(type: .fatherName)
arr1.append(contentsOf: [title1, item10])
......
......@@ -24,7 +24,7 @@ enum HKFormItemCellType: Int {
class YHSpouseBasicInfoVC: YHBaseViewController {
var spouse:YHSpouse?
var spouse:YHFamilyMember?
var cardInfo: YHCNIdentityCard?
......
......@@ -10,7 +10,7 @@ import UIKit
class YHSpouseInitialInfoVC: YHBaseViewController {
var spouse:YHSpouse?
var spouse:YHFamilyMember?
lazy var items:[[YHFormItemProtocol]] = [[YHFormItemProtocol]]()
......
......@@ -429,7 +429,7 @@ class YHWelcome: SmartCodable {
var code: Int = -1
var msg: String = ""
var data: YHFamilyMemberInfo?
var data: YHFamilyMemberGroupInfo?
enum CodingKeys: String, CodingKey {
case code = "code"
......@@ -443,13 +443,13 @@ class YHWelcome: SmartCodable {
}
// MARK: - 家庭成员 YHData
class YHFamilyMemberInfo: SmartCodable {
class YHFamilyMemberGroupInfo: SmartCodable {
var father: YHParent?
var mother: YHParent?
var spouse: YHSpouse?
var child: [YHChild]?
var brother: [YHBrother]?
var father: YHFamilyMember?
var mother: YHFamilyMember?
var spouse: YHFamilyMember?
var child: [YHFamilyMember]?
var brother: [YHFamilyMember]?
enum CodingKeys: String, CodingKey {
case father = "father"
......@@ -464,9 +464,18 @@ class YHFamilyMemberInfo: SmartCodable {
}
}
// MARK: - 子女初始信息 YHChild
class YHChild: SmartCodable, YHFormItemProtocol {
enum YHFamilyMemberType: Int {
// 与后台relation字段一致
// 1父亲 2母亲 3配偶 4子女 5兄弟姐妹
case none = 0
case father = 1
case mother = 2
case spouse = 3
case child = 4
case brother = 5
}
class YHFamilyMember: SmartCodable, YHFormItemProtocol {
var id: Int = -1
var deceased: Int = -1
var custody: Int = -1
......@@ -474,27 +483,57 @@ class YHChild: SmartCodable, YHFormItemProtocol {
var orderId: Int = -1
var relation: String?
var hasDegree: String?
var hasDegreeJson: [SmartAny]?
// mark any
// var hasDegreeJson: [YHHasDegreeJson]?
var hasDegreeJson: SmartAny?
var follow: Int = -1
var statement: Int = -1
var subsetName: String?
var subsetNamePinyin: YHSubsetNamePinyin?
// mark any
// var subsetNamePinyin: YHSubsetNamePinyin?
var subsetNamePinyin: SmartAny?
var usedName: String?
var birthday: String?
var birthPlaceAboard: Int = -1
var birthPlace: YHAddress?
// mark any
// var birthPlace: YHAddress?
var birthPlace: SmartAny?
var occupation: String?
var occupationName: String?
// mark any
var operatorAme: SmartAny?
var childHasHkId: YHChildStepchildClass?
// mark any
// var childHasHkId: YHChildStepchildClass?
var childHasHkId: SmartAny?
var hkIdentityCard: String?
var sex: Int = -1
var married: String?
var nows: Int = -1
var address: YHAddress?
var childStepchild: YHChildStepchildClass?
var childInHk: YHChildStepchildClass?
var countryIdentity: [SmartAny]?
// mark any
// var address: YHAddress?
var address: SmartAny?
// mark any
// var childStepchild: YHChildStepchildClass?
var childStepchild: SmartAny?
// mark any
// var childInHk: YHChildStepchildClass?
var childInHk: SmartAny?
// mark any
var countryIdentity: SmartAny?
var hkIdentity: String?
var hkIdentityOther: String?
var liveCountry: String?
......@@ -504,7 +543,10 @@ class YHChild: SmartCodable, YHFormItemProtocol {
var notFillNum: Int = -1
var isLiveOverseaYear: Int = -1
var surname: String?
var certificates: [SmartAny]?
// mark any
// var certificates: YHCertificates?
var certificates: SmartAny?
enum CodingKeys: String, CodingKey {
case id = "id"
......@@ -551,105 +593,30 @@ class YHChild: SmartCodable, YHFormItemProtocol {
}
// YHFamilyMemberProtocol
func getTitle() -> String {
return "配偶".local
}
var relationType:YHFamilyMemberType {
func getSubTitle() -> String {
return ""
if relation == "1" {
return .father
} else if relation == "2" {
return .mother
} else if relation == "3" {
return .spouse
} else if relation == "4" {
return .child
} else if relation == "5" {
return .brother
}
}
// MARK: - YHBrother
class YHBrother: SmartCodable, YHFormItemProtocol {
var id: Int? = -1
var deceased: Int? = -1
var custody: Int? = -1
var nationality: String?
var orderId: Int? = -1
var relation: String?
var hasDegree: String?
var hasDegreeJson: [SmartAny]?
var follow: Int? = -1
var statement: Int? = -1
var subsetName: String?
var subsetNamePinyin: YHSubsetNamePinyin?
var usedName: String?
var birthday: String?
var birthPlaceAboard: Int? = -1
var birthPlace: YHAddress?
var occupation: String?
var occupationName: String?
var operatorAme: SmartAny?
var childHasHkId: YHChildStepchildClass?
var hkIdentityCard: String?
var sex: Int? = -1
var married: String?
var nows: Int? = -1
var address: YHAddress?
var childStepchild: YHChildStepchildClass?
var childInHk: YHChildStepchildClass?
var countryIdentity: [SmartAny]?
var hkIdentity: String?
var hkIdentityOther: String?
var liveCountry: String?
var isHandled: Int? = -1
var finishFollow: Int? = -1
var step: Int? = -1
var notFillNum: Int? = -1
var isLiveOverseaYear: Int? = -1
var surname: String?
var certificates: [SmartAny]?
enum CodingKeys: String, CodingKey {
case id = "id"
case deceased = "deceased"
case custody = "custody"
case nationality = "nationality"
case orderId = "order_id"
case relation = "relation"
case hasDegree = "has_degree"
case hasDegreeJson = "has_degree_json"
case follow = "follow"
case statement = "statement"
case subsetName = "subset_name"
case subsetNamePinyin = "subset_name_pinyin"
case usedName = "used_name"
case birthday = "birthday"
case birthPlaceAboard = "birth_place_aboard"
case birthPlace = "birth_place"
case occupation = "occupation"
case occupationName = "occupation_name"
case operatorAme = "operator_ame"
case childHasHkId = "child_has_hk_id"
case hkIdentityCard = "hk_identity_card"
case sex = "sex"
case married = "married"
case nows = "nows"
case address = "address"
case childStepchild = "child_stepchild"
case childInHk = "child_in_hk"
case countryIdentity = "country_identity"
case hkIdentity = "hk_identity"
case hkIdentityOther = "hk_identity_other"
case liveCountry = "live_country"
case isHandled = "is_handled"
case finishFollow = "finish_follow"
case step = "step"
case notFillNum = "not_fill_num"
case isLiveOverseaYear = "is_live_oversea_year"
case surname = "surname"
case certificates = "certificates"
}
required init() {
return .none
}
// YHFamilyMemberProtocol
func getTitle() -> String {
return "兄弟姐妹".local
// 1父亲 2 母亲 3 配偶 4子女 5兄弟姐妹
if let relation = relation {
return relation.local
}
return ""
}
func getSubTitle() -> String {
......@@ -706,199 +673,6 @@ class YHSubsetNamePinyin: SmartCodable {
}
}
// MARK: - 父母信息 YHParent
class YHParent: SmartCodable, YHFormItemProtocol {
var id: Int = -1
var deceased: Int = -1
var custody: Int = -1
var nationality: String?
var orderId: Int = -1
var relation: Int = -1
var hasDegree: Int = -1
var hasDegreeJson: [SmartAny]?
var follow: Int = -1
var statement: Int = -1
var subsetName: String?
var subsetNamePinyin: String?
var usedName: String?
var birthday: String?
var birthPlaceAboard: Int = -1
var birthPlace: [SmartAny]?
var occupation: String?
var occupationName: String?
var operatorAme: String?
var childHasHkId: [SmartAny]?
var hkIdentityCard: String?
var sex: Int = -1
var married: Int = -1
var nows: Int = -1
var address: [SmartAny]?
var childStepchild: [SmartAny]?
var childInHk: [SmartAny]?
var countryIdentity: [SmartAny]?
var hkIdentity: String?
var hkIdentityOther: String?
var liveCountry: String?
var isHandled: Int = -1
var finishFollow: Int = -1
var step: Int = -1
var notFillNum: Int = -1
var certificates: [SmartAny]?
var isLiveOverseaYear: Int = -1
enum CodingKeys: String, CodingKey {
case id = "id"
case deceased = "deceased"
case custody = "custody"
case nationality = "nationality"
case orderId = "order_id"
case relation = "relation"
case hasDegree = "has_degree"
case hasDegreeJson = "has_degree_json"
case follow = "follow"
case statement = "statement"
case subsetName = "subset_name"
case subsetNamePinyin = "subset_name_pinyin"
case usedName = "used_name"
case birthday = "birthday"
case birthPlaceAboard = "birth_place_aboard"
case birthPlace = "birth_place"
case occupation = "occupation"
case occupationName = "occupation_name"
case operatorAme = "operator_ame"
case childHasHkId = "child_has_hk_id"
case hkIdentityCard = "hk_identity_card"
case sex = "sex"
case married = "married"
case nows = "nows"
case address = "address"
case childStepchild = "child_stepchild"
case childInHk = "child_in_hk"
case countryIdentity = "country_identity"
case hkIdentity = "hk_identity"
case hkIdentityOther = "hk_identity_other"
case liveCountry = "live_country"
case isHandled = "is_handled"
case finishFollow = "finish_follow"
case step = "step"
case notFillNum = "not_fill_num"
case certificates = "certificates"
case isLiveOverseaYear = "is_live_oversea_year"
}
required init() {
}
// YHFamilyMemberProtocol
func getTitle() -> String {
if sex == 0 {
return "父亲".local
}
return "母亲".local
}
func getSubTitle() -> String {
return ""
}
}
// MARK: - 配偶 YHSpouse
class YHSpouse: SmartCodable, YHFormItemProtocol {
var id: Int = -1
var deceased: Int = -1
var custody: Int = -1
var nationality: String?
var orderId: Int = -1
var relation: String?
var hasDegree: String?
var hasDegreeJson: [YHHasDegreeJson]?
var follow: Int = -1
var statement: Int = -1
var subsetName: String?
var subsetNamePinyin: YHSubsetNamePinyin?
var usedName: String?
var birthday: String?
var birthPlaceAboard: Int = -1
var birthPlace: YHAddress?
var occupation: String?
var occupationName: String?
var operatorAme: SmartAny?
var childHasHkId: YHPurpleChild?
var hkIdentityCard: String?
var sex: Int = -1
var married: String?
var nows: Int = -1
var address: YHAddress?
var childStepchild: YHChildStepchildClass?
var childInHk: YHPurpleChild?
var countryIdentity: [SmartAny]?
var hkIdentity: String?
var hkIdentityOther: String?
var liveCountry: String?
var isHandled: Int = -1
var finishFollow: Int = -1
var step: Int = -1
var notFillNum: Int = -1
var isLiveOverseaYear: Int = -1
var surname: String?
var certificates: YHCertificates?
enum CodingKeys: String, CodingKey {
case id = "id"
case deceased = "deceased"
case custody = "custody"
case nationality = "nationality"
case orderId = "order_id"
case relation = "relation"
case hasDegree = "has_degree"
case hasDegreeJson = "has_degree_json"
case follow = "follow"
case statement = "statement"
case subsetName = "subset_name"
case subsetNamePinyin = "subset_name_pinyin"
case usedName = "used_name"
case birthday = "birthday"
case birthPlaceAboard = "birth_place_aboard"
case birthPlace = "birth_place"
case occupation = "occupation"
case occupationName = "occupation_name"
case operatorAme = "operator_ame"
case childHasHkId = "child_has_hk_id"
case hkIdentityCard = "hk_identity_card"
case sex = "sex"
case married = "married"
case nows = "nows"
case address = "address"
case childStepchild = "child_stepchild"
case childInHk = "child_in_hk"
case countryIdentity = "country_identity"
case hkIdentity = "hk_identity"
case hkIdentityOther = "hk_identity_other"
case liveCountry = "live_country"
case isHandled = "is_handled"
case finishFollow = "finish_follow"
case step = "step"
case notFillNum = "not_fill_num"
case isLiveOverseaYear = "is_live_oversea_year"
case surname = "surname"
case certificates = "certificates"
}
required init() {
}
// YHFamilyMemberProtocol
func getTitle() -> String {
return "配偶".local
}
func getSubTitle() -> String {
return ""
}
}
// MARK: - YHCertificates
class YHCertificates: SmartCodable {
......@@ -942,20 +716,6 @@ class YHCNIdentityCard: SmartCodable {
}
}
// MARK: - YHPurpleChild
class YHPurpleChild: SmartCodable {
required init() {
}
var has: String?
enum CodingKeys: String, CodingKey {
case has = "has"
}
}
// MARK: - YHHasDegreeJson
class YHHasDegreeJson: SmartCodable {
......
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