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

// 信息确认

parent 295d3f4f
...@@ -96,8 +96,35 @@ class YHResignConfirmInfoListViewController: YHBaseViewController { ...@@ -96,8 +96,35 @@ class YHResignConfirmInfoListViewController: YHBaseViewController {
requestList() requestList()
} }
func isAllMemberConfirmed() -> Bool {
for model in familyArr {
if model.confirmStatus == 0 {
return false
}
}
return true
}
@objc func didBottomBtnClicked() { @objc func didBottomBtnClicked() {
if !isAllMemberConfirmed() {
YHHUD.flash(message: "存在未确认信息,此信息涉及后续【续签申请】,辛苦核对")
return
}
YHHUD.show(.progress(message: "加载中..."))
self.viewModel.submitAllConfirmInfo(orderId: self.orderId, stepId: self.stepId) {
[weak self] success, error in
YHHUD.hide()
guard let self = self else { return }
if !success {
let msg = error?.errorMsg ?? ""
YHHUD.flash(message: msg)
return
}
self.navigationController?.popToRootViewController(animated: true)
goTabBarBy(tabType: .service)
}
} }
func showRiskAlertView() { func showRiskAlertView() {
...@@ -148,7 +175,7 @@ extension YHResignConfirmInfoListViewController: UITableViewDelegate, UITableVie ...@@ -148,7 +175,7 @@ extension YHResignConfirmInfoListViewController: UITableViewDelegate, UITableVie
let model = familyArr[indexPath.row] let model = familyArr[indexPath.row]
let vc = YHResignInfoConfirmModifyViewController() let vc = YHResignInfoConfirmModifyViewController()
vc.detailMember = model vc.detailMember = model.info
vc.listId = self.viewModel.listModel.id vc.listId = self.viewModel.listModel.id
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
} }
......
...@@ -12,7 +12,7 @@ import AttributedString ...@@ -12,7 +12,7 @@ import AttributedString
class YHResignInfoConfirmModifyViewController: YHBaseViewController { class YHResignInfoConfirmModifyViewController: YHBaseViewController {
var listId: Int = 0 var listId: Int = 0
var detailMember = YHResignInfoConfirmFamilyInfoModel() var detailMember = YHResignInfoConfirmFamilyModel()
let viewModel = YHResignInfoConfirmViewModel() let viewModel = YHResignInfoConfirmViewModel()
...@@ -74,6 +74,45 @@ class YHResignInfoConfirmModifyViewController: YHBaseViewController { ...@@ -74,6 +74,45 @@ class YHResignInfoConfirmModifyViewController: YHBaseViewController {
return view return view
}() }()
override func backItemClick(_ sender: Any) {
self.view.endEditing(true)
if self.isInfoEditing {
showRetainAlertView()
return
}
self.navigationController?.popViewController()
}
// 是否可以返回,包括点击返回和手势返回,默认YES
override func navigationShouldPop() -> Bool {
self.view.endEditing(true)
if self.isInfoEditing {
showRetainAlertView()
return false
}
return true
}
override func viewDidLoad() {
super.viewDidLoad()
self.gk_navTitle = "续签信息确认"
self.view.backgroundColor = .white
self.view.addSubview(self.tableView)
self.view.addSubview(self.bottomView)
self.tableView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar+16)
make.bottom.equalTo(self.bottomView.snp.top)
}
self.bottomView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(98)
}
self.updateData()
}
// 展示挽留弹窗 // 展示挽留弹窗
func showRetainAlertView() { func showRetainAlertView() {
YHCommonAlertView.show("", "您尚未保存修改,确定关闭吗?", "仍然关闭", "继续编辑", fullGuestureEnable: false) { YHCommonAlertView.show("", "您尚未保存修改,确定关闭吗?", "仍然关闭", "继续编辑", fullGuestureEnable: false) {
...@@ -96,14 +135,14 @@ class YHResignInfoConfirmModifyViewController: YHBaseViewController { ...@@ -96,14 +135,14 @@ class YHResignInfoConfirmModifyViewController: YHBaseViewController {
} }
@objc func didConfirmBtnClicked() { @objc func didConfirmBtnClicked() {
self.detailMember.info.isCheck = true self.detailMember.isCheck = true
self.updateData() self.updateData()
if !checkInfo() { if !checkInfo() {
return return
} }
if let detaiParams = self.detailMember.info.toDictionary() { if let detaiParams = self.detailMember.toDictionary() {
let param:[String: Any] = ["id": listId, let param:[String: Any] = ["id": listId,
"data": detaiParams] "data": detaiParams]
...@@ -123,30 +162,6 @@ class YHResignInfoConfirmModifyViewController: YHBaseViewController { ...@@ -123,30 +162,6 @@ class YHResignInfoConfirmModifyViewController: YHBaseViewController {
} }
} }
} }
override func viewDidLoad() {
super.viewDidLoad()
self.gk_navTitle = "续签信息确认"
self.view.backgroundColor = .white
self.view.addSubview(self.tableView)
self.view.addSubview(self.bottomView)
self.tableView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar+16)
make.bottom.equalTo(self.bottomView.snp.top)
}
self.bottomView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(98)
}
self.updateData()
}
} }
extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableViewDataSource { extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableViewDataSource {
...@@ -165,7 +180,7 @@ extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableV ...@@ -165,7 +180,7 @@ extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableV
cell.titleLabel.attributed.text = title cell.titleLabel.attributed.text = title
cell.modifyBtn.isHidden = false cell.modifyBtn.isHidden = false
cell.isEditState = self.isInfoEditing cell.isEditState = self.isInfoEditing
cell.familyInfo = self.detailMember.info cell.familyInfo = self.detailMember
// 更改编辑状态 // 更改编辑状态
cell.editBlock = { cell.editBlock = {
[weak self] isEdit in [weak self] isEdit in
...@@ -174,7 +189,7 @@ extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableV ...@@ -174,7 +189,7 @@ extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableV
if !checkInfo() { if !checkInfo() {
// 检查信息错误 // 检查信息错误
self.isInfoEditing = true self.isInfoEditing = true
self.detailMember.info.isCheck = true self.detailMember.isCheck = true
self.updateData() self.updateData()
return return
} }
...@@ -242,6 +257,19 @@ extension YHResignInfoConfirmModifyViewController { ...@@ -242,6 +257,19 @@ extension YHResignInfoConfirmModifyViewController {
func updateData() { func updateData() {
items.removeAll()
// arr1 信息核实
let arr1 = viewModel.getInfoConfirm(self.detailMember, isEditMode: self.isInfoEditing)
items.append(arr1)
// arr2 递交证件信息
if let _ = self.detailMember.identity {
let arr2 = viewModel.getCertificateInfo(self.detailMember)
items.append(arr2)
}
self.tableView.reloadData()
} }
} }
...@@ -21,7 +21,7 @@ class YHResignInfoItemView: UIView { ...@@ -21,7 +21,7 @@ class YHResignInfoItemView: UIView {
var updateName:((String)->())? var updateName:((String)->())?
let rightBtnWidth = 22.0 let rightBtnWidth = 22.0
let viewModel = YHFamilyInfoConfirmViewModel() let viewModel = YHResignInfoConfirmViewModel()
lazy var lineView: UIView = { lazy var lineView: UIView = {
let view = UIView() let view = UIView()
...@@ -369,6 +369,8 @@ extension YHResignInfoItemView: UITextFieldDelegate { ...@@ -369,6 +369,8 @@ extension YHResignInfoItemView: UITextFieldDelegate {
} else if self.item.id == .hongKongId { } else if self.item.id == .hongKongId {
self.faimilyInfo.hkIdentityid = newText self.faimilyInfo.hkIdentityid = newText
} else if self.item.id == .hongkongAddress {
self.faimilyInfo.hkAddress = newText
} }
} }
......
...@@ -11,6 +11,7 @@ import UIKit ...@@ -11,6 +11,7 @@ import UIKit
class YHResignInfoConfirmViewModel { class YHResignInfoConfirmViewModel {
var listModel = YHResignInfoConfirmInfoListModel() var listModel = YHResignInfoConfirmInfoListModel()
var pinyinInfo: YHFamilyNamePinYin = YHFamilyNamePinYin()
func getList(id: Int, callBack: @escaping (_ success: Bool,_ error: YHErrorModel?)->()) { func getList(id: Int, callBack: @escaping (_ success: Bool,_ error: YHErrorModel?)->()) {
let params = ["id" : id] let params = ["id" : id]
...@@ -63,9 +64,8 @@ class YHResignInfoConfirmViewModel { ...@@ -63,9 +64,8 @@ class YHResignInfoConfirmViewModel {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.ResignInfoConfirm.update let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.ResignInfoConfirm.update
let _ = YHNetRequest.postRequest(url: strUrl,params: param) { [weak self] json, code in let _ = YHNetRequest.postRequest(url: strUrl,params: param) { json, code in
//1. json字符串 转 对象 //1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)") printLog("model 是 ==> \(json)")
if json.code == 200 { if json.code == 200 {
...@@ -80,4 +80,235 @@ class YHResignInfoConfirmViewModel { ...@@ -80,4 +80,235 @@ class YHResignInfoConfirmViewModel {
callback?(false, err) callback?(false, err)
} }
} }
func submitAllConfirmInfo(orderId: Int, stepId: Int, callback:((_ success: Bool,_ error:YHErrorModel?)->())?) {
let params: [String : Any] = ["id" : stepId,
"order_id" : orderId]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.ResignInfoConfirm.confirmInfo
let _ = YHNetRequest.postRequest(url: strUrl,params: params) { json, code in
//1. json字符串 转 对象
printLog("model 是 ==> \(json)")
if json.code == 200 {
callback?(true, nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callback?(false, err)
}
} failBlock: { err in
callback?(false, err)
}
}
func getPinYinFromName(_ name: String, callback:((String, String)->())?) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.FamilyInfoConfirm.pinyinInfo
let _ = YHNetRequest.getRequest(url: strUrl,params: ["name" : name]) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let resultModel = YHFamilyNamePinYin.deserialize(from: dic) else {
let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
callback?("", "")
return
}
self.pinyinInfo = resultModel
callback?(resultModel.family_name, resultModel.given_name)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callback?("", "")
}
} failBlock: { err in
callback?("", "")
}
}
}
extension YHResignInfoConfirmViewModel {
func getInfoConfirm(_ model: YHResignInfoConfirmFamilyModel, isEditMode:Bool) -> [YHResignFamilyInfoItem] {
var nameTitle = ""
var previousNameTitle = ""
var id = YHResignFamilyInfoType.none
var resultArr = [YHResignFamilyInfoItem]()
if model.relation == YHFamilyMemberRelationType.mainApplicant.rawValue {
id = .mainApplicantName
nameTitle = "主申人姓名"
previousNameTitle = "原主申人姓名"
} else if model.relation == YHFamilyMemberRelationType.spouse.rawValue {
id = .spouseName
nameTitle = "配偶姓名"
previousNameTitle = "原配偶姓名"
} else if model.relation == YHFamilyMemberRelationType.child.rawValue {
id = .childName
nameTitle = "子女姓名"
previousNameTitle = "原子女姓名"
}
// 姓名
let mainApplicantNameInfo = YHResignFamilyInfoItem(id: id,
action: .edit,
isMust: true,
title: nameTitle,
value: model.name,
previousTitle: previousNameTitle,
previousValue: model.nameHistory,
isEditMode: isEditMode,
isShowPreviousInfo: !isEditMode && !model.nameHistory.isEmpty)
resultArr.append(mainApplicantNameInfo)
// 姓(拼音)
let firstNameInfo = YHResignFamilyInfoItem(id: .firstName,
action: .edit,
isMust: true,
title: "姓(拼音)",
value: model.familyName,
previousTitle: "原姓(拼音)",
previousValue: model.familyNameHistory,
isEditMode: isEditMode,
isShowPreviousInfo: !isEditMode && !model.familyNameHistory.isEmpty)
resultArr.append(firstNameInfo)
// 名(拼音)
let lastNameInfo = YHResignFamilyInfoItem(id: .lastName,
action: .edit,
isMust: true,
title: "名(拼音)",
value: model.givenName,
previousTitle: "原名(拼音)",
previousValue: model.givenNameHistory,
isEditMode: isEditMode,
isShowPreviousInfo: !isEditMode && !model.givenNameHistory.isEmpty)
resultArr.append(lastNameInfo)
// 婚姻状况
let marriageInfo = YHResignFamilyInfoItem(id: .marriage,
action: .select,
isMust: true,
title: "婚姻状况",
value: model.getMarriageState(),
previousTitle: "原婚姻状况",
previousValue: model.getHistoryMarriageState(),
isEditMode: isEditMode,
isShowPreviousInfo: !isEditMode && !model.getHistoryMarriageState().isEmpty)
resultArr.append(marriageInfo)
// 申报国籍
let declareNationInfo = YHResignFamilyInfoItem(id: .declareNation,
action: .select,
isMust: true,
title: "申报国籍",
value: model.nationality,
previousTitle: "原申报国籍",
previousValue: model.nationalityHistory,
isEditMode: isEditMode,
isShowPreviousInfo: !isEditMode && !model.nationalityHistory.isEmpty)
resultArr.append(declareNationInfo)
// 职业
let occupationInfo = YHResignFamilyInfoItem(id: .occupation,
action: .edit,
isMust: true,
title: "职业",
value: model.occupationName,
previousTitle: "原职业",
previousValue: model.occupationNameHistory,
isEditMode: isEditMode,
isShowPreviousInfo: !isEditMode && !model.occupationNameHistory.isEmpty)
resultArr.append(occupationInfo)
// 香港身份证号
let hongkongIdInfo = YHResignFamilyInfoItem(id: .hongKongId,
action: .edit,
isMust: false,
title: "香港身份证号",
value: model.hkIdentityid,
previousTitle: "原香港身份证号",
previousValue: model.hkIdentityidHistory,
isEditMode: isEditMode,
isShowPreviousInfo: !isEditMode && !model.hkIdentityidHistory.isEmpty)
resultArr.append(hongkongIdInfo)
// 香港地址
if model.relation != YHFamilyMemberRelationType.child.rawValue &&
model.relation != YHFamilyMemberRelationType.spouse.rawValue { // 子女\配偶无香港住址一栏
let hongkongAddressInfo = YHResignFamilyInfoItem(id: .hongKongId,
action: .edit,
isMust: false,
title: "香港住址",
value: model.hkAddress,
previousTitle: "原香港地址",
previousValue: model.hkAddressHistory,
isEditMode: isEditMode,
isShowPreviousInfo: !isEditMode && !model.hkAddressHistory.isEmpty)
resultArr.append(hongkongIdInfo)
}
return resultArr
}
func getCertificateInfo(_ model: YHResignInfoConfirmFamilyModel) -> [YHResignFamilyInfoItem] {
var resultArr = [YHResignFamilyInfoItem]()
// 申报旅行证件
let travelCerInfo = YHResignFamilyInfoItem(id: .travelCertificateType,
action: .select,
isMust: false,
title: "申报旅行证件",
value: model.identity?.name ?? "",
previousTitle: "原申报旅行证件",
previousValue: model.identity?.name ?? "",
isEditMode: false,
isShowPreviousInfo: false)
resultArr.append(travelCerInfo)
// 证件号
let cerIdInfo = YHResignFamilyInfoItem(id: .travelCertificateId,
action: .edit,
isMust: false,
title: "证件号",
value: model.identity?.number ?? "",
previousTitle: "原证件号",
previousValue: model.identity?.number ?? "",
isEditMode: false,
isShowPreviousInfo: false)
resultArr.append(cerIdInfo)
// 有效期
let validStartTime = model.identity?.begin ?? ""
let validEndTime = model.identity?.end ?? ""
let validTime = "\(validStartTime) ~ \(validEndTime)"
let validTimeInfo = YHResignFamilyInfoItem(id: .certificateValidTime,
action: .edit,
isMust: false,
title: "有效期",
value:validTime,
previousTitle: "原证件号",
previousValue: validTime,
isEditMode: false,
isShowPreviousInfo: false)
resultArr.append(validTimeInfo)
return resultArr
}
} }
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