Commit 467f1796 authored by Steven杜宇's avatar Steven杜宇

// 家庭

parent e66c0eb5
......@@ -18,17 +18,17 @@ enum YHFamilyMemberRelationType: Int {
class YHFamilyInfoUpdateViewController: YHBaseViewController {
var memberId: Int = 0
var familyGroupModel: YHFamilyGroupModel = YHFamilyGroupModel()
let viewModel = YHFamilyInfoConfirmViewModel()
private var detailMember:YHApplicantInfoModel = YHApplicantInfoModel()
var orderId: Int = 0
var detailMember:YHApplicantInfoModel = YHApplicantInfoModel()
let viewModel = YHFamilyInfoConfirmViewModel()
var relation:YHFamilyMemberRelationType = .mainApplicant
var isInfoEditing: Bool = false
var items: [[YHFamilyInfoItem]] = []
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 16.0
......@@ -79,7 +79,7 @@ class YHFamilyInfoUpdateViewController: YHBaseViewController {
make.height.equalTo(44)
make.left.equalTo(cancelBtn.snp.right).offset(10)
}
return view
}()
......@@ -90,7 +90,7 @@ class YHFamilyInfoUpdateViewController: YHBaseViewController {
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)
......@@ -100,40 +100,62 @@ class YHFamilyInfoUpdateViewController: YHBaseViewController {
make.left.right.bottom.equalToSuperview()
make.height.equalTo(98)
}
self.getDetail()
self.updateData()
}
@objc func didCancelBtnClicked() {
self.detailMember.info.isCheck = false
self.isInfoEditing = false
self.updateData()
}
@objc func didConfirmBtnClicked() {
self.detailMember.info.isCheck = true
self.tableView.reloadData()
}
func getDetail() {
if self.familyGroupModel.main.info.id == memberId {
self.detailMember = self.familyGroupModel.main
if let arr1 = items.first {
for item in arr1 {
if !item.tips.isEmpty {
return
}
}
}
if let detaiParams = self.detailMember.info.toDictionary() {
} else if self.familyGroupModel.spouse.info.id == memberId {
self.detailMember = self.familyGroupModel.spouse
var relation = ""
if self.detailMember.info.relation == YHFamilyMemberRelationType.mainApplicant.rawValue {
relation = "main"
} else if self.detailMember.info.relation == YHFamilyMemberRelationType.spouse.rawValue {
relation = "spouse"
} else {
for child in self.familyGroupModel.children {
if child.info.id == memberId {
self.detailMember = child
break
} else if self.detailMember.info.relation == YHFamilyMemberRelationType.child.rawValue {
relation = "child"
}
let param:[String: Any] = ["orderId": orderId,
relation: detaiParams]
YHHUD.show(.progress(message: "提交中..."))
viewModel.submitFamilyUpdate(param:param) {
[weak self] success, error in
YHHUD.hide()
guard let self = self else { return }
if success {
YHHUD.flash(message: "提交成功")
return
}
let msg = error?.errorMsg ?? "提交失败"
YHHUD.flash(message: msg)
}
}
self.getData()
}
func getData() {
func updateData() {
items.removeAll()
// arr1 信息核实
let arr1 = viewModel.getInfoConfirm(self.detailMember, isEditMode: self.isInfoEditing)
......@@ -147,16 +169,6 @@ class YHFamilyInfoUpdateViewController: YHBaseViewController {
self.tableView.reloadData()
}
func updateData() {
if let arr1 = items.first {
for item in arr1 {
item.isEditMode = self.isInfoEditing
item.isShowPreviousInfo = (!self.isInfoEditing && !item.previousValue.isEmpty)
}
}
self.tableView.reloadData()
}
}
extension YHFamilyInfoUpdateViewController: UITableViewDelegate, UITableViewDataSource {
......@@ -176,21 +188,24 @@ extension YHFamilyInfoUpdateViewController: UITableViewDelegate, UITableViewData
cell.modifyBtn.isHidden = false
cell.isEditState = self.isInfoEditing
cell.familyInfo = self.detailMember.info
// 更改编辑状态
cell.editBlock = {
[weak self] isEdit in
guard let self = self else { return }
self.isInfoEditing = isEdit
self.getData()
self.updateData()
}
// 选择出生国家/地区
cell.selectBirthNation = {
[weak self] isInChina in
guard let self = self else { return }
self.getData()
self.updateData()
}
// 更改姓名
cell.updateName = {
[weak self] text in
guard let self = self else { return }
self.getData()
self.updateData()
}
} else {
......
......@@ -132,8 +132,8 @@ extension YHApproverInfoVerifyCell: UITableViewDelegate, UITableViewDataSource {
if 0 <= indexPath.row && indexPath.row < familyArr.count {
let model = familyArr[indexPath.row]
let vc = YHFamilyInfoUpdateViewController()
vc.memberId = model.info.id
vc.familyGroupModel = self.familyGroupInfo
vc.detailMember = model
vc.orderId = self.familyGroupInfo.orderid
UIViewController.current?.navigationController?.pushViewController(vc)
}
}
......
......@@ -13,6 +13,8 @@ import AttributedString
// 文字编辑和选择弹窗时使用
class YHInfoItemView: UIView {
private var debounceTimer: Timer?
var item: YHFamilyInfoItem = YHFamilyInfoItem()
var faimilyInfo: YHFamilyMemberInfoModel = YHFamilyMemberInfoModel()
// 姓名更改
......@@ -324,6 +326,14 @@ extension YHInfoItemView: UITextFieldDelegate {
// return false
// }
printLog("\(newText)")
if self.item.id == .mainApplicantName || self.item.id == .spouseName || self.item.id == .childName {
// 名称编辑时需防抖请求拼音
debounceTimer?.invalidate()
debounceTimer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: false) { [weak self] _ in
self?.updateNamePinYin()
}
}
return true
}
......@@ -338,6 +348,9 @@ extension YHInfoItemView: UITextFieldDelegate {
self.item.tips = self.getRedTips()
self.updateItem(self.item, familyInfo: self.faimilyInfo)
}
func updateNamePinYin() {
// 编辑姓名
if self.item.id == .mainApplicantName || self.item.id == .spouseName || self.item.id == .childName {
if let text = textField.text, !text.isEmpty {
......
......@@ -77,6 +77,28 @@ class YHFamilyInfoConfirmViewModel: NSObject {
callback?("", "")
}
}
func submitFamilyUpdate(param:[String : Any], callback:((_ success: Bool,_ error:YHErrorModel?)->())?) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.FamilyInfoConfirm.submitFamilyUpdate
let _ = YHNetRequest.postRequest(url: strUrl,params: param) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
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)
}
}
}
......
......@@ -415,6 +415,8 @@ class YHAllApiName {
static let familyInfo = "super-app/order/family/information/obtain"
// 通过姓名获取拼音
static let pinyinInfo = "super-app/order/information/pinyin"
// 家庭信息-提交修改
static let submitFamilyUpdate = "super-app/order/family/information/check"
}
}
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