Commit 219f73a0 authored by Steven杜宇's avatar Steven杜宇

// 护照选择器

parent d79c1264
...@@ -141,7 +141,7 @@ class YHFamilyMemberFormVC: YHBaseViewController { ...@@ -141,7 +141,7 @@ class YHFamilyMemberFormVC: YHBaseViewController {
"is_handled": 0, "is_handled": 0,
"finish_follow": 0, "finish_follow": 0,
"step": 0, "step": 0,
"not_fill_num": -1, "not_fill_num": 7,
"certificates": [], "certificates": [],
"is_live_oversea_year": 0 "is_live_oversea_year": 0
], ],
...@@ -180,7 +180,7 @@ class YHFamilyMemberFormVC: YHBaseViewController { ...@@ -180,7 +180,7 @@ class YHFamilyMemberFormVC: YHBaseViewController {
"is_handled": 0, "is_handled": 0,
"finish_follow": 0, "finish_follow": 0,
"step": 0, "step": 0,
"not_fill_num": -1, "not_fill_num": 5,
"certificates": [], "certificates": [],
"is_live_oversea_year": 0 "is_live_oversea_year": 0
], ],
...@@ -548,6 +548,8 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource { ...@@ -548,6 +548,8 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
let detailItem = item as! YHFamilyMember let detailItem = item as! YHFamilyMember
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemEnterDetailCell.cellReuseIdentifier, for: indexPath) as! YHFormItemEnterDetailCell let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemEnterDetailCell.cellReuseIdentifier, for: indexPath) as! YHFormItemEnterDetailCell
cell.title = detailItem.getTitle()
cell.detailLabel.text = String(format: "有%d项未填写".local, detailItem.notFillNum)
cell.isShowDeleteBtn = false cell.isShowDeleteBtn = false
cell.deleteBlock = nil cell.deleteBlock = nil
if detailItem.relationType == .child || detailItem.relationType == .brother { if detailItem.relationType == .child || detailItem.relationType == .brother {
...@@ -641,6 +643,10 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource { ...@@ -641,6 +643,10 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let view = YHFormPickerView(type: YHFormPickerViewType.certificate)
view.selectType = .certificate(.officialPassport)
view.show()
return
let arr = items[indexPath.section] let arr = items[indexPath.section]
let item:YHFormItemProtocol = arr[indexPath.row] let item:YHFormItemProtocol = arr[indexPath.row]
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
// //
import UIKit import UIKit
import SmartCodable
class YHSpouseInitialInfoVC: YHBaseViewController { class YHSpouseInitialInfoVC: YHBaseViewController {
...@@ -93,13 +94,32 @@ class YHSpouseInitialInfoVC: YHBaseViewController { ...@@ -93,13 +94,32 @@ class YHSpouseInitialInfoVC: YHBaseViewController {
let arr1:[YHFormItemProtocol] = [title1, item10] let arr1:[YHFormItemProtocol] = [title1, item10]
// 居住信息 // 居住信息
var arr2 = [YHFormItemProtocol]()
let title2 = YHFormTitleItem(type: .liveInfo) let title2 = YHFormTitleItem(type: .liveInfo)
let item20 = YHFormDetailItem(type: .isLiveTother) let item20 = YHFormDetailItem(type: .isLiveTother)
item20.isLiveTogether = (spouse.finishFollow == 1) item20.isLiveTogether = (spouse.finishFollow == 1)
let item21 = YHFormDetailItem(type: .nationOrArea) arr2.append(title2)
let item22 = YHFormDetailItem(type: .liveCity) arr2.append(item20)
let item23 = YHFormDetailItem(type: .detailAddress)
let arr2:[YHFormItemProtocol] = [title2, item20, item21, item22, item23] if !item20.isLiveTogether { // 不同住 才需填写国家/地区
let item21 = YHFormDetailItem(type: .nationOrArea)
arr2.append(item21)
// 国家/地区已填写 才显示现居住城市和详细地址两行
if let dict = spouse.address {
if dict.peel is [String: Any] {
let dict = dict.peel as! [String: Any]
let address = YHAddress.deserialize(dict: dict)
if address?.area != nil || address?.country != nil {
let item22 = YHFormDetailItem(type: .liveCity)
let item23 = YHFormDetailItem(type: .detailAddress)
arr2.append(item22)
arr2.append(item23)
}
}
}
}
// 港澳通信证 // 港澳通信证
let title3 = YHFormTitleItem(type: .hkAndMacaoPassport) let title3 = YHFormTitleItem(type: .hkAndMacaoPassport)
......
...@@ -427,7 +427,7 @@ class YHFormDetailItem : YHFormItemProtocol { ...@@ -427,7 +427,7 @@ class YHFormDetailItem : YHFormItemProtocol {
// MARK: - YHWelcome // MARK: - YHWelcome
class YHWelcome: SmartCodable { class YHWelcome: SmartCodable {
var code: Int = -1 var code: Int = 0
var msg: String = "" var msg: String = ""
var data: YHFamilyMemberGroupInfo? var data: YHFamilyMemberGroupInfo?
...@@ -476,11 +476,11 @@ enum YHFamilyMemberType: Int { ...@@ -476,11 +476,11 @@ enum YHFamilyMemberType: Int {
} }
class YHFamilyMember: SmartCodable, YHFormItemProtocol { class YHFamilyMember: SmartCodable, YHFormItemProtocol {
var id: Int = -1 var id: Int = 0
var deceased: Int = -1 var deceased: Int = 0
var custody: Int = -1 var custody: Int = 0
var nationality: String? var nationality: String?
var orderId: Int = -1 var orderId: Int = 0
var relation: String? var relation: String?
var hasDegree: String? var hasDegree: String?
...@@ -488,8 +488,8 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -488,8 +488,8 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
// var hasDegreeJson: [YHHasDegreeJson]? // var hasDegreeJson: [YHHasDegreeJson]?
var hasDegreeJson: SmartAny? var hasDegreeJson: SmartAny?
var follow: Int = -1 var follow: Int = 0
var statement: Int = -1 var statement: Int = 0
var subsetName: String? var subsetName: String?
// mark any // mark any
...@@ -498,7 +498,7 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -498,7 +498,7 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
var usedName: String? var usedName: String?
var birthday: String? var birthday: String?
var birthPlaceAboard: Int = -1 var birthPlaceAboard: Int = 0
// mark any // mark any
// var birthPlace: YHAddress? // var birthPlace: YHAddress?
...@@ -515,9 +515,9 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -515,9 +515,9 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
var childHasHkId: SmartAny? var childHasHkId: SmartAny?
var hkIdentityCard: String? var hkIdentityCard: String?
var sex: Int = -1 var sex: Int = 0
var married: String? var married: String?
var nows: Int = -1 var nows: Int = 0
// mark any // mark any
// var address: YHAddress? // var address: YHAddress?
...@@ -537,11 +537,11 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -537,11 +537,11 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
var hkIdentity: String? var hkIdentity: String?
var hkIdentityOther: String? var hkIdentityOther: String?
var liveCountry: String? var liveCountry: String?
var isHandled: Int = -1 var isHandled: Int = 0
var finishFollow: Int = -1 var finishFollow: Int = 0
var step: Int = -1 var step: Int = 0
var notFillNum: Int = -1 var notFillNum: Int = 0
var isLiveOverseaYear: Int = -1 var isLiveOverseaYear: Int = 0
var surname: String? var surname: String?
// mark any // mark any
...@@ -614,7 +614,17 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -614,7 +614,17 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
func getTitle() -> String { func getTitle() -> String {
// 1父亲 2 母亲 3 配偶 4子女 5兄弟姐妹 // 1父亲 2 母亲 3 配偶 4子女 5兄弟姐妹
if let relation = relation { if let relation = relation {
return relation.local if relation == "1" {
return "父亲".local
} else if relation == "2" {
return "母亲".local
} else if relation == "3" {
return "配偶".local
} else if relation == "4" {
return "子女".local
} else if relation == "5" {
return "兄弟姐妹".local
}
} }
return "" return ""
} }
...@@ -626,6 +636,7 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -626,6 +636,7 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
// MARK: - 居住地址信息 YHAddress // MARK: - 居住地址信息 YHAddress
class YHAddress: SmartCodable { class YHAddress: SmartCodable {
var area: [String]? var area: [String]?
var country: String? var country: String?
var details: String? var details: String?
...@@ -695,14 +706,14 @@ class YHCNIdentityCard: SmartCodable { ...@@ -695,14 +706,14 @@ class YHCNIdentityCard: SmartCodable {
} }
var id: Int = -1 var id: Int = 0
var number: String? var number: String?
var issueAt: String? var issueAt: String?
var issueDateStartAt: String? var issueDateStartAt: String?
var issueDateEndAt: String? var issueDateEndAt: String?
var imgFront: String? var imgFront: String?
var imgBack: String? var imgBack: String?
var passportType: Int = -1 var passportType: Int = 0
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case id = "id" case id = "id"
......
...@@ -21,6 +21,8 @@ enum YHFormPickerViewType: Int { ...@@ -21,6 +21,8 @@ enum YHFormPickerViewType: Int {
case occupation = 4 case occupation = 4
// 性别 // 性别
case gender = 5 case gender = 5
// 证件
case certificate = 6
} }
enum YHFormPickerViewSubType { enum YHFormPickerViewSubType {
...@@ -31,54 +33,70 @@ enum YHFormPickerViewSubType { ...@@ -31,54 +33,70 @@ enum YHFormPickerViewSubType {
case education(YHPickerViewEducationType) case education(YHPickerViewEducationType)
case occupation(YHPickerViewOccupationType) case occupation(YHPickerViewOccupationType)
case gender(YHPickerViewGenderType) case gender(YHPickerViewGenderType)
case certificate(YHPickerViewCertificateType)
var title:String { var title:String {
switch self { switch self {
case .none: case .none:
return "".local return "".local
case .marriage(.unmarriage):
return "未婚".local
case .marriage(.marriaged):
return "已婚".local
case .marriage(.separated):
return "分居".local
case .marriage(.divorced):
return "离婚".local
case .marriage(.widowed):
return "丧偶".local
case .degree(.bachelor):
return "学士学位".local
case .degree(.master):
return "硕士学位".local
case .degree(.doctor):
return "博士学位".local
case .education(.fullTime): case .marriage(.unmarriage):
return "全日制".local return "未婚".local
case .education(.partTime): case .marriage(.marriaged):
return "兼职制".local return "已婚".local
case.education(.distanceCourses): case .marriage(.separated):
return "遥距课程".local return "分居".local
case .marriage(.divorced):
return "离婚".local
case .marriage(.widowed):
return "丧偶".local
case .occupation(.onTheJob): case .degree(.bachelor):
return "在职".local return "学士学位".local
case .occupation(.retire): case .degree(.master):
return "退休".local return "硕士学位".local
case .occupation(.unemployed): case .degree(.doctor):
return "无业".local return "博士学位".local
case .occupation(.student):
return "学生".local case .education(.fullTime):
return "全日制".local
case .education(.partTime):
return "兼职制".local
case.education(.distanceCourses):
return "遥距课程".local
case .occupation(.onTheJob):
return "在职".local
case .occupation(.retire):
return "退休".local
case .occupation(.unemployed):
return "无业".local
case .occupation(.student):
return "学生".local
case .gender(.male):
return "男".local
case .gender(.female):
return "女".local
case .gender(.male): case .certificate(.passport):
return "男".local return "护照".local
case .gender(.female): case .certificate(.travelPassport):
return "女".local return "旅游通行证".local
case .certificate(.diplomaticPassport):
return "外交护照".local
case .certificate(.chineseStatelessTravelPassport):
return "中国发无国籍旅游证件".local
case .certificate(.otherStatelessTravelPassport):
return "其他无国籍旅行证件".local
case .certificate(.unitedNationsPassport):
return "联合国通行证".local
case .certificate(.officialPassport):
return "公务护照".local
} }
} }
static func getType(_ title: String?) -> YHFormPickerViewSubType { static func getType(_ title: String?) -> YHFormPickerViewSubType {
...@@ -124,6 +142,21 @@ enum YHFormPickerViewSubType { ...@@ -124,6 +142,21 @@ enum YHFormPickerViewSubType {
return .gender(.male) return .gender(.male)
} else if title == "女".local { } else if title == "女".local {
return .gender(.female) return .gender(.female)
} else if title == "护照".local {
return .certificate(.passport)
} else if title == "外交护照".local {
return .certificate(.diplomaticPassport)
} else if title == "旅游通行证".local {
return .certificate(.travelPassport)
} else if title == "公务护照".local {
return .certificate(.officialPassport)
} else if title == "中国发无国籍旅游证件".local {
return .certificate(.chineseStatelessTravelPassport)
} else if title == "其他无国籍旅行证件".local {
return .certificate(.otherStatelessTravelPassport)
} else if title == "联合国通行证".local {
return .certificate(.unitedNationsPassport)
} }
return .none return .none
...@@ -180,6 +213,24 @@ enum YHPickerViewGenderType { ...@@ -180,6 +213,24 @@ enum YHPickerViewGenderType {
case female case female
} }
enum YHPickerViewCertificateType {
// 护照
case passport
// 外交护照
case diplomaticPassport
// 公务护照
case officialPassport
// 中国发无国籍旅游证件
case chineseStatelessTravelPassport
// 旅游通行证
case travelPassport
// 联合国通行证
case unitedNationsPassport
// 其他无国籍旅行证件
case otherStatelessTravelPassport
}
class YHFormPickerViewItem { class YHFormPickerViewItem {
...@@ -319,6 +370,15 @@ class YHFormPickerView: UIView { ...@@ -319,6 +370,15 @@ class YHFormPickerView: UIView {
[YHFormPickerViewItem(type: .gender(.male)), [YHFormPickerViewItem(type: .gender(.male)),
YHFormPickerViewItem(type: .gender(.female))], YHFormPickerViewItem(type: .gender(.female))],
// 证件
.certificate:
[YHFormPickerViewItem(type: .certificate(.passport)),
YHFormPickerViewItem(type: .certificate(.diplomaticPassport)),
YHFormPickerViewItem(type: .certificate(.officialPassport)),
YHFormPickerViewItem(type: .certificate(.chineseStatelessTravelPassport)),
YHFormPickerViewItem(type: .certificate(.travelPassport)),
YHFormPickerViewItem(type: .certificate(.unitedNationsPassport)),
YHFormPickerViewItem(type: .certificate(.otherStatelessTravelPassport))],
] ]
}() }()
...@@ -431,19 +491,21 @@ class YHFormPickerView: UIView { ...@@ -431,19 +491,21 @@ class YHFormPickerView: UIView {
func getTitle(type: YHFormPickerViewType)-> String { func getTitle(type: YHFormPickerViewType)-> String {
switch type { switch type {
case .none: case .none:
return "" return ""
case .degree: case .degree:
return "选择学位" return "选择学位"
case .marriage: case .marriage:
return "选择婚姻状况" return "选择婚姻状况"
case .edution: case .edution:
return "选择学位" return "选择学位"
case .occupation: case .occupation:
return "选择职业" return "选择职业"
case .gender: case .gender:
return "选择性别" return "选择性别"
} case .certificate:
return "选择证件"
}
} }
} }
......
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