Commit 147a45d4 authored by Steven杜宇's avatar Steven杜宇

// 证件信息

parent 36d096b0
......@@ -8,7 +8,6 @@
/* Begin PBXBuildFile section */
04010B952B6A1DE90093F3BB /* YHSaveAndSubmitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04010B942B6A1DE90093F3BB /* YHSaveAndSubmitView.swift */; };
040FA3372B6F701E0069D17F /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 040FA3362B6F701E0069D17F /* File.swift */; };
041B52872B5657B3007EBCEB /* IMAppKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52862B5657B3007EBCEB /* IMAppKey.swift */; };
041B528B2B5E15F1007EBCEB /* YHFormItemQuestionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B528A2B5E15F1007EBCEB /* YHFormItemQuestionCell.swift */; };
041B528D2B5E58FA007EBCEB /* YHFormItemDoubleChoiceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B528C2B5E58FA007EBCEB /* YHFormItemDoubleChoiceCell.swift */; };
......@@ -20,7 +19,7 @@
041B52D62B5F899E007EBCEB /* YHSpouseInitialInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52D52B5F899E007EBCEB /* YHSpouseInitialInfoVC.swift */; };
041B52DB2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52DA2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift */; };
041B52DD2B60A889007EBCEB /* YHTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52DC2B60A889007EBCEB /* YHTest.swift */; };
042FBBBB2B62806D00F9DE23 /* YHCertificateViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBA2B62806D00F9DE23 /* YHCertificateViewController.swift */; };
042FBBBB2B62806D00F9DE23 /* YHCertificateInfoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBA2B62806D00F9DE23 /* YHCertificateInfoController.swift */; };
042FBBBD2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBC2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift */; };
042FBBBF2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBBE2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift */; };
042FBBC12B63B21700F9DE23 /* YHFormItemDegreeInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 042FBBC02B63B21700F9DE23 /* YHFormItemDegreeInfoCell.swift */; };
......@@ -228,7 +227,6 @@
/* Begin PBXFileReference section */
04010B942B6A1DE90093F3BB /* YHSaveAndSubmitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSaveAndSubmitView.swift; sourceTree = "<group>"; };
040FA3362B6F701E0069D17F /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = "<group>"; };
041B52862B5657B3007EBCEB /* IMAppKey.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IMAppKey.swift; sourceTree = "<group>"; };
041B528A2B5E15F1007EBCEB /* YHFormItemQuestionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFormItemQuestionCell.swift; sourceTree = "<group>"; };
041B528C2B5E58FA007EBCEB /* YHFormItemDoubleChoiceCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFormItemDoubleChoiceCell.swift; sourceTree = "<group>"; };
......@@ -240,7 +238,7 @@
041B52D52B5F899E007EBCEB /* YHSpouseInitialInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSpouseInitialInfoVC.swift; sourceTree = "<group>"; };
041B52DA2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyInitialInfo.swift; sourceTree = "<group>"; };
041B52DC2B60A889007EBCEB /* YHTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHTest.swift; sourceTree = "<group>"; };
042FBBBA2B62806D00F9DE23 /* YHCertificateViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateViewController.swift; sourceTree = "<group>"; };
042FBBBA2B62806D00F9DE23 /* YHCertificateInfoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateInfoController.swift; sourceTree = "<group>"; };
042FBBBC2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFormItemSelectSheetCell.swift; sourceTree = "<group>"; };
042FBBBE2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSpouseBasicInfoVC.swift; sourceTree = "<group>"; };
042FBBC02B63B21700F9DE23 /* YHFormItemDegreeInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFormItemDegreeInfoCell.swift; sourceTree = "<group>"; };
......@@ -454,7 +452,6 @@
040FA3352B6F700F0069D17F /* M */ = {
isa = PBXGroup;
children = (
040FA3362B6F701E0069D17F /* File.swift */,
);
path = M;
sourceTree = "<group>";
......@@ -502,7 +499,7 @@
041B52972B5E8EA0007EBCEB /* YHFamilyMemberFormVC.swift */,
04D765722B6A173C0055ECBB /* YHSpouseInfoVC.swift */,
041B52D52B5F899E007EBCEB /* YHSpouseInitialInfoVC.swift */,
042FBBBA2B62806D00F9DE23 /* YHCertificateViewController.swift */,
042FBBBA2B62806D00F9DE23 /* YHCertificateInfoController.swift */,
042FBBBE2B639F0300F9DE23 /* YHSpouseBasicInfoVC.swift */,
042FBBC22B63DA4C00F9DE23 /* YHParentInfoVC.swift */,
042FBBC62B64CFBF00F9DE23 /* YHChildInitialInfoVC.swift */,
......@@ -1520,12 +1517,11 @@
A5C5B3292B57CCBE00A7C5D1 /* YHDavidCell4.swift in Sources */,
049A48A82B49417300D0C641 /* YHAboutUsViewController.swift in Sources */,
A5ACE9582B4564F7002C94D2 /* YHNoDataTipView.swift in Sources */,
042FBBBB2B62806D00F9DE23 /* YHCertificateViewController.swift in Sources */,
042FBBBB2B62806D00F9DE23 /* YHCertificateInfoController.swift in Sources */,
042FBBC72B64CFBF00F9DE23 /* YHChildInitialInfoVC.swift in Sources */,
A5234E2A2B6E349600A33433 /* YHBasicInfoFillBottomView.swift in Sources */,
04A7BC912B6B7B89000E8D47 /* YHTwoOptionAlertView.swift in Sources */,
0468D4792B68A08600CFB916 /* YHAddressViewController.swift in Sources */,
040FA3372B6F701E0069D17F /* File.swift in Sources */,
A5ACE9562B4564F7002C94D2 /* YHBouncesContentView.swift in Sources */,
042FBBCB2B65058000F9DE23 /* YHChildBasicInfoVC.swift in Sources */,
A5ACE9302B4564F7002C94D2 /* Algorithm.swift in Sources */,
......
//
// File.swift
// galaxy
//
// Created by edy on 2024/2/4.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import Alamofire
struct ArrayEncoding: ParameterEncoding {
func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var request = try URLEncoding().encode(urlRequest, with: parameters)
request.url = URL(string: request.url!.absoluteString.replacingOccurrences(of: "%5B%5D=", with: "="))
return request
}
}
......@@ -436,39 +436,40 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
if item is YHFamilyMember {
let detailItem = item as! YHFamilyMember
// 配偶
if detailItem.relationType == .spouse {
let vc = YHSpouseInfoVC()
vc.spouse = detailItem
vc.orderId = orderId
self.navigationController?.pushViewController(vc)
return
}
// 父母
if detailItem.relationType == .father || detailItem.relationType == .mother {
let vc = YHParentInfoVC()
vc.parentInfo = detailItem
self.navigationController?.pushViewController(vc)
return
}
// 子女
if detailItem.relationType == .child {
let vc = YHChildInitialInfoVC()
vc.child = detailItem
self.navigationController?.pushViewController(vc)
return
}
// 兄弟姐妹
if detailItem.relationType == .brother {
let vc = YHBrotherInfoVC()
vc.brotherInfo = detailItem
self.navigationController?.pushViewController(vc)
return
}
// 配偶
if detailItem.relationType == .spouse {
let vc = YHSpouseInfoVC()
vc.spouse = detailItem
vc.orderId = orderId
self.navigationController?.pushViewController(vc)
return
}
// 父母
if detailItem.relationType == .father || detailItem.relationType == .mother {
let vc = YHParentInfoVC()
vc.parentInfo = detailItem
self.navigationController?.pushViewController(vc)
return
}
// 子女
if detailItem.relationType == .child {
let vc = YHChildInitialInfoVC()
vc.child = detailItem
self.navigationController?.pushViewController(vc)
return
}
// 兄弟姐妹
if detailItem.relationType == .brother {
let vc = YHBrotherInfoVC()
vc.brotherInfo = detailItem
self.navigationController?.pushViewController(vc)
return
}
}
}
......
......@@ -25,9 +25,8 @@ enum HKFormItemCellType: Int {
class YHSpouseBasicInfoVC: YHBaseViewController {
var spouse:YHFamilyMember?
var cardInfo: YHCNIdentityCard?
weak var delegate:YHSpouseInfoVCProtocol?
var items:[[YHFormItemProtocol]] = [[YHFormItemProtocol]]()
lazy var tableView: UITableView = {
......@@ -292,7 +291,7 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
cell.title = detailItem.getTitle()
cell.text = detailItem.value
cell.textChange = {
[weak self] text in
[weak self] (text, isEditEnd) in
guard let self = self else { return }
if detailItem.type == .spouseName {
self.spouse?.subsetName = text
......
......@@ -11,6 +11,7 @@ import UIKit
@objc protocol YHSpouseInfoVCProtocol {
@objc optional func updateStepView()
@objc optional func saveInfo()
}
......@@ -23,13 +24,12 @@ class YHSpouseInfoVC: YHBaseViewController, YHSpouseInfoVCProtocol {
var spouse:YHFamilyMember? {
didSet {
initalInfoVC.spouse = spouse
passportInfoVC.familyMember = spouse
certificateVC.familyMember = spouse
basicInfoVC.spouse = spouse
}
}
var currentIndex = 0 {
didSet {
currentIndex %= self.children.count
stepView.currentIndex = currentIndex
......@@ -53,7 +53,7 @@ class YHSpouseInfoVC: YHBaseViewController, YHSpouseInfoVCProtocol {
let initalInfoVC = YHSpouseInitialInfoVC()
let uploadVC = UIViewController()
let passportInfoVC = YHCertificateViewController()
let certificateVC = YHCertificateInfoController()
let basicInfoVC = YHSpouseBasicInfoVC()
override func viewDidLoad() {
......@@ -66,7 +66,8 @@ class YHSpouseInfoVC: YHBaseViewController, YHSpouseInfoVCProtocol {
guard let spouse = spouse else { return }
initalInfoVC.delegate = self
certificateVC.delegate = self
basicInfoVC.delegate = self
updateStepView()
......@@ -84,7 +85,7 @@ class YHSpouseInfoVC: YHBaseViewController, YHSpouseInfoVCProtocol {
bottomView.saveBlock = {
[weak self] in
guard let self = self else { return }
self.save()
self.saveInfo()
}
stepView.snp.makeConstraints { make in
......@@ -118,11 +119,11 @@ class YHSpouseInfoVC: YHBaseViewController, YHSpouseInfoVCProtocol {
self.addChild(initalInfoVC)
self.addChild(uploadVC)
self.addChild(passportInfoVC)
self.addChild(certificateVC)
self.addChild(basicInfoVC)
self.view.addSubview(basicInfoVC.view)
self.view.addSubview(passportInfoVC.view)
self.view.addSubview(certificateVC.view)
self.view.addSubview(uploadVC.view)
self.view.addSubview(initalInfoVC.view)
......@@ -153,14 +154,22 @@ class YHSpouseInfoVC: YHBaseViewController, YHSpouseInfoVCProtocol {
}
extension YHSpouseInfoVC {
func save() {
func saveInfo() {
guard let spouse = spouse else { return }
guard let info = spouse.toDictionary() else { return }
let arr = info["has_degree_json"] as! [[String:Any]]
let parmas:[String:Any] = info
guard var info = spouse.toDictionary() else { return }
// let certi = [ "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":"421087199005010811","issue_at":"深圳","issue_date_start_at":"2020-01-01","issue_date_end_at":"2023-01-01","img_front":"","img_back":"","passport_type":3],
// "hkMacaoPass":["id":118182,"number":"P103265(1)","issue_at":"SFAA","issue_date_start_at":"2024-01-31","issue_date_end_at":"2024-01-31","img_front":"","img_back":""]
// ]
//
// if let cer = info["certificates"] {
// info["certificates"] = certi
// }
let cer = info["certificates"]
let dict:[String: Any] = ["orderId":self.orderId,
"relation":spouse.relationType.rawValue,
"step":0,
......
......@@ -240,7 +240,7 @@ extension YHSpouseInitialInfoVC : UITableViewDelegate, UITableViewDataSource {
cell.text = detailItem.value
cell.placeHolder = detailItem.placeHolder
cell.textChange = {
[weak self] text in
[weak self] (text, isEditEnd) in
guard let self = self else { return }
self.spouse?.address?.details = text
......
......@@ -536,6 +536,8 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
var childStepchild: YHChildStepchildClass?
// 在港信息
var childInHk: YHChildStepchildClass?
// 证件数组 (中国身份证、香港身份证、护照等)
var certificates: YHCertificates?
// mark any
var countryIdentity: SmartAny?
......@@ -556,11 +558,6 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
// 婚前刑事
var surname: String?
// mark any
// var certificates: YHCertificates?
var certificates: SmartAny?
var certificatesd: YHCertificates?
enum CodingKeys: String, CodingKey {
case id = "id"
case deceased = "deceased"
......
......@@ -128,6 +128,9 @@ enum YHFormPickerViewSubType {
return "联合国通行证".local
case .certificate(.officialPassport):
return "公务护照".local
case .certificate(.other):
return "其他".local
case .identity(.student):
return "学生".local
case .identity(.employment):
......@@ -195,19 +198,21 @@ enum YHFormPickerViewSubType {
return 1
case .certificate(.passport):
return 0
case .certificate(.travelPassport):
return 1
case .certificate(.diplomaticPassport):
return 2
case .certificate(.chineseStatelessTravelPassport):
return 3
case .certificate(.otherStatelessTravelPassport):
case .certificate(.diplomaticPassport):
return 4
case .certificate(.unitedNationsPassport):
return 5
case .certificate(.officialPassport):
return 5
case .certificate(.chineseStatelessTravelPassport):
return 6
case .certificate(.travelPassport):
return 7
case .certificate(.unitedNationsPassport):
return 8
case .certificate(.otherStatelessTravelPassport):
return 9
case .certificate(.other):
return 10
case .ownDegree(.noDegree):
return 0
......@@ -231,8 +236,8 @@ enum YHFormPickerViewSubType {
return 2
}
return -1
}
}
......@@ -287,19 +292,21 @@ enum YHPickerViewGenderType: Int {
enum YHPickerViewCertificateType: Int {
// 护照
case passport = 0
case passport = 3
// 外交护照
case diplomaticPassport = 1
case diplomaticPassport = 4
// 公务护照
case officialPassport = 2
case officialPassport = 5
// 中国发无国籍旅游证件
case chineseStatelessTravelPassport = 3
case chineseStatelessTravelPassport = 6
// 旅游通行证
case travelPassport = 4
case travelPassport = 7
// 联合国通行证
case unitedNationsPassport = 5
case unitedNationsPassport = 8
// 其他无国籍旅行证件
case otherStatelessTravelPassport = 6
case otherStatelessTravelPassport = 9
// 其他
case other = 10
}
......@@ -477,7 +484,8 @@ class YHFormPickerView: UIView {
YHFormPickerViewItem(type: .certificate(.chineseStatelessTravelPassport)),
YHFormPickerViewItem(type: .certificate(.travelPassport)),
YHFormPickerViewItem(type: .certificate(.unitedNationsPassport)),
YHFormPickerViewItem(type: .certificate(.otherStatelessTravelPassport))],
YHFormPickerViewItem(type: .certificate(.otherStatelessTravelPassport)),
YHFormPickerViewItem(type: .certificate(.other))],
// 在港身份
.identity:
......@@ -496,6 +504,8 @@ class YHFormPickerView: UIView {
.degreeLocation:
[YHFormPickerViewItem(type: .degreeLocation(.domestic)),
YHFormPickerViewItem(type: .degreeLocation(.forgin))],
]
}()
......@@ -605,7 +615,7 @@ class YHFormPickerView: UIView {
var selectIndex:Int = -1
if let selectType = selectType, let arr = dataDict[type], !arr.isEmpty {
for (index, item) in arr.enumerated() {
if selectType.title == item.type.title {
if selectType.index == item.type.index {
selectIndex = index
break
}
......
......@@ -14,7 +14,8 @@ class YHFormItemInputTextCell: UITableViewCell {
// 是否必填 如必填title会展示红色*
var isMust = false
var textChange:((String?)->Void)?
// BOOL值表示编辑是否结束
var textChange:((String?, Bool)->Void)?
var title:String? {
didSet {
......@@ -70,6 +71,7 @@ class YHFormItemInputTextCell: UITableViewCell {
textField.tintColor = UIColor.mainTextColor
textField.textColor = UIColor.mainTextColor
textField.addTarget(self, action: #selector(textFieldChanged(textField:)), for: .editingChanged)
textField.addTarget(self, action: #selector(textFieldEditEnd(textField:)), for: .editingDidEnd)
return textField
}()
......@@ -105,8 +107,13 @@ class YHFormItemInputTextCell: UITableViewCell {
@objc func textFieldChanged(textField:UITextField) {
if let textChange = textChange {
textChange(textField.text)
textChange(textField.text, false)
}
}
@objc func textFieldEditEnd(textField:UITextField) {
if let textChange = textChange {
textChange(textField.text, true)
}
}
}
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