Commit c8cd1043 authored by Steven杜宇's avatar Steven杜宇

// 预约

parent d65c5eca
......@@ -464,8 +464,16 @@
04912F6E2CB6A64700CC3105 /* YHResignAppointTipsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F6D2CB6A64700CC3105 /* YHResignAppointTipsView.swift */; };
04912F702CB765FE00CC3105 /* YHResignAppointTimeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F6F2CB765FE00CC3105 /* YHResignAppointTimeViewController.swift */; };
04912F722CB7714300CC3105 /* YHResignAppointTimeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F712CB7714300CC3105 /* YHResignAppointTimeCell.swift */; };
04912F742CB7743900CC3105 /* YHResignAppointTimeItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F732CB7743900CC3105 /* YHResignAppointTimeItemView.swift */; };
04912F742CB7743900CC3105 /* YHResignAppointSelectTimeItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F732CB7743900CC3105 /* YHResignAppointSelectTimeItemView.swift */; };
04912F762CB77F4500CC3105 /* YHResignLeaveHKSwitchItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F752CB77F4500CC3105 /* YHResignLeaveHKSwitchItemView.swift */; };
04912F782CB7A11700CC3105 /* YHResignAppointOptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F772CB7A11700CC3105 /* YHResignAppointOptionCell.swift */; };
04912F7A2CB7A5F400CC3105 /* YHResignAppointApplicantInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F792CB7A5F400CC3105 /* YHResignAppointApplicantInfoCell.swift */; };
04912F7C2CB7A7EE00CC3105 /* YHResignAppointShowTimeItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F7B2CB7A7EE00CC3105 /* YHResignAppointShowTimeItemView.swift */; };
04912F7E2CB7B2BA00CC3105 /* YHResignAppointOptionResultCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F7D2CB7B2BA00CC3105 /* YHResignAppointOptionResultCell.swift */; };
04912F802CB7CC0000CC3105 /* YHResignAppointedScheduleItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F7F2CB7CC0000CC3105 /* YHResignAppointedScheduleItemView.swift */; };
04912F822CB7CFAE00CC3105 /* YHResignAppointedScheduleLineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F812CB7CFAE00CC3105 /* YHResignAppointedScheduleLineView.swift */; };
04912F842CB7D14D00CC3105 /* YHResignAppointedScheduleLineCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F832CB7D14D00CC3105 /* YHResignAppointedScheduleLineCell.swift */; };
04912F862CB7EF6200CC3105 /* YHResignHaveAppointedInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04912F852CB7EF6100CC3105 /* YHResignHaveAppointedInfoCell.swift */; };
0493B3DC2BA7EFE600AF9393 /* YHCertificateSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0493B3DB2BA7EFE600AF9393 /* YHCertificateSearchViewController.swift */; };
0493B3DE2BA80C2300AF9393 /* YHCertificateFilterButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0493B3DD2BA80C2300AF9393 /* YHCertificateFilterButton.swift */; };
049537852BA9B28500AF7E59 /* YHCertificateTemplateCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049537842BA9B28500AF7E59 /* YHCertificateTemplateCell.swift */; };
......@@ -1331,8 +1339,16 @@
04912F6D2CB6A64700CC3105 /* YHResignAppointTipsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointTipsView.swift; sourceTree = "<group>"; };
04912F6F2CB765FE00CC3105 /* YHResignAppointTimeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointTimeViewController.swift; sourceTree = "<group>"; };
04912F712CB7714300CC3105 /* YHResignAppointTimeCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointTimeCell.swift; sourceTree = "<group>"; };
04912F732CB7743900CC3105 /* YHResignAppointTimeItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointTimeItemView.swift; sourceTree = "<group>"; };
04912F732CB7743900CC3105 /* YHResignAppointSelectTimeItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointSelectTimeItemView.swift; sourceTree = "<group>"; };
04912F752CB77F4500CC3105 /* YHResignLeaveHKSwitchItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignLeaveHKSwitchItemView.swift; sourceTree = "<group>"; };
04912F772CB7A11700CC3105 /* YHResignAppointOptionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointOptionCell.swift; sourceTree = "<group>"; };
04912F792CB7A5F400CC3105 /* YHResignAppointApplicantInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointApplicantInfoCell.swift; sourceTree = "<group>"; };
04912F7B2CB7A7EE00CC3105 /* YHResignAppointShowTimeItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointShowTimeItemView.swift; sourceTree = "<group>"; };
04912F7D2CB7B2BA00CC3105 /* YHResignAppointOptionResultCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointOptionResultCell.swift; sourceTree = "<group>"; };
04912F7F2CB7CC0000CC3105 /* YHResignAppointedScheduleItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointedScheduleItemView.swift; sourceTree = "<group>"; };
04912F812CB7CFAE00CC3105 /* YHResignAppointedScheduleLineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointedScheduleLineView.swift; sourceTree = "<group>"; };
04912F832CB7D14D00CC3105 /* YHResignAppointedScheduleLineCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignAppointedScheduleLineCell.swift; sourceTree = "<group>"; };
04912F852CB7EF6100CC3105 /* YHResignHaveAppointedInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignHaveAppointedInfoCell.swift; sourceTree = "<group>"; };
0493B3DB2BA7EFE600AF9393 /* YHCertificateSearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateSearchViewController.swift; sourceTree = "<group>"; };
0493B3DD2BA80C2300AF9393 /* YHCertificateFilterButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateFilterButton.swift; sourceTree = "<group>"; };
049537842BA9B28500AF7E59 /* YHCertificateTemplateCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateTemplateCell.swift; sourceTree = "<group>"; };
......@@ -3387,9 +3403,17 @@
isa = PBXGroup;
children = (
04912F6D2CB6A64700CC3105 /* YHResignAppointTipsView.swift */,
04912F732CB7743900CC3105 /* YHResignAppointTimeItemView.swift */,
04912F732CB7743900CC3105 /* YHResignAppointSelectTimeItemView.swift */,
04912F7B2CB7A7EE00CC3105 /* YHResignAppointShowTimeItemView.swift */,
04912F752CB77F4500CC3105 /* YHResignLeaveHKSwitchItemView.swift */,
04912F7F2CB7CC0000CC3105 /* YHResignAppointedScheduleItemView.swift */,
04912F812CB7CFAE00CC3105 /* YHResignAppointedScheduleLineView.swift */,
04912F712CB7714300CC3105 /* YHResignAppointTimeCell.swift */,
04912F772CB7A11700CC3105 /* YHResignAppointOptionCell.swift */,
04912F792CB7A5F400CC3105 /* YHResignAppointApplicantInfoCell.swift */,
04912F7D2CB7B2BA00CC3105 /* YHResignAppointOptionResultCell.swift */,
04912F832CB7D14D00CC3105 /* YHResignAppointedScheduleLineCell.swift */,
04912F852CB7EF6100CC3105 /* YHResignHaveAppointedInfoCell.swift */,
);
path = V;
sourceTree = "<group>";
......@@ -4941,6 +4965,7 @@
04FB01CE2C23DDBD0040115D /* YHPeopleMatchNoDataView.swift in Sources */,
A5ACE9362B4564F7002C94D2 /* YHNetworkStatusManager.swift in Sources */,
048787D52BCE880B0036E221 /* YHServiceOrderListViewController.swift in Sources */,
04912F802CB7CC0000CC3105 /* YHResignAppointedScheduleItemView.swift in Sources */,
0431F8842C9579F7003B84F4 /* YHResignTemplateSheetView.swift in Sources */,
A5D0012A2BABC84A001F003C /* YHFileListHeaerView.swift in Sources */,
0430E68C2C786257000511E2 /* YHAdopterIncomeViewModel.swift in Sources */,
......@@ -5061,6 +5086,7 @@
044EE24C2C94396E00A2FE3A /* YHResignCertificatePassportTableViewCell.swift in Sources */,
04F2435B2C9D140C00DF2C74 /* YHHKRecordsTitleCell.swift in Sources */,
041892242C91BCF100B9FB94 /* YHResignRoundCellType.swift in Sources */,
04912F7A2CB7A5F400CC3105 /* YHResignAppointApplicantInfoCell.swift in Sources */,
0430E6722C749E74000511E2 /* YHAdopterBirthViewController.swift in Sources */,
048058392C7F289700502CAA /* YHTravelCertificateItemView.swift in Sources */,
045EEE7B2B9F171A0022A143 /* YHPersonInfoCellModel2.swift in Sources */,
......@@ -5086,6 +5112,7 @@
04F243372C958FB100DF2C74 /* YHHKImmigrationRecordsVC.swift in Sources */,
04CE1ADD2C2AD91F001CB80A /* YHActivityDetailCell.swift in Sources */,
04AA19FD2BB40D5C00C1CBBD /* Applegate(JPush).swift in Sources */,
04912F7E2CB7B2BA00CC3105 /* YHResignAppointOptionResultCell.swift in Sources */,
A567E5972BD7643D00D5D5A0 /* YHHomeModel.swift in Sources */,
04AF82D82C291E960028CE2A /* YHMatchUserViewModel.swift in Sources */,
0468D4362B57752F00CFB916 /* YHUserModel.swift in Sources */,
......@@ -5274,6 +5301,7 @@
045EEE9F2B9F171A0022A143 /* YHWorkExperienceModel.swift in Sources */,
A5FF0F3C2C32F2460069852B /* YHActivityDetailCell1.swift in Sources */,
04256E1B2C75C60C00A37BA4 /* YHHKMemberModel.swift in Sources */,
04912F782CB7A11700CC3105 /* YHResignAppointOptionCell.swift in Sources */,
045EEF232B9F171A0022A143 /* YHItemView.swift in Sources */,
04256E192C75BD2700A37BA4 /* YHVisaPaymentViewModel.swift in Sources */,
04754A952B96FF3D00F8ADCA /* UITextField+Extension.swift in Sources */,
......@@ -5420,7 +5448,7 @@
A567E5AF2BD7643D00D5D5A0 /* YHHomeWebViewBottomForSavePicView.swift in Sources */,
045A7E672C2ACB1A008F995B /* YHLoginOneLeadView.swift in Sources */,
048787D72BCE96F50036E221 /* YHServiceOrderProgressTableViewCell.swift in Sources */,
04912F742CB7743900CC3105 /* YHResignAppointTimeItemView.swift in Sources */,
04912F742CB7743900CC3105 /* YHResignAppointSelectTimeItemView.swift in Sources */,
047AA3F82C5CC7B0009C4554 /* YHShareStepView.swift in Sources */,
04AD31792C23FFC700DF5655 /* YHInterestModel.swift in Sources */,
04256DD22C704A3000A37BA4 /* YHIFamilyInfoListCell.swift in Sources */,
......@@ -5493,6 +5521,7 @@
0435FA7F2BA178C100024EAE /* YHCommonAlertView.swift in Sources */,
A5ACE9382B4564F7002C94D2 /* UIApplication+Extension.swift in Sources */,
0468D42B2B55019900CFB916 /* YHAnalytics.swift in Sources */,
04912F842CB7D14D00CC3105 /* YHResignAppointedScheduleLineCell.swift in Sources */,
0445E6B12BE9E15C003C52F9 /* YHFindAppNewVersionView.swift in Sources */,
045EEEBE2B9F171A0022A143 /* YHResultBottomView.swift in Sources */,
045EEEEB2B9F171A0022A143 /* YHTest.swift in Sources */,
......@@ -5549,6 +5578,7 @@
04256DFA2C742A1500A37BA4 /* YHFamilyGroupModel.swift in Sources */,
045EEF162B9F171A0022A143 /* YHMainApplicantInformationViewController.swift in Sources */,
0449EEF32C903A4100A397FD /* YHMaterialListModel.swift in Sources */,
04912F7C2CB7A7EE00CC3105 /* YHResignAppointShowTimeItemView.swift in Sources */,
048097712BA18D66000B9DCA /* YHCertificateSearchBar.swift in Sources */,
04F243432C9BB3F800DF2C74 /* YHHKRecordsHeaderCell.swift in Sources */,
04256E172C75BD2700A37BA4 /* YHVisaPaymentTipsCell.swift in Sources */,
......@@ -5605,6 +5635,7 @@
A517A4E12BB573EB000DEECD /* YHDocListCell.swift in Sources */,
A58037212BAD7B2A0031C312 /* YHMySchemeModel.swift in Sources */,
0493B3DE2BA80C2300AF9393 /* YHCertificateFilterButton.swift in Sources */,
04912F862CB7EF6200CC3105 /* YHResignHaveAppointedInfoCell.swift in Sources */,
04F2435D2C9D153C00DF2C74 /* YHHKRecordsTimeSelectCell.swift in Sources */,
0430E6902C7EC78C000511E2 /* YHCardUploadView.swift in Sources */,
04FA8B2B2C06F59D00ABE43F /* YHAppleLoginManager.swift in Sources */,
......@@ -5632,6 +5663,7 @@
044CF8D62BBA57DC00008CE8 /* YHFailPromptView.swift in Sources */,
04506F552C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift in Sources */,
044EE23E2C92E27500A2FE3A /* YHResignCertificateDetailViewController.swift in Sources */,
04912F822CB7CFAE00CC3105 /* YHResignAppointedScheduleLineView.swift in Sources */,
04256E102C75BD2700A37BA4 /* YHVisaPaymentVC.swift in Sources */,
A5ACE9562B4564F7002C94D2 /* YHBouncesContentView.swift in Sources */,
A554A5122B99715000EA5973 /* YHConstantArrayData.swift in Sources */,
......
......@@ -12,7 +12,7 @@ import SwifterSwift
class YHResignAppointTimeViewController: YHBaseViewController {
var familyArr: [String] = ["", "", "", ""]
var familyArr: [String] = ["", "", "", "", ""]
lazy var tableView: UITableView = {
let tableView = UITableView(frame: CGRect.zero, style:.grouped)
......@@ -27,6 +27,10 @@ class YHResignAppointTimeViewController: YHBaseViewController {
tableView.separatorStyle = .none
tableView.bounces = false
tableView.register(YHResignAppointTimeCell.self, forCellReuseIdentifier: YHResignAppointTimeCell.cellReuseIdentifier)
tableView.register(YHResignAppointOptionCell.self, forCellReuseIdentifier: YHResignAppointOptionCell.cellReuseIdentifier)
tableView.register(YHResignAppointApplicantInfoCell.self, forCellReuseIdentifier: YHResignAppointApplicantInfoCell.cellReuseIdentifier)
tableView.register(YHResignAppointOptionResultCell.self, forCellReuseIdentifier: YHResignAppointOptionResultCell.cellReuseIdentifier)
tableView.register(YHResignHaveAppointedInfoCell.self, forCellReuseIdentifier: YHResignHaveAppointedInfoCell.cellReuseIdentifier)
tableView.delegate = self
tableView.dataSource = self
return tableView
......@@ -106,12 +110,31 @@ extension YHResignAppointTimeViewController: UITableViewDelegate, UITableViewDat
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: YHResignAppointTimeCell.cellReuseIdentifier, for: indexPath) as! YHResignAppointTimeCell
let cell2 = tableView.dequeueReusableCell(withIdentifier: YHResignAppointTimeCell.cellReuseIdentifier, for: indexPath) as! YHResignAppointTimeCell
if 0 <= indexPath.row && indexPath.row < familyArr.count {
if indexPath.row == 0 {
let cell1 = tableView.dequeueReusableCell(withIdentifier: YHResignAppointOptionResultCell.cellReuseIdentifier, for: indexPath) as! YHResignAppointOptionResultCell
return cell1
}
if indexPath.row == 1 {
let cell1 = tableView.dequeueReusableCell(withIdentifier: YHResignAppointOptionCell.cellReuseIdentifier, for: indexPath) as! YHResignAppointOptionCell
return cell1
}
if indexPath.row == 2 {
let cell1 = tableView.dequeueReusableCell(withIdentifier: YHResignAppointApplicantInfoCell.cellReuseIdentifier, for: indexPath) as! YHResignAppointApplicantInfoCell
return cell1
}
if indexPath.row == 3 {
let cell1 = tableView.dequeueReusableCell(withIdentifier: YHResignHaveAppointedInfoCell.cellReuseIdentifier, for: indexPath) as! YHResignHaveAppointedInfoCell
return cell1
}
}
return cell
return cell2
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
......
//
// YHResignAppointApplicantInfoCell.swift
// galaxy
//
// Created by edy on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import AttributedString
class YHResignAppointApplicantInfoCell: UITableViewCell {
static let cellReuseIdentifier = "YHResignAppointApplicantInfoCell"
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
return view
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_M(ofSize: 17)
label.textColor = .mainTextColor
label.text = "第一批赴港递交信息"
return label
}()
lazy var applicantTitleLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 14)
label.textColor = .mainTextColor
label.text = "赴港递交申请人"
return label
}()
lazy var applicantContentView: UIView = {
let view = UIView()
view.backgroundColor = .init(hex: 0xF8F9FB)
return view
}()
lazy var applicantNamesLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_M(ofSize: 14)
label.textColor = .mainTextColor
label.text = "成员:侯林、张曼玉、刘德华"
return label
}()
lazy var submitTimeView: YHResignAppointShowTimeItemView = {
let view = YHResignAppointShowTimeItemView()
view.title = "预约在港递交时间"
view.detail = "2024-03-14 15:00"
return view
}()
lazy var leaveHKTimeView: YHResignAppointShowTimeItemView = {
let view = YHResignAppointShowTimeItemView()
view.title = "预计离港时间"
view.detail = "2024-03-14 21:00"
return view
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
self.selectionStyle = .none
self.backgroundColor = .clear
self.contentView.backgroundColor = .clear
contentView.addSubview(whiteContentView)
whiteContentView.addSubview(titleLabel)
whiteContentView.addSubview(lineView)
whiteContentView.addSubview(applicantTitleLabel)
whiteContentView.addSubview(applicantContentView)
applicantContentView.addSubview(applicantNamesLabel)
whiteContentView.addSubview(submitTimeView)
whiteContentView.addSubview(leaveHKTimeView)
whiteContentView.snp.makeConstraints { make in
make.left.right.top.equalToSuperview()
make.bottom.equalTo(-16)
}
titleLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(18)
make.height.equalTo(24)
}
lineView.snp.makeConstraints { make in
make.left.equalTo(0)
make.right.equalTo(0)
make.top.equalTo(titleLabel.snp.bottom).offset(12)
make.height.equalTo(0.5)
}
applicantTitleLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(lineView.snp.bottom).offset(16)
make.height.equalTo(20)
}
applicantContentView.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(applicantTitleLabel.snp.bottom).offset(12)
}
applicantNamesLabel.snp.makeConstraints { make in
make.left.equalTo(14)
make.right.equalTo(-14)
make.top.equalTo(12)
make.bottom.equalTo(-12)
}
submitTimeView.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(applicantContentView.snp.bottom).offset(16)
}
leaveHKTimeView.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(submitTimeView.snp.bottom).offset(0)
make.bottom.equalTo(0)
}
}
}
//
// YHResignAppointOptionCell.swift
// galaxy
//
// Created by edy on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import AttributedString
class YHResignAppointOptionCell: UITableViewCell {
static let cellReuseIdentifier = "YHResignAppointOptionCell"
// 选择是否赴港
var isSelectGoHK:Bool? {
didSet {
var selectIndex = -1 // 是否都未选择
if let isGoHK = isSelectGoHK {
selectIndex = isGoHK ? 0 : 1
}
optionsView.selectIndex = selectIndex
}
}
var selectBlock:((Int)->())?
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
return view
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
let a: ASAttributedString = .init("*", .font(UIFont.PFSC_M(ofSize: 17)),.foreground(UIColor.failColor))
let b: ASAttributedString = .init("在港递交", .font(UIFont.PFSC_M(ofSize: 17)),.foreground(UIColor.mainTextColor))
label.attributed.text = a+b
return label
}()
lazy var detailLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
let a: ASAttributedString = .init("备注:若有可重合递交时间,非特殊情况,建议一起在港递交!", .font(UIFont.PFSC_R(ofSize: 13)),.foreground(UIColor.init(hex: 0x94A3B8)))
label.attributed.text = a
return label
}()
lazy var optionsView: YHInfoItemOptionView = {
let view = YHInfoItemOptionView(frame: .zero)
view.title = "申请人是否一起在港递交"
view.options = ["是", "否"]
view.selectIndex = -1
view.selectBlock = {
[weak self] index in
guard let self = self else { return }
}
return view
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
self.selectionStyle = .none
self.backgroundColor = .clear
self.contentView.backgroundColor = .clear
contentView.addSubview(whiteContentView)
whiteContentView.addSubview(titleLabel)
whiteContentView.addSubview(lineView)
whiteContentView.addSubview(detailLabel)
whiteContentView.addSubview(optionsView)
whiteContentView.snp.makeConstraints { make in
make.top.equalTo(0)
make.left.equalTo(0)
make.right.equalTo(0)
make.bottom.equalTo(-16)
}
titleLabel.snp.makeConstraints { make in
make.top.equalTo(16)
make.left.equalTo(18)
make.right.equalTo(-18)
}
lineView.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(12)
make.left.right.equalToSuperview()
make.height.equalTo(0.5)
}
detailLabel.snp.makeConstraints { make in
make.top.equalTo(lineView.snp.bottom).offset(16)
make.left.equalTo(18)
make.right.equalTo(-18)
}
optionsView.snp.makeConstraints { make in
make.top.equalTo(detailLabel.snp.bottom).offset(10)
make.left.equalTo(18)
make.right.equalTo(-18)
make.bottom.equalTo(-8)
}
}
}
//
// YHResignAppointOptionResultCell.swift
// galaxy
//
// Created by edy on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHResignAppointOptionResultCell: UITableViewCell {
static let cellReuseIdentifier = "YHResignAppointOptionResultCell"
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
return view
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_M(ofSize: 17)
label.textColor = .mainTextColor
label.text = "在港递交"
return label
}()
lazy var detailLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 14)
label.textColor = .mainTextColor(alpha: 0.5)
label.text = "申请人是否一起在港递交"
return label
}()
lazy var optionLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 14)
label.textColor = .mainTextColor
label.textAlignment = .right
label.text = "否"
return label
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
self.selectionStyle = .none
self.backgroundColor = .clear
self.contentView.backgroundColor = .clear
contentView.addSubview(whiteContentView)
whiteContentView.addSubview(titleLabel)
whiteContentView.addSubview(lineView)
whiteContentView.addSubview(detailLabel)
whiteContentView.addSubview(optionLabel)
whiteContentView.snp.makeConstraints { make in
make.top.equalTo(0)
make.left.equalTo(0)
make.right.equalTo(0)
make.bottom.equalTo(-16)
}
titleLabel.snp.makeConstraints { make in
make.top.equalTo(16)
make.left.equalTo(18)
make.right.equalTo(-18)
}
lineView.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(12)
make.left.right.equalToSuperview()
make.height.equalTo(0.5)
}
detailLabel.snp.makeConstraints { make in
make.top.equalTo(lineView.snp.bottom).offset(16)
make.left.equalTo(18)
make.right.equalTo(optionLabel.snp.left).offset(-18)
make.bottom.equalTo(-18)
}
optionLabel.snp.makeConstraints { make in
make.top.equalTo(detailLabel)
make.right.equalTo(-18)
make.width.equalTo(15)
make.height.equalTo(20)
}
}
}
//
// YHResignAppointShowTimeItemView.swift
// galaxy
//
// Created by edy on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHResignAppointShowTimeItemView: UIView {
var title: String = "" {
didSet {
titleLabel.text = title
}
}
var detail: String = "" {
didSet {
detailLabel.text = detail
}
}
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 14)
label.textColor = .mainTextColor(alpha: 0.5)
return label
}()
private lazy var detailLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_M(ofSize: 14)
label.textColor = .mainTextColor
label.textAlignment = .right
label.text = "0000-00-00 00:00"
return label
}()
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func createUI() {
self.addSubview(titleLabel)
self.addSubview(detailLabel)
self.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.left.equalTo(0)
make.right.equalTo(0)
make.top.equalTo(0)
make.height.equalTo(0.5)
}
titleLabel.snp.makeConstraints { make in
make.left.equalTo(0)
make.top.equalTo(16)
make.width.equalTo(112)
}
detailLabel.snp.makeConstraints { make in
make.top.equalTo(16)
make.left.equalTo(titleLabel.snp.right).offset(18.0)
make.right.equalTo(0)
make.bottom.equalTo(-16)
}
}
}
......@@ -29,8 +29,8 @@ class YHResignAppointTimeCell: UITableViewCell {
return titleLabel
}()
lazy var submitTimeItemView: YHResignAppointTimeItemView = {
let view = YHResignAppointTimeItemView(frame: .zero)
lazy var submitTimeItemView: YHResignAppointSelectTimeItemView = {
let view = YHResignAppointSelectTimeItemView(frame: .zero)
view.title = "预约在港递交时间"
view.placeHolder = "请选择"
view.isNeedShowErrorTips = false
......@@ -44,8 +44,8 @@ class YHResignAppointTimeCell: UITableViewCell {
return view
}()
lazy var leaveTimeItemView: YHResignAppointTimeItemView = {
let view = YHResignAppointTimeItemView(frame: .zero)
lazy var leaveTimeItemView: YHResignAppointSelectTimeItemView = {
let view = YHResignAppointSelectTimeItemView(frame: .zero)
view.title = "预计离港时间"
view.placeHolder = "请选择"
view.errorTips = "请选择离港时间"
......
//
// YHResignAppointedScheduleItemView.swift
// galaxy
//
// Created by edy on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHResignAppointedScheduleItemView: UIView {
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var markView:UIView = {
let view = UIView()
view.backgroundColor = .brandMainColor
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_M(ofSize: 15)
label.textColor = .mainTextColor
label.text = "第X批"
return label
}()
lazy var confirmInHKLabel: UILabel = {
let label = UILabel()
label.text = "已确认在港"
label.font = UIFont.PFSC_M(ofSize: 13)
label.textColor = .init(hex: 0x3CC694)
return label
}()
lazy var confirmInHKBtn: UIButton = {
let btn = UIButton()
btn.layer.cornerRadius = 2.0
btn.backgroundColor = .brandMainColor
btn.setTitleColor(.white, for: .normal)
btn.setTitle("确认在港", for: .normal)
btn.titleLabel?.font = .PFSC_M(ofSize: 11)
return btn
}()
lazy var applicantNamesLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_M(ofSize: 14)
label.textColor = .mainTextColor
label.text = "申请人:"
return label
}()
lazy var submitTimeLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = .mainTextColor(alpha: 0.5)
label.text = "预约递交时间: 0000-00-00 00:00"
return label
}()
lazy var confirmHKTimeLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = .mainTextColor(alpha: 0.5)
label.text = "确认在港时间: 0000-00-00 00:00"
return label
}()
lazy var scheduleView: YHResignAppointedScheduleLineView = {
let view = YHResignAppointedScheduleLineView(frame: .zero)
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func createUI() {
self.addSubview(lineView)
self.addSubview(markView)
self.addSubview(titleLabel)
self.addSubview(confirmInHKBtn)
self.addSubview(confirmHKTimeLabel)
self.addSubview(applicantNamesLabel)
self.addSubview(submitTimeLabel)
self.addSubview(confirmHKTimeLabel)
self.addSubview(scheduleView)
lineView.snp.makeConstraints { make in
make.left.right.top.equalToSuperview()
make.height.equalTo(0.5)
}
markView.snp.makeConstraints { make in
make.width.equalTo(3)
make.height.equalTo(12)
make.left.equalTo(18)
make.centerY.equalTo(titleLabel)
}
titleLabel.snp.makeConstraints { make in
make.left.equalTo(markView.snp.right).offset(8)
make.height.equalTo(22)
make.top.equalTo(18)
}
confirmInHKBtn.snp.makeConstraints { make in
make.right.equalTo(-18)
make.width.equalTo(68)
make.height.equalTo(28)
make.centerY.equalTo(titleLabel)
}
applicantNamesLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(titleLabel.snp.bottom).offset(16)
}
submitTimeLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(applicantNamesLabel.snp.bottom).offset(8)
}
confirmHKTimeLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(submitTimeLabel.snp.bottom).offset(8)
}
scheduleView.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(confirmHKTimeLabel.snp.bottom).offset(18)
make.height.equalTo(84.0)
make.bottom.equalTo(-18)
}
}
}
//
// YHResignAppointedScheduleLineCell.swift
// galaxy
//
// Created by edy on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHResignAppointedScheduleLineCell: UICollectionViewCell {
static let cellReuseIdentifier = "YHResignAppointedScheduleLineCell"
lazy var numLabel: UILabel = {
var label = UILabel()
label.font = UIFont(name: "DINAlternate-Bold", size: 11)!
label.textAlignment = .center
label.textColor = UIColor.mainTextColor(alpha: 0.7)
label.backgroundColor = .white
label.layer.cornerRadius = 17.0/2.0
label.clipsToBounds = true
return label
}()
lazy var titleLabel: UILabel = {
var label = UILabel()
label.font = .PFSC_R(ofSize: 12)
label.textAlignment = .left
label.textColor = UIColor.mainTextColor
return label
}()
lazy var timeLabel: UILabel = {
var label = UILabel()
label.font = .PFSC_R(ofSize: 12)
label.textAlignment = .left
label.textColor = UIColor.mainTextColor
return label
}()
lazy var leftDotView: UIView = {
let view = UIView()
return view
}()
lazy var rightDotView: UIView = {
let view = UIView()
return view
}()
lazy var leftDotLayer: CAShapeLayer = {
let layer = self.createDotLine(frame: leftDotView.bounds)
return layer
}()
lazy var rightDotLayer: CAShapeLayer = {
let layer = self.createDotLine(frame: leftDotView.bounds)
return layer
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
func setupUI() {
contentView.addSubview(numLabel)
contentView.addSubview(titleLabel)
contentView.addSubview(timeLabel)
contentView.addSubview(leftDotView)
contentView.addSubview(rightDotView)
numLabel.snp.makeConstraints { make in
make.width.height.equalTo(17)
make.top.equalTo(16)
make.centerX.equalToSuperview()
}
titleLabel.snp.makeConstraints { make in
make.top.equalTo(numLabel.snp.bottom).offset(6)
make.centerX.equalToSuperview()
make.height.equalTo(15)
}
timeLabel.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(1)
make.height.equalTo(15)
make.centerX.equalToSuperview()
}
leftDotView.snp.makeConstraints { make in
make.left.equalTo(0)
make.right.equalTo(numLabel.snp.left).offset(-8)
make.centerY.equalTo(numLabel)
make.height.equalTo(0.8)
}
rightDotView.snp.makeConstraints { make in
make.right.equalTo(0)
make.left.equalTo(numLabel.snp.right).offset(8)
make.centerY.equalTo(numLabel)
make.height.equalTo(0.8)
}
}
func updateModel(_ model: YHScheduleLineStepModel) {
numLabel.text = "\(model.index)"
titleLabel.text = model.title
timeLabel.text = model.time
leftDotLayer.removeFromSuperlayer()
rightDotLayer.removeFromSuperlayer()
leftDotLayer = createDotLine(frame: leftDotView.bounds)
rightDotLayer = createDotLine(frame: rightDotView.bounds)
leftDotView.layer.addSublayer(leftDotLayer)
rightDotView.layer.addSublayer(rightDotLayer)
}
func createDotLine(frame:CGRect) -> CAShapeLayer {
let borderLayer = CAShapeLayer()
borderLayer.path = UIBezierPath(roundedRect: frame, cornerRadius: 0.0).cgPath
borderLayer.lineWidth = 0.8
//[数组第一个数字表示单个虚线长度,第二个数字表示间隔]
borderLayer.lineDashPattern = [3,3] as [NSNumber]?
//前边是虚线的长度,后边是虚线之间空隙的长度
borderLayer.lineDashPhase = 0.1
//实线边框
borderLayer.fillColor = UIColor.clear.cgColor
borderLayer.strokeColor = UIColor.init(hex: 0x121A26, alpha: 0.12).cgColor
return borderLayer
}
}
//
// YHResignAppointedScheduleLineView.swift
// galaxy
//
// Created by edy on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHScheduleLineStepModel {
var index: Int = 0
var title: String = ""
var time: String = ""
init(title: String, time: String) {
self.title = title
self.time = time
}
}
class YHResignAppointedScheduleLineView: UIView {
var steps:[YHScheduleLineStepModel] = {
let model1 = YHScheduleLineStepModel(title: "入境香港准备", time: "")
let model2 = YHScheduleLineStepModel(title: "已确认在港", time: "2024-03-14")
let model3 = YHScheduleLineStepModel(title: "银河递交续签资料", time: "2024-03-14")
let model4 = YHScheduleLineStepModel(title: "查看递交回执", time: "2024-03-14")
let model5 = YHScheduleLineStepModel(title: "在港等待获批/离港", time: "")
let model6 = YHScheduleLineStepModel(title: "在港等缴费领取新签证", time: "")
let model7 = YHScheduleLineStepModel(title: "更新续签旅行证件", time: "")
return [model1, model2, model3, model4, model5, model6, model7]
}()
lazy var collectView: UICollectionView = {
// 设置布局方向
let flowLayout = UICollectionViewFlowLayout()
flowLayout.minimumInteritemSpacing = 0.0
flowLayout.minimumLineSpacing = 0.0
flowLayout.scrollDirection = .horizontal
let collectinoView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout)
collectinoView.backgroundColor = .init(hex: 0xF8F9FB)
collectinoView.register(YHResignAppointedScheduleLineCell.self, forCellWithReuseIdentifier:YHResignAppointedScheduleLineCell.cellReuseIdentifier)
collectinoView.delegate = self
collectinoView.dataSource = self
collectinoView.bounces = false
collectinoView.showsHorizontalScrollIndicator = false
return collectinoView
}()
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
func createUI() {
self.addSubview(collectView)
collectView.reloadData()
collectView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
}
}
extension YHResignAppointedScheduleLineView: UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
// 返回单元格数量
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return steps.count
}
// 返回每个单元格的大小
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if 0 <= indexPath.item && indexPath.item < steps.count {
let model = steps[indexPath.item]
let size = self.getwith(font: UIFont.PFSC_R(ofSize: 11), height: 15, string: model.title)
var width = ceil(Double(size.width))
if width < 65.0 {
width = 65.0
}
width += 9.0*2
return CGSize(width: width, height: 84.0)
}
return .zero
}
// 返回自定义单元格
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHResignAppointedScheduleLineCell.cellReuseIdentifier, for: indexPath) as! YHResignAppointedScheduleLineCell
if 0 <= indexPath.item && indexPath.item < steps.count {
let model = steps[indexPath.item]
model.index = indexPath.item+1
cell.updateModel(model)
}
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if 0 <= indexPath.item && indexPath.item < steps.count {
let model = steps[indexPath.item]
}
}
// 计算文字宽度大小
func getwith(font: UIFont, height: CGFloat, string: String) -> CGSize {
let size = CGSize.init(width: CGFloat(MAXFLOAT), height: height)
let dic = [NSAttributedString.Key.font: font] // swift 4.2
let strSize = string.boundingRect(with: size, options: [.usesLineFragmentOrigin], attributes: dic, context:nil).size
return CGSizeMake(ceil(strSize.width), strSize.height)
}
}
//
// YHResignHaveAppointedInfoCellTableViewCell.swift
// galaxy
//
// Created by edy on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHResignHaveAppointedInfoCell: UITableViewCell {
static let cellReuseIdentifier = "YHResignHaveAppointedInfoCell"
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_M(ofSize: 17)
label.textColor = .mainTextColor
label.text = "赴港递交已预约"
return label
}()
lazy var modifyBtn: UIButton = {
let btn = UIButton()
btn.setTitle("修改", for: .normal)
btn.setTitleColor(.brandMainColor, for: .normal)
btn.titleLabel?.font = .PFSC_M(ofSize: 14)
return btn
}()
lazy var batchView: UIView = {
let view = UIView()
return view
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
self.selectionStyle = .none
self.backgroundColor = .clear
self.contentView.backgroundColor = .clear
contentView.addSubview(whiteContentView)
whiteContentView.addSubview(titleLabel)
whiteContentView.addSubview(modifyBtn)
whiteContentView.addSubview(batchView)
whiteContentView.snp.makeConstraints { make in
make.top.equalTo(0)
make.left.equalTo(0)
make.right.equalTo(0)
make.bottom.equalTo(-16)
}
titleLabel.snp.makeConstraints { make in
make.top.equalTo(16)
make.left.equalTo(18)
make.right.equalTo(-18)
make.height.equalTo(24)
}
modifyBtn.snp.makeConstraints { make in
make.width.equalTo(28)
make.height.equalTo(24)
make.right.equalTo(-18)
make.centerY.equalTo(titleLabel)
}
batchView.snp.makeConstraints { make in
make.left.equalTo(0)
make.right.equalTo(0)
make.bottom.equalTo(0)
make.top.equalTo(titleLabel.snp.bottom).offset(12)
}
updateUI()
}
func updateUI() {
let arr = ["", ""]
batchView.removeSubviews()
var lastView: YHResignAppointedScheduleItemView? = nil
for (index, model) in arr.enumerated() {
let itemView = YHResignAppointedScheduleItemView(frame: .zero)
batchView.addSubview(itemView)
itemView.snp.makeConstraints { make in
make.left.equalTo(0)
make.right.equalTo(0)
if index == 0 {
make.top.equalTo(0)
} else {
if let lastView = lastView {
make.top.equalTo(lastView.snp.bottom)
}
}
if index == arr.count - 1 {
make.bottom.equalTo(0)
}
lastView = itemView
}
}
}
}
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