Commit 98e55521 authored by David黄金龙's avatar David黄金龙

添加 预约time选择器

parent 1d5b0471
......@@ -829,6 +829,10 @@
A59B43CB2C4A151200B28379 /* YHStatusAdvantageVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59B43CA2C4A151200B28379 /* YHStatusAdvantageVC.swift */; };
A59B43CD2C4A36DF00B28379 /* YHStatusAdvantageBottomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59B43CC2C4A36DF00B28379 /* YHStatusAdvantageBottomView.swift */; };
A59B43CF2C4B5AD100B28379 /* YHShareViewOnTablebarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59B43CE2C4B5AD100B28379 /* YHShareViewOnTablebarView.swift */; };
A59FD0712CBFAC7800BBED55 /* YHRangeDatePickerView2.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59FD06F2CBFAC7800BBED55 /* YHRangeDatePickerView2.swift */; };
A59FD0722CBFAC7800BBED55 /* YHRangeDatePickerSheetView2.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59FD06E2CBFAC7800BBED55 /* YHRangeDatePickerSheetView2.swift */; };
A59FD0732CBFAC7800BBED55 /* YHRangeDatePickerCell2.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59FD06D2CBFAC7800BBED55 /* YHRangeDatePickerCell2.swift */; };
A59FD0772CC0A62A00BBED55 /* YHPickTimeHoldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59FD0762CC0A62A00BBED55 /* YHPickTimeHoldView.swift */; };
A5A89FD72C256B94005A71DD /* YHHomeLastMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A89FD62C256B94005A71DD /* YHHomeLastMessageModel.swift */; };
A5ACE9282B4564F7002C94D2 /* YHSmsCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5ACE8DE2B4564F7002C94D2 /* YHSmsCodeView.swift */; };
A5ACE9292B4564F7002C94D2 /* YHSmsCodeInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5ACE8E02B4564F7002C94D2 /* YHSmsCodeInputView.swift */; };
......@@ -1795,6 +1799,10 @@
A59B43CA2C4A151200B28379 /* YHStatusAdvantageVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHStatusAdvantageVC.swift; sourceTree = "<group>"; };
A59B43CC2C4A36DF00B28379 /* YHStatusAdvantageBottomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHStatusAdvantageBottomView.swift; sourceTree = "<group>"; };
A59B43CE2C4B5AD100B28379 /* YHShareViewOnTablebarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHShareViewOnTablebarView.swift; sourceTree = "<group>"; };
A59FD06D2CBFAC7800BBED55 /* YHRangeDatePickerCell2.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHRangeDatePickerCell2.swift; sourceTree = "<group>"; };
A59FD06E2CBFAC7800BBED55 /* YHRangeDatePickerSheetView2.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHRangeDatePickerSheetView2.swift; sourceTree = "<group>"; };
A59FD06F2CBFAC7800BBED55 /* YHRangeDatePickerView2.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHRangeDatePickerView2.swift; sourceTree = "<group>"; };
A59FD0762CC0A62A00BBED55 /* YHPickTimeHoldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPickTimeHoldView.swift; sourceTree = "<group>"; };
A5A89FD62C256B94005A71DD /* YHHomeLastMessageModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeLastMessageModel.swift; sourceTree = "<group>"; };
A5ACE8DE2B4564F7002C94D2 /* YHSmsCodeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHSmsCodeView.swift; sourceTree = "<group>"; };
A5ACE8E02B4564F7002C94D2 /* YHSmsCodeInputView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHSmsCodeInputView.swift; sourceTree = "<group>"; };
......@@ -3619,6 +3627,7 @@
04912F672CB6A59C00CC3105 /* V */ = {
isa = PBXGroup;
children = (
A59FD0702CBFAC7800BBED55 /* RangeDatePicker2 */,
04912F6D2CB6A64700CC3105 /* YHResignAppointSubmitTipsView.swift */,
044E31C42CBCFDD200500F8E /* YHResignAppointGuideLineView.swift */,
04912F732CB7743900CC3105 /* YHResignAppointSelectTimeItemView.swift */,
......@@ -4562,6 +4571,17 @@
path = M;
sourceTree = "<group>";
};
A59FD0702CBFAC7800BBED55 /* RangeDatePicker2 */ = {
isa = PBXGroup;
children = (
A59FD06D2CBFAC7800BBED55 /* YHRangeDatePickerCell2.swift */,
A59FD06E2CBFAC7800BBED55 /* YHRangeDatePickerSheetView2.swift */,
A59FD06F2CBFAC7800BBED55 /* YHRangeDatePickerView2.swift */,
A59FD0762CC0A62A00BBED55 /* YHPickTimeHoldView.swift */,
);
path = RangeDatePicker2;
sourceTree = "<group>";
};
A5ACE8D72B4564F7002C94D2 /* Classes */ = {
isa = PBXGroup;
children = (
......@@ -5564,6 +5584,9 @@
0435FA812BA186D600024EAE /* YHMyFileMethodTableViewCell.swift in Sources */,
F8BAADA32C4FB41F0074D6C3 /* YHUatHelper.swift in Sources */,
0468D4282B50D4AF00CFB916 /* YHPrivacyAlertView.swift in Sources */,
A59FD0712CBFAC7800BBED55 /* YHRangeDatePickerView2.swift in Sources */,
A59FD0722CBFAC7800BBED55 /* YHRangeDatePickerSheetView2.swift in Sources */,
A59FD0732CBFAC7800BBED55 /* YHRangeDatePickerCell2.swift in Sources */,
045EEEB22B9F171A0022A143 /* YHWorkActionView.swift in Sources */,
04CA2BF02CB7A74C00F36DE7 /* YHResignUploadTravelHKViewController.swift in Sources */,
A58AC09F2BAC05BA00A30FA9 /* YHFileListItemsView.swift in Sources */,
......@@ -5995,6 +6018,7 @@
04F243292C942A5500DF2C74 /* YHResignDocumentDetailViewController.swift in Sources */,
A5FD63C32B63438A00D1D9DA /* YHContactMainItemStatusModel.swift in Sources */,
045EEEEA2B9F171A0022A143 /* YHFamilyInitialInfo.swift in Sources */,
A59FD0772CC0A62A00BBED55 /* YHPickTimeHoldView.swift in Sources */,
04256E232C76D22400A37BA4 /* YHAppointItem.swift in Sources */,
04256E212C76CA7800A37BA4 /* YHActivateHKVisaCell.swift in Sources */,
043BA8752C241B38006EF02D /* YHAddFriendCardCell.swift in Sources */,
......
//
// YHPickTimeHoldView.swift
// galaxy
//
// Created by davidhuangA on 2024/10/17.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPickTimeHoldView: UIView {
var clickConfirmBtnBlock: ((YHResignConfirmHKStatus)->())?
var confirmHKStatus: YHResignConfirmHKStatus = .waitConfirmHK
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var applicantNamesLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 14)
label.textColor = .mainTextColor
label.text = "具体时间:"
return label
}()
lazy var tipImageV : UIImageView = {
let view = UIImageView()
view.contentMode = .scaleAspectFill
view.image = UIImage(named: "activity_travel_bkg")
return view
}()
lazy var nextImageV : UIImageView = {
let view = UIImageView()
view.contentMode = .scaleAspectFill
view.image = UIImage(named: "activity_travel_bkg")
return view
}()
lazy var timeTextField: UITextField = {
let tf = UITextField()
tf.font = UIFont.PFSC_M(ofSize: 14)
tf.textColor = UIColor.mainTextColor
tf.placeholder = "请选择"
return tf
}()
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
@objc func didConfirmInHKBtnClicked() {
clickConfirmBtnBlock?(self.confirmHKStatus)
}
func createUI() {
self.addSubview(lineView)
self.addSubview(applicantNamesLabel)
lineView.snp.makeConstraints { make in
make.left.right.top.equalToSuperview()
make.height.equalTo(1)
}
applicantNamesLabel.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-18-71-5)
}
}
}
//
// YHRangeDatePickerCell2.swift
// galaxy
//
// Created by davidhuangA on 2024/8/22.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import FSCalendar
class YHRangeDatePickerCell2: FSCalendarCell {
static let cellReuseIdentifier = "YHRangeDatePickerCell2"
public var middleLayer : CALayer = CALayer();
public var selectionLayer : CALayer = CALayer();
override init(frame: CGRect) {
super.init(frame: frame)
let selectionLayer = CALayer()
selectionLayer.cornerRadius = 3
selectionLayer.backgroundColor = UIColor(red: 0, green: 0.275, blue: 0.706, alpha: 1).cgColor
selectionLayer.actions = ["hidden": NSNull()]
contentView.layer.insertSublayer(selectionLayer, below: titleLabel?.layer)
self.selectionLayer = selectionLayer
let middleLayer = CALayer()
middleLayer.backgroundColor = UIColor(red: 0, green: 0.275, blue: 0.706, alpha: 0.08).cgColor
middleLayer.actions = ["hidden": NSNull()]
contentView.layer.insertSublayer(middleLayer, below: titleLabel?.layer)
self.middleLayer = middleLayer
shapeLayer.isHidden = true
}
required init!(coder aDecoder: NSCoder!) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
titleLabel?.frame = contentView.bounds
}
override func layoutSublayers(of layer: CALayer) {
super.layoutSublayers(of: layer)
middleLayer.frame = contentView.bounds
selectionLayer.frame = contentView.bounds
}
}
//
// YHRangeDatePickerSheetView.swift
// galaxy
//
// Created by davidhuangA on 2024/8/22.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHRangeDatePickerSheetView2: UIView {
static let contentViewH2 : CGFloat = 40 + 13 + 80 + 12 + YHRangeDatePickerView2.viewH2 + 58 + 98//(16 + 24) + (12 + 1) + (12 + 68) + 12 + YHRangeDatePickerView2.viewH2 + 52 + 6 + 98
typealias Block = (Date,Date) -> ()
var block: Block?
lazy var blackMaskView: UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0x0F1214, alpha: 0.5)
return view
}()
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
lazy var titleLable: UILabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_B(ofSize:17)
label.text = "选择预约在港递交时间"
label.textAlignment = .center
return label
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var bottomView: UIView = {
let view = UIView()
view.backgroundColor = .clear
view.addSubview(self.rewardBtn)
self.rewardBtn.snp.makeConstraints { make in
make.top.equalToSuperview().offset(10)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(44)
}
view.layer.zPosition = 10
return view
}()
//知道了
lazy var rewardBtn: UIButton = {
let button = UIButton(type: .custom)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 15)
button.contentHorizontalAlignment = .center
button.setTitle("确定", for: .normal)
button.setTitleColor(UIColor.white, for: .normal)
button.layer.cornerRadius = kCornerRadius3
button.clipsToBounds = true
button.addTarget(self, action: #selector(clickSureBtn), for: .touchUpInside)
button.backgroundColor = UIColor.brandMainColor
return button
}()
lazy var closeBtn: UIButton = {
let button = UIButton(type: .custom)
button.addTarget(self, action: #selector(dismiss), for: .touchUpInside)
button.setImage(UIImage(named: "work_example_close"), for: .normal)
button.setImage(UIImage(named: "work_example_close"), for: .selected)
return button
}()
lazy var datePickView : YHRangeDatePickerView2 = {
let view = YHRangeDatePickerView2()
return view
}()
lazy var warnImageV: UIImageView = {
let imageV = UIImageView()
imageV.image = UIImage(named: "appoint_warm_date_picker2")
imageV.contentMode = .scaleToFill
imageV.clipsToBounds = true
return imageV
}()
lazy var timeHoldView : UIView = {
let imageV = UIView()
imageV.backgroundColor = .yellow //52
return imageV
}()
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
}
extension YHRangeDatePickerSheetView2 {
static func sheetView() -> YHRangeDatePickerSheetView2 {
let view = YHRangeDatePickerSheetView2(frame:UIScreen.main.bounds)
return view
}
func show() {
UIApplication.shared.yhKeyWindow()?.addSubview(self)
UIView.animate(withDuration: 0.5) {
let whiteHeight = YHRangeDatePickerSheetView2.contentViewH2
self.whiteContentView.frame = CGRect(x: 0, y: KScreenHeight - whiteHeight, width: KScreenWidth, height: whiteHeight)
}
}
@objc func dismiss() {
removeFromSuperview()
}
@objc func clickSureBtn() {
if isChooseOk() {
if let date1 = datePickView.startDate,let date2 = datePickView.endDate {
self.block?(date1,date2)
}
dismiss()
} else {
YHHUD.flash(message: "选择开始/结束日期")
}
}
func isChooseOk()->Bool {
if datePickView.startDate != nil,datePickView.endDate != nil {
return true
}
return false
}
}
private extension YHRangeDatePickerSheetView2 {
func setSubmitButtonDisable(_ disableFlag : Bool) {
/*
lazy var rewardBtn: UIButton = {
let button = UIButton(type: .custom)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 15)
button.contentHorizontalAlignment = .center
button.setTitle("确定", for: .normal)
button.setTitleColor(UIColor.white, for: .normal)
button.layer.cornerRadius = kCornerRadius3
button.clipsToBounds = true
button.addTarget(self, action: #selector(clickSureBtn), for: .touchUpInside)
button.backgroundColor = UIColor.brandMainColor
return button
}()
*/
rewardBtn.isEnabled = !rewardBtn.isEnabled
if disableFlag {
//不可点击
rewardBtn.backgroundColor = UIColor.brandMainColor30
} else {
//可点击
rewardBtn.backgroundColor = UIColor.brandMainColor
}
}
func setupUI() {
self.addSubview(blackMaskView)
self.addSubview(whiteContentView)
let corner = UIRectCorner(rawValue: UIRectCorner.topLeft.rawValue | UIRectCorner.topRight.rawValue)
let path = UIBezierPath(roundedRect:bounds,byRoundingCorners: corner,cornerRadii:CGSizeMake(kCornerRadius6, kCornerRadius6));
let layer = CAShapeLayer();
layer.frame = whiteContentView.bounds;
layer.path = path.cgPath;
whiteContentView.layer.mask = layer;
whiteContentView.clipsToBounds = true
blackMaskView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
let whiteHeight = YHRangeDatePickerSheetView2.contentViewH2
whiteContentView.frame = CGRect(x: 0, y: KScreenHeight, width: KScreenWidth, height: whiteHeight)
whiteContentView.addSubview(bottomView)
bottomView.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.height.equalTo(98)
}
whiteContentView.addSubview(titleLable)
titleLable.snp.makeConstraints { make in
make.top.equalToSuperview().offset(kMargin)
make.left.right.equalToSuperview()
make.height.equalTo(24)
}
whiteContentView.addSubview(closeBtn)
closeBtn.snp.makeConstraints { make in
make.right.equalToSuperview().offset(-21)
make.height.width.equalTo(24)
make.centerY.equalTo(titleLable.snp.centerY)
}
whiteContentView.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.top.equalTo(titleLable.snp.bottom).offset(12)
make.left.equalToSuperview().offset(21)
make.right.equalToSuperview().offset(-21)
make.height.equalTo(1)
}
whiteContentView.addSubview(warnImageV)
warnImageV.snp.makeConstraints { make in
make.top.equalTo(lineView.snp.bottom).offset(12)
make.centerX.equalToSuperview()
make.width.equalTo(343)
make.height.equalTo(68)
}
whiteContentView.addSubview(datePickView)
datePickView.snp.makeConstraints { make in
make.top.equalTo(warnImageV.snp.bottom).offset(12)
make.left.right.equalToSuperview()
make.height.equalTo(YHRangeDatePickerView2.viewH2)
}
whiteContentView.addSubview(timeHoldView)
timeHoldView.snp.makeConstraints { make in
make.top.equalTo(datePickView.snp.bottom)
make.left.right.equalToSuperview()
make.height.equalTo(52)
}
setSubmitButtonDisable(true)
}
}
//
// YHRangeDatePickerView2.swift
// galaxy
//
// Created by davidhuangA on 2024/8/22.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import FSCalendar
class YHRangeDatePickerView2: UIView,FSCalendarDataSource, FSCalendarDelegate, FSCalendarDelegateAppearance {
static let viewH2 : CGFloat = 396//508.0 - 52.0 -20 - 50
lazy var calendar: FSCalendar = {
// let calendar = FSCalendar(frame: CGRect(x: 0, y: (navigationController?.navigationBar.frame.maxY)! + 30, width: view.frame.size.width, height: 510))
let calendar = FSCalendar()
calendar.locale = NSLocale(localeIdentifier: "zh-CN") as Locale
calendar.dataSource = self
calendar.delegate = self
calendar.pagingEnabled = false
calendar.allowsMultipleSelection = true
calendar.rowHeight = 60
calendar.weekdayHeight = 40
calendar.locale = Locale(identifier: "zh-CN")
calendar.scope = .month
calendar.appearance.headerDateFormat = "yyyy年MM月"
//隐藏 当日的 图片
calendar.today = nil
calendar.register(YHRangeDatePickerCell2.self, forCellReuseIdentifier: YHRangeDatePickerCell2.cellReuseIdentifier)
self.calendar = calendar
//副标偏移量
calendar.appearance.subtitleOffset = CGPoint(x: 0, y: 16)
//头部日期 字体
calendar.appearance.headerTitleFont = UIFont(name: "PingFangSC-Medium", size: 15)
//头部日期 颜色
calendar.appearance.headerTitleColor = UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 1)
//头部week 字体
calendar.appearance.weekdayFont = UIFont(name: "PingFangSC-Regular", size: 13)
//头部week 颜色
calendar.appearance.weekdayTextColor = UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 1)
//日历内容 默认颜色
// calendar.appearance.titleDefaultColor = UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 1)
//日历内容 字体
calendar.appearance.titleFont = UIFont(name: "PingFangSC-Medium", size: 16)
calendar.appearance.subtitleFont = UIFont(name: "PingFangSC-Medium", size: 9)
//日历内容 选择时 颜色
calendar.appearance.titleSelectionColor = .white
calendar.appearance.subtitleSelectionColor = .white
// calendar.appearance.todayColor = UIColor(red: 0, green: 0.275, blue: 0.706, alpha: 1)
// calendar.appearance.todaySelectionColor = .white
// calendar.appearance.titleTodayColor = UIColor(red: 0, green: 0.275, blue: 0.706, alpha: 1)
//非当月日期 颜色
calendar.appearance.titlePlaceholderColor = UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 0.2)
//日期 横线
calendar.appearance.separators = .none
return calendar
}()
lazy var gregorian: Calendar = {
let gregorian = Calendar(identifier: .chinese)
return gregorian
}()
lazy var dateFormatter: DateFormatter = {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
return dateFormatter
}()
// The start date of the range
var startDate: Date?
// The end date of the range
var endDate: Date?
override init(frame: CGRect) {
super.init(frame: .zero)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
// MARK: - FSCalendarDataSource
extension YHRangeDatePickerView2 {
func calendar(_ calendar: FSCalendar, subtitleFor date: Date) -> String? {
if let start = startDate {
if self.gregorian.compare(start, to: date, toGranularity: .day).rawValue == 0 {
return "开始"
}
}
if let end = endDate {
if self.gregorian.compare(end, to: date, toGranularity: .day).rawValue == 0 {
return "结束"
}
}
return nil
}
func calendar(_ calendar: FSCalendar, titleFor date: Date) -> String? {
return self.gregorian.isDateInToday(date) ? "今" : nil
}
func minimumDate(for calendar: FSCalendar) -> Date {
return self.gregorian.date(byAdding: .day, value: 1, to: Date())!
}
func maximumDate(for calendar: FSCalendar) -> Date {
return self.gregorian.date(byAdding: .day, value: 365, to: Date())!
}
func calendar(_ calendar: FSCalendar, cellFor date: Date, at monthPosition: FSCalendarMonthPosition) -> FSCalendarCell {
let cell: YHRangeDatePickerCell2 = calendar.dequeueReusableCell(withIdentifier: YHRangeDatePickerCell2.cellReuseIdentifier, for: date, at: monthPosition) as! YHRangeDatePickerCell2
return cell
}
func calendar(_ calendar: FSCalendar, willDisplay cell: FSCalendarCell, for date: Date, at monthPosition: FSCalendarMonthPosition) {
configureCell(cell, for: date, at: monthPosition)
}
func calendar(_ calendar: FSCalendar, boundingRectWillChange bounds: CGRect, animated: Bool) {
self.calendar.frame.size.height = bounds.height
}
// MARK: - FSCalendarDelegate
func calendar(_ calendar: FSCalendar, shouldSelect date: Date, at monthPosition: FSCalendarMonthPosition) -> Bool {
return true
}
func calendar(_ calendar: FSCalendar, shouldDeselect date: Date, at monthPosition: FSCalendarMonthPosition) -> Bool {
return false
}
func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
if monthPosition == .next || monthPosition == .previous {
calendar.setCurrentPage(date, animated: true)
tapOneDate(date)
}
else {
tapOneDate(date)
}
configureVisibleCells()
calendar.reloadData()
}
func calendar(_ calendar: FSCalendar, didDeselect date: Date, at monthPosition: FSCalendarMonthPosition) {
let aDate = date
print("did deselect date \(String(describing: dateFormatter.string(from: aDate)))")
configureVisibleCells()
}
}
// MARK: - Private methods
private extension YHRangeDatePickerView2 {
func setupUI() {
addSubview(calendar)
calendar.snp.makeConstraints { make in
make.top.equalToSuperview()//.offset(-1)
make.left.right.equalToSuperview()
make.height.equalTo(YHRangeDatePickerView2.viewH2)
}
calendar.backgroundColor = .red //for test hjl
}
func tapOneDate(_ date : Date) {
if startDate == nil {
startDate = date
YHHUD.flash(message: "选择结束日期")
} else if endDate == nil {
// 比较结果
let comparisonResult = gregorian.compare(startDate!, to: date, toGranularity: .day)
switch comparisonResult {
case .orderedAscending:
print("第一个日期在第二个日期之前")
endDate = date
case .orderedDescending:
print("第一个日期在第二个日期之后")
endDate = startDate
startDate = date
case .orderedSame:
print("两个日期是同一天")
}
} else {
calendar.deselect(startDate!)
calendar.deselect(endDate!)
startDate = date
endDate = nil
YHHUD.flash(message: "选择结束日期")
}
}
func configureVisibleCells() {
for obj in (calendar.visibleCells()) {
let date: Date? = self.calendar.date(for: obj)
let position: FSCalendarMonthPosition = self.calendar.monthPosition(for: obj)
self.configureCell(obj, for: date!, at: position)
}
}
func configureCell(_ cell: FSCalendarCell, for date: Date, at position: FSCalendarMonthPosition) {
let rangeCell = cell as? YHRangeDatePickerCell2
if position != .current {
rangeCell?.middleLayer.isHidden = true
rangeCell?.selectionLayer.isHidden = true
return
}
if (startDate != nil) && (endDate != nil) {
// The date is in the middle of the range
let isMiddle: Bool = date.compare(startDate!) != date.compare(endDate!)
rangeCell?.middleLayer.isHidden = !isMiddle
} else {
rangeCell?.middleLayer.isHidden = true
}
var isSelected = false
let aDate = date
isSelected = (startDate != nil) && (gregorian.isDate(aDate, inSameDayAs: startDate!)) || (endDate != nil) && (gregorian.isDate(aDate, inSameDayAs: endDate!))
rangeCell?.selectionLayer.isHidden = !isSelected
}
}
......@@ -409,17 +409,29 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
self.navigationController?.pushViewController(vc)
case .myOrder:
//我的订单
if let token = YHLoginManager.shared.userModel?.token,token.count > 5 {
var url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/order/my"
url = "?param=" + YHLoginManager.shared.h5Token
printLog("URL: \(url)")
let vc = YHH5WebViewVC()
vc.url = url
vc.isFullScreenFlag = false
vc.navTitle = "我的订单"
vc.isSupportWebviewInterBackFlag = true
UIViewController.current?.navigationController?.pushViewController(vc)
// if let token = YHLoginManager.shared.userModel?.token,token.count > 5 {
// var url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/order/my"
// url = "?param=" + YHLoginManager.shared.h5Token
// printLog("URL: \(url)")
// let vc = YHH5WebViewVC()
// vc.url = url
// vc.isFullScreenFlag = false
// vc.navTitle = "我的订单"
// vc.isSupportWebviewInterBackFlag = true
// UIViewController.current?.navigationController?.pushViewController(vc)
// }
let view = YHRangeDatePickerSheetView2.sheetView()
view.block = {
[weak self] (startDate,endDate) in
guard let self = self else { return }
printLog("开始时间: \(startDate)")
printLog("结束时间: \(endDate)")
}
view.show()
default:
printLog("不需要响应")
}
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 33332539@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 33332539@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
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