Commit 02b8cd4a authored by David黄金龙's avatar David黄金龙

Merge branch 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into develop

* 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS:
  //  赴港
  //  赴港
parents 60cb263b 32826ff1
......@@ -19,8 +19,9 @@ class YHCertificateAppointViewController: YHBaseViewController {
// 只装抢号中、已抢号
var items3: [YHAppointItem] = []
// 需要继续预约人员
var waitList: [YHAppointMemberGroupModel] = []
// 预约成功人员
var successList: [YHAppointMemberGroupModel] = []
// 无需预约办证人员
......@@ -61,6 +62,31 @@ class YHCertificateAppointViewController: YHBaseViewController {
return tableView
}()
lazy var bottomBtn: UIButton = {
let btn = UIButton()
btn.backgroundColor = .brandMainColor
btn.setTitle("确认提交", for: .normal)
btn.setTitleColor(.white, for: .normal)
btn.titleLabel?.font = UIFont.PFSC_M(ofSize: 16)
btn.addTarget(self, action: #selector(didBottomBtnClicked), for: .touchUpInside)
btn.layer.cornerRadius = kCornerRadius3
return btn
}()
lazy var bottomView: UIView = {
let view = UIView()
view.isHidden = true
view.backgroundColor = .white
view.addSubview(bottomBtn)
bottomBtn.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.top.equalTo(8)
make.height.equalTo(48)
}
return view
}()
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if !viewModel.isHKHolidaysOKFlag {
......@@ -82,11 +108,18 @@ class YHCertificateAppointViewController: YHBaseViewController {
self.gk_navTitle = "赴港办证预约"
self.view.backgroundColor = .white
self.view.addSubview(self.tableView)
self.view.addSubview(bottomView)
self.tableView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.left.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalTo(bottomView.snp.top)
}
self.bottomView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(98)
}
requetHKPlaceList()
requestData()
}
......@@ -192,6 +225,7 @@ class YHCertificateAppointViewController: YHBaseViewController {
}
func refreshData() {
sections.removeAll()
if items1.count > 0 {
......@@ -205,8 +239,27 @@ class YHCertificateAppointViewController: YHBaseViewController {
if items3.count > 0 {
sections.append(items3)
}
self.tableView.reloadData()
// 底部按钮更新
var isBottomViewHidden = true
var isNeedToPay = false // YES 展示确认提交 NO展示下一步去缴费
if self.reservationToHK == 0 { // 没有预约人员
if self.isNeedGoHK == 1 { // 要赴港办证
isBottomViewHidden = false
isNeedToPay = false
}
} else { // 有预约过
if waitList.count <= 0 { // 全部都预约完了
isBottomViewHidden = true
isNeedToPay = true
}
}
bottomView.isHidden = isBottomViewHidden
if !isBottomViewHidden {
let titleStr = isNeedToPay ? "下一步, 去缴费" : "确认提交"
bottomBtn.setTitle(titleStr, for: .normal)
}
}
}
......@@ -312,6 +365,11 @@ extension YHCertificateAppointViewController: UITableViewDelegate, UITableViewDa
let cell = tableView.dequeueReusableCell(withIdentifier: YHSelectApplicantGroupCell.cellReuseIdentifier, for: indexPath) as! YHSelectApplicantGroupCell
cell.dataModel = arr[indexPath.row]
cell.isShowSelectUserView = !self.isAllMembersGo
cell.refreshBlock = {
[weak self] in
guard let self = self else { return }
self.tableView.reloadData()
}
cell.selectBlock = {
[weak self] member, isSelect, groupIndex in
guard let self = self else { return }
......@@ -606,7 +664,55 @@ extension YHCertificateAppointViewController {
}
}
}
// 重新进行批次排号
for (index, group) in items2.enumerated() {
group.itemIndex = index
}
refreshData()
}
}
extension YHCertificateAppointViewController {
@objc func didBottomBtnClicked() {
if self.isAllMembersGo { // 选择统一赴港
return
}
// 选择非统一赴港
var isOK = true
for item in self.items2 {
if let groupModel = item.model {
if groupModel.dateTye == 0 { // 选择具体日期
if groupModel.detailDateStr.isEmpty {
groupModel.isNeedCheck = true
isOK = false
}
} else { // 选择具体时段
if groupModel.startDateStr.isEmpty || groupModel.endDateStr.isEmpty {
groupModel.isNeedCheck = true
isOK = false
}
}
// 办证地点未选
if groupModel.hkPlace.id <= 0 {
groupModel.isNeedCheck = true
isOK = false
}
}
}
if !isOK { // 有日期或办证地点未选择
self.tableView.reloadData()
return
}
}
}
......@@ -62,4 +62,7 @@ class YHSelectGroupMemberModel {
//办证地点
var hkPlace : YHMakeCertificatePlaceModel = YHMakeCertificatePlaceModel()
// 需要检测日期和办证地点是否选择
var isNeedCheck = false
}
......@@ -22,6 +22,29 @@ class YHInfoItemSelectSheetView: UIView {
var placeHolder: String = ""
var errorTips: String = "" {
didSet {
errorLabel.text = errorTips
}
}
var isNeedShowErrorTips: Bool = false {
didSet {
errorLabel.isHidden = !isNeedShowErrorTips
errorLabel.snp.remakeConstraints { make in
make.top.equalTo(detailLabel.snp.bottom).offset(isNeedShowErrorTips ? 5 : 0)
make.left.equalTo(titleLabel)
make.right.equalTo(0)
make.bottom.equalTo(-16)
if !isNeedShowErrorTips {
make.height.equalTo(0)
}
}
self.setNeedsLayout()
self.layoutIfNeeded()
}
}
var detail: String = "" {
didSet {
......@@ -40,17 +63,24 @@ class YHInfoItemSelectSheetView: UIView {
var isShowDetailOneline:Bool = false {
didSet {
// detailLabel.textAlignment = isShowDetailOneline ? .right : .left
detailLabel.textAlignment = isShowDetailOneline ? .right : .left
detailLabel.numberOfLines = isShowDetailOneline ? 1 : 0
detailLabel.snp.remakeConstraints { make in
make.top.equalTo(16)
make.left.equalTo(titleLabel.snp.right)
make.left.equalTo(titleLabel.snp.right).offset(isShowDetailOneline ? -10 : 0)
make.right.equalTo(arrowImgView.snp.left)
make.bottom.equalTo(-16)
if isShowDetailOneline {
make.height.equalTo(20)
}
}
errorLabel.snp.remakeConstraints { make in
make.top.equalTo(detailLabel.snp.bottom).offset(0)
make.left.equalTo(titleLabel)
make.right.equalTo(0)
make.bottom.equalTo(-16)
}
self.setNeedsLayout()
self.layoutIfNeeded()
}
......@@ -78,6 +108,14 @@ class YHInfoItemSelectSheetView: UIView {
return label
}()
private lazy var errorLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = .failColor
return label
}()
lazy var arrowImgView: UIImageView = {
let view = UIImageView(image: UIImage(named: "family_info_arrow"))
return view
......@@ -101,6 +139,7 @@ class YHInfoItemSelectSheetView: UIView {
self.addSubview(detailLabel)
self.addSubview(arrowImgView)
self.addSubview(lineView)
self.addSubview(errorLabel)
let tap = UITapGestureRecognizer(target: self, action: #selector(didSelectView))
self.addGestureRecognizer(tap)
......@@ -122,6 +161,12 @@ class YHInfoItemSelectSheetView: UIView {
make.top.equalTo(16)
make.left.equalTo(titleLabel.snp.right)
make.right.equalTo(arrowImgView.snp.left)
}
errorLabel.snp.makeConstraints { make in
make.top.equalTo(detailLabel.snp.bottom).offset(0)
make.left.equalTo(titleLabel)
make.right.equalTo(0)
make.bottom.equalTo(-16)
}
......
......@@ -14,6 +14,8 @@ class YHSelectApplicantGroupCell: UITableViewCell {
static let cellReuseIdentifier = "YHSelectApplicantGroupCell"
var detailText = "选择第一批赴港激活签证的申请人"
var refreshBlock:(()->())?
var dataModel : YHAppointItem? {
didSet {
updateUI()
......@@ -120,7 +122,7 @@ class YHSelectApplicantGroupCell: UITableViewCell {
guard let self = self else { return }
if let model = dataModel?.model {
model.dateTye = index
self.updateUI()
refreshBlock?()
}
}
return view
......@@ -132,6 +134,8 @@ class YHSelectApplicantGroupCell: UITableViewCell {
view.title = "具体日期"
view.placeHolder = "请选择具体日期"
view.detail = ""
view.isNeedShowErrorTips = false
view.errorTips = "请选择具体日期"
view.clickBlock = {
[weak self] in
guard let self = self else { return }
......@@ -151,6 +155,8 @@ class YHSelectApplicantGroupCell: UITableViewCell {
let view = YHInfoItemSelectSheetView(frame: .zero)
view.title = "港府办证地点"
view.placeHolder = "请选择"
view.errorTips = "请选择港府办证地点"
view.isNeedShowErrorTips = false
view.detail = ""
view.clickBlock = {
[weak self] in
......@@ -164,7 +170,7 @@ class YHSelectApplicantGroupCell: UITableViewCell {
view.detail = selectPlace.name
if let model = dataModel?.model {
model.hkPlace = selectPlace
self.updateUI()
refreshBlock?()
}
}
listView.show()
......@@ -310,36 +316,55 @@ private extension YHSelectApplicantGroupCell {
guard let model = dataModel else {
return
}
let a: ASAttributedString = .init("*", .font(UIFont.PFSC_M(ofSize: 17)),.foreground(UIColor.failColor))
let b: ASAttributedString = .init("请您确认第\(model.itemIndex + 1)批赴港信息", .font(UIFont.PFSC_M(ofSize: 17)),.foreground(UIColor.mainTextColor))
titleLabel.attributed.text = a+b
collectionView.reloadData()
let isShowSelectList = self.isShowSelectUserView
self.isShowSelectUserView = isShowSelectList
// 时间选择UI更新
optionsView.selectIndex = 0
var isSelectDate = false
if let model = dataModel?.model {
timeSelectView.title = model.dateTye == 0 ? "具体日期" : "具体时段"
if model.dateTye == 0 { // 具体时间
optionsView.selectIndex = 0
timeSelectView.placeHolder = "请选择具体日期"
timeSelectView.errorTips = "请选择具体日期"
timeSelectView.detail = model.detailDateStr
if !model.detailDateStr.isEmpty {
isSelectDate = true
}
} else { // 具体时段
optionsView.selectIndex = 1
timeSelectView.placeHolder = "请选择具体时段"
timeSelectView.errorTips = "请选择具体时段"
if !model.startDateStr.isEmpty, !model.endDateStr.isEmpty {
self.timeSelectView.detail = "\(model.startDateStr) ~ \(model.endDateStr)"
isSelectDate = true
} else {
self.timeSelectView.detail = ""
}
}
// 办证地点更新
self.locationSelectView.detail = model.hkPlace.name
locationSelectView.detail = model.hkPlace.name
// 办证地点是否显示红色错误提示
locationSelectView.isNeedShowErrorTips = (model.isNeedCheck && model.hkPlace.name.isEmpty)
// 办证地点是否显示红色错误提示
timeSelectView.isNeedShowErrorTips = (model.isNeedCheck && !isSelectDate)
self.setNeedsLayout()
self.layoutIfNeeded()
}
}
......@@ -376,6 +401,7 @@ private extension YHSelectApplicantGroupCell {
timeSelectView.detail = dateStr
}
}
refreshBlock?()
}
}
......@@ -405,6 +431,7 @@ private extension YHSelectApplicantGroupCell {
let _ = showHKHolidayWarmTips(startDateStr: startDateStr,endDateStr: endDateStr)
}
refreshBlock?()
}
view.show()
}
......@@ -416,9 +443,6 @@ private extension YHSelectApplicantGroupCell {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
if let startDate = dateFormatter.date(from: start),
let endDate = dateFormatter.date(from: end) {
let (arrString,allDates) = getAllDates(from: startDate, to: endDate)
......
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