Commit 379921ee authored by Steven杜宇's avatar Steven杜宇

// 证书

parent 23ca0164
......@@ -66,54 +66,111 @@ class YHCertificateInfoController: YHBaseViewController, YHFamilyMemberProtol {
loadInfo()
}
func loadInfo() {
func showLogic() -> (showHK: Bool, isHKMust: Bool, showPassport: Bool, isPassportMust: Bool) {
guard let familyMember = familyMember else { return (false, false, false, false) }
// 中国国籍&居住国内、中国国籍&居住国外不满一年
// 1) 办理过港澳通
// 证件上传:身份证+港澳通
// 证件信息:港澳通行证必填(无身份证、护照)
//
// 2) 没办理过港澳通
// 证件上传:身份证
// 证件信息:港澳通行证非必填(无身份证、护照)
//
// 中国国籍&居住国外满一年
// 证件上传:护照+身份证
// 证件信息:护照必填(无身份证)
//
// 外籍国籍(无论是否在国外居住满一年):
// 证件上传:护照
// 证件信息:仅护照且必填(无身份证)
// 是否显示港澳通行证
var showHK = false
// 港澳通行证是否必填
var isHKMust = false
// 是否显示护照
var showPassport = false
// 护照是否必填
var isPassportMust = false
if familyMember.nationality.contains("中国") { // 中国国籍
let isLiveInChina = familyMember.address.country.contains("中国".local)
if isLiveInChina { // 居住国内
if !familyMember.certificates.hkMacaoPass.number.isEmpty { // 没办理过港澳通行证
// 证件信息:港澳通行证非必填(无身份证、护照)
showHK = true
isHKMust = false
} else { // 办理过港澳通行证
// 证件信息:港澳通行证必填(无身份证、护照)
showHK = true
isHKMust = true
}
} else { // 居住国外
if !familyMember.isOverSeasOver1Year() { // 居住国外不满一年
if !familyMember.certificates.hkMacaoPass.number.isEmpty { // 没办理过港澳通行证
// 证件信息:港澳通行证非必填(无身份证、护照)
showHK = true
isHKMust = false
} else { // 办理过港澳通行证
// 证件信息:港澳通行证必填(无身份证、护照)
showHK = true
isHKMust = true
}
} else { // 居住国外满一年
// 证件信息:护照必填(无身份证)
showPassport = true
isPassportMust = true
}
}
} else { // 外国国籍
// 证件信息:仅护照且必填(无身份证)
showPassport = true
isPassportMust = true
}
return (showHK, isHKMust, showPassport, isPassportMust)
}
func loadInfo() {
guard let familyMember = familyMember else { return }
items.removeAll()
// 中国身份证
let isChinaCardMust = familyMember.isChinese() && familyMember.relationType != .child
let title0 = YHFormTitleItem(type: .chinaIdCardInfo)
let item01 = YHFormDetailItem(type: .chinaIdentityCardNumber, isNeed:isChinaCardMust, value:familyMember.certificates.cnIdentityCard.number, tips: "请输入正确的中国身份证号".local)
let item02 = YHFormDetailItem(type: .certificateSignPlace, isNeed:isChinaCardMust, value:familyMember.certificates.cnIdentityCard.issueAt, tips: "请输入签发地".local)
let item03 = YHFormDetailItem(type: .certificateSignDate, isNeed:isChinaCardMust, value:familyMember.certificates.cnIdentityCard.issueDateStartAt, tips: "请选择签发日期".local)
let item04 = YHFormDetailItem(type: .certificateValidDate, isNeed:isChinaCardMust, value:familyMember.certificates.cnIdentityCard.issueDateEndAt, tips: "请选择签发日期".local)
let arr0:[YHFormItemProtocol] = [title0, item01, item02, item03, item04]
items.append(arr0)
let a = showLogic()
let showHK = a.showHK
let isHKMust = a.isHKMust
let showPassport = a.showPassport
let isPassportMust = a.isPassportMust
// 港澳通行证 非必须
if familyMember.isNeedHandleHKPassPort() {
if showHK { // 显示港澳通行证
let title1 = YHFormTitleItem(type: .hkAndMacaoPassport)
let item10 = YHFormDetailItem(type: .traverlPassportNumber, value: familyMember.certificates.hkMacaoPass.number, tips:"请输入证件号码".local)
let item11 = YHFormDetailItem(type: .certificateSignPlace, value: familyMember.certificates.hkMacaoPass.issueAt, tips:"请输入签发地".local)
let item12 = YHFormDetailItem(type: .certificateSignDate, value: familyMember.certificates.hkMacaoPass.issueDateStartAt, tips:"请选择签发日期".local)
let item13 = YHFormDetailItem(type: .certificateValidDate, value: familyMember.certificates.hkMacaoPass.issueDateEndAt, tips:"请选择届满日期".local)
let item10 = YHFormDetailItem(type: .traverlPassportNumber, isNeed:isHKMust, value: familyMember.certificates.hkMacaoPass.number, tips:"请输入证件号码".local)
let item11 = YHFormDetailItem(type: .certificateSignPlace, isNeed:isHKMust, value: familyMember.certificates.hkMacaoPass.issueAt, tips:"请输入签发地".local)
let item12 = YHFormDetailItem(type: .certificateSignDate, isNeed:isHKMust, value: familyMember.certificates.hkMacaoPass.issueDateStartAt, tips:"请选择签发日期".local)
let item13 = YHFormDetailItem(type: .certificateValidDate, isNeed:isHKMust, value: familyMember.certificates.hkMacaoPass.issueDateEndAt, tips:"请选择届满日期".local)
let arr1:[YHFormItemProtocol] = [title1, item10, item11, item12, item13]
items.append(arr1)
}
// 护照及其他旅行证件 信息必有
let isPassPortMust = !familyMember.isChinese()
let title2 = YHFormTitleItem(type: .passPortOrTravelInfo)
// 证件类别名称
var value = ""
let passPortType = self.familyMember?.certificates.passport.passPortType ?? 0
if let item = YHSheetPickerView.getItem(type:.certificate, index:passPortType) {
value = item.title
if showPassport { // 显示护照
let title2 = YHFormTitleItem(type: .passPortOrTravelInfo)
let item21 = YHFormDetailItem(type: .certificateNumber, isNeed: isPassportMust, value: familyMember.certificates.passport.number, tips: "请输入证件号码".local)
let item22 = YHFormDetailItem(type: .certificateSignPlace, isNeed: isPassportMust, value: familyMember.certificates.passport.issueAt, tips:"请输入签发地".local)
let item23 = YHFormDetailItem(type: .certificateSignDate, isNeed: isPassportMust, value:familyMember.certificates.passport.issueDateStartAt, tips:"请选择签发日期".local)
let item24 = YHFormDetailItem(type: .certificateValidDate, isNeed: isPassportMust, value:familyMember.certificates.passport.issueDateEndAt,tips:"请选择届满日期".local)
let arr2:[YHFormItemProtocol] = [title2, item21, item22, item23, item24]
items.append(arr2)
}
let item20 = YHFormDetailItem(type: .certificateType, isNeed: isPassPortMust, value:value, tips:"请选择证件类别".local)
let item21 = YHFormDetailItem(type: .certificateNumber, isNeed: isPassPortMust, value: familyMember.certificates.passport.number, tips: "请输入证件号码".local)
let item22 = YHFormDetailItem(type: .certificateSignPlace, isNeed: isPassPortMust, value: familyMember.certificates.passport.issueAt, tips:"请输入签发地".local)
let item23 = YHFormDetailItem(type: .certificateSignDate, isNeed: isPassPortMust, value:familyMember.certificates.passport.issueDateStartAt, tips:"请选择签发日期".local)
let item24 = YHFormDetailItem(type: .certificateValidDate, isNeed: isPassPortMust, value:familyMember.certificates.passport.issueDateEndAt,tips:"请选择届满日期".local)
let arr2:[YHFormItemProtocol] = [title2, item20, item21, item22, item23, item24]
items.append(arr2)
tableView.reloadData()
}
}
extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSource {
......@@ -141,31 +198,31 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
let titleItem = item as! YHFormTitleItem
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemTitleCell.cellReuseIdentifier, for: indexPath) as! YHFormItemTitleCell
var isNeedText = ""
if titleItem.type == .chinaIdCardInfo {
if let familyMember = familyMember {
let isChinaCardMust = familyMember.isChinese() && familyMember.relationType != .child
isNeedText = isChinaCardMust ? "(必填)" : "(选填)"
}
} else if titleItem.type == .hkAndMacaoPassport {
if let familyMember = familyMember {
isNeedText = familyMember.isNeedHandleHKPassPort() ? "(必填)" : "(选填)"
}
} else if titleItem.type == .passPortOrTravelInfo {
if let familyMember = familyMember {
let isPassPortMust = !familyMember.isChinese()
isNeedText = isPassPortMust ? "(必填)" : "(选填)"
}
}
// var isNeedText = ""
// if titleItem.type == .chinaIdCardInfo {
// if let familyMember = familyMember {
// let isChinaCardMust = familyMember.isChinese() && familyMember.relationType != .child
// isNeedText = isChinaCardMust ? "(必填)" : "(选填)"
// }
//
// } else if titleItem.type == .hkAndMacaoPassport {
// if let familyMember = familyMember {
// isNeedText = familyMember.isNeedHandleHKPassPort() ? "(必填)" : "(选填)"
// }
//
// } else if titleItem.type == .passPortOrTravelInfo {
// if let familyMember = familyMember {
// let isPassPortMust = !familyMember.isChinese()
// isNeedText = isPassPortMust ? "(必填)" : "(选填)"
// }
// }
var title = ""
if isNeedText.isEmpty {
title = item.getTitle()
} else {
title = "\(item.getTitle())\(isNeedText)"
}
var title = item.getTitle()
// if isNeedText.isEmpty {
// title = item.getTitle()
// } else {
// title = "\(item.getTitle())\(isNeedText)"
// }
cell.setTitleAndSubTitle(title: title)
return cell
}
......@@ -464,20 +521,14 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
func checkIntegrity() -> Bool {
guard let familyMember = familyMember else { return false}
let a = showLogic()
let showHK = a.showHK
let isHKMust = a.isHKMust
let showPassport = a.showPassport
let isPassportMust = a.isPassportMust
let isChinaCardMust = familyMember.isChinese() && familyMember.relationType != .child
if isChinaCardMust {
if familyMember.certificates.cnIdentityCard.number.count != 18
|| familyMember.certificates.cnIdentityCard.issueAt.count <= 0
|| familyMember.certificates.cnIdentityCard.issueDateStartAt.count <= 0
|| familyMember.certificates.cnIdentityCard.issueDateEndAt.count <= 0
{
return false
}
}
// 如果选了办理过港澳通行证,则需要验证港澳通行证
if familyMember.isNeedHandleHKPassPort() {
if showHK, isHKMust {
if familyMember.certificates.hkMacaoPass.number.count <= 0
|| familyMember.certificates.hkMacaoPass.issueAt.count <= 0
......@@ -488,13 +539,11 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
}
}
// 是老外需验证护照
if !familyMember.isChinese() {
if showPassport, isPassportMust {
if familyMember.certificates.passport.number.count <= 0
|| familyMember.certificates.passport.issueAt.count <= 0
|| familyMember.certificates.passport.issueDateStartAt.count <= 0
|| familyMember.certificates.passport.issueDateEndAt.count <= 0
|| familyMember.certificates.passport.passPortType == 0
{
return false
}
......
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