Commit 9ca1bcb8 authored by David黄金龙's avatar David黄金龙

Merge branch 'develop' into davidhuang

* develop:
  // 选择器
  主申请人数据save和submit
  // 配偶基本信息
  保存接口
parents c9a5f43b 502f58ef
...@@ -126,7 +126,7 @@ class YHSpouseInfoVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -126,7 +126,7 @@ class YHSpouseInfoVC: YHBaseViewController, YHSpouseInfoVCProtocol {
self.view.addSubview(uploadVC.view) self.view.addSubview(uploadVC.view)
self.view.addSubview(initalInfoVC.view) self.view.addSubview(initalInfoVC.view)
stepView.dataSource = ["初始信息".local, "证件上传".local, "基本信息".local, "证件信息".local] stepView.dataSource = ["初始信息".local, "证件上传".local, "证件信息".local, "基本信息".local]
stepView.block = {[weak self] (index) in stepView.block = {[weak self] (index) in
guard let self = self else { return } guard let self = self else { return }
print("follow:%d", self.orderId) print("follow:%d", self.orderId)
...@@ -139,7 +139,7 @@ class YHSpouseInfoVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -139,7 +139,7 @@ class YHSpouseInfoVC: YHBaseViewController, YHSpouseInfoVCProtocol {
self.view.addSubview(basicInfoVC.view) self.view.addSubview(basicInfoVC.view)
self.view.addSubview(initalInfoVC.view) self.view.addSubview(initalInfoVC.view)
stepView.dataSource = ["初始信息".local, "证件信息".local] stepView.dataSource = ["初始信息".local, "基本信息".local]
stepView.block = {[weak self] (index) in stepView.block = {[weak self] (index) in
guard let self = self else { return } guard let self = self else { return }
print("follow:%d", self.orderId) print("follow:%d", self.orderId)
...@@ -157,9 +157,7 @@ extension YHSpouseInfoVC { ...@@ -157,9 +157,7 @@ extension YHSpouseInfoVC {
guard let spouse = spouse else { return } guard let spouse = spouse else { return }
guard let info = spouse.toDictionary() else { return } guard let info = spouse.toDictionary() else { return }
let follow = spouse.follow
let dict:[String: Any] = ["orderId":self.orderId, let dict:[String: Any] = ["orderId":self.orderId,
"relation":spouse.relationType.rawValue, "relation":spouse.relationType.rawValue,
"step":spouse.step, "step":spouse.step,
......
...@@ -175,6 +175,7 @@ extension YHSpouseInitialInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -175,6 +175,7 @@ extension YHSpouseInitialInfoVC : UITableViewDelegate, UITableViewDataSource {
if detailItem.type == .isAccompanyToHK || detailItem.type == .isHandleHKPassPort || detailItem.type == .isLiveTother || detailItem.type == .isLiveOverSeasMore1Year { if detailItem.type == .isAccompanyToHK || detailItem.type == .isHandleHKPassPort || detailItem.type == .isLiveTother || detailItem.type == .isLiveOverSeasMore1Year {
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemDoubleChoiceCell.cellReuseIdentifier, for: indexPath) as! YHFormItemDoubleChoiceCell let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemDoubleChoiceCell.cellReuseIdentifier, for: indexPath) as! YHFormItemDoubleChoiceCell
cell.isMust = detailItem.isNeed
cell.title = detailItem.getTitle() cell.title = detailItem.getTitle()
var select = false var select = false
...@@ -345,7 +346,7 @@ extension YHSpouseInitialInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -345,7 +346,7 @@ extension YHSpouseInitialInfoVC : UITableViewDelegate, UITableViewDataSource {
} }
self.present(vc, animated: true) self.present(vc, animated: true)
} }
} }
} }
......
...@@ -457,69 +457,81 @@ enum YHFamilyMemberType: Int { ...@@ -457,69 +457,81 @@ enum YHFamilyMemberType: Int {
class YHFamilyMember: SmartCodable, YHFormItemProtocol { class YHFamilyMember: SmartCodable, YHFormItemProtocol {
var id: Int = 0 var id: Int = 0
// 是否已故
var deceased: Int = 0 var deceased: Int = 0
var custody: Int = 0 var custody: Int = 0
// 国籍
var nationality: String? var nationality: String?
var orderId: Int = 0 var orderId: Int = 0
// 关系 1父亲 2母亲 3配偶 4子女 5兄弟姐妹
var relation: String? var relation: String?
// 是否拥有学位
var hasDegree: String? var hasDegree: String?
// mark any // mark any
// var hasDegreeJson: [YHHasDegreeJson]? // var hasDegreeJson: [YHHasDegreeJson]?
var hasDegreeJson: SmartAny? var hasDegreeJson: SmartAny?
// 是否随行至香港
var follow: Int = 0 var follow: Int = 0
var statement: Int = 0 var statement: Int = 0
// 姓名
var subsetName: String? var subsetName: String?
// mark any // mark any
// var subsetNamePinyin: YHSubsetNamePinyin? // var subsetNamePinyin: YHSubsetNamePinyin?
var subsetNamePinyin: SmartAny? var subsetNamePinyin: SmartAny?
// 曾用名
var usedName: String? var usedName: String?
// 出生日期
var birthday: String? var birthday: String?
// 出生国家地区 (国内/国外)
var birthPlaceAboard: Int = 0 var birthPlaceAboard: Int = 0
// mark any // 出生地址信息
// var birthPlace: YHAddress? var birthPlace: YHAddress?
var birthPlace: SmartAny?
// 职业
var occupation: String? var occupation: String?
// 职业名称
var occupationName: String? var occupationName: String?
// mark any // mark any
var operatorAme: SmartAny? var operatorAme: SmartAny?
// 香港身份证号
// mark any
// var childHasHkId: YHChildStepchildClass?
var childHasHkId: SmartAny?
var hkIdentityCard: String? var hkIdentityCard: String?
// 性别
var sex: Int = 0 var sex: Int = 0
// 婚姻状况
var married: String? var married: String?
// 是否与主申请人同住
var nows: Int = 0 var nows: Int = 0
// 居住地址
var address: YHAddress? var address: YHAddress?
// mark any // 香港身份证信息
// var childStepchild: YHChildStepchildClass? var childHasHkId: YHChildStepchildClass?
var childStepchild: SmartAny? var childStepchild: YHChildStepchildClass?
// 在港信息
// mark any var childInHk: YHChildStepchildClass?
// var childInHk: YHChildStepchildClass?
var childInHk: SmartAny?
// mark any // mark any
var countryIdentity: SmartAny? var countryIdentity: SmartAny?
// 在港身份
var hkIdentity: String? var hkIdentity: String?
var hkIdentityOther: String? var hkIdentityOther: String?
// 现居住国家
var liveCountry: String? var liveCountry: String?
// 是否要办理港澳通行证
var isHandled: Int = 0 var isHandled: Int = 0
var finishFollow: Int = 0 var finishFollow: Int = 0
var step: Int = 0 var step: Int = 0
// 未填写项数
var notFillNum: Int = 0 var notFillNum: Int = 0
// 是否在海外居住满1年及以上
var isLiveOverseaYear: Int = 0 var isLiveOverseaYear: Int = 0
// 婚前刑事
var surname: String? var surname: String?
// mark any // mark any
...@@ -577,8 +589,8 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -577,8 +589,8 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
return follow == 1 return follow == 1
} }
func setFollow(_ follow:Bool) { func setFollow(_ value:Bool) {
self.follow = (follow ? 1 : 0) self.follow = (value ? 1 : 0)
} }
// 是否要办理港澳通行证 // 是否要办理港澳通行证
...@@ -586,8 +598,8 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -586,8 +598,8 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
return self.isHandled == 1 return self.isHandled == 1
} }
func setNeedHandleHKPassPort(_ need:Bool) { func setNeedHandleHKPassPort(_ value:Bool) {
self.isHandled = (need ? 1 : 0) self.isHandled = (value ? 1 : 0)
} }
// 是否与主申请人同住 // 是否与主申请人同住
...@@ -595,8 +607,8 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -595,8 +607,8 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
return self.nows == 1 return self.nows == 1
} }
func setLiveTother(_ together:Bool) { func setLiveTother(_ value:Bool) {
self.nows = (together ? 1 : 0) self.nows = (value ? 1 : 0)
} }
// 是否在海外居住满1年及以上 // 是否在海外居住满1年及以上
...@@ -608,6 +620,60 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -608,6 +620,60 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
self.isLiveOverseaYear = value ? 1 : 0 self.isLiveOverseaYear = value ? 1 : 0
} }
// 是否出生国外
func isBirthOverSeas() -> Bool {
return self.birthPlaceAboard == 1
}
func setBirthOverSeas(_ value:Bool) {
return self.birthPlaceAboard = value ? 1 : 0
}
// 目前是否在港
func isNowInHK() -> Bool {
if let inHK = self.childInHk {
if inHK.has == "Y" {
return true
} else if inHK.has == "N" {
return false
}
}
return false
}
func setNowIsInHK(_ value:Bool) {
self.childInHk?.has = value ? "Y" : "N"
}
// 是否办理过香港身份证
func isHaveHKIdentityCard() -> Bool {
if let hasHkId = self.childHasHkId {
if hasHkId.has == "Y" {
return true
} else if hasHkId.has == "N" {
return false
}
}
return false
}
func setHaveHKIdentityCard(_ value:Bool) {
self.childHasHkId?.has = value ? "Y" : "N"
}
// 是否拥有学位
func hasDegreeStr() -> String? {
if hasDegree == "1" {
return "有学位"
} else {
return "无学位"
}
}
func setHasDegree(_ val:Bool) {
self.hasDegree = val ? "1" : "0"
}
var relationType:YHFamilyMemberType { var relationType:YHFamilyMemberType {
......
...@@ -24,6 +24,7 @@ class YHFormChoiceItem { ...@@ -24,6 +24,7 @@ class YHFormChoiceItem {
class YHFormItemDoubleChoiceCell: UITableViewCell { class YHFormItemDoubleChoiceCell: UITableViewCell {
static let cellReuseIdentifier = "YHFormItemDoubleChoiceCell" static let cellReuseIdentifier = "YHFormItemDoubleChoiceCell"
private let btnWidth = 70.0 private let btnWidth = 70.0
private let btnHeight = 32.0 private let btnHeight = 32.0
private let btnTitleSelectColor = UIColor.brandMainColor private let btnTitleSelectColor = UIColor.brandMainColor
...@@ -32,21 +33,27 @@ class YHFormItemDoubleChoiceCell: UITableViewCell { ...@@ -32,21 +33,27 @@ class YHFormItemDoubleChoiceCell: UITableViewCell {
private let btnBgSelectColor = UIColor.brandMainColor.withAlphaComponent(0.08) private let btnBgSelectColor = UIColor.brandMainColor.withAlphaComponent(0.08)
private let answerBaseTag = 9527 private let answerBaseTag = 9527
// 是否必须字段
var isMust:Bool = false
var answerBlock:(([YHFormChoiceItem], Int)->Void)? var answerBlock:(([YHFormChoiceItem], Int)->Void)?
var title:String? { var title:String? {
didSet { didSet {
if let question = title { if let title = title, !title.isEmpty {
let str = "*"+question let str = (isMust ? ("*"+title) : title)
let attributes: [NSAttributedString.Key: Any] = [ let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.PFSC_R(ofSize: 14), .font: UIFont.PFSC_R(ofSize: 14),
.foregroundColor: UIColor.mainTextColor .foregroundColor: UIColor.mainTextColor]
]
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes) let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
let starRange = NSRange(location: 0, length: 1) if isMust {
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange)
}
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
} else {
titleLabel.text = ""
} }
} }
} }
...@@ -134,8 +141,6 @@ class YHFormItemDoubleChoiceCell: UITableViewCell { ...@@ -134,8 +141,6 @@ class YHFormItemDoubleChoiceCell: UITableViewCell {
func setupUI() { func setupUI() {
self.selectionStyle = .none self.selectionStyle = .none
title = " 1、是否曾在香港或其他地方因任何罪行或违法行为被定罪?是否曾在香港或其他地方因任何罪行或违法行为被定罪?是否曾在香港或其他地方因任何罪行或违法行为被定罪?是否曾在香港或其他地方因任何罪行或违法行为被定罪?是否曾在香港或其他地方因任何罪行或违法行为被定罪? "
contentView.addSubview(titleLabel) contentView.addSubview(titleLabel)
contentView.addSubview(answer2Btn) contentView.addSubview(answer2Btn)
......
...@@ -28,7 +28,7 @@ class YHFormItemEnterDetailCell: UITableViewCell { ...@@ -28,7 +28,7 @@ class YHFormItemEnterDetailCell: UITableViewCell {
var title:String? { var title:String? {
didSet { didSet {
if let title = title { if let title = title, !title.isEmpty {
let str = (isMust ? ("*"+title) : title) let str = (isMust ? ("*"+title) : title)
let attributes: [NSAttributedString.Key: Any] = [ let attributes: [NSAttributedString.Key: Any] = [
.font: titleFont, .font: titleFont,
...@@ -40,6 +40,8 @@ class YHFormItemEnterDetailCell: UITableViewCell { ...@@ -40,6 +40,8 @@ class YHFormItemEnterDetailCell: UITableViewCell {
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange)
} }
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
} else {
titleLabel.text = ""
} }
} }
} }
......
...@@ -20,7 +20,7 @@ class YHFormItemExpireDateCell: UITableViewCell { ...@@ -20,7 +20,7 @@ class YHFormItemExpireDateCell: UITableViewCell {
var title:String? { var title:String? {
didSet { didSet {
if let title = title { if let title = title, !title.isEmpty {
let str = (isMust ? ("*"+title) : title) let str = (isMust ? ("*"+title) : title)
let attributes: [NSAttributedString.Key: Any] = [ let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.PFSC_R(ofSize: 14), .font: UIFont.PFSC_R(ofSize: 14),
...@@ -31,6 +31,8 @@ class YHFormItemExpireDateCell: UITableViewCell { ...@@ -31,6 +31,8 @@ class YHFormItemExpireDateCell: UITableViewCell {
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange)
} }
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
} else {
titleLabel.text = ""
} }
} }
} }
......
...@@ -65,7 +65,7 @@ class YHFormItemInputTextCell: UITableViewCell { ...@@ -65,7 +65,7 @@ class YHFormItemInputTextCell: UITableViewCell {
private lazy var textField:UITextField = { private lazy var textField:UITextField = {
let textField = UITextField() let textField = UITextField()
textField.backgroundColor = .clear textField.backgroundColor = .clear
textField.placeholder = "请如实填写" textField.placeholder = "请输入"
textField.font = UIFont.PFSC_M(ofSize: 14) textField.font = UIFont.PFSC_M(ofSize: 14)
textField.tintColor = UIColor.mainTextColor textField.tintColor = UIColor.mainTextColor
textField.textColor = UIColor.mainTextColor textField.textColor = UIColor.mainTextColor
......
...@@ -28,17 +28,22 @@ class YHMainApplicantInformationViewController: YHBaseViewController { ...@@ -28,17 +28,22 @@ class YHMainApplicantInformationViewController: YHBaseViewController {
func getData() { func getData() {
viewModel.requestMainInformation("133969") {[weak self] success, error in viewModel.requestMainInformation("133969") {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
if self.stepView.currentIndex == 0 { self.stepView.currentIndex = self.viewModel.mainModel.step ?? 0
self.dataSource = self.viewModel.getBaseDataSource() self.updateDataSource()
} else if self.stepView.currentIndex == 1 { }
self.dataSource = self.viewModel.getIDCardDataSource() }
} else if self.stepView.currentIndex == 2 {
self.dataSource = self.viewModel.getDocumentInformation() func updateDataSource() {
} else if self.stepView.currentIndex == 3 { if self.stepView.currentIndex == 0 {
self.dataSource = self.viewModel.getDetailDataSource() self.dataSource = self.viewModel.getBaseDataSource()
} } else if self.stepView.currentIndex == 1 {
self.tableView.reloadData() self.dataSource = self.viewModel.getIDCardDataSource()
} else if self.stepView.currentIndex == 2 {
self.dataSource = self.viewModel.getDocumentInformation()
} else if self.stepView.currentIndex == 3 {
self.dataSource = self.viewModel.getDetailDataSource()
} }
self.tableView.reloadData()
} }
func setView() { func setView() {
...@@ -47,7 +52,7 @@ class YHMainApplicantInformationViewController: YHBaseViewController { ...@@ -47,7 +52,7 @@ class YHMainApplicantInformationViewController: YHBaseViewController {
step.dataSource = ["初始信息", "证件上传", "基本信息", "证件信息"] step.dataSource = ["初始信息", "证件上传", "基本信息", "证件信息"]
step.block = { [weak self] (index) in step.block = { [weak self] (index) in
guard let self = self else { return } guard let self = self else { return }
self.getData() self.updateDataSource()
} }
return step return step
}() }()
...@@ -80,10 +85,20 @@ class YHMainApplicantInformationViewController: YHBaseViewController { ...@@ -80,10 +85,20 @@ class YHMainApplicantInformationViewController: YHBaseViewController {
bottomView = { bottomView = {
let bottom = YHBottomNextView() let bottom = YHBottomNextView()
bottom.block = { [weak self] in bottom.nextblock = { [weak self] in
guard let self = self else { return } guard let self = self else { return }
self.stepView.currentIndex = self.stepView.currentIndex + 1 self.stepView.currentIndex = self.stepView.currentIndex + 1
self.getData() self.viewModel.updateMainInformation(.submit) {[weak self] success in
guard let self = self else { return }
self.stepView.currentIndex = self.stepView.currentIndex
self.updateDataSource()
}
}
bottom.saveBlock = { [weak self] in
guard let self = self else { return }
self.viewModel.updateMainInformation(.save) {[weak self] success in
guard let self = self else { return }
}
} }
return bottom return bottom
}() }()
...@@ -110,6 +125,10 @@ extension YHMainApplicantInformationViewController: UITableViewDelegate, UITable ...@@ -110,6 +125,10 @@ extension YHMainApplicantInformationViewController: UITableViewDelegate, UITable
} else { } else {
let cell = tableView.dequeueReusableCell(withClass: YHMainInformationTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHMainInformationTableViewCell.self)
cell.dataSource = dataSource?[indexPath.row] cell.dataSource = dataSource?[indexPath.row]
cell.informationBlock = {[weak self] model in
guard let self = self else { return }
self.viewModel.updateModel(model)
}
return cell return cell
} }
} }
......
...@@ -10,7 +10,8 @@ import UIKit ...@@ -10,7 +10,8 @@ import UIKit
class YHBottomNextView: UIView { class YHBottomNextView: UIView {
typealias Block = () -> () typealias Block = () -> ()
var block: Block? var nextblock: Block?
var saveBlock: Block?
var saveButton: UIButton! var saveButton: UIButton!
var nextButton: UIButton! var nextButton: UIButton!
...@@ -66,11 +67,13 @@ class YHBottomNextView: UIView { ...@@ -66,11 +67,13 @@ class YHBottomNextView: UIView {
@objc func save() { @objc func save() {
if let block = saveBlock {
block()
}
} }
@objc func goNext() { @objc func goNext() {
if let block = block { if let block = nextblock {
block() block()
} }
} }
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
import UIKit import UIKit
class YHItemView: UIView { class YHItemView: UIView {
typealias Block = (_ model: YHItemModel) -> () typealias ItemBlock = (_ model: YHItemModel) -> ()
var block: Block? var block: ItemBlock?
var titleLabel: UILabel! var titleLabel: UILabel!
var messageTextField: UITextField! var messageTextField: UITextField!
var nextStepImageView: UIImageView! var nextStepImageView: UIImageView!
...@@ -139,16 +139,31 @@ class YHItemView: UIView { ...@@ -139,16 +139,31 @@ class YHItemView: UIView {
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes) let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
} }
messageTextField.placeholder = dataSource.prompts
messageTextField.text = dataSource.message
if dataSource.isUserKeyBoard ?? false { if dataSource.isUserKeyBoard ?? false {
nextStepImageView.isHidden = true nextStepImageView.isHidden = true
centerButton.isHidden = true centerButton.isHidden = true
} else { } else {
if let type = dataSource.type {
switch type {
case .normal: break
case .address: break
case .time: break
case .image: break
case .id:
messageTextField.text = YHFormPickerViewSubType.certificate(YHPickerViewCertificateType(rawValue: dataSource.message?.int ?? 0) ?? .chineseStatelessTravelPassport).title
case .country: break
case .sex:
messageTextField.text = YHFormPickerViewSubType.gender(YHPickerViewGenderType(rawValue: dataSource.message?.int ?? 0) ?? .female).title
case .marry:
messageTextField.text = YHFormPickerViewSubType.marriage(YHPickerViewMarriageType(rawValue: dataSource.message?.int ?? 0) ?? .unmarriage).title
}
}
nextStepImageView.isHidden = false nextStepImageView.isHidden = false
centerButton.isHidden = false centerButton.isHidden = false
} }
messageTextField.placeholder = dataSource.prompts
messageTextField.text = dataSource.message
if (dataSource.leftButtonString != nil) { if (dataSource.leftButtonString != nil) {
leftButton.isHidden = false leftButton.isHidden = false
leftButton.setTitle(dataSource.leftButtonString, for: .normal) leftButton.setTitle(dataSource.leftButtonString, for: .normal)
...@@ -234,6 +249,9 @@ class YHItemView: UIView { ...@@ -234,6 +249,9 @@ class YHItemView: UIView {
self.dataSource?.message = address self.dataSource?.message = address
self.dataSource?.value = [province, city, area] self.dataSource?.value = [province, city, area]
self.updateAllViews() self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHItemModel())
}
} }
UIViewController.current?.present(addressPicker, animated: true, completion: nil) UIViewController.current?.present(addressPicker, animated: true, completion: nil)
case .time: case .time:
...@@ -242,12 +260,18 @@ class YHItemView: UIView { ...@@ -242,12 +260,18 @@ class YHItemView: UIView {
// [yyyy, mm, dd] eg ["2024", "01", "20"] // [yyyy, mm, dd] eg ["2024", "01", "20"]
self.dataSource?.message = date self.dataSource?.message = date
self.updateAllViews() self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHItemModel())
}
} }
case .image: case .image:
let view = YHImagePickerView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight)) let view = YHImagePickerView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.backImage = { [weak self] image in view.backImage = { [weak self] image in
guard let self = self else { return } guard let self = self else { return }
self.updateAllViews() self.updateAllViews()
if let block = block {
block(dataSource ?? YHItemModel())
}
} }
let window = UIApplication.shared.yhKeyWindow() let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view) window?.addSubview(view)
...@@ -255,26 +279,41 @@ class YHItemView: UIView { ...@@ -255,26 +279,41 @@ class YHItemView: UIView {
YHFormPickerView.show(type: .certificate, selectTitle: "公务通行证") { selectType in YHFormPickerView.show(type: .certificate, selectTitle: "公务通行证") { selectType in
// 选择类型的标题 // 选择类型的标题
self.dataSource?.message = selectType.title self.dataSource?.message = selectType.title
self.dataSource?.value = ["\(selectType.index)"]
self.updateAllViews() self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHItemModel())
}
} }
case .country: case .country:
let vc = YHSelectCountryViewController() let vc = YHSelectCountryViewController()
vc.backLocationStringController = { (country) in vc.backLocationStringController = { (country) in
self.dataSource?.message = country self.dataSource?.message = country
self.updateAllViews() self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHItemModel())
}
} }
UIViewController.current?.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
case .sex: case .sex:
YHFormPickerView.show(type: .gender, selectType: .gender(.female)) { selectType in YHFormPickerView.show(type: .gender, selectType: .gender(.female)) { selectType in
// 选择类型的标题 // 选择类型的标题
self.dataSource?.message = selectType.title self.dataSource?.message = selectType.title
self.dataSource?.value = ["\(selectType.index)"]
self.updateAllViews() self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHItemModel())
}
} }
case .marry: case .marry:
YHFormPickerView.show(type: .marriage, selectType: .marriage(.divorced)) { selectType in YHFormPickerView.show(type: .marriage, selectType: .marriage(.divorced)) { selectType in
// 选择类型的标题 // 选择类型的标题
self.dataSource?.message = selectType.title self.dataSource?.message = selectType.title
self.dataSource?.value = ["\(selectType.index)"]
self.updateAllViews() self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHItemModel())
}
} }
} }
} }
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
import UIKit import UIKit
class YHMainInformationTableViewCell: UITableViewCell { class YHMainInformationTableViewCell: UITableViewCell {
typealias InformationBlock = (_ model: YHItemModel) -> ()
var informationBlock: InformationBlock?
var centerView: UIView! var centerView: UIView!
var titleLabel: UILabel! var titleLabel: UILabel!
var mainItemView: UIView! var mainItemView: UIView!
...@@ -96,6 +98,12 @@ class YHMainInformationTableViewCell: UITableViewCell { ...@@ -96,6 +98,12 @@ class YHMainInformationTableViewCell: UITableViewCell {
} }
let itemView = YHItemView() let itemView = YHItemView()
itemView.dataSource = dataSource?.models?[i] itemView.dataSource = dataSource?.models?[i]
itemView.block = {[weak self] model in
guard let self = self else { return }
if let block = self.informationBlock {
block(model)
}
}
mainItemView.addSubview(itemView) mainItemView.addSubview(itemView)
itemView.snp.makeConstraints { make in itemView.snp.makeConstraints { make in
make.left.equalTo(18) make.left.equalTo(18)
......
...@@ -8,6 +8,12 @@ ...@@ -8,6 +8,12 @@
import UIKit import UIKit
enum YHSaveType: Int {
case save = 0
case submit = 1
}
class YHMainApplicantInformationViewModel: YHBaseViewModel { class YHMainApplicantInformationViewModel: YHBaseViewModel {
var mainModel: YHMainInformationModel = YHMainInformationModel() var mainModel: YHMainInformationModel = YHMainInformationModel()
...@@ -93,6 +99,76 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel { ...@@ -93,6 +99,76 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel {
return [section, section1] return [section, section1]
} }
func updateModel(_ item: YHItemModel) {
guard let type = item.id else { return }
switch type {
case .id1:
mainModel.nationality = item.message
case .id2:
mainModel.address?.country = item.message
case .id3:
mainModel.address?.area = item.value
case .id4:
mainModel.address?.details = item.message
case .id5:
mainModel.has_hk_id = item.value?.first?.int
case .id6:
printLog("1")
case .id7:
printLog("1")
case .id8:
mainModel.certificates?.cn_identity_card?.number = item.message
case .id9:
mainModel.certificates?.cn_identity_card?.issue_at = item.message
case .id10:
mainModel.certificates?.cn_identity_card?.issue_date_start_at = item.message
case .id11:
mainModel.certificates?.cn_identity_card?.issue_date_end_at = item.message
case .id12:
mainModel.certificates?.hk_macao_pass?.number = item.message
case .id13:
mainModel.certificates?.hk_macao_pass?.issue_at = item.message
case .id14:
mainModel.certificates?.hk_macao_pass?.issue_date_start_at = item.message
case .id15:
mainModel.certificates?.hk_macao_pass?.issue_date_end_at = item.message
case .id16:
mainModel.certificates?.passport?.passport_type = item.value?.first
case .id17:
mainModel.certificates?.passport?.number = item.message
case .id18:
mainModel.certificates?.passport?.issue_at = item.message
case .id19:
mainModel.certificates?.passport?.issue_date_start_at = item.message
case .id20:
mainModel.certificates?.passport?.issue_date_end_at = item.message
case .id21:
mainModel.username = item.message
case .id22:
mainModel.used_name = item.message
case .id23:
mainModel.surname = item.message
case .id24:
mainModel.birthday = item.message
case .id25:
printLog("1")
case .id26:
mainModel.birth_place?.area = item.value
case .id27:
mainModel.sex = item.value?.first
case .id28:
mainModel.married = item.value?.first
case .id29:
mainModel.mobile = item.message
case .id30:
mainModel.email = item.message
case .id31:
mainModel.has_hk_id = item.value?.first?.int
}
}
func requestMainInformation(_ orderID: String, callBackBlock:@escaping (_ success: YHMainInformationModel?, _ error:YHErrorModel?)->()) { func requestMainInformation(_ orderID: String, callBackBlock:@escaping (_ success: YHMainInformationModel?, _ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/order-information/get_information?order_id=\(orderID)" let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/order-information/get_information?order_id=\(orderID)"
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
...@@ -115,4 +191,77 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel { ...@@ -115,4 +191,77 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel {
callBackBlock(nil,err) callBackBlock(nil,err)
} }
} }
func updateMainInformation(_ saveType: YHSaveType, callBackBlock:@escaping (_ success: Bool)->()) {
var type = ""
if saveType == .save {
type = "save"
} else {
type = "submit"
}
let area: [String] = mainModel.address?.area ?? []
let birthArea: [String] = mainModel.birth_place?.area ?? []
let address = ["area": area,
"country": mainModel.address?.country ?? "",
"details": mainModel.address?.details ?? "",
"foreign": mainModel.address?.foreign ?? ""] as [String : Any]
let birthPlace = ["area": birthArea,
"country": mainModel.birth_place?.country ?? "",
"details": mainModel.birth_place?.details ?? "",
"foreign": mainModel.birth_place?.foreign ?? ""] as [String : Any]
let cnID = ["img_back": mainModel.certificates?.cn_identity_card?.img_back ?? "",
"img_front": mainModel.certificates?.cn_identity_card?.img_front ?? "",
"issue_at": mainModel.certificates?.cn_identity_card?.issue_at ?? "",
"issue_date_end_at": mainModel.certificates?.cn_identity_card?.issue_date_end_at ?? "",
"issue_date_start_at": mainModel.certificates?.cn_identity_card?.issue_date_start_at ?? "",
"number": mainModel.certificates?.cn_identity_card?.number ?? ""] as [String : Any]
let hkID = ["img_back": mainModel.certificates?.hk_macao_pass?.img_back ?? "",
"img_front": mainModel.certificates?.hk_macao_pass?.img_front ?? "",
"issue_at": mainModel.certificates?.hk_macao_pass?.issue_at ?? "",
"issue_date_end_at": mainModel.certificates?.hk_macao_pass?.issue_date_end_at ?? "",
"issue_date_start_at": mainModel.certificates?.hk_macao_pass?.issue_date_start_at ?? "",
"number": mainModel.certificates?.hk_macao_pass?.number ?? ""] as [String : Any]
let passport = ["img_back": mainModel.certificates?.passport?.img_back ?? "",
"img_front": mainModel.certificates?.passport?.img_front ?? "",
"issue_at": mainModel.certificates?.passport?.issue_at ?? "",
"issue_date_end_at": mainModel.certificates?.passport?.issue_date_end_at ?? "",
"issue_date_start_at": mainModel.certificates?.passport?.issue_date_start_at ?? "",
"number": mainModel.certificates?.passport?.number ?? "",
"passport_type": mainModel.certificates?.passport?.passport_type ?? 0] as [String : Any]
let params: [String : Any] = ["address": address,
"address_aboard": mainModel.address_aboard ?? 0,
"age":mainModel.age ?? "",
"birth_place": birthPlace,
"birth_place_aboard": mainModel.birth_place_aboard ?? 0,
"birthday": mainModel.birthday ?? "",
"email": mainModel.email ?? "",
"has_hk_id": mainModel.has_hk_id ?? 0,
"hk_id_number": mainModel.hk_id_number ?? "",
"id": mainModel.id ?? 0,
"is_handled": mainModel.is_handled ?? "",
"is_live_oversea_year": mainModel.is_live_oversea_year ?? 0,
"married": mainModel.married ?? 0,
"mobile": mainModel.mobile ?? "",
"nationality": mainModel.nationality ?? "",
"order_id": mainModel.order_id ?? "",
"sex": mainModel.sex ?? 0,
"step": mainModel.step ?? 0,
"surname": mainModel.surname ?? "",
"used_name": mainModel.used_name ?? "",
"username": mainModel.username ?? "",
"save_type": type,
"username_pinyin": ["family_name": mainModel.username_pinyin?.family_name ?? "",
"given_name": mainModel.username_pinyin?.given_name ?? ""],
"certificates":["cn_identity_card": cnID,
"hk_macao_pass": hkID,
"passport": passport]
]
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/order-information/update_information"
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
callBackBlock(true)
} failBlock: { err in
callBackBlock(false)
}
}
} }
...@@ -18,7 +18,6 @@ import CryptoSwift ...@@ -18,7 +18,6 @@ import CryptoSwift
// var responseErrorType: NetResponseErrorType = .failType // var responseErrorType: NetResponseErrorType = .failType
//} //}
//定义客户端通用的错误码 //定义客户端通用的错误码
public enum YHErrorCode : Int32 { public enum YHErrorCode : Int32 {
case success = 0 case success = 0
...@@ -93,10 +92,7 @@ class YHNetRequest: NSObject { ...@@ -93,10 +92,7 @@ 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: "eyJpdiI6InkrcVNJK2tyMDMzekZOcHE1NklOUUE9PSIsInZhbHVlIjoiRTNMY0VoM2p1b2JvMVoxY28wa2RCRWtMdzA3N1BIaUhqN2F5d3Y5VXp6KzhlNHpTMzdWODlJckNaeUczZkNNamZDbWY0U1c2VGJJOVVBeVpDWUVqV29ISzRkNzh3d2ZZbDFKMk9vN3pRR0g4ZUlXTTliWTNoUzdyNHpQNGtKU1Z3YzMzTnRUMERPQXcwTmpEcXQzSU5qRWt6MlhMWXVEUDB5THNwTWMzZTE1cEtUOUFpXC9xTlB4UFBmeXJ6cHhnNkR6TktFK3hhejJ0OG82cWFGRG5hMkN1dU1zblwvRk8xSEhXTno4Z3Z1WjExYXRHNE1zZXo4Yzh5cW1WSjlNVnBJU1dFOUFYbDBIXC83Q1BtZ3dhK2REa3NFQjI1ODZJalY3U1c0WHM5aG0xSDNzUjJcL0ZPVEhqR1lRTFI3UjBJRVFcL0NRZVlrbWZ4eGJvNUxtZDNJNUdGME45WkwzN1Byc1U5MTdod3RNMFc3TEt5cVNha211aEN6V0g4eFo4YStOYVFYdXhYaTJ6RFN0bTRkb1U3NUV1ZG01XC9UM3pMdlhRSm1VNUpcL0ZwMnpXdkR5XC9hTDJrVW9pamxYRTROOENRSTRsUlVJQ1lGR1phSmJZVVVEK1R6NTZLbkN4WlA5REJhbzN5Qzc4bEE3OTEyTDBJSmZic2dKSkpPWXpaOVF0T1NId05GdGVCYnNBNXVmOWt6MG9GUjRHcEFKVWVJSG1QXC8rTElxZGFTUERlQjdDS1FzUVI2VHJSYXVlZWZ3ZUlVK28rM1VaeGhPXC9OVWFoU0lqUHFkRWdiSG8wcUlcL2IyNWVZUzZ2ZE93ZmZkQXFYXC9CSHJNU0VcL1RPb2RYWW1OVnFhd251UFhjTnI3b2lraVJWcG16SkxRdjFnc1BlaHVTSEdpSTlUMmlBTjF5eFgyb09GSzR6UUdmRHlMZFZNT3JTNmowWGdYNVR5WFM5TnVVNTVYdHduWnV0ZTVNUGNHNngyVGNtK0Q3YTN0ekVZb1E3UFBJd2hmblJEdmZLdk5nUExmaWJJU2hWRVBmdHMzRUM0SW1hTnNSRWt6VWY5NDhodUJJelZvSDNHbjBJMitvb2ZKNGVKMW05SjQ4QVcyTGVtY1JDK2doWE52Kzh6K2xqMVpMWXgxT1NUWUo0UWdocktxbFBxMGx1S0RlbXlJalwvNkhRWUV5dktRcGoxZ3MzT1NWWDN5TGpJQ0hlb1Jta05zdmRpTmdWOXNBYXJidVFnTTlSRG4wUjhEMXg3WWdXUkZSM0JiTlNVaDlBYjZEVFBxdm1lZkw4UGpjRXJMSlVQRFwvNG5zYmp3cVc4emd5bmI4VGU4dW1kS3RhdHhpMGY3NzVKRnVBVjhoVjBHc2VhRmZpS3V4aEdZZFpob3NcLzR1MHpCOUp4ZE92NkZoYU8xc3JuMVdQQjl0QmdoOENCVHZneG1xVFJ1eHVOSVIzN2xnNEVNZ01yeFhzMitESVM0QzdVTmJiUmNkaW1XS2VuR3lqclJNRWk4WmNjK0FyZXh2Qldxd25EU1h1MHE4WElPMnZtSVhQNHBYV1l4QXlKV0dBaUlGem5aMUFGNDFBTmgrMHNIeFVSTWtKUERxQkJvOFJ1anI1SGJZd2hJM1NWbFJnMXdSTUJKMytKeThucDlERVBrK3lkVUVnY1diRkRRXC90aEl2OCtyTFVaQjZcLzlnN01TaXcrVlF0TFVFdGNLbitrVU1WZnlobkVuQXZYSCtqc083cUNXYlRjS21sVDd4ak5FMDlMM05WeHMya3FBblYyVXRNSjI4MklXSmdaUnZqdGxOWTZXS1ZYNXpobTlPWGN0alwvODhoVzM4OEJDeDl3WmZrcGREYnJwbUVRaWdXb2dzMnVcL1ZEYXVxUUtjR1I2WjJuVHNidmlZUHBqREg3bmcyalB2QWdBdz09IiwibWFjIjoiYWYyZTgyMWJkZmUxYzUxOThmYjBiYTI3ZGRhNTk3NWU2NTBlODgzMjZjYmExYzEzZDEwZDA4NGU5YmUzNmIwNiJ9")
requestHeader.add(name: "token", value: "eyJpdiI6Im1JQWdZRml3QUdoYjVucVRkanE0XC9BPT0iLCJ2YWx1ZSI6ImRlVHdXV3BWTFBvYkdzR0Q5V2JcL0NuNEVyT21HVE9RUFg4MTM0Z2hUTDFTMU00bWpXYnBjR2ZwaTlsWGJtXC9tNnpTaElHUnpQVGhBXC9yRVwvZjJzcERGdWVkT1ducWYrc01FYlFpRW9pMFBzVWVtZTRDUklnTVBKT0RCOGpwa3lJaFVpUmtnK2pYTUZLUEdrSWZLUDE2dWFFdFBLSWR4QzhTamE3MnR2NWl0Qm9nNkg2OTg5UnJrYkFabEt2akNhak1RYzFldFwvamRsUGtha0tcL082R1YwajNHK29ZTUlxeVRzWVlsNG5QZmVPc3RGN0pmTTBOSW9qZHR3YUdEWERqZmljZ0Q5SUFmNVwvQ1BueXY4XC9BVU82c1h1OTNxUUFBaEdGNjQwUWxYWW5xQ0FENnZCb05qQnoxaFcxUk15Y3NuQjRBajJtQ2c4Vk44QTR4ZWE1UDR0MFFnRG5rN09ielpxQnNyZE9oMjJZWE1LOXVUUXpmOFhqNytRRXB5OVg5VnVOcVdqRCtCQnFOd1BLR0lkbUpWdGF2MHRkbUplaGdRU3hhbkNCK0wwbEF1a2VCYm5YSHd3SnF1OUhQRXpqbEZGeHBFNHRtcFV0T3NQVlVMR2phMitPbGQ0Wm01WUtJcDAxM3JQck9xUVpUTW5uQnMxQVVDVXU0S0hLUWVTNHlES01rUk51SGREWUlcL2tiQlIraExldUhmMGFDNmxyNzFkamJFOG11VVFYTTdpU3d0aG85S21ac0V2RDRTcXRYMFE1QVVVQTkraitFU05GWllUTWdKdDh1cWE4VWZ1OVZkZmt5d2RrTzg4Z3pidkRkclwva0EzTG9TejdsUWtOc2Myb1M0MEhxVnJSZnJ1UmtCRHB0Sk1SQm5DMDB0akdEZGpsM1RHWnhiXC94aTA5bExxNDB2cGJBTFVoMWd0MjUxTjA2aUQ0MXRsNm5jWEJFUXVVRGxKRytQc3docE9EUkd0VXdnM3kwcUs1NnJraUFLOWRnQ1h2TVRHM2NxeGF3ZGZGV2UwbktkUkhTV0J1TUlzQWdqQm1sOTY3Sm9Nem1FM2hVM3BJUnpZNWlYT0dQZmliV1JiSkRZQWdOTjZuQ3M5N3FwTGZobGtaaWlNSytoRGVyVnVTWUxuWVprM2UzazRVYmMrVmM1dTk4OUNtbmxTMHF1dXlJdXJSVWFhWTRibU9jVDZrQU9GT2kyN25YM3ZnZTE0SzR6ZzZVMEFOcE5cL2I2ZUNXbDN5RElQQ2VcLytDeUk1YkdFaUhFUzNpQlpOdm9ob2JsZ1hpbHZHOE12Y2U3WmxkbEJrM2kybmxjOWJSQVJHMXlTTWM1Z1d0V0RCV0FjVWlKbjJBbmEwMG91K05iVHlCRGRGWTZ3VFd4cnJFcnZhSTNaNnh1NHphcnlUV1lIZnRVOXRsSDJTVmtqUDNMb1BSck4yUVhNYnE2bVBHamFlWmNiXC9LVGFKU3JGU1pcL2ZYTmxabGROb01jRTR3MWlcL3lCQkhZR1RUTnFHVlk4ZjhuclhlTzdaTEs5QlNVRlVnV01cL2NyTm1DeEx2eDR0YXZsS29OMXpGNlNYWEVpcHlSUERDR3RrcjJUcVM2MlJ5S3RKMHRacFU3RHNrdXI2WThoYlBqWnBGdUx2czRsdU1uXC82dTE5Q05vVUJqTmpoZVB4bVwvSUcwR2R3MGNPK21UT0ZJQUhrbDFLWURZV3ZIS2QrU3ZqSk1jU2FBZTZuakZFTDJJSjlvYm02Z2gzQlA3dTQ3bXFTY0ZBN0NqV2p0ODFvbm9WM01rWXNtaEZXemp3NjVZQW1vVk5obEZkU29lUExOMmhicEJ1XC9PSkU2Z2RiclNRMFoxaGh1UEQ0ZnptQUtSaHdnZEtQZFlMaHpQQXJsbTdcL2NxWUpqSlk4b24raFNtVVN6QXZBPT0iLCJtYWMiOiIyNWNhMGExY2VkYWUyNjcxOGVjOWRhYjdjYzA2Y2EwZTMxYzUxZjEzYjBkNzEyMzVkZDgxNTRiODNkMDRiNTRhIn0=")
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