Commit 0edd4297 authored by Steven杜宇's avatar Steven杜宇

// 选择器

parent 3458b157
......@@ -42,7 +42,7 @@ class YHCertificateViewController: YHBaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
gk_navTitle = "配偶信息填写".local
gk_navTitle = "证件信息填写".local
createUI()
loadCertificateInfo()
}
......@@ -187,6 +187,31 @@ extension YHCertificateViewController : UITableViewDelegate, UITableViewDataSour
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.section >= items.count { return }
let arr:[YHFormItemProtocol] = items[indexPath.section]
if indexPath.row >= arr.count || indexPath.row < 0 { return }
let item = arr[indexPath.row]
if item is YHFormTitleItem {
return
}
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .certificateValidDate ||
detailItem.type == .certificateSignDate { // 届满日期 签发日期
YHDatePickView.show(type: .yyyymmdd) { date in
let arr = date.components(separatedBy: YHDatePickView.separator)
// [yyyy, mm, dd] eg ["2024", "01", "20"]
print(date)
}
}
return
}
let vc = YHSpouseBasicInfoVC()
self.navigationController?.pushViewController(vc)
}
......
......@@ -643,11 +643,6 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
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 item:YHFormItemProtocol = arr[indexPath.row]
......
......@@ -6,6 +6,24 @@
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
// 【 用法 Usage】
/*
// (1) 直接传type
YHFormPickerView.show(type: .certificate, selectType: .certificate(.otherStatelessTravelPassport)) { selectType in
// 选择类型的标题
print(selectType.title)
}
// (2) 直接传字符串值
YHFormPickerView.show(type: .certificate, selectTitle: "公务通行证") { selectType in
// 选择类型的标题
print(selectType.title)
}
*/
import UIKit
enum YHFormPickerViewType: Int {
......@@ -398,6 +416,24 @@ class YHFormPickerView: UIView {
UIApplication.shared.yhKeyWindow()?.addSubview(self)
}
static func show(type:YHFormPickerViewType, selectType:YHFormPickerViewSubType, callBack: @escaping ((YHFormPickerViewSubType)->Void)) {
let picker = YHFormPickerView(type: type)
picker.selectType = selectType
picker.selectBlock = callBack
picker.show()
}
static func show(type:YHFormPickerViewType, selectTitle:String?, callBack: @escaping ((YHFormPickerViewSubType)->Void)) {
let picker = YHFormPickerView(type: type)
picker.selectTitle = selectTitle
picker.selectBlock = callBack
picker.show()
}
@objc func dismiss() {
self.removeFromSuperview()
}
......
......@@ -7,12 +7,11 @@
//
/* 使用例子
let view = YHDatePickView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.type = .yyyymm
view.backDate = { [weak self] date in
YHDatePickView.show(type: .yyyymmdd) { date in
let arr = date.components(separatedBy: YHDatePickView.separator)
// [yyyy, mm, dd] eg ["2024", "01", "20"]
print(date)
}
let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view)
*/
import UIKit
......@@ -24,6 +23,8 @@ enum YHDateType: Int {
}
class YHDatePickView: UIView {
var backDate: ((String) -> Void)?
var centerView: UIView!
var titleLabel: UILabel!
......@@ -34,6 +35,10 @@ class YHDatePickView: UIView {
private var currentDateCom: DateComponents = Calendar.current.dateComponents([.year, .month, .day], from: Date())
// 日期分割符 eg: 2024-01-01
static let separator: String = "-"
var type: YHDateType? {
didSet {
guard let type = type else { return }
......@@ -160,6 +165,14 @@ class YHDatePickView: UIView {
dismiss()
}
static func show(type:YHDateType, callBack: @escaping ((String) -> Void)) {
let view = YHDatePickView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.type = type
view.backDate = callBack
let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view)
}
@objc func dismiss() {
removeFromSuperview()
}
......@@ -169,9 +182,9 @@ class YHDatePickView: UIView {
var date = ""
switch type {
case .yyyymmdd:
date = String(format: "%02ld%02ld%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0), self.pickerView.selectedRow(inComponent: 1) + 1, self.pickerView.selectedRow(inComponent: 2) + 1)
date = String(format: "%02ld%@%02ld%@%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0),Self.separator, self.pickerView.selectedRow(inComponent: 1) + 1,Self.separator, self.pickerView.selectedRow(inComponent: 2) + 1)
case .yyyymm:
date = String(format: "%02ld%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0), self.pickerView.selectedRow(inComponent: 1) + 1)
date = String(format: "%02ld%@%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0),Self.separator, self.pickerView.selectedRow(inComponent: 1) + 1)
case .yyyy:
date = String(format: "%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0))
}
......
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