Commit 48876435 authored by David黄金龙's avatar David黄金龙

Merge commit 'f3c50fea' into davidhuang

* commit 'f3c50fea':
  // alertView
  // 家庭成员接口

# Conflicts:
#	galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
parents 24f42e23 f3c50fea
...@@ -67,7 +67,8 @@ ...@@ -67,7 +67,8 @@
04808C082B4686C10056D53C /* ATAuthSDK_D.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 04808C032B4686510056D53C /* ATAuthSDK_D.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 04808C082B4686C10056D53C /* ATAuthSDK_D.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 04808C032B4686510056D53C /* ATAuthSDK_D.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
049A48A82B49417300D0C641 /* YHAboutUsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049A48A72B49417300D0C641 /* YHAboutUsViewController.swift */; }; 049A48A82B49417300D0C641 /* YHAboutUsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049A48A72B49417300D0C641 /* YHAboutUsViewController.swift */; };
049A48AA2B49536000D0C641 /* YHAboutUsAdvantageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049A48A92B49536000D0C641 /* YHAboutUsAdvantageCell.swift */; }; 049A48AA2B49536000D0C641 /* YHAboutUsAdvantageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049A48A92B49536000D0C641 /* YHAboutUsAdvantageCell.swift */; };
04A7BC8F2B6B2BC2000E8D47 /* YHFamilyRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04A7BC8E2B6B2BC2000E8D47 /* YHFamilyRequest.swift */; }; 04A7BC8F2B6B2BC2000E8D47 /* YHFamilyRequestViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04A7BC8E2B6B2BC2000E8D47 /* YHFamilyRequestViewModel.swift */; };
04A7BC912B6B7B89000E8D47 /* YHTwoOptionAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04A7BC902B6B7B89000E8D47 /* YHTwoOptionAlertView.swift */; };
04AF58C42B4FC51C0066011A /* YHLocalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04AF58C32B4FC51C0066011A /* YHLocalizable.swift */; }; 04AF58C42B4FC51C0066011A /* YHLocalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04AF58C32B4FC51C0066011A /* YHLocalizable.swift */; };
04D765732B6A173C0055ECBB /* YHSpouseInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D765722B6A173C0055ECBB /* YHSpouseInfoVC.swift */; }; 04D765732B6A173C0055ECBB /* YHSpouseInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D765722B6A173C0055ECBB /* YHSpouseInfoVC.swift */; };
6203A87EDC96313BBE789D9C /* Pods_galaxy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */; }; 6203A87EDC96313BBE789D9C /* Pods_galaxy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */; };
...@@ -278,7 +279,8 @@ ...@@ -278,7 +279,8 @@
04808C042B4686510056D53C /* ATAuthSDK.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = ATAuthSDK.bundle; sourceTree = "<group>"; }; 04808C042B4686510056D53C /* ATAuthSDK.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = ATAuthSDK.bundle; sourceTree = "<group>"; };
049A48A72B49417300D0C641 /* YHAboutUsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAboutUsViewController.swift; sourceTree = "<group>"; }; 049A48A72B49417300D0C641 /* YHAboutUsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAboutUsViewController.swift; sourceTree = "<group>"; };
049A48A92B49536000D0C641 /* YHAboutUsAdvantageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAboutUsAdvantageCell.swift; sourceTree = "<group>"; }; 049A48A92B49536000D0C641 /* YHAboutUsAdvantageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAboutUsAdvantageCell.swift; sourceTree = "<group>"; };
04A7BC8E2B6B2BC2000E8D47 /* YHFamilyRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyRequest.swift; sourceTree = "<group>"; }; 04A7BC8E2B6B2BC2000E8D47 /* YHFamilyRequestViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyRequestViewModel.swift; sourceTree = "<group>"; };
04A7BC902B6B7B89000E8D47 /* YHTwoOptionAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHTwoOptionAlertView.swift; sourceTree = "<group>"; };
04AF58C32B4FC51C0066011A /* YHLocalizable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHLocalizable.swift; sourceTree = "<group>"; }; 04AF58C32B4FC51C0066011A /* YHLocalizable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHLocalizable.swift; sourceTree = "<group>"; };
04D765722B6A173C0055ECBB /* YHSpouseInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSpouseInfoVC.swift; sourceTree = "<group>"; }; 04D765722B6A173C0055ECBB /* YHSpouseInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSpouseInfoVC.swift; sourceTree = "<group>"; };
58C2405158A4A6632D0E7460 /* Pods-galaxy.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-galaxy.debug.xcconfig"; path = "Target Support Files/Pods-galaxy/Pods-galaxy.debug.xcconfig"; sourceTree = "<group>"; }; 58C2405158A4A6632D0E7460 /* Pods-galaxy.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-galaxy.debug.xcconfig"; path = "Target Support Files/Pods-galaxy/Pods-galaxy.debug.xcconfig"; sourceTree = "<group>"; };
...@@ -490,7 +492,7 @@ ...@@ -490,7 +492,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
041B52DA2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift */, 041B52DA2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift */,
04A7BC8E2B6B2BC2000E8D47 /* YHFamilyRequest.swift */, 04A7BC8E2B6B2BC2000E8D47 /* YHFamilyRequestViewModel.swift */,
041B52DC2B60A889007EBCEB /* YHTest.swift */, 041B52DC2B60A889007EBCEB /* YHTest.swift */,
); );
path = M; path = M;
...@@ -1037,6 +1039,7 @@ ...@@ -1037,6 +1039,7 @@
A5ACE9242B4564F7002C94D2 /* YHBouncesContentView.swift */, A5ACE9242B4564F7002C94D2 /* YHBouncesContentView.swift */,
A5ACE9252B4564F7002C94D2 /* YHBasicContentView.swift */, A5ACE9252B4564F7002C94D2 /* YHBasicContentView.swift */,
A5ACE9262B4564F7002C94D2 /* YHNoDataTipView.swift */, A5ACE9262B4564F7002C94D2 /* YHNoDataTipView.swift */,
04A7BC902B6B7B89000E8D47 /* YHTwoOptionAlertView.swift */,
); );
path = V; path = V;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -1407,7 +1410,7 @@ ...@@ -1407,7 +1410,7 @@
A5ACE93E2B4564F7002C94D2 /* UIImage+Extension.swift in Sources */, A5ACE93E2B4564F7002C94D2 /* UIImage+Extension.swift in Sources */,
0468D4472B624AF000CFB916 /* YHBottomNextView.swift in Sources */, 0468D4472B624AF000CFB916 /* YHBottomNextView.swift in Sources */,
A5ACE94C2B4564F7002C94D2 /* YHHUDErrorView.swift in Sources */, A5ACE94C2B4564F7002C94D2 /* YHHUDErrorView.swift in Sources */,
04A7BC8F2B6B2BC2000E8D47 /* YHFamilyRequest.swift in Sources */, 04A7BC8F2B6B2BC2000E8D47 /* YHFamilyRequestViewModel.swift in Sources */,
041B52D62B5F899E007EBCEB /* YHSpouseInitialInfoVC.swift in Sources */, 041B52D62B5F899E007EBCEB /* YHSpouseInitialInfoVC.swift in Sources */,
A5D6AB1B2B46A1CC001C10A5 /* YHHomeModel.swift in Sources */, A5D6AB1B2B46A1CC001C10A5 /* YHHomeModel.swift in Sources */,
A5D6AB1D2B46AAFB001C10A5 /* YHHomePageViewModel.swift in Sources */, A5D6AB1D2B46AAFB001C10A5 /* YHHomePageViewModel.swift in Sources */,
...@@ -1449,6 +1452,7 @@ ...@@ -1449,6 +1452,7 @@
A5ACE9582B4564F7002C94D2 /* YHNoDataTipView.swift in Sources */, A5ACE9582B4564F7002C94D2 /* YHNoDataTipView.swift in Sources */,
042FBBBB2B62806D00F9DE23 /* YHCertificateViewController.swift in Sources */, 042FBBBB2B62806D00F9DE23 /* YHCertificateViewController.swift in Sources */,
042FBBC72B64CFBF00F9DE23 /* YHChildInitialInfoVC.swift in Sources */, 042FBBC72B64CFBF00F9DE23 /* YHChildInitialInfoVC.swift in Sources */,
04A7BC912B6B7B89000E8D47 /* YHTwoOptionAlertView.swift in Sources */,
0468D4792B68A08600CFB916 /* YHAddressViewController.swift in Sources */, 0468D4792B68A08600CFB916 /* YHAddressViewController.swift in Sources */,
A5ACE9562B4564F7002C94D2 /* YHBouncesContentView.swift in Sources */, A5ACE9562B4564F7002C94D2 /* YHBouncesContentView.swift in Sources */,
042FBBCB2B65058000F9DE23 /* YHChildBasicInfoVC.swift in Sources */, 042FBBCB2B65058000F9DE23 /* YHChildBasicInfoVC.swift in Sources */,
......
//
// YHTwoOptionAlertView.swift
// galaxy
//
// Created by edy on 2024/2/1.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHTwoOptionAlertView: UIView {
typealias Block = (Bool) -> ()
var block: Block?
var centerView: UIView!
var messageLabel: UILabel!
var rightButton: UIButton!
var leftButton: UIButton!
static func showAlertView(message:String?,leftBtnTitle:String? = "取消".local, rightBtnTitle:String? = "确认".local, callBack: @escaping Block) {
let view = YHTwoOptionAlertView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.messageLabel.text = message
view.leftButton.setTitle(leftBtnTitle, for: .normal)
view.rightButton.setTitle(rightBtnTitle, for: .normal)
view.block = callBack
let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view)
}
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor(white: 0.5, alpha: 0.1)
let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap))
tap.delegate = self
addGestureRecognizer(tap)
setView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setView() {
backgroundColor = UIColor(hex: 0x0000, alpha: 0.5)
centerView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = 12
return view
}()
addSubview(centerView)
messageLabel = {
let label = UILabel()
label.text = ""
label.font = kFont(size: 16)
label.textColor = UIColor(hex:0x222222)
label.textAlignment = .center
label.numberOfLines = 0
return label
}()
centerView.addSubview(messageLabel)
leftButton = {
let button = UIButton(type: .custom)
button.backgroundColor = UIColor(hex:0xffffff)
button.titleLabel?.font = kBoldFont(size: 14)
button.contentHorizontalAlignment = .center
button.setTitle("取消".local, for: .normal)
button.setTitleColor( UIColor(hex:0x3c86f8), for: .normal)
button.layer.cornerRadius = 8
button.layer.borderWidth = 1
button.layer.borderColor = UIColor(hex: 0x3c86f8).cgColor
button.addTarget(self, action: #selector(disagree), for: .touchUpInside)
return button
}()
centerView.addSubview(leftButton)
rightButton = {
let button = UIButton(type: .custom)
button.backgroundColor = UIColor(hex:0x3c86f8)
button.titleLabel?.font = kBoldFont(size: 14)
button.contentHorizontalAlignment = .center
button.setTitle("确认".local, for: .normal)
button.setTitleColor( UIColor(hex:0xffffff), for: .normal)
button.layer.cornerRadius = 8
button.addTarget(self, action: #selector(agree), for: .touchUpInside)
return button
}()
centerView.addSubview(rightButton)
centerView.snp.makeConstraints { make in
make.center.equalToSuperview()
make.width.equalTo(299)
}
messageLabel.snp.makeConstraints { make in
make.top.equalTo(40)
make.left.equalTo(22)
make.right.equalTo(-22)
}
leftButton.snp.makeConstraints { make in
make.top.equalTo(messageLabel.snp.bottom).offset(40)
make.left.equalTo(16)
make.bottom.equalToSuperview().offset(-16)
make.size.equalTo(CGSize(width: 128, height: 45))
}
rightButton.snp.makeConstraints { make in
make.right.equalTo(-16)
make.centerY.equalTo(leftButton)
make.size.equalTo(CGSize(width: 128, height: 45))
}
}
@objc func agree() {
block?(true)
dismiss()
}
@objc private func handleTap(_ sender: AnyObject?) {
print("处理点击手势")
dismiss()
}
@objc func disagree() {
block?(false)
dismiss()
}
func dismiss() {
removeFromSuperview()
}
}
extension YHTwoOptionAlertView: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer:UIGestureRecognizer, shouldReceive touch:UITouch) -> Bool {
if touch.view == self {
return true
}
return false
}
}
...@@ -16,7 +16,8 @@ enum YHFormTitleItemEditType:Int { ...@@ -16,7 +16,8 @@ enum YHFormTitleItemEditType:Int {
class YHFamilyMemberFormVC: YHBaseViewController { class YHFamilyMemberFormVC: YHBaseViewController {
let familyRequest:YHFamilyRequest = YHFamilyRequest() var orderId:Int
let familyRequest:YHFamilyRequestViewModel = YHFamilyRequestViewModel()
var familyMemberInfo: YHFamilyMemberGroupInfo? var familyMemberInfo: YHFamilyMemberGroupInfo?
var isChildsEditMode: YHFormTitleItemEditType = .none var isChildsEditMode: YHFormTitleItemEditType = .none
var isBrothersEditMode: YHFormTitleItemEditType = .none var isBrothersEditMode: YHFormTitleItemEditType = .none
...@@ -63,15 +64,25 @@ class YHFamilyMemberFormVC: YHBaseViewController { ...@@ -63,15 +64,25 @@ class YHFamilyMemberFormVC: YHBaseViewController {
return view return view
}() }()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
self.gk_navTitle = "家庭成员信息填写".local self.gk_navTitle = "家庭成员信息填写".local
view.backgroundColor = UIColor(hexString:"#F8F8F8") view.backgroundColor = UIColor(hexString:"#F8F8F8")
createUI() createUI()
loadData() requestFamilyInfo()
} }
init(orderId: Int) {
self.orderId = orderId
super.init(nibName: nil, bundle: nil)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func createUI() { func createUI() {
view.addSubview(tableView); view.addSubview(tableView);
...@@ -103,191 +114,6 @@ class YHFamilyMemberFormVC: YHBaseViewController { ...@@ -103,191 +114,6 @@ class YHFamilyMemberFormVC: YHBaseViewController {
} }
func loadData() {
self.familyRequest.getFamilyInfo(params: ["orderId": 133971]) { success, error in
}
let dic = [
"father": [
"id": 0,
"deceased": 0,
"custody": 100,
"nationality": "",
"order_id": 0,
"relation": 0,
"has_degree": 0,
"has_degree_json": [],
"follow": 0,
"statement": 0,
"subset_name": "",
"subset_name_pinyin": "",
"used_name": "",
"birthday": "",
"birth_place_aboard": 0,
"birth_place": [],
"occupation": "",
"occupation_name": "",
"operator_ame": "",
"child_has_hk_id": [],
"hk_identity_card": "",
"sex": 0,
"married": 0,
"nows": 0,
"address": [
"area": ["广东省", "深圳市"],
"country": "中国-China",
"details": "大新地铁站",
"foreign": ""
],
"child_stepchild": [],
"child_in_hk": [],
"country_identity": [],
"hk_identity": "",
"hk_identity_other": "",
"live_country": "",
"is_handled": 0,
"finish_follow": 0,
"step": 0,
"not_fill_num": 7,
"certificates": [],
"is_live_oversea_year": 0
],
"mother": [
"id": 0,
"deceased": 0,
"custody": 100,
"nationality": "",
"order_id": 0,
"relation": 0,
"has_degree": 0,
"has_degree_json": [],
"follow": 0,
"statement": 0,
"subset_name": "",
"subset_name_pinyin": "",
"used_name": "",
"birthday": "",
"birth_place_aboard": 0,
"birth_place": [],
"occupation": "",
"occupation_name": "",
"operator_ame": "",
"child_has_hk_id": [],
"hk_identity_card": "",
"sex": 0,
"married": 0,
"nows": 0,
"address": [
"area": ["广东省", "深圳市"],
"country": "中国-China",
"details": "大新地铁站",
"foreign": ""
],
"child_stepchild": [],
"child_in_hk": [],
"country_identity": [],
"hk_identity": "",
"hk_identity_other": "",
"live_country": "",
"is_handled": 0,
"finish_follow": 0,
"step": 0,
"not_fill_num": 5,
"certificates": [],
"is_live_oversea_year": 0
],
"spouse": [
"id": 68416,
"deceased": 0,
"custody": 100,
"nationality": "中国-China",
"order_id": 133971,
"relation": "3",
"has_degree": "1",
"has_degree_json": [[
"degree": "1",
"address": "1"
]],
"follow": 1,
"statement": 0,
"subset_name": "林源芳",
"subset_name_pinyin": [
"family_name": "LIN",
"given_name": "YUANFANG"
],
"used_name": "",
"birthday": "2012-01-01",
"birth_place_aboard": 0,
"birth_place": [
"area": ["广东省", "深圳市"],
"country": "",
"details": "",
"foreign": ""
],
"occupation": "在职",
"occupation_name": "工程师",
"operator_ame": "",
"child_has_hk_id": [
"has": "N"
],
"hk_identity_card": "",
"sex": 2,
"married": "未婚",
"nows": 0,
"address": [
"area": ["广东省", "深圳市"],
"country": "",
"details": "大新地铁站",
"foreign": ""
],
"child_stepchild": [
"has": "",
"info": ""
],
"child_in_hk": [
"has": "N"
],
"country_identity": [],
"hk_identity": "",
"hk_identity_other": "",
"live_country": "",
"is_handled": 0,
"finish_follow": 0,
"step": 3,
"not_fill_num": 0,
"is_live_oversea_year": 0,
"surname": "",
"certificates": [
"cnIdentityCard": [
"id": 116871,
"number": "421087199005010811",
"issue_at": "深圳",
"issue_date_start_at": "2017-01-01",
"issue_date_end_at": "2029-01-01",
"img_front": "",
"img_back": ""
],
"passport": [
"id": 116872,
"number": "",
"issue_at": "",
"issue_date_start_at": "",
"issue_date_end_at": "",
"img_front": "",
"img_back": "",
"passport_type": 11
]
]
]
] as [String : Any]
familyMemberInfo = YHFamilyMemberGroupInfo.deserialize(dict: dic)
loadFamilyMember()
}
func loadFamilyMember() { func loadFamilyMember() {
items.removeAll() items.removeAll()
...@@ -337,167 +163,71 @@ class YHFamilyMemberFormVC: YHBaseViewController { ...@@ -337,167 +163,71 @@ class YHFamilyMemberFormVC: YHBaseViewController {
items.append(brotherArr) items.append(brotherArr)
let childCount = familyMemberInfo?.child?.count ?? 0 let childCount = familyMemberInfo?.child?.count ?? 0
if isChildsEditMode == .none && childCount > 0 { if childCount <= 0 {
isChildsEditMode = .canEdit isChildsEditMode = .none
} else {
if isChildsEditMode == .none {
isChildsEditMode = .canEdit
}
} }
let brotherCount = familyMemberInfo?.brother?.count ?? 0 let brotherCount = familyMemberInfo?.brother?.count ?? 0
if isBrothersEditMode == .none && brotherCount > 0 { if brotherCount <= 0 {
isBrothersEditMode = .canEdit isBrothersEditMode = .none
} else {
if isBrothersEditMode == .none {
isBrothersEditMode = .canEdit
}
} }
tableView.reloadData() tableView.reloadData()
} }
} }
extension YHFamilyMemberFormVC { extension YHFamilyMemberFormVC {
func addBrother() {
// 请求家庭成员信息
let dict = [ func requestFamilyInfo() {
"id": 68470,
"deceased": 0,
"custody": 100,
"nationality": "",
"order_id": 133971,
"relation": "5",
"has_degree": "100",
"has_degree_json": [],
"follow": 0,
"statement": 0,
"subset_name": "",
"subset_name_pinyin": [
"family_name": "",
"given_name": ""
],
"used_name": "",
"birthday": "",
"birth_place_aboard": 100,
"birth_place": [
"area": [],
"country": "",
"details": "",
"foreign": ""
],
"occupation": "",
"occupation_name": "",
"operator_ame": "",
"child_has_hk_id": [
"has": "",
"info": ""
],
"hk_identity_card": "",
"sex": 0,
"married": "未婚",
"nows": 100,
"address": [
"area": [],
"country": "",
"details": "",
"foreign": ""
],
"child_stepchild": [
"has": "",
"info": ""
],
"child_in_hk": [
"has": "",
"info": ""
],
"country_identity": [],
"hk_identity": "",
"hk_identity_other": "",
"live_country": "",
"is_handled": 100,
"finish_follow": 0,
"step": 0,
"not_fill_num": 9,
"is_live_oversea_year": 0,
"surname": "",
"certificates": []
] as [String : Any]
let brother:YHFamilyMember = YHFamilyMember.deserialize(dict: dict)!
if var brothers = familyMemberInfo?.brother { self.familyRequest.getFamilyInfo(params: ["orderId": self.orderId]) { [weak self] success, error in
brothers.append(brother) guard let self = self else { return }
familyMemberInfo!.brother = brothers if success {
} else { familyMemberInfo = self.familyRequest.familyInfo
familyMemberInfo?.brother = [brother] }
loadFamilyMember()
} }
loadFamilyMember()
} }
func addChild() { // 添加兄弟姐妹子女
let dict = [ func addFamilyMember(_ type:YHFamilyMemberType) {
"id": 68493,
"deceased": 0, let dict:[String: Any] = ["orderId":self.orderId,
"custody": 100, "relation":String(type.rawValue),
"nationality": "", "step":0,
"order_id": 133971, "next":false,
"relation": "4", "info":["subset_name":"",
"has_degree": "100", "not_fill_num":"",
"has_degree_json": [], "follow":0]]
"follow": 0,
"statement": 0, self.familyRequest.addFamilyMember(params: dict) { [weak self] success, error in
"subset_name": "", guard let self = self else { return }
"subset_name_pinyin": [ if success {
"family_name": "", self.requestFamilyInfo()
"given_name": "" }
], }
"used_name": "", }
"birthday": "",
"birth_place_aboard": 100, // 添加兄弟姐妹子女
"birth_place": [ func deleteFamilyMember(orderId:Int, memberId:Int, callBack:((Bool)->Void)?) {
"area": [], if orderId > 0 && memberId > 0 {
"country": "", let dict = ["id":memberId, "orderId": orderId]
"details": "", self.familyRequest.deleteFamilyMember(params: dict) { [weak self] success, error in
"foreign": ""
], guard let self = self else { return }
"occupation": "", if let callBack = callBack {
"occupation_name": "", callBack(success)
"operator_ame": "", }
"child_has_hk_id": [ }
"has": "",
"info": ""
],
"hk_identity_card": "",
"sex": 0,
"married": "未婚",
"nows": 100,
"address": [
"area": [],
"country": "",
"details": "",
"foreign": ""
],
"child_stepchild": [
"has": "",
"info": ""
],
"child_in_hk": [
"has": "",
"info": ""
],
"country_identity": [],
"hk_identity": "",
"hk_identity_other": "",
"live_country": "",
"is_handled": 100,
"finish_follow": 0,
"step": 0,
"not_fill_num": 10,
"is_live_oversea_year": 0,
"surname": "",
"certificates":[]
] as [String : Any]
let child = YHFamilyMember.deserialize(dict: dict)!
if var childs = familyMemberInfo?.child {
childs.append(child)
familyMemberInfo!.child = childs
} else {
familyMemberInfo?.child = [child]
} }
loadFamilyMember()
} }
} }
...@@ -538,21 +268,23 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource { ...@@ -538,21 +268,23 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
// 右边按钮点击事件处理 // 右边按钮点击事件处理
cell.rightClickBlock = { [weak self] type in cell.rightClickBlock = { [weak self] type in
guard let self = self else { return }
if formItem.type == .child { if formItem.type == .child {
if self?.isChildsEditMode == .canCancel { if self.isChildsEditMode == .canCancel {
self?.isChildsEditMode = .canEdit self.isChildsEditMode = .canEdit
} else if self?.isChildsEditMode == .canEdit { } else if self.isChildsEditMode == .canEdit {
self?.isChildsEditMode = .canCancel self.isChildsEditMode = .canCancel
} }
} }
if formItem.type == .brother { if formItem.type == .brother {
if self?.isBrothersEditMode == .canCancel { if self.isBrothersEditMode == .canCancel {
self?.isBrothersEditMode = .canEdit self.isBrothersEditMode = .canEdit
} else if self?.isBrothersEditMode == .canEdit { } else if self.isBrothersEditMode == .canEdit {
self?.isBrothersEditMode = .canCancel self.isBrothersEditMode = .canCancel
} }
} }
self?.loadFamilyMember() self.loadFamilyMember()
} }
return cell return cell
} }
...@@ -577,25 +309,50 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource { ...@@ -577,25 +309,50 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
// 删除子女兄妹处理 // 删除子女兄妹处理
cell.deleteBlock = { [weak self] in cell.deleteBlock = { [weak self] in
guard let self = self else { return }
if detailItem.relationType == .child { if detailItem.relationType == .child {
let childCount = self?.familyMemberInfo?.child?.count ?? 0
let childCount = self.familyMemberInfo?.child?.count ?? 0
// 因为子女兄妹section第一行都是标题所以row-1 // 因为子女兄妹section第一行都是标题所以row-1
if (indexPath.row-1 < childCount) { if (indexPath.row-1 >= childCount) { return }
self?.familyMemberInfo?.child?.remove(at: indexPath.row-1) guard let child = self.familyMemberInfo?.child?[indexPath.row-1] else { return }
self?.isChildsEditMode = .none let msg = String(format: "确定要删除子女%d(%@)吗?".local, indexPath.row, "XXX")
self?.isBrothersEditMode = .none
YHTwoOptionAlertView.showAlertView(message:msg) { sure in
if !sure { return }
self.deleteFamilyMember(orderId: self.orderId, memberId:child.id) {
[weak self] success in
guard let self = self else { return }
self.isChildsEditMode = .none
self.isBrothersEditMode = .none
self.requestFamilyInfo()
}
} }
} else if detailItem.relationType == .brother { } else if detailItem.relationType == .brother {
let brotherCount = self?.familyMemberInfo?.brother?.count ?? 0 let brotherCount = self.familyMemberInfo?.brother?.count ?? 0
// 因为子女兄妹section第一行都是标题所以row-1 // 因为子女兄妹section第一行都是标题所以row-1
if (indexPath.row-1 < brotherCount) { if (indexPath.row-1 >= brotherCount) { return }
self?.familyMemberInfo?.brother?.remove(at: indexPath.row-1) guard let brother = self.familyMemberInfo?.brother?[indexPath.row-1] else { return }
self?.isChildsEditMode = .none let msg = String(format: "确定要删除兄弟%d(%@)吗?".local, indexPath.row, "XXX")
self?.isBrothersEditMode = .none YHTwoOptionAlertView.showAlertView(message: msg) { sure in
if !sure { return }
self.deleteFamilyMember(orderId: self.orderId, memberId:brother.id) {
[weak self] success in
guard let self = self else { return }
self.isChildsEditMode = .none
self.isBrothersEditMode = .none
self.requestFamilyInfo()
} }
}
} }
self?.loadFamilyMember()
} }
} }
...@@ -609,10 +366,11 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource { ...@@ -609,10 +366,11 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemAddCell.cellReuseIdentifier, for: indexPath) as! YHFormItemAddCell let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemAddCell.cellReuseIdentifier, for: indexPath) as! YHFormItemAddCell
cell.clickBlock = { [weak self] in cell.clickBlock = { [weak self] in
guard let self = self else { return }
if formItem.type == .addBrother { if formItem.type == .addBrother {
self?.addBrother() self.addFamilyMember(.brother)
} else if formItem.type == .addChild { } else if formItem.type == .addChild {
self?.addChild() self.addFamilyMember(.child)
} }
} }
return cell return cell
......
...@@ -7,17 +7,20 @@ ...@@ -7,17 +7,20 @@
// //
class YHFamilyRequest { class YHFamilyRequestViewModel {
var familyInfo:YHFamilyMemberGroupInfo? var familyInfo:YHFamilyMemberGroupInfo?
//请求所有家庭成员信息 //请求所有家庭成员信息
func getFamilyInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) { func getFamilyInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.familyInfoApi let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.familyInfoApi
YHHUD.show(.progress(message: "数据加载中..."))
let _ = YHNetRequest.getRequest(url: strUrl, params:params) {[weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl, params:params) {[weak self] json, code in
//1. json字符串 转 对象 YHHUD.hide()
guard let self = self else { return } guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else { guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description()) let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
...@@ -38,6 +41,58 @@ class YHFamilyRequest { ...@@ -38,6 +41,58 @@ class YHFamilyRequest {
callBackBlock(false,err) callBackBlock(false,err)
} }
} }
// 添加家庭成员
func addFamilyMember(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.familyInfoApi
let _ = YHNetRequest.postRequest(url: strUrl, params:params) {[weak self] json, code in
YHHUD.hide()
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
printLog("model 是 ==> \(model)")
if model.code == NetWorkCode.success.rawValue {
callBackBlock(true,nil)
} else {
callBackBlock(false, nil)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
func deleteFamilyMember(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.familyMemberDeleteApi
let _ = YHNetRequest.postRequest(url: strUrl, params:params) {[weak self] json, code in
YHHUD.hide()
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
printLog("model 是 ==> \(model)")
if model.code == NetWorkCode.success.rawValue {
callBackBlock(true,nil)
} else {
callBackBlock(false, nil)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
} }
...@@ -127,8 +127,8 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource { ...@@ -127,8 +127,8 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
if (indexPath.row >= items.count) { return } if (indexPath.row >= items.count) { return }
let vvc = YHFamilyMemberFormVC() let vc = YHFamilyMemberFormVC(orderId: 133971)
self.navigationController?.pushViewController(vvc) self.navigationController?.pushViewController(vc)
return return
......
...@@ -9,6 +9,10 @@ ...@@ -9,6 +9,10 @@
import Foundation import Foundation
import SmartCodable import SmartCodable
enum NetWorkCode: Int {
case success = 200
}
struct NetBaseModel: SmartCodable { struct NetBaseModel: SmartCodable {
var data : SmartAny? var data : SmartAny?
var code : Int = -1 var code : Int = -1
......
...@@ -23,9 +23,10 @@ class YHAllApiName { ...@@ -23,9 +23,10 @@ class YHAllApiName {
//合同填写进度 //合同填写进度
static let contractStatusApi = "frontend/order/progress" static let contractStatusApi = "frontend/order/progress"
// 获取家庭成员信息 添加家庭成员也用这个
//获取家庭信息
static let familyInfoApi = "frontend/order/information/family" static let familyInfoApi = "frontend/order/information/family"
// 删除家庭成员信息
static let familyMemberDeleteApi = "frontend/order/information/family/delete"
} }
} }
...@@ -93,8 +93,8 @@ class YHNetRequest: NSObject { ...@@ -93,8 +93,8 @@ class YHNetRequest: NSObject {
print("sign = \(sign)") print("sign = \(sign)")
requestHeader.add(name:"sign",value:sign) requestHeader.add(name:"sign",value:sign)
requestHeader.add(name: "token", value: "eyJpdiI6IkEwZ1pCTnJVUytcLzNPXC9pazV3bVYyUT09IiwidmFsdWUiOiJyWHBrb084SndjV0tvdVR0SnBuZGlKTFhhdVRPd1NUVlRuc3VMYTZHMCtiNUVcL1g3SGNGeG9oTmQ0NXNyZnBzVGMwSEc2bjJhdnd6ZzBReWR4QldtMXU5THZKMWFPVHJHQkZuSmExQzFKUldiV2ZhVys4VVJOZXd1enVZMXREc3VaaitudVdtdVVwV04zOEs3Slgxbk0yS21IZTEzYitoZkV5RWhBTlJ5TjhTd0Z1dTBCTlIxY1hSNE50TjBsVHhtQ2dqUmVXQnBpZkJ2N0F3bWtFU3NYSjBSNGVyRzlqZEJKdllYQXBIWEZjQWlGSlZNT2pCdStsUVwvT0Y2QkMrQjNnSDc2bmlhTjE3NjMxZGJyUGViWjhZb3JOWXpsKzg5b3o0VFU3emVVQ2FOUnpmcVRNU3JYbFwvOTlTZnVJcGlqN2tvOEQ2NWxpcWdlRndwK3R2dU9CUE1PUGpIa2Z4RjZBUGdOYXBVMEdmbXJFRStwTmxrejRqNmVSMjZ6dUgwclBNUlgwZGRVcTlqMzdUSzF3VXNFcFVNeU5FTXJjbmNLcWhheXBiNkZSMHhBa3V3dHk4XC9LWXI0d1pXeTQ4d0ltUHhRUFUrZnpQaUtvT0VCR1FWZTR1TlFFMGFxZUFqcysxZ2J3U1NSUkJTT29tdmY3UWR3RWN3OG55dldPM2ZWYXY5OVBNTVlwZWY0M3pXSGJ5OHVmV2lXZGExaVBRa3Z5RkFUREpLTDdRcHh6SW5ERDhVNVpGemR0K0RiYnRCaFI1MzFRQzZlalR5a09mTFwvNUd5eFFWb2p5OGRvMGxEQzlNbnBkdFwvdktLWit2b3pJTlRBNE5zcUsrSkRUUkRNZVZsdkljZncycHFBNldnYnFydnpcL2lDYmprdWdWZ1BEMk5CNzU3UVJtQnFvN1BJTm0rcVp6S1pmT3dyYXppQnhvT3ZIMWdJN2ExVGJYb3RVb2hnTlNUU2p2TmN1VDJmdVFDNU92TG1XUHI3UmlxWXVVQVhzbFwveDRxZUQyVU9VblcxNTNQdUJHOGRTaHB6a0cwU0FhbEJxK2tkeHNFMUJWNXgzb0g1WnJzdHBtdmRTREV2V3pqdDlLbTZEb2VPV0VPRll3M1dwSGx0cm16ODFlSWRCOTBkcUVrMXpkT3cwOUNLNTRPQW93OFNOUTg0NUpxZDZGa3IyUDRKWGR3NWRiK1wvQVhPTzlKdGR3SHB6cmZ2UjhBRlwvVWg2NStuQW5OcFVtNEFzQ3J0Y0VtTTI2RWF3a3J4MzJxcE1YWUtJYUc0bXY5NFwvYTBjb0FoZlhiSnQrOHhsUERhcVpcL0lsMTNtY2xzbFN1Umpob2czU3k2Sk9NcHFZamZVZlBCZTBTVFo2c08wOUNvRVpDQTNGR0YwaVdWbHk0Z3FKWHd5ZjJBUzhQanprR2lMdnBtZ2VQSEJKclNSd1QxdGxIVWRhQzF6UWRVXC9HQzlFbzRRc21RUVNwZ3B4RVozV2VSMXFHUTdsU04rNm5VeHdnbStnN014MGFrK2s1VUIxT0VNZkpjaVc2bEtFQkt1ekZDQ1hseWJROElnTXdNYkFjcGs2T2prY0pDakZMVWN5N1N1bjRcL0NCeWE1WElzM2l2UEZ2TkpiUm90cUhyeGFMOWFcL1wvRzlmZ0Z0dXA4bGhsNmFkTjgzcXhyME9MSlBQcFwvcWlCZW5MNEJ0RTd5MXZGeGx2djQzdmNwQXRrQ2QyU3QzMzRMUmVvTXlHYlNFcFpPSjROdGNzOXRGXC9OMGw3cE1nVzdxNHZwb2lCU3ZWaXFqOEVmUmFodmVsdDkxZFNKRjJHWURSVGNsMUlOdUMxRDFJV0NLYStmTHJ4WG5Lc1d6bGNNa0c2Q2ZzMXRYZkNHUzFvTmNBcHNrOWFQRDhtVmExc016c0RJbDNrVCtvdm94UT09IiwibWFjIjoiNTYyNGEzYWE3YjllODY5NmQ0NjdlMTg1NzQ4OGU1Y2I4MTE0MGQ2ZjFjNTQ0MTdkOTc0ODRmYjZhNDNhM2EwNiJ9") requestHeader.add(name: "token", value: "eyJpdiI6InkrcVNJK2tyMDMzekZOcHE1NklOUUE9PSIsInZhbHVlIjoiRTNMY0VoM2p1b2JvMVoxY28wa2RCRWtMdzA3N1BIaUhqN2F5d3Y5VXp6KzhlNHpTMzdWODlJckNaeUczZkNNamZDbWY0U1c2VGJJOVVBeVpDWUVqV29ISzRkNzh3d2ZZbDFKMk9vN3pRR0g4ZUlXTTliWTNoUzdyNHpQNGtKU1Z3YzMzTnRUMERPQXcwTmpEcXQzSU5qRWt6MlhMWXVEUDB5THNwTWMzZTE1cEtUOUFpXC9xTlB4UFBmeXJ6cHhnNkR6TktFK3hhejJ0OG82cWFGRG5hMkN1dU1zblwvRk8xSEhXTno4Z3Z1WjExYXRHNE1zZXo4Yzh5cW1WSjlNVnBJU1dFOUFYbDBIXC83Q1BtZ3dhK2REa3NFQjI1ODZJalY3U1c0WHM5aG0xSDNzUjJcL0ZPVEhqR1lRTFI3UjBJRVFcL0NRZVlrbWZ4eGJvNUxtZDNJNUdGME45WkwzN1Byc1U5MTdod3RNMFc3TEt5cVNha211aEN6V0g4eFo4YStOYVFYdXhYaTJ6RFN0bTRkb1U3NUV1ZG01XC9UM3pMdlhRSm1VNUpcL0ZwMnpXdkR5XC9hTDJrVW9pamxYRTROOENRSTRsUlVJQ1lGR1phSmJZVVVEK1R6NTZLbkN4WlA5REJhbzN5Qzc4bEE3OTEyTDBJSmZic2dKSkpPWXpaOVF0T1NId05GdGVCYnNBNXVmOWt6MG9GUjRHcEFKVWVJSG1QXC8rTElxZGFTUERlQjdDS1FzUVI2VHJSYXVlZWZ3ZUlVK28rM1VaeGhPXC9OVWFoU0lqUHFkRWdiSG8wcUlcL2IyNWVZUzZ2ZE93ZmZkQXFYXC9CSHJNU0VcL1RPb2RYWW1OVnFhd251UFhjTnI3b2lraVJWcG16SkxRdjFnc1BlaHVTSEdpSTlUMmlBTjF5eFgyb09GSzR6UUdmRHlMZFZNT3JTNmowWGdYNVR5WFM5TnVVNTVYdHduWnV0ZTVNUGNHNngyVGNtK0Q3YTN0ekVZb1E3UFBJd2hmblJEdmZLdk5nUExmaWJJU2hWRVBmdHMzRUM0SW1hTnNSRWt6VWY5NDhodUJJelZvSDNHbjBJMitvb2ZKNGVKMW05SjQ4QVcyTGVtY1JDK2doWE52Kzh6K2xqMVpMWXgxT1NUWUo0UWdocktxbFBxMGx1S0RlbXlJalwvNkhRWUV5dktRcGoxZ3MzT1NWWDN5TGpJQ0hlb1Jta05zdmRpTmdWOXNBYXJidVFnTTlSRG4wUjhEMXg3WWdXUkZSM0JiTlNVaDlBYjZEVFBxdm1lZkw4UGpjRXJMSlVQRFwvNG5zYmp3cVc4emd5bmI4VGU4dW1kS3RhdHhpMGY3NzVKRnVBVjhoVjBHc2VhRmZpS3V4aEdZZFpob3NcLzR1MHpCOUp4ZE92NkZoYU8xc3JuMVdQQjl0QmdoOENCVHZneG1xVFJ1eHVOSVIzN2xnNEVNZ01yeFhzMitESVM0QzdVTmJiUmNkaW1XS2VuR3lqclJNRWk4WmNjK0FyZXh2Qldxd25EU1h1MHE4WElPMnZtSVhQNHBYV1l4QXlKV0dBaUlGem5aMUFGNDFBTmgrMHNIeFVSTWtKUERxQkJvOFJ1anI1SGJZd2hJM1NWbFJnMXdSTUJKMytKeThucDlERVBrK3lkVUVnY1diRkRRXC90aEl2OCtyTFVaQjZcLzlnN01TaXcrVlF0TFVFdGNLbitrVU1WZnlobkVuQXZYSCtqc083cUNXYlRjS21sVDd4ak5FMDlMM05WeHMya3FBblYyVXRNSjI4MklXSmdaUnZqdGxOWTZXS1ZYNXpobTlPWGN0alwvODhoVzM4OEJDeDl3WmZrcGREYnJwbUVRaWdXb2dzMnVcL1ZEYXVxUUtjR1I2WjJuVHNidmlZUHBqREg3bmcyalB2QWdBdz09IiwibWFjIjoiYWYyZTgyMWJkZmUxYzUxOThmYjBiYTI3ZGRhNTk3NWU2NTBlODgzMjZjYmExYzEzZDEwZDA4NGU5YmUzNmIwNiJ9")
headers = requestHeader headers = requestHeader
} }
......
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