Commit 09720545 authored by pete谢兆麟's avatar pete谢兆麟

护照逻辑

parent 51c65e92
...@@ -23,6 +23,7 @@ class YHResignCertificateDetailPassPortViewController: YHBaseViewController { ...@@ -23,6 +23,7 @@ class YHResignCertificateDetailPassPortViewController: YHBaseViewController {
var urls: [String] = [""] var urls: [String] = [""]
var data: [YHItemModel] = [] var data: [YHItemModel] = []
var isShowPrompt = false var isShowPrompt = false
var failString: String = ""
lazy var tableView: UITableView = { lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped) let tableView = UITableView(frame:.zero, style:.grouped)
...@@ -129,6 +130,8 @@ class YHResignCertificateDetailPassPortViewController: YHBaseViewController { ...@@ -129,6 +130,8 @@ class YHResignCertificateDetailPassPortViewController: YHBaseViewController {
@objc func didSaveBtnClicked() { @objc func didSaveBtnClicked() {
if !checkInfo() { if !checkInfo() {
isShowPrompt = true
updateData()
return return
} }
...@@ -136,81 +139,17 @@ class YHResignCertificateDetailPassPortViewController: YHBaseViewController { ...@@ -136,81 +139,17 @@ class YHResignCertificateDetailPassPortViewController: YHBaseViewController {
} }
func checkInfo() -> Bool { func checkInfo() -> Bool {
var errorItemCount = 0 if urls.first?.count == 0 {
// if item.type == .certificate { failString = "请上传护照"
// var hasSubmitError = false return false
// var isDateValidate = true }
// item.cerDetailModel.isNeedCheckCer = false
// item.cerDetailModel.isNeedCheckDate = false
//
// if item.cerDetailModel.isOCR_failed {
// // 无法识别不能当做无法提交的错误 所以 此处 hasError 不必设置为true
// item.cerDetailModel.isNeedCheckCer = true
// item.cerDetailModel.checkTips = "无法识别,请核查文件"
//
// } else {
// var noCerInfo = false
// if item.cerDetailModel.type == 3 { // 只有港澳通行证有正反面
// noCerInfo = (item.cerDetailModel.img_front.isEmpty || item.cerDetailModel.img_back.isEmpty)
// } else {
// noCerInfo = item.cerDetailModel.img_front.isEmpty
// }
//
// if noCerInfo {
// hasSubmitError = true
// item.cerDetailModel.isNeedCheckCer = true
// if item.cerDetailModel.type == 3 { // 港澳通行证
// item.cerDetailModel.checkTips = item.cerDetailModel.img_front.isEmpty ? "请上传港澳通行证正面" : "请上传港澳通行证反面"
//
// } else if item.cerDetailModel.type == 1 { // 中国护照
// item.cerDetailModel.checkTips = "请上传护照"
//
// } else if item.cerDetailModel.type == 2 { // 中国居留许可签证
// item.cerDetailModel.checkTips = "请上传中国居留许可签证"
// }
//
// } else {
// item.cerDetailModel.isNeedCheckDate = false
// if item.cerDetailModel.issue_start.isEmpty || item.cerDetailModel.issue_end.isEmpty {
// hasSubmitError = true
// item.cerDetailModel.isNeedCheckDate = true
//
// } else {
// let isValidCertificate = item.cerDetailModel.isValidCer()
// if !isValidCertificate {
// if item.cerDetailModel.type == 2, item.cerDetailModel.china_travel_latest_validaty_date.isEmpty {
// // 这个情况直接弹toast
// hasSubmitError = true
// YHHUD.flash(message: "赴港行程尚未成功预约,请前往检查")
//
// } else {
// // 有效期不足也能提交
// isDateValidate = false
// item.cerDetailModel.isNeedCheckCer = true
// let deadDate: String = (item.cerDetailModel.type == 2 ? item.cerDetailModel.china_travel_latest_validaty_date : item.cerDetailModel.latest_validaty_date)
// item.cerDetailModel.checkTips = "有效期不足,需要为\(deadDate)或以后"
// }
// }
// }
// }
// }
// if !hasSubmitError {
// // 无法识别或有效期不足也要可以提交
// if !item.cerDetailModel.isOCR_failed && isDateValidate {
// item.cerDetailModel.isNeedCheckCer = false
// item.cerDetailModel.isNeedCheckDate = false
// }
//
// } else {
// errorItemCount += 1
// }
// }
self.tableView.reloadData()
if self.viewModel.dataModel.cert_info.issue_start.count == 0 {
return false
}
if self.viewModel.dataModel.cert_info.issue_end.count == 0 {
return false
}
return true return true
} }
} }
...@@ -219,31 +158,30 @@ class YHResignCertificateDetailPassPortViewController: YHBaseViewController { ...@@ -219,31 +158,30 @@ class YHResignCertificateDetailPassPortViewController: YHBaseViewController {
private extension YHResignCertificateDetailPassPortViewController { private extension YHResignCertificateDetailPassPortViewController {
//1、获取详情信息 //1、获取详情信息
func loadDetailInfo() { func loadDetailInfo() {
self.updateData()
// let params = [
// "order_id": orderId,
// "user_id": dataModel.id,
// "user_type": dataModel.type
// ] as [String : Any]
//
// YHHUD.show(.progress(message: "加载中..."))
// viewModel.getTravelDocsDetailInfo(param: params) { success, error in
// YHHUD.hide()
// if success {
// // TODO: 杜宇哥 UI刷新
self.updateData()
//
// } else {
//
// }
// }
} }
//2、保存旅行证件 //2、保存旅行证件
func saveAllTravelCertificate() { func saveAllTravelCertificate() {
let passPort: [String: Any] = ["name": "护照",
"issue_start": self.viewModel.dataModel.cert_info.issue_start,
"issue_end": self.viewModel.dataModel.cert_info.issue_end,
"img_front": urls[0]]
let params : [String : Any] = [
"passPort": passPort,
"id": dataModel.id
]
viewModel.submitResignCertificateUpdate(params) { success, error in
if success {
YHHUD.flash(message: "保存成功")
self.navigationController?.popViewController()
} else {
let msg = error?.errorMsg ?? "保存失败,请重试"
YHHUD.flash(message: msg)
}
}
} }
} }
...@@ -269,19 +207,18 @@ extension YHResignCertificateDetailPassPortViewController: UITableViewDelegate, ...@@ -269,19 +207,18 @@ extension YHResignCertificateDetailPassPortViewController: UITableViewDelegate,
let cell = tableView.dequeueReusableCell(withIdentifier: YHResignCertificatePassportTableViewCell.cellReuseIdentifier, for: indexPath) as! YHResignCertificatePassportTableViewCell let cell = tableView.dequeueReusableCell(withIdentifier: YHResignCertificatePassportTableViewCell.cellReuseIdentifier, for: indexPath) as! YHResignCertificatePassportTableViewCell
cell.firstImageName = "service_adopter_card_china_travel_front" cell.firstImageName = "service_adopter_card_china_travel_front"
cell.firstLabelName = "护照资料页" cell.firstLabelName = "护照资料页"
cell.failString = failString
cell.urls = urls cell.urls = urls
cell.data = data cell.data = data
cell.dataModel = dataModel
cell.urlBlock = { [weak self] url, index in cell.urlBlock = { [weak self] url, index in
guard let self = self else { return } guard let self = self else { return }
self.urls[index] = url self.urls[index] = url
self.viewModel.getPublicImageUrl(url) {[weak self] success, error in self.viewModel.getPublicImageUrl(url) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
guard let url = success else { return } guard let url = success else { return }
// self.viewModel.requestHkIDCardMessage(url, isBack: 0) {[weak self] success, error in self.data = viewModel.getPassPortDataSource(isShowPrompt)
// guard let self = self else { return } self.tableView.reloadData()
// self.data = viewModel.getBaseDataSource(isShowPrompt)
// self.tableView.reloadData()
// }
} }
} }
cell.deleteBlock = { [weak self] url, index in cell.deleteBlock = { [weak self] url, index in
...@@ -290,12 +227,7 @@ extension YHResignCertificateDetailPassPortViewController: UITableViewDelegate, ...@@ -290,12 +227,7 @@ extension YHResignCertificateDetailPassPortViewController: UITableViewDelegate,
} }
cell.block = {[weak self] model in cell.block = {[weak self] model in
guard let self = self else { return } guard let self = self else { return }
// self.viewModel.updateModel(model) self.viewModel.updateModel(model)
// let id = model.id
// if id != .id2 && id != .id3 && id != .id4 {
// self.data = viewModel.getBaseDataSource(isShowPrompt)
// self.tableView.reloadData()
// }
} }
return cell return cell
} }
......
...@@ -30,6 +30,12 @@ class YHResignCertificatePassportTableViewCell: UITableViewCell { ...@@ -30,6 +30,12 @@ class YHResignCertificatePassportTableViewCell: UITableViewCell {
var viewModel: YHBaseViewModel = YHBaseViewModel() var viewModel: YHBaseViewModel = YHBaseViewModel()
var firstUrl: String = "" var firstUrl: String = ""
var lastUrl: String = "" var lastUrl: String = ""
var dataModel: YHResignCertificateModel = YHResignCertificateModel()
var failString: String = "" {
didSet {
showMessageLabel.text = failString
}
}
var firstImageName: String = "" { var firstImageName: String = "" {
didSet { didSet {
frontImageButton.setBackgroundImage(UIImage(named: firstImageName), for: .normal) frontImageButton.setBackgroundImage(UIImage(named: firstImageName), for: .normal)
...@@ -140,7 +146,6 @@ class YHResignCertificatePassportTableViewCell: UITableViewCell { ...@@ -140,7 +146,6 @@ class YHResignCertificatePassportTableViewCell: UITableViewCell {
titleLabel = { titleLabel = {
let label = UILabel() let label = UILabel()
// label.font = UIFont.PFSC_M(ofSize: 17)
let str = "* " + "港澳通行证 (逗留D签注)" let str = "* " + "港澳通行证 (逗留D签注)"
let attributes: [NSAttributedString.Key: Any] = [ let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.PFSC_M(ofSize: 17), .font: UIFont.PFSC_M(ofSize: 17),
...@@ -150,7 +155,6 @@ class YHResignCertificatePassportTableViewCell: UITableViewCell { ...@@ -150,7 +155,6 @@ class YHResignCertificatePassportTableViewCell: UITableViewCell {
let starRange = NSRange(location: 0, length: 2) let starRange = NSRange(location: 0, length: 2)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
label.attributedText = questionAttrStr label.attributedText = questionAttrStr
// label.textColor = UIColor.mainTextColor
return label return label
}() }()
centerView.addSubview(titleLabel) centerView.addSubview(titleLabel)
...@@ -307,6 +311,11 @@ class YHResignCertificatePassportTableViewCell: UITableViewCell { ...@@ -307,6 +311,11 @@ class YHResignCertificatePassportTableViewCell: UITableViewCell {
guard let self = self else { return } guard let self = self else { return }
if let block = self.block { if let block = self.block {
block(model) block(model)
if self.compareDates(dateString1: model.message ?? "", dateString2: self.dataModel.valid_date) {
} else {
failString = "有效期不足,需要为\(self.dataModel.valid_date)或以后"
}
} }
} }
centerView.addSubview(cardEndView) centerView.addSubview(cardEndView)
...@@ -358,4 +367,18 @@ class YHResignCertificatePassportTableViewCell: UITableViewCell { ...@@ -358,4 +367,18 @@ class YHResignCertificatePassportTableViewCell: UITableViewCell {
} }
} }
func compareDates(dateString1: String, dateString2: String) -> Bool {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
guard let date1 = dateFormatter.date(from: dateString1),
let date2 = dateFormatter.date(from: dateString2) else {
return false
}
if date1 < date2 {
return false
}
return true
}
} }
...@@ -42,4 +42,20 @@ class YHResignCertificateDetailViewModel: YHBaseViewModel { ...@@ -42,4 +42,20 @@ class YHResignCertificateDetailViewModel: YHBaseViewModel {
let item2 = YHItemModel(id: .id2, isNeed: true, title: "到期时间", isUserKeyBoard: false, prompts: "请选择", message: dataModel.cert_info.issue_end, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择到期时间") let item2 = YHItemModel(id: .id2, isNeed: true, title: "到期时间", isUserKeyBoard: false, prompts: "请选择", message: dataModel.cert_info.issue_end, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择到期时间")
return [item1, item2] return [item1, item2]
} }
func updateModel(_ item: YHItemModel) {
guard let type = item.id else { return }
switch type {
case .id1:
dataModel.cert_info.issue_start = item.message ?? ""
case .id2:
dataModel.cert_info.issue_end = item.message ?? ""
case .id3:
dataModel.cert_info.issue_start = item.message ?? ""
case .id4:
dataModel.cert_info.issue_end = item.message ?? ""
default:
break
}
}
} }
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