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

// 家庭信息

parent 22be963a
......@@ -78,6 +78,7 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
updateStepView()
print("step:\(child.step)")
currentStep = child.step
stepView.maxIndex = child.step
view.addSubview(stepView)
view.addSubview(bottomView)
......@@ -140,7 +141,6 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
stepView.dataSource = titles
let step = currentStep
currentStep = step
stepView.maxIndex = child.step
stepView.block = {
[weak self] index in
......
......@@ -104,6 +104,7 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
updateStepView()
print("step:\(spouse.step)")
currentStep = spouse.step
stepView.maxIndex = spouse.step
bottomView.submitBlock = {
[weak self] in
......@@ -162,7 +163,6 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
}
stepView.dataSource = titles
stepView.maxIndex = spouse.step
// 数据源可能会变,所以需要重新设置step
let step = currentStep
currentStep = step
......
......@@ -13,6 +13,8 @@ class YHCertificateInfoController: YHBaseViewController, YHFamilyMemberProtol {
var familyMember:YHFamilyMember?
weak var delegate:YHSpouseInfoVCProtocol?
var items:[[YHFormItemProtocol]] = [[YHFormItemProtocol]]()
// 是否显示未填写错误提示
var isNeedShowError = false
lazy var tableView: UITableView = {
......@@ -44,7 +46,7 @@ class YHCertificateInfoController: YHBaseViewController, YHFamilyMemberProtol {
super.viewDidLoad()
gk_navTitle = "证件信息填写".local
createUI()
loadCertificateInfo()
loadInfo()
}
func createUI() {
......@@ -60,58 +62,44 @@ class YHCertificateInfoController: YHBaseViewController, YHFamilyMemberProtol {
}
guard let familyMember = familyMember else { return }
loadCertificateInfo()
loadInfo()
}
func loadCertificateInfo() {
func loadInfo() {
guard let familyMember = familyMember else { return }
items.removeAll()
// 中国身份证 信息必有
let title0 = YHFormTitleItem(type: .chinaIdCardInfo)
let item01 = YHFormDetailItem(type: .chinaIdentityCardNumber)
let item02 = YHFormDetailItem(type: .certificateSignPlace)
let item03 = YHFormDetailItem(type: .certificateSignDate)
let item04 = YHFormDetailItem(type: .certificateValidDate)
let item01 = YHFormDetailItem(type: .chinaIdentityCardNumber, value:familyMember.certificates.cnIdentityCard.number, tips: "请输入中国身份证号".local)
let item02 = YHFormDetailItem(type: .certificateSignPlace, value:familyMember.certificates.cnIdentityCard.issueAt, tips: "请输入签发地".local)
let item03 = YHFormDetailItem(type: .certificateSignDate, value:familyMember.certificates.cnIdentityCard.issueDateStartAt, tips: "请选择签发日期".local)
let item04 = YHFormDetailItem(type: .certificateValidDate, value:familyMember.certificates.cnIdentityCard.issueDateEndAt, tips: "请选择签发日期".local)
let arr0:[YHFormItemProtocol] = [title0, item01, item02, item03, item04]
items.append(arr0)
item01.value = familyMember.certificates.cnIdentityCard.number
item02.value = familyMember.certificates.cnIdentityCard.issueAt
item03.value = familyMember.certificates.cnIdentityCard.issueDateStartAt
item04.value = familyMember.certificates.cnIdentityCard.issueDateEndAt
// 港澳通行证 非必须
if familyMember.isNeedHandleHKPassPort() {
let title1 = YHFormTitleItem(type: .hkAndMacaoPassport)
let item10 = YHFormDetailItem(type: .traverlPassportNumber)
let item11 = YHFormDetailItem(type: .certificateSignPlace)
let item12 = YHFormDetailItem(type: .certificateSignDate)
let item13 = YHFormDetailItem(type: .certificateValidDate)
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 arr1:[YHFormItemProtocol] = [title1, item10, item11, item12, item13]
items.append(arr1)
item10.value = familyMember.certificates.hkMacaoPass.number
item11.value = familyMember.certificates.hkMacaoPass.issueAt
item12.value = familyMember.certificates.hkMacaoPass.issueDateStartAt
item13.value = familyMember.certificates.hkMacaoPass.issueDateEndAt
}
// 护照及其他旅行证件 信息必有
let title2 = YHFormTitleItem(type: .passPortOrTravelInfo)
let item20 = YHFormDetailItem(type: .certificateType, isNeed: false)
let item21 = YHFormDetailItem(type: .certificateNumber, isNeed: false)
let item22 = YHFormDetailItem(type: .certificateSignPlace, isNeed: false)
let item23 = YHFormDetailItem(type: .certificateSignDate, isNeed: false)
let item24 = YHFormDetailItem(type: .certificateValidDate, isNeed: false)
let item20 = YHFormDetailItem(type: .certificateType, isNeed: false, value:String(familyMember.certificates.passport.passportType), tips:"请选择证件类别".local)
let item21 = YHFormDetailItem(type: .certificateNumber, isNeed: false, value: familyMember.certificates.passport.number, tips: "请输入证件号码".local)
let item22 = YHFormDetailItem(type: .certificateSignPlace, isNeed: false, value: familyMember.certificates.passport.issueAt, tips:"请输入签发地".local)
let item23 = YHFormDetailItem(type: .certificateSignDate, isNeed: false, value:familyMember.certificates.passport.issueDateStartAt, tips:"请选择签发日期".local)
let item24 = YHFormDetailItem(type: .certificateValidDate, isNeed: false, value:familyMember.certificates.passport.issueDateEndAt,tips:"请选择届满日期".local)
let arr2:[YHFormItemProtocol] = [title2, item20, item21, item22, item23, item24]
items.append(arr2)
item20.value = String(familyMember.certificates.passport.passportType)
item21.value = familyMember.certificates.passport.number
item22.value = familyMember.certificates.passport.issueAt
item23.value = familyMember.certificates.passport.issueDateStartAt
item24.value = familyMember.certificates.passport.issueDateEndAt
// 证件类别名称
var selectType:YHFormPickerViewSubType = .certificate(.passport)
......@@ -164,6 +152,7 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
cell.placeHolder = detailItem.placeHolder
cell.title = detailItem.getTitle()
cell.text = detailItem.value
cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isShowTips)
cell.textChange = {
[weak self] (text, isEditEnd) in
......@@ -191,6 +180,7 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
}
}
if isEditEnd {
self.loadInfo()
self.save()
}
}
......@@ -203,15 +193,38 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
cell.isMust = detailItem.isNeed
cell.title = detailItem.getTitle()
cell.detail = detailItem.value
cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isShowTips)
return cell
}
if detailItem.type == .certificateValidDate {
if detailItem.type == .certificateValidDate { // 届满日期
if title.type == .chinaIdCardInfo { // 身份证
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemExpireDateCell.cellReuseIdentifier, for: indexPath) as! YHFormItemExpireDateCell
cell.isMust = detailItem.isNeed
cell.title = detailItem.getTitle()
cell.detail = (detailItem.value == YHCNIdentityCard.longTime ? "" : detailItem.value)
cell.isLontTime = (detailItem.value == YHCNIdentityCard.longTime)
cell.clickBlock = {
[weak self] isLongTime in
guard let self = self else { return }
if title.type == .chinaIdCardInfo {
self.familyMember?.certificates.cnIdentityCard.issueDateEndAt = (isLongTime ? YHCNIdentityCard.longTime : "")
loadInfo()
save()
}
}
cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isShowTips)
return cell
}
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemSelectSheetCell.cellReuseIdentifier, for: indexPath) as! YHFormItemSelectSheetCell
cell.isMust = detailItem.isNeed
cell.title = detailItem.getTitle()
cell.detail = detailItem.value
cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isShowTips)
return cell
}
}
......@@ -279,11 +292,13 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
let title = arr[0] as! YHFormTitleItem
if detailItem.type == .certificateValidDate ||
detailItem.type == .certificateSignDate { // 届满日期 签发日期
self.view?.endEditing(true)
YHDatePickView.show(type: .yyyymmdd) { [weak self] date in
YHDatePickView.show(type: .yyyymmdd) {
[weak self] date in
let dataArr = date.components(separatedBy: YHDatePickView.separator)
print(dataArr)
guard let self = self else { return }
......@@ -300,7 +315,7 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
certificate = familyMember.certificates.passport
}
changeCertificateDate(certificate, type: detailItem.type, date: date)
self.loadCertificateInfo()
self.loadInfo()
save()
}
} else if detailItem.type == .certificateType { // 选择证件类别
......@@ -316,7 +331,7 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
[weak self] selectType in
guard let self = self else { return }
self.familyMember?.certificates.passport.passportType = selectType.index
self.loadCertificateInfo()
self.loadInfo()
self.save()
}
}
......@@ -327,6 +342,7 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
func changeCertificateDate(_ certificate:YHCNIdentityCard?, type:YHFormDetailItemType, date:String?) {
if type == .certificateSignDate {
certificate?.issueDateStartAt = date ?? ""
} else if type == .certificateValidDate {
certificate?.issueDateEndAt = date ?? ""
}
......@@ -355,11 +371,44 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
}
}
func loadInfo() {
self.tableView.reloadData()
// 检查填写信息完整性
func checkIntegrity() -> Bool {
guard let familyMember = familyMember else { return false}
// 验证身份证
if familyMember.certificates.cnIdentityCard.number.count <= 0
|| familyMember.certificates.cnIdentityCard.issueAt.count <= 0
|| familyMember.certificates.cnIdentityCard.issueDateStartAt.count <= 0
|| familyMember.certificates.cnIdentityCard.issueDateEndAt.count <= 0
{
return false
}
if familyMember.isNeedHandleHKPassPort() {
// 如果选了办理过港澳通行证,则需要验证港澳通行证
if familyMember.certificates.hkMacaoPass.number.count <= 0
|| familyMember.certificates.hkMacaoPass.issueAt.count <= 0
|| familyMember.certificates.hkMacaoPass.issueDateStartAt.count <= 0
|| familyMember.certificates.hkMacaoPass.issueDateEndAt.count <= 0
|| familyMember.certificates.hkMacaoPass.passportType == -1
{
return false
}
}
return true
}
func nextStep()->Bool {
func nextStep() -> Bool {
let isChecked = checkIntegrity()
isNeedShowError = !isChecked
loadInfo()
if !isChecked {
YHHUD.flash(message: "资料还未填完")
return false
}
return true
}
}
......
......@@ -1239,6 +1239,7 @@ class YHCertificates: SmartCodable {
// MARK: - YHCNIdentityCard
class YHCNIdentityCard: SmartCodable {
static let longTime = "8888-01-01"
var id: Int = 0
var number: String = ""
var issueAt: String = ""
......@@ -1246,7 +1247,7 @@ class YHCNIdentityCard: SmartCodable {
var issueDateEndAt: String = ""
var imgFront: String = ""
var imgBack: String = ""
var passportType: Int = 0
var passportType: Int = -1
enum CodingKeys: String, CodingKey {
case id = "id"
......
......@@ -14,8 +14,8 @@ class YHFamilyRequestViewModel {
//请求所有家庭成员信息
func getFamilyInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyInfoApi
// let strUrl = "http://192.168.34.187:8808/" + YHAllApiName.Family.familyInfoApi
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyInfoApi
let strUrl = "http://192.168.34.187:8808/" + YHAllApiName.Family.familyInfoApi
YHHUD.show(.progress(message: "数据加载中..."))
......@@ -45,8 +45,8 @@ class YHFamilyRequestViewModel {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyInfoApi
// let strUrl = "http://192.168.34.187:8808/" + YHAllApiName.Family.familyInfoApi
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyInfoApi
let strUrl = "http://192.168.34.187:8808/" + YHAllApiName.Family.familyInfoApi
let _ = YHNetRequest.postRequest(url: strUrl, params:params) {[weak self] json, code in
......
......@@ -20,7 +20,7 @@ class YHFormItemExpireDateCell: UITableViewCell {
var isMust = false
var placeHolder:String? = "请选择"
var clickBlock:(()->Void)?
var clickBlock:((Bool)->Void)?
// 是否隐藏顶部分割线
var isHiddenTopLine:Bool = false {
didSet {
......@@ -185,11 +185,15 @@ class YHFormItemExpireDateCell: UITableViewCell {
func updateUI() {
detailLabel.isHidden = isLontTime
tipsLabel.isHidden = isLontTime
if isLontTime {
tipsLabel.isHidden = true
} else {
tipsLabel.isHidden = !isEmptyString(detail)
}
longTimeBtn.isSelected = isLontTime
longTimeBtn.snp.remakeConstraints { make in
make.size.equalTo(CGSizeMake(longTimeBtnWidth, 40))
make.centerY.equalToSuperview()
make.centerY.equalTo(titleLabel)
if isLontTime {
make.left.equalTo(detailLabel)
} else {
......@@ -200,11 +204,10 @@ class YHFormItemExpireDateCell: UITableViewCell {
@objc func didClickLongTimeBtn() {
longTimeBtn.isSelected = !longTimeBtn.isSelected
isLontTime = longTimeBtn.isSelected
isLontTime = !isLontTime
if let clickBlock = clickBlock {
clickBlock()
clickBlock(isLontTime)
}
}
}
......@@ -46,7 +46,7 @@ class YHFormItemInputTextCell: UITableViewCell {
var placeHolder:String? {
didSet {
if let placeHolder = placeHolder {
if let placeHolder = placeHolder, !placeHolder.isEmpty {
textField.attributedPlaceholder = NSAttributedString(string: placeHolder, attributes: [NSAttributedString.Key.foregroundColor : UIColor.placeHolderColor])
} else {
textField.attributedPlaceholder = NSAttributedString(string: "请输入", attributes: [NSAttributedString.Key.foregroundColor : UIColor.placeHolderColor])
......
......@@ -51,7 +51,7 @@ class YHFormItemSelectSheetCell: UITableViewCell {
detailLabel.text = detail
detailLabel.textColor = detailColor
} else {
detailLabel.text = placeHolder
detailLabel.text = isEmptyString(placeHolder) ? "请选择" : placeHolder
detailLabel.textColor = placeHolderColor
}
}
......
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