Commit 2fc86ec0 authored by pete谢兆麟's avatar pete谢兆麟

时间选择器修改

parent 65109d88
......@@ -336,7 +336,7 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
} else if detailItem.type == .graduateTime {
title = "选择毕业日期"
}
YHDatePickView.show(type: .yyyymm, title: title) {
YHDatePickView.show(type: .yyyymm, title: title, lastIsTaday: true) {
[weak self] dateStr in
guard let self = self else { return }
......
......@@ -288,7 +288,7 @@ extension YHQualificationDetailVC : UITableViewDelegate, UITableViewDataSource {
} else if detailItem.type == .conferTime { // 授权年份
YHDatePickView.show(type: .yyyy, title:"选择授权年份".local) {
YHDatePickView.show(type: .yyyy, title:"选择授权年份".local, lastIsTaday: true) {
[weak self] dateStr in
guard let self = self else { return }
......
......@@ -344,7 +344,7 @@ extension YHCertificateInfoController : UITableViewDelegate, UITableViewDataSour
}
self.view?.endEditing(true)
YHDatePickView.show(type: .yyyymmdd, title: title) {
YHDatePickView.show(type: .yyyymmdd, title: title, lastIsTaday: true) {
[weak self] dateStr in
print(dateStr)
......
......@@ -460,7 +460,7 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
if detailItem.type == .stayHKDate {
title = "选择逗留日期"
}
YHDatePickView.show(type: .yyyymmdd, title:title) { [weak self] dateStr in
YHDatePickView.show(type: .yyyymmdd, title:title, lastIsTaday: true) { [weak self] dateStr in
guard let self = self else { return }
if detailItem.type == .stayHKDate {
......
......@@ -418,7 +418,7 @@ extension YHChildPrimaryInfoVC : UITableViewDelegate, UITableViewDataSource {
// 子女选择年满18岁则【是否随行至香港】默认选择否,不可修改
// 如果未年满18岁则【是否随行至香港】可选择【是/否】,可修改
YHDatePickView.show(type: .yyyymmdd, title:"选择出生日期".local) { [weak self] date in
YHDatePickView.show(type: .yyyymmdd, title:"选择出生日期".local, lastIsTaday: true) { [weak self] date in
guard let self = self else { return }
if detailItem.type == .birthday {
......
......@@ -422,7 +422,7 @@ extension YHBrotherInfoVC : UITableViewDelegate, UITableViewDataSource {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .birthday { // 出生日期
YHDatePickView.show(type: .yyyymmdd, title:"选择出生日期".local) { [weak self] dateStr in
YHDatePickView.show(type: .yyyymmdd, title:"选择出生日期".local, lastIsTaday: true) { [weak self] dateStr in
guard let self = self else { return }
if detailItem.type == .birthday {
......
......@@ -470,7 +470,7 @@ extension YHParentInfoVC : UITableViewDelegate, UITableViewDataSource {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .birthday { // 出生日期
YHDatePickView.show(type: .yyyymmdd, title:"选择出生日期".local) { [weak self] dateStr in
YHDatePickView.show(type: .yyyymmdd, title:"选择出生日期".local, lastIsTaday: true) { [weak self] dateStr in
guard let self = self else { return }
if detailItem.type == .birthday {
......
......@@ -666,7 +666,7 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
} else if detailItem.type == .stayHKDate {
title = "选择逗留日期"
}
YHDatePickView.show(type: .yyyymmdd, title:title) { [weak self] dateStr in
YHDatePickView.show(type: .yyyymmdd, title:title, lastIsTaday: true) { [weak self] dateStr in
guard let self = self else { return }
if detailItem.type == .birthday {
......
......@@ -32,7 +32,26 @@ class YHDatePickView: UIView {
var sureButton: UIButton!
var lineView: UIView!
var pickerView: UIPickerView!
var lastIsTaday: Bool = false {
didSet {
if lastIsTaday {
guard let type = type else { return }
switch type {
case .yyyymmdd:
pickerView.selectRow(0, inComponent: 0, animated: true)
pickerView.selectRow(self.currentDateCom.month! - 1, inComponent: 1, animated: true)
pickerView.selectRow(self.currentDateCom.day! - 1, inComponent: 2, animated: true)
case .yyyymm:
pickerView.selectRow(self.currentDateCom.month! - 1, inComponent: 1, animated: true)
pickerView.selectRow(self.currentDateCom.month! - 1, inComponent: 1, animated: true)
case .yyyy:
pickerView.selectRow(0, inComponent: 0, animated: true)
}
} else {
pickerView.selectRow(100, inComponent: 0, animated: true)
}
}
}
private var currentDateCom: DateComponents = Calendar.current.dateComponents([.year, .month, .day], from: Date())
// 日期分割符 eg: 2024-01-01
......@@ -161,17 +180,14 @@ class YHDatePickView: UIView {
make.height.equalTo(220)
make.right.equalTo(-16)
}
pickerView.selectRow(100, inComponent: 0, animated: true)
centerView.layoutIfNeeded()
let corner = UIRectCorner(rawValue: UIRectCorner.topLeft.rawValue | UIRectCorner.topRight.rawValue)
let path = UIBezierPath(roundedRect:bounds,byRoundingCorners: corner,cornerRadii:CGSizeMake(8, 8));
let layer = CAShapeLayer();
layer.frame = centerView.bounds;
layer.path = path.cgPath;
centerView.layer.mask = layer;
let path = UIBezierPath(roundedRect:bounds,byRoundingCorners: corner,cornerRadii:CGSizeMake(8, 8))
let layer = CAShapeLayer()
layer.frame = centerView.bounds
layer.path = path.cgPath
centerView.layer.mask = layer
}
@objc private func handleTap(_ sender: AnyObject?) {
......@@ -179,11 +195,12 @@ class YHDatePickView: UIView {
dismiss()
}
static func show(type:YHDateType, title: String? = nil, callBack: @escaping ((String) -> Void)) {
static func show(type:YHDateType, title: String? = nil, lastIsTaday: Bool = false, callBack: @escaping ((String) -> Void)) {
let view = YHDatePickView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.type = type
view.backDate = callBack
view.title = title ?? ""
view.lastIsTaday = lastIsTaday
let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view)
}
......@@ -198,11 +215,23 @@ class YHDatePickView: UIView {
var date = ""
switch type {
case .yyyymmdd:
date = String(format: "%02ld%@%02ld%@%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0) + 100,Self.separator, self.pickerView.selectedRow(inComponent: 1) + 1,Self.separator, self.pickerView.selectedRow(inComponent: 2) + 1)
if lastIsTaday {
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)
} else {
date = String(format: "%02ld%@%02ld%@%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0) + 100,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) + 100 ,Self.separator, self.pickerView.selectedRow(inComponent: 1) + 1)
if lastIsTaday {
date = String(format: "%02ld%@%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0) ,Self.separator, self.pickerView.selectedRow(inComponent: 1) + 1)
} else {
date = String(format: "%02ld%@%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0) + 100 ,Self.separator, self.pickerView.selectedRow(inComponent: 1) + 1)
}
case .yyyy:
date = String(format: "%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0) + 100)
if lastIsTaday {
date = String(format: "%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0))
} else {
date = String(format: "%02ld", (self.currentDateCom.year!) - self.pickerView.selectedRow(inComponent: 0) + 100)
}
}
if self.backDate != nil {
self.backDate!(date)
......@@ -234,14 +263,27 @@ extension YHDatePickView: UIPickerViewDelegate,UIPickerViewDataSource {
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if component == 0 {
if lastIsTaday {
return 100
}
return 200
} else if component == 1 {
if self.pickerView.selectedRow(inComponent: 0) == 0 {
if lastIsTaday {
return self.currentDateCom.month!
}
}
return 12
} else {
let year: Int = pickerView.selectedRow(inComponent: 0) + currentDateCom.year!
if type == .yyyy {
return 0
}
if self.pickerView.selectedRow(inComponent: 0) == 0 && self.pickerView.selectedRow(inComponent: 1) == self.currentDateCom.month! - 1 {
if lastIsTaday {
return self.currentDateCom.day!
}
}
let month: Int = pickerView.selectedRow(inComponent: 1) + 1
let days: Int = howManyDays(inThisYear: year, withMonth: month)
return days
......@@ -285,6 +327,9 @@ extension YHDatePickView: UIPickerViewDelegate,UIPickerViewDataSource {
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if component == 0 {
if lastIsTaday {
return "\((currentDateCom.year!) - row)"
}
return "\((currentDateCom.year!) - row + 100)"
} else if component == 1 {
return "\(row + 1)"
......@@ -297,5 +342,9 @@ extension YHDatePickView: UIPickerViewDelegate,UIPickerViewDataSource {
if component == 1, self.type == .yyyymmdd {
pickerView.reloadComponent(2)
}
if component == 0, lastIsTaday {
pickerView.reloadComponent(1)
}
}
}
......@@ -435,18 +435,20 @@ class YHItemView: UIView {
UIViewController.current?.present(addressPicker, animated: true, completion: nil)
case .time:
var title = ""
var isLastDay = false
if dataSource?.id == .id10 || dataSource?.id == .id14 || dataSource?.id == .id19 {
title = "请选择签发日期"
isLastDay = true
}
if dataSource?.id == .id11 || dataSource?.id == .id15 || dataSource?.id == .id20 {
title = "请选择届满日期"
isLastDay = false
}
if dataSource?.id == .id24 {
title = "请选择出生日期"
isLastDay = true
}
YHDatePickView.show(type: .yyyymmdd, title: title) { date in
// let arr = date.components(separatedBy: YHDatePickView.separator)
// [yyyy, mm, dd] eg ["2024", "01", "20"]
YHDatePickView.show(type: .yyyymmdd, title: title, lastIsTaday: isLastDay) { date in
self.dataSource?.message = date
self.updateAllViews()
if let block = self.block {
......
......@@ -155,7 +155,7 @@ extension YHOtherResidenceFillView {
@objc func tapStartDate(_ gestureRecognizer: UIPanGestureRecognizer) {
YHDatePickView.show(type: .yyyymm,title: "请选择开始时间") { date in
YHDatePickView.show(type: .yyyymm,title: "请选择开始时间", lastIsTaday: true) { date in
printLog(date)
self.startView.updateKeyName(name: "开始时间", keyValue: date)
......
......@@ -289,7 +289,7 @@ class YHWorkIntroductionViewController: YHBaseViewController {
@objc func startClick() {
view.endEditing(true)
YHDatePickView.show(type: .yyyymmdd, title: "请选择开始时间") { date in
YHDatePickView.show(type: .yyyymmdd, title: "请选择开始时间", lastIsTaday: true) { date in
if date > self.dataSource.project_end_time ?? "" && self.dataSource.project_end_time?.count ?? 0 > 0 {
YHHUD.flash(message: "开始时间不能晚于结束时间")
} else {
......
......@@ -403,19 +403,24 @@ class YHWorkExperienceItemView: UIView {
UIViewController.current?.present(addressPicker, animated: true, completion: nil)
case .time:
var title = ""
var lastIsTaday = false
if dataSource?.id == .id9 {
title = "请选择入职日期"
lastIsTaday = true
}
if dataSource?.id == .id10 {
title = "请选择离职日期"
lastIsTaday = true
}
if dataSource?.id == .id21 {
title = "请选择高管在职开始时间"
lastIsTaday = true
}
if dataSource?.id == .id22 {
title = "请选择高管在职结束时间"
lastIsTaday = true
}
YHDatePickView.show(type: .yyyymm, title: title) { date in
YHDatePickView.show(type: .yyyymm, title: title, lastIsTaday: lastIsTaday) { date in
self.dataSource?.message = date
self.updateAllViews()
if let block = self.block {
......
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