Commit 1b19627a authored by Steven杜宇's avatar Steven杜宇

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

parents 4b65004e 45d173c8
......@@ -254,6 +254,13 @@
044F396B2CBA7D3F007CA277 /* YHHKVisaRenewalPaymentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044F396A2CBA7D3F007CA277 /* YHHKVisaRenewalPaymentViewModel.swift */; };
044F396D2CBA7FD1007CA277 /* YHHKVisaRenewalPaymentList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044F396C2CBA7FD1007CA277 /* YHHKVisaRenewalPaymentList.swift */; };
04506F552C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */; };
0457920B2CBCE7B200EBD99B /* YHResignUploadTravelCardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0457920A2CBCE7B200EBD99B /* YHResignUploadTravelCardViewModel.swift */; };
0457920D2CBCE8A800EBD99B /* YHResignUploadTravelCardListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0457920C2CBCE8A800EBD99B /* YHResignUploadTravelCardListModel.swift */; };
0457920F2CBCE9D000EBD99B /* YHResignUploadTravelCardListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0457920E2CBCE9D000EBD99B /* YHResignUploadTravelCardListTableViewCell.swift */; };
045792112CBCF8CD00EBD99B /* YHResignUploadTravelCardDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045792102CBCF8CD00EBD99B /* YHResignUploadTravelCardDetailViewModel.swift */; };
045792132CBCFB8000EBD99B /* YHResignUploadTravelCardDetailModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045792122CBCFB8000EBD99B /* YHResignUploadTravelCardDetailModel.swift */; };
045792152CBD041F00EBD99B /* YHResignUploadTravelHKTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045792142CBD041F00EBD99B /* YHResignUploadTravelHKTableViewCell.swift */; };
045792172CBD046E00EBD99B /* YHResignUploadTravelPassportTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045792162CBD046E00EBD99B /* YHResignUploadTravelPassportTableViewCell.swift */; };
045A08C02C37ABF500BCBABA /* YHSegmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045A08BF2C37ABF500BCBABA /* YHSegmentView.swift */; };
045A08C22C37EB8B00BCBABA /* YHMyFileListNoneCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045A08C12C37EB8B00BCBABA /* YHMyFileListNoneCell.swift */; };
045A7E672C2ACB1A008F995B /* YHLoginOneLeadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045A7E662C2ACB1A008F995B /* YHLoginOneLeadView.swift */; };
......@@ -1193,6 +1200,13 @@
044F396A2CBA7D3F007CA277 /* YHHKVisaRenewalPaymentViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHKVisaRenewalPaymentViewModel.swift; sourceTree = "<group>"; };
044F396C2CBA7FD1007CA277 /* YHHKVisaRenewalPaymentList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHKVisaRenewalPaymentList.swift; sourceTree = "<group>"; };
04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyMemberInfoCell.swift; sourceTree = "<group>"; };
0457920A2CBCE7B200EBD99B /* YHResignUploadTravelCardViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignUploadTravelCardViewModel.swift; sourceTree = "<group>"; };
0457920C2CBCE8A800EBD99B /* YHResignUploadTravelCardListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignUploadTravelCardListModel.swift; sourceTree = "<group>"; };
0457920E2CBCE9D000EBD99B /* YHResignUploadTravelCardListTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignUploadTravelCardListTableViewCell.swift; sourceTree = "<group>"; };
045792102CBCF8CD00EBD99B /* YHResignUploadTravelCardDetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignUploadTravelCardDetailViewModel.swift; sourceTree = "<group>"; };
045792122CBCFB8000EBD99B /* YHResignUploadTravelCardDetailModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignUploadTravelCardDetailModel.swift; sourceTree = "<group>"; };
045792142CBD041F00EBD99B /* YHResignUploadTravelHKTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignUploadTravelHKTableViewCell.swift; sourceTree = "<group>"; };
045792162CBD046E00EBD99B /* YHResignUploadTravelPassportTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignUploadTravelPassportTableViewCell.swift; sourceTree = "<group>"; };
045A08BF2C37ABF500BCBABA /* YHSegmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSegmentView.swift; sourceTree = "<group>"; };
045A08C12C37EB8B00BCBABA /* YHMyFileListNoneCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMyFileListNoneCell.swift; sourceTree = "<group>"; };
045A7E662C2ACB1A008F995B /* YHLoginOneLeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHLoginOneLeadView.swift; sourceTree = "<group>"; };
......@@ -3820,6 +3834,9 @@
04CA2BEB2CB7740000F36DE7 /* YHResignUploadTravelCardListfootView.swift */,
04CA2BED2CB7771000F36DE7 /* YHResignUploadTravelCardFootViewController.swift */,
04CA2BF32CB7B33500F36DE7 /* YHResignUploadTravelGuideView.swift */,
0457920E2CBCE9D000EBD99B /* YHResignUploadTravelCardListTableViewCell.swift */,
045792142CBD041F00EBD99B /* YHResignUploadTravelHKTableViewCell.swift */,
045792162CBD046E00EBD99B /* YHResignUploadTravelPassportTableViewCell.swift */,
);
path = V;
sourceTree = "<group>";
......@@ -3827,6 +3844,8 @@
04CA2BE52CB7696C00F36DE7 /* VM */ = {
isa = PBXGroup;
children = (
0457920A2CBCE7B200EBD99B /* YHResignUploadTravelCardViewModel.swift */,
045792102CBCF8CD00EBD99B /* YHResignUploadTravelCardDetailViewModel.swift */,
);
path = VM;
sourceTree = "<group>";
......@@ -3834,6 +3853,8 @@
04CA2BE62CB7697300F36DE7 /* M */ = {
isa = PBXGroup;
children = (
0457920C2CBCE8A800EBD99B /* YHResignUploadTravelCardListModel.swift */,
045792122CBCFB8000EBD99B /* YHResignUploadTravelCardDetailModel.swift */,
);
path = M;
sourceTree = "<group>";
......@@ -5295,6 +5316,7 @@
04FB01CE2C23DDBD0040115D /* YHPeopleMatchNoDataView.swift in Sources */,
04CA2BEC2CB7740000F36DE7 /* YHResignUploadTravelCardListfootView.swift in Sources */,
A5ACE9362B4564F7002C94D2 /* YHNetworkStatusManager.swift in Sources */,
045792112CBCF8CD00EBD99B /* YHResignUploadTravelCardDetailViewModel.swift in Sources */,
048787D52BCE880B0036E221 /* YHServiceOrderListViewController.swift in Sources */,
0431F8842C9579F7003B84F4 /* YHResignTemplateSheetView.swift in Sources */,
A5D0012A2BABC84A001F003C /* YHFileListHeaerView.swift in Sources */,
......@@ -5489,6 +5511,7 @@
A5ACE94A2B4564F7002C94D2 /* YHHUDProgressView.swift in Sources */,
04A271232BABFF3200652B1B /* YHCertificateUploadTypeCell.swift in Sources */,
04B360F32C636525001EB053 /* YHPrincipleWaitResultViewController.swift in Sources */,
045792132CBCFB8000EBD99B /* YHResignUploadTravelCardDetailModel.swift in Sources */,
04358E0A2C7835B000811928 /* YHMakeCertificatePlaceModel.swift in Sources */,
A582B2412BB95998009D098C /* YHHKPlanTipsCell.swift in Sources */,
04CA2C072CB8F9C800F36DE7 /* YHResignUploadDocListProgressModel.swift in Sources */,
......@@ -5555,6 +5578,7 @@
0449EEF02C902A4100A397FD /* YHResignMaterialUploadVC.swift in Sources */,
04174D642BCD52BD000BA46D /* YHDeviceInfoViewController.swift in Sources */,
0472E25E2C534723008EAB6E /* YHLifeDetailViewController.swift in Sources */,
0457920D2CBCE8A800EBD99B /* YHResignUploadTravelCardListModel.swift in Sources */,
A5ACE92E2B4564F7002C94D2 /* YHValidateCodeInputView.swift in Sources */,
045EEED82B9F171A0022A143 /* YHQuestionInfo.swift in Sources */,
A567E5B82BD7643D00D5D5A0 /* YHSearchItemLayout.swift in Sources */,
......@@ -5595,6 +5619,7 @@
A5FD45232C523DD300908AD9 /* YHJsApi.swift in Sources */,
04B360E32C60A346001EB053 /* YHPrinciplePhotoListCell.swift in Sources */,
044EE2512C955CDE00A2FE3A /* YHResignGuidelinesExampleViewController.swift in Sources */,
0457920F2CBCE9D000EBD99B /* YHResignUploadTravelCardListTableViewCell.swift in Sources */,
04CA2C032CB7D3C200F36DE7 /* YHFileExplainReasonInputView.swift in Sources */,
04213B292C48EF5300797900 /* YHHomeInformationViewController.swift in Sources */,
A5DF9C692C78BE6000CE48E6 /* YHUploadCertificateDetailModel.swift in Sources */,
......@@ -5697,6 +5722,7 @@
04CE1ADB2C2AD91F001CB80A /* YHActivityTitleItemView.swift in Sources */,
A5FD63BF2B6250BC00D1D9DA /* YHInformationPerfectCell.swift in Sources */,
04CA2C2F2CBA5C9E00F36DE7 /* YHLookResignGuideLineView.swift in Sources */,
045792172CBD046E00EBD99B /* YHResignUploadTravelPassportTableViewCell.swift in Sources */,
044F393E2CB7827B007CA277 /* YHVisaRenewalGuideTipsCell.swift in Sources */,
045EEE942B9F171A0022A143 /* YHPreviewInfoQuestionAndAnswerItemView.swift in Sources */,
04F5F86A2C1A95BB004A463C /* YHOtherServiceViewController.swift in Sources */,
......@@ -5841,6 +5867,7 @@
A567E5AB2BD7643D00D5D5A0 /* YHHomeHeadView.swift in Sources */,
04FD856E2C215DC900BEF9C5 /* YHMyWorkExperienceCell.swift in Sources */,
0414BDAB2BC7E9C200225367 /* YHMyPermissionCell.swift in Sources */,
045792152CBD041F00EBD99B /* YHResignUploadTravelHKTableViewCell.swift in Sources */,
04C8F4832B7216D800ADF59B /* YHUserInfoHeaderView.swift in Sources */,
045EEEAF2B9F171A0022A143 /* YHWorkExperienceTextItemView.swift in Sources */,
A5ACE9492B4564F7002C94D2 /* YHHUDSuccessView.swift in Sources */,
......@@ -6009,6 +6036,7 @@
045EEEF92B9F171A0022A143 /* YHFormItemTitleCell.swift in Sources */,
044F394E2CB806E6007CA277 /* YHVisaRenewalPayMethodQrcodeCell.swift in Sources */,
A580371E2BAD784B0031C312 /* YHMySchemeViewModel.swift in Sources */,
0457920B2CBCE7B200EBD99B /* YHResignUploadTravelCardViewModel.swift in Sources */,
0425E6482BA96B4100A5E763 /* YHSchemeHeadScoreItemView.swift in Sources */,
04A271252BAC33BB00652B1B /* YHFilePreviewTool.swift in Sources */,
044F39322CB64CC0007CA277 /* YHBottomPresentationController.swift in Sources */,
......
......@@ -230,7 +230,10 @@ class YHServiceOrderListView: YHBaseViewController {
UIViewController.current?.navigationController?.pushViewController(vc)
} else if type == 38 {
//上传旅行证件
let vc = YHResignUploadTravelCardListViewController()
vc.orderId = orderId
vc.batchId = stepId
UIViewController.current?.navigationController?.pushViewController(vc)
}
}
}
......
......@@ -116,6 +116,10 @@ class YHHKVisaRenewalPaymentVC: YHBaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
requestData()
}
......@@ -140,7 +144,7 @@ extension YHHKVisaRenewalPaymentVC {
@objc private func clickSureButton() {
let vc = YHResignUploadTravelCardListViewController()
vc.orderId = orderId
// vc.batchId = renewalId
vc.batchId = renewalId
navigationController?.pushViewController(vc)
}
......
......@@ -10,8 +10,10 @@ import UIKit
class YHResignUploadTravelCardListViewController: YHBaseViewController {
var orderId: Int = 0
lazy var viewModel: YHTravelDocsPreparationViewModel = {
let vm = YHTravelDocsPreparationViewModel()
var batchId: Int = 0
lazy var viewModel: YHResignUploadTravelCardViewModel = {
let vm = YHResignUploadTravelCardViewModel()
return vm
}()
......@@ -28,11 +30,7 @@ class YHResignUploadTravelCardListViewController: YHBaseViewController {
tableView.tableFooterView = YHResignUploadTravelCardListfootView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 837.fix))
tableView.backgroundColor = .clear
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHTravelDocsPreparationListCell.self, forCellReuseIdentifier: YHTravelDocsPreparationListCell.cellReuseIdentifier)
tableView.register(YHTravelDocsPreparationTipsCell.self, forCellReuseIdentifier: YHTravelDocsPreparationTipsCell.cellReuseIdentifier)
tableView.register(YHResignUploadTravelCardListTableViewCell.self, forCellReuseIdentifier: YHResignUploadTravelCardListTableViewCell.cellReuseIdentifier)
return tableView
}()
......@@ -86,19 +84,19 @@ private extension YHResignUploadTravelCardListViewController {
func loadData() {
let params: [String : Any] = ["order_id": orderId]
YHHUD.show(.progress(message: "加载中..."))
viewModel.getTravelDocsList(param: params){ success, error in
// viewModel.getTravelDocsList(orderID: 132957, renewalId: 288, callBackBlock: {[weak self] success, error in
viewModel.getTravelDocsList(orderID: orderId, renewalId: batchId, callBackBlock: {[weak self] success, error in
YHHUD.hide()
guard let self = self else { return }
if success {
} else {
let msg = error?.errorMsg ?? "获取数据出错"
YHHUD.flash(message: msg)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.navigationController?.popViewController()
}
}
self.tableView.reloadData()
}
})
}
func setupUI() {
......@@ -141,7 +139,7 @@ extension YHResignUploadTravelCardListViewController: UITableViewDelegate, UITab
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHTravelDocsPreparationListCell.cellReuseIdentifier, for: indexPath) as! YHTravelDocsPreparationListCell
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHResignUploadTravelCardListTableViewCell.cellReuseIdentifier, for: indexPath) as! YHResignUploadTravelCardListTableViewCell
approveCell.dataModel = viewModel.arrTravelDocs[indexPath.section]
return approveCell
}
......@@ -151,12 +149,20 @@ extension YHResignUploadTravelCardListViewController: UITableViewDelegate, UITab
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if let model = viewModel.arrTravelDocs[indexPath.section] {
if model.status == -1 {
return
let model = viewModel.arrTravelDocs[indexPath.section]
if model.status == 2 {
return
} else {
if model.travel_cert_type == 1 {
//跳转护照
let vc = YHResignUploadTravelPassportViewController()
vc.fatherData = model
vc.orderId = orderId
self.navigationController?.pushViewController(vc)
} else {
let vc = YHTravelDocsPreparationDetailVC()
vc.dataModel = model
//跳转港澳通行证
let vc = YHResignUploadTravelHKViewController()
vc.fatherData = model
vc.orderId = orderId
self.navigationController?.pushViewController(vc)
}
......
......@@ -11,14 +11,15 @@ import AttributedString
class YHResignUploadTravelHKViewController: YHBaseViewController {
lazy var viewModel: YHResignCertificateDetailViewModel = {
let vm = YHResignCertificateDetailViewModel()
lazy var viewModel: YHResignUploadTravelCardDetailViewModel = {
let vm = YHResignUploadTravelCardDetailViewModel()
return vm
}()
var fatherData: YHResignUploadTravelCardListModel = YHResignUploadTravelCardListModel()
//上个界面传递过来的数据对象
var dataModel : YHResignCertificateModel = YHResignCertificateModel()
var dataModel : YHResignUploadTravelCardDetailModel = YHResignUploadTravelCardDetailModel()
var orderId: Int = 0
var batchId: Int = 0
var tipsArr: [ASAttributedString] = []
var urls: [String] = ["",""]
var data: [YHItemModel] = []
......@@ -37,7 +38,7 @@ class YHResignUploadTravelHKViewController: YHBaseViewController {
tableView.backgroundColor = UIColor(hex: 0xF8F9FB)
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHTravelCertificateTipsCell.self, forCellReuseIdentifier: YHTravelCertificateTipsCell.cellReuseIdentifier)
tableView.register(YHResignCertificateHKTableViewCell.self, forCellReuseIdentifier: YHResignCertificateHKTableViewCell.cellReuseIdentifier)
tableView.register(YHResignUploadTravelHKTableViewCell.self, forCellReuseIdentifier: YHResignUploadTravelHKTableViewCell.cellReuseIdentifier)
return tableView
}()
......@@ -121,20 +122,29 @@ class YHResignUploadTravelHKViewController: YHBaseViewController {
}
func updateData() {
let params : [String : Any] = [
"order_id": orderId,
"renewal_id": batchId,
"user_id": fatherData.id,
"user_type": fatherData.type
]
viewModel.getResignCertificateDetail(params) {[weak self] success, error in
guard let self = self else { return }
dataModel = self.viewModel.dataModel
if dataModel.img_front.count != 0 {
urls[0] = dataModel.img_front
}
if dataModel.img_back.count != 0 {
urls[1] = dataModel.img_back
}
self.data = viewModel.getBaseDataSource(isShowPrompt)
// 头部提示
tipsArr = getTipsWithType(date: self.dataModel.latest_validaty_date)
tableView.reloadData()
}
// travel_cert_type 证件类型 0-未知 1-护照 3-港澳通行证
// nationality : Int = -1 国籍 1-中国 2-国外
self.viewModel.dataModel = dataModel
if dataModel.cert_info.img_front.count != 0 {
urls[0] = dataModel.cert_info.img_front
}
if dataModel.cert_info.img_back.count != 0 {
urls[1] = dataModel.cert_info.img_back
}
self.data = viewModel.getBaseDataSource(isShowPrompt)
// 头部提示
tipsArr = getTipsWithType(date: self.dataModel.valid_date)
tableView.reloadData()
}
......@@ -157,16 +167,16 @@ class YHResignUploadTravelHKViewController: YHBaseViewController {
failString = "请港澳通行证背面"
return false
}
if self.viewModel.dataModel.cert_info.issue_start.count == 0 {
if self.viewModel.dataModel.issue_start.count == 0 {
return false
}
if self.viewModel.dataModel.cert_info.issue_end.count == 0 {
if self.viewModel.dataModel.issue_end.count == 0 {
return false
}
if self.viewModel.dataModel.cert_info.validate_start.count == 0 {
if self.viewModel.dataModel.visa_start.count == 0 {
return false
}
if self.viewModel.dataModel.cert_info.validate_end.count == 0 {
if self.viewModel.dataModel.visa_end.count == 0 {
return false
}
return true
......@@ -174,20 +184,6 @@ class YHResignUploadTravelHKViewController: YHBaseViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if dataModel.cert_info.is_show {
} else {
YHAdopterCardExampleView.exampleView(type: .travel).show()
let hkPassPort: [String: Any] = ["is_show": true,
"submit": false
]
let params : [String : Any] = [
"hkPassPort": hkPassPort,
"id":dataModel.id
]
viewModel.submitResignCertificateUpdate(params) { success, error in
}
}
}
}
......@@ -200,19 +196,18 @@ private extension YHResignUploadTravelHKViewController {
//2、保存旅行证件
func saveAllTravelCertificate() {
let hkPassPort: [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],
"img_back": urls[1],
"validate_start": self.viewModel.dataModel.cert_info.validate_start,
"validate_end": self.viewModel.dataModel.cert_info.validate_end,
"sign_type": "D",
"submit": true,
"is_show": true]
let params : [String : Any] = [
"hkPassPort": hkPassPort,
"id": dataModel.id
"order_id": orderId,
"renewal_id": batchId,
"user_id": fatherData.id,
"user_type": fatherData.type,
"type": self.viewModel.dataModel.type,
"img_back": urls[1],
"img_front": urls[0],
"issue_start": self.viewModel.dataModel.issue_start,
"issue_end": self.viewModel.dataModel.issue_end,
"visa_start": self.viewModel.dataModel.visa_start,
"visa_end": self.viewModel.dataModel.visa_end,
]
viewModel.submitResignCertificateUpdate(params) { success, error in
if success {
......@@ -245,7 +240,7 @@ extension YHResignUploadTravelHKViewController: UITableViewDelegate, UITableView
return cell
}
let cell = tableView.dequeueReusableCell(withIdentifier: YHResignCertificateHKTableViewCell.cellReuseIdentifier, for: indexPath) as! YHResignCertificateHKTableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: YHResignUploadTravelHKTableViewCell.cellReuseIdentifier, for: indexPath) as! YHResignUploadTravelHKTableViewCell
cell.firstImageName = "service_adopter_card_travel_front"
cell.lastImageName = "service_adopter_card_travel_back"
cell.firstLabelName = "港澳通行证正面"
......@@ -265,10 +260,10 @@ extension YHResignUploadTravelHKViewController: UITableViewDelegate, UITableView
YHHUD.hide()
if success, let result = result {
if !result.term_begins.isEmpty {
self.dataModel.cert_info.issue_start = result.term_begins
self.dataModel.issue_start = result.term_begins
}
if !result.end_of_term.isEmpty {
self.dataModel.cert_info.issue_end = result.end_of_term
self.dataModel.issue_end = result.end_of_term
}
} else {
// OCR 无法识别
......@@ -280,10 +275,10 @@ extension YHResignUploadTravelHKViewController: UITableViewDelegate, UITableView
self.viewModel.getHKCardBackInfoByOcr(url, isBack: 1) { success, result in
YHHUD.hide()
if success, let result = result {
if !result.back_term_begins.isEmpty { self.dataModel.cert_info.validate_start = result.back_term_begins
if !result.back_term_begins.isEmpty { self.dataModel.visa_start = result.back_term_begins
}
if !result.back_end_of_term.isEmpty {
self.dataModel.cert_info.validate_end = result.back_end_of_term
self.dataModel.visa_end = result.back_end_of_term
}
} else {
// OCR 无法识别
......@@ -298,9 +293,9 @@ extension YHResignUploadTravelHKViewController: UITableViewDelegate, UITableView
guard let self = self else { return }
self.urls[index] = url
if index == 0 {
self.dataModel.cert_info.img_front = ""
self.dataModel.img_front = ""
} else {
self.dataModel.cert_info.img_back = ""
self.dataModel.img_back = ""
}
}
cell.block = {[weak self] model in
......
......@@ -11,14 +11,16 @@ import AttributedString
class YHResignUploadTravelPassportViewController: YHBaseViewController {
lazy var viewModel: YHResignCertificateDetailViewModel = {
let vm = YHResignCertificateDetailViewModel()
lazy var viewModel: YHResignUploadTravelCardDetailViewModel = {
let vm = YHResignUploadTravelCardDetailViewModel()
return vm
}()
var fatherData: YHResignUploadTravelCardListModel = YHResignUploadTravelCardListModel()
//上个界面传递过来的数据对象
var dataModel : YHResignCertificateModel = YHResignCertificateModel()
var dataModel : YHResignUploadTravelCardDetailModel = YHResignUploadTravelCardDetailModel()
var orderId: Int = 0
var batchId: Int = 0
var tipsArr: [ASAttributedString] = []
var urls: [String] = [""]
var data: [YHItemModel] = []
......@@ -37,7 +39,7 @@ class YHResignUploadTravelPassportViewController: YHBaseViewController {
tableView.backgroundColor = UIColor(hex: 0xF8F9FB)
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHTravelCertificateTipsCell.self, forCellReuseIdentifier: YHTravelCertificateTipsCell.cellReuseIdentifier)
tableView.register(YHResignCertificatePassportTableViewCell.self, forCellReuseIdentifier: YHResignCertificatePassportTableViewCell.cellReuseIdentifier)
tableView.register(YHResignUploadTravelPassportTableViewCell.self, forCellReuseIdentifier: YHResignUploadTravelPassportTableViewCell.cellReuseIdentifier)
return tableView
}()
......@@ -110,14 +112,23 @@ class YHResignUploadTravelPassportViewController: YHBaseViewController {
// travel_cert_type 证件类型 0-未知 1-护照 3-港澳通行证
// nationality : Int = -1 国籍 1-中国 2-国外
self.viewModel.dataModel = dataModel
if dataModel.cert_info.img_front.count != 0 {
urls[0] = dataModel.cert_info.img_front
let params : [String : Any] = [
"order_id": orderId,
"renewal_id": batchId,
"user_id": fatherData.id,
"user_type": fatherData.type
]
viewModel.getResignCertificateDetail(params) {[weak self] success, error in
guard let self = self else { return }
dataModel = self.viewModel.dataModel
if dataModel.img_front.count != 0 {
urls[0] = dataModel.img_front
}
self.data = viewModel.getPassPortDataSource(isShowPrompt)
// 头部提示
tipsArr = getTipsWithType(date: self.dataModel.latest_validaty_date)
tableView.reloadData()
}
self.data = viewModel.getPassPortDataSource(isShowPrompt)
// 头部提示
tipsArr = getTipsWithType(date: self.dataModel.valid_date)
tableView.reloadData()
}
......@@ -137,10 +148,10 @@ class YHResignUploadTravelPassportViewController: YHBaseViewController {
return false
}
if self.viewModel.dataModel.cert_info.issue_start.count == 0 {
if self.viewModel.dataModel.issue_start.count == 0 {
return false
}
if self.viewModel.dataModel.cert_info.issue_end.count == 0 {
if self.viewModel.dataModel.issue_end.count == 0 {
return false
}
return true
......@@ -148,20 +159,7 @@ class YHResignUploadTravelPassportViewController: YHBaseViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if dataModel.cert_info.is_show {
} else {
YHAdopterCardExampleView.exampleView(type: .chinaTravel).show()
let passPort: [String: Any] = ["is_show": true,
"submit": false
]
let params : [String : Any] = [
"passPort": passPort,
"id":dataModel.id
]
viewModel.submitResignCertificateUpdate(params) { success, error in
}
}
}
}
......@@ -175,21 +173,20 @@ private extension YHResignUploadTravelPassportViewController {
//2、保存旅行证件
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],
"submit": true,
"is_show": true]
let params : [String : Any] = [
"passPort": passPort,
"id": dataModel.id
"order_id": orderId,
"renewal_id": batchId,
"user_id": fatherData.id,
"user_type": fatherData.type,
"type": self.viewModel.dataModel.type,
"img_front": urls[0],
"issue_start": self.viewModel.dataModel.issue_start,
"issue_end": self.viewModel.dataModel.issue_end
]
viewModel.submitResignCertificateUpdate(params) { success, error in
if success {
YHHUD.flash(message: "保存成功")
self.navigationController?.popViewController()
} else {
let msg = error?.errorMsg ?? "保存失败,请重试"
YHHUD.flash(message: msg)
......@@ -217,7 +214,7 @@ extension YHResignUploadTravelPassportViewController: UITableViewDelegate, UITab
return cell
}
let cell = tableView.dequeueReusableCell(withIdentifier: YHResignCertificatePassportTableViewCell.cellReuseIdentifier, for: indexPath) as! YHResignCertificatePassportTableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: YHResignUploadTravelPassportTableViewCell.cellReuseIdentifier, for: indexPath) as! YHResignUploadTravelPassportTableViewCell
cell.firstImageName = "service_adopter_card_china_travel_front"
cell.firstLabelName = "护照资料页"
cell.dataModel = dataModel
......@@ -238,7 +235,7 @@ extension YHResignUploadTravelPassportViewController: UITableViewDelegate, UITab
guard let self = self else { return }
self.urls[index] = url
if index == 0 {
self.dataModel.cert_info.img_front = ""
self.dataModel.img_front = ""
}
}
cell.block = {[weak self] model in
......
//
// YHResignUploadTravelCardDetailModel.swift
// galaxy
//
// Created by EDY on 2024/10/14.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHResignUploadTravelCardDetailModel: SmartCodable {
var latest_validaty_date: String = "" //有效期最晚时间
var type: Int = 0 //1-护照 3-港澳通行证
var order_id: Int = 0
var img_back: String = ""
var img_front: String = ""
var issue_end: String = ""
var issue_start: String = ""
var user_id: Int = 0
var user_type: String = ""
var name: String = ""
var visa_start: String = ""
var visa_end: String = ""
var is_show: Bool = false
var submit: Bool = true
required init() {
}
}
//
// YHResignUploadTravelCardListModel.swift
// galaxy
//
// Created by EDY on 2024/10/14.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHResignUploadTravelCardListModel: SmartCodable {
var id : Int = -1//用户id
var name : String = ""//用户姓名
var type : String = ""//用户类型
var travel_cert_type : Int = -1//证件类型 0-未知 1-护照 3-港澳通行证
var status : Int = -1//缴费状态 -1-未缴费 0-待上传 1-待审核 2-已拒绝 3-已完成
required init() {
}
}
//
// YHResignUploadTravelCardListTableViewCell.swift
// galaxy
//
// Created by EDY on 2024/10/14.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHResignUploadTravelCardListTableViewCell: UITableViewCell {
static let cellReuseIdentifier = "YHResignUploadTravelCardListTableViewCell"
static let cellH : CGFloat = 70
var dataModel : YHResignUploadTravelCardListModel? {
didSet {
updataUI()
}
}
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
view.clipsToBounds = true
return view
}()
lazy var titleLable: UILabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_B(ofSize:16)
label.text = "张山"
return label
}()
lazy var subtTitleLable: UILabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor50
label.font = UIFont.PFSC_R(ofSize:13)
label.text = "(港澳通行证入境)"
return label
}()
lazy var statusLable: UILabel = {
let label = UILabel()
label.textColor = UIColor.failColor
label.font = UIFont.PFSC_R(ofSize:14)
label.text = "已驳回"
return label
}()
lazy var statusImageView: UIImageView = {
let view = UIImageView(image: UIImage(named: "blue_right_arrow"))
return view
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
}
private extension YHResignUploadTravelCardListTableViewCell {
func updataUI() {
guard let model = dataModel else { return }
titleLable.text = model.name
//travel_cert_type integer <int32> 证件类型 0-未知 1-护照 3-港澳通行证
if model.travel_cert_type == 1 {
subtTitleLable.text = "(护照入境)"
} else if model.travel_cert_type == 3 {
subtTitleLable.text = "(港澳通行证入境)"
} else {
subtTitleLable.text = ""
}
titleLable.textColor = .mainTextColor
//status 缴费状态 -1-未缴费 0-待上传 1-待审核 2-已拒绝 3-已完成
if model.status == 2 {
statusLable.text = "未开启"
titleLable.textColor = .mainTextColor30
statusLable.textColor = UIColor.mainTextColor30
statusImageView.image = UIImage(named: "disable_right_arrow")
} else if model.status == 0 {
statusLable.text = "待上传"
statusLable.textColor = UIColor.brandMainColor
statusImageView.image = UIImage(named: "blue_right_arrow")
} else if model.status == 1 {
statusLable.text = "已完成"
statusLable.textColor = UIColor.successColor
statusImageView.image = UIImage(named: "green_right_arrow")
} else {
statusLable.text = "-"
statusLable.textColor = UIColor.failColor
statusImageView.image = UIImage(named: "red_right_arrow")
}
}
func setupUI() {
selectionStyle = .none
backgroundColor = .clear
contentView.backgroundColor = .clear
contentView.addSubview(whiteContentView)
whiteContentView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
whiteContentView.addSubview(statusImageView)
statusImageView.snp.makeConstraints { make in
make.right.equalTo(-18)
make.width.height.equalTo(20)
make.centerY.equalToSuperview()
}
whiteContentView.addSubview(statusLable)
statusLable.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.right.equalTo(statusImageView.snp.left)
make.height.equalTo(20)
}
whiteContentView.addSubview(titleLable)
titleLable.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalToSuperview().offset(18)
make.height.equalTo(20)
}
whiteContentView.addSubview(subtTitleLable)
subtTitleLable.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalTo(titleLable.snp.right).offset(8)
// make.right.equalTo(statusLable.snp.left).offset(-8)
make.height.equalTo(20)
}
}
}
//
// YHResignUploadTravelHKTableViewCell.swift
// galaxy
//
// Created by EDY on 2024/10/14.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHResignUploadTravelHKTableViewCell: UITableViewCell {
static let cellReuseIdentifier = "YHResignUploadTravelHKTableViewCell"
typealias UrlBlock = (_ url: String, _ index: Int) -> ()
var urlBlock: UrlBlock?
var deleteBlock: UrlBlock?
typealias ItemBlock = (_ model: YHItemModel) -> ()
var block: ItemBlock?
var centerView: UIView!
var titleLabel: UILabel!
var exampleButton: UIButton!
var frontLabel: UILabel!
var backSurfaceLabel: UILabel!
var frontImageButton: YHCardButton!
var backSurfaceImageButton: YHCardButton!
var frontDeleteButton: UIButton!
var backSurfaceDeleteButton: UIButton!
var activityIndicator: UIActivityIndicatorView!
var showMessageLabel: UILabel!
var cardLabel: UILabel!
var signLabel: UILabel!
var cardBeginView: YHItemView!
var cardEndView: YHItemView!
var signBeginView: YHItemView!
var signEndView: YHItemView!
var viewModel: YHBaseViewModel = YHBaseViewModel()
var firstUrl: String = ""
var lastUrl: String = ""
var dataModel: YHResignUploadTravelCardDetailModel = YHResignUploadTravelCardDetailModel()
var failString: String = "" {
didSet {
showMessageLabel.text = failString
}
}
var firstImageName: String = "" {
didSet {
frontImageButton.setBackgroundImage(UIImage(named: firstImageName), for: .normal)
}
}
var lastImageName: String = "" {
didSet {
backSurfaceImageButton.setBackgroundImage(UIImage(named: lastImageName), for: .normal)
}
}
var firstLabelName: String = "" {
didSet {
frontLabel.text = firstLabelName
}
}
var lastLabelName: String = "" {
didSet {
backSurfaceLabel.text = lastLabelName
}
}
var urls: [String]? {
didSet {
guard let firstUrl = urls?.first, firstUrl.count != 0 else {
cardLabel.isHidden = true
signLabel.isHidden = true
cardBeginView.isHidden = true
cardEndView.isHidden = true
signBeginView.isHidden = true
signEndView.isHidden = true
return
}
cardLabel.isHidden = false
signLabel.isHidden = false
cardBeginView.isHidden = false
cardEndView.isHidden = false
signBeginView.isHidden = false
signEndView.isHidden = false
self.firstUrl = firstUrl
self.viewModel.getPublicImageUrl(firstUrl) {[weak self] success, error in
guard let self = self else { return }
guard let url = success else { return }
self.frontImageButton.kf.setBackgroundImage(with: URL(string: url), for: .normal, completionHandler: { _ in
self.frontDeleteButton.isHidden = false
})
self.frontImageButton.setContent("", "")
}
guard let lastUrl = urls?.last, lastUrl.count != 0 else { return }
self.lastUrl = lastUrl
self.viewModel.getPublicImageUrl(lastUrl) {[weak self] success, error in
guard let self = self else { return }
guard let url = success else { return }
self.backSurfaceImageButton.kf.setBackgroundImage(with: URL(string: url), for: .normal, completionHandler: { _ in
self.backSurfaceDeleteButton.isHidden = false
})
self.backSurfaceImageButton.setContent("", "")
}
}
}
var data: [YHItemModel] = [] {
didSet {
for item in data {
let isShow = item.isShowPrompts ?? false
let message = item.message ?? ""
let isNeed = item.isNeed ?? false
if item.id == .id1 {
cardBeginView.dataSource = item
if isShow && message.count == 0 && isNeed {
cardBeginView.snp.updateConstraints { make in
make.height.equalTo(72)
}
} else {
cardBeginView.snp.updateConstraints { make in
make.height.equalTo(52)
}
}
}
if item.id == .id2 {
cardEndView.dataSource = item
if isShow && message.count == 0 && isNeed {
cardEndView.snp.updateConstraints { make in
make.height.equalTo(72)
}
} else {
cardEndView.snp.updateConstraints { make in
make.height.equalTo(52)
}
}
if self.compareDates(dateString1: item.message ?? "", dateString2: self.dataModel.latest_validaty_date) {
failString = ""
} else {
failString = "卡片有效期不足,需要为\(self.dataModel.latest_validaty_date)或以后"
}
}
if item.id == .id3 {
signBeginView.dataSource = item
if isShow && message.count == 0 && isNeed {
signBeginView.snp.updateConstraints { make in
make.height.equalTo(72)
}
} else {
signBeginView.snp.updateConstraints { make in
make.height.equalTo(52)
}
}
}
if item.id == .id4 {
signEndView.dataSource = item
if isShow && message.count == 0 && isNeed {
signEndView.snp.updateConstraints { make in
make.height.equalTo(72)
}
} else {
signEndView.snp.updateConstraints { make in
make.height.equalTo(52)
}
}
if self.compareDates(dateString1: item.message ?? "", dateString2: self.dataModel.latest_validaty_date) {
if failString == "签注有效期不足,需要为\(self.dataModel.latest_validaty_date)或以后" {
failString = ""
}
} else {
if failString == "卡片有效期不足,需要为\(self.dataModel.latest_validaty_date)或以后" {
} else {
failString = "签注有效期不足,需要为\(self.dataModel.latest_validaty_date)或以后"
}
}
}
}
}
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
selectionStyle = .none
setupUI()
}
func setupUI() {
contentView.backgroundColor = .clear
backgroundColor = .clear
centerView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
return view
}()
contentView.addSubview(centerView)
centerView.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.top.equalTo(0)
make.bottom.equalTo(-16)
}
titleLabel = {
let label = UILabel()
// label.font = UIFont.PFSC_M(ofSize: 17)
let str = "* " + "港澳通行证 (逗留D签注)"
let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.PFSC_M(ofSize: 17),
.foregroundColor: UIColor.mainTextColor
]
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
let starRange = NSRange(location: 0, length: 2)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
label.attributedText = questionAttrStr
// label.textColor = UIColor.mainTextColor
return label
}()
centerView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(16)
make.height.equalTo(20)
}
exampleButton = {
let button = UIButton(type: .custom)
button.backgroundColor = UIColor.brandMainColor.withAlphaComponent(0.08)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 10)
button.contentHorizontalAlignment = .center
button.setTitle("示例模板", for: .normal)
button.setTitleColor( UIColor.brandMainColor, for: .normal)
button.layer.cornerRadius = kCornerRadius3
button.addTarget(self, action: #selector(exampleClick), for: .touchUpInside)
return button
}()
centerView.addSubview(exampleButton)
exampleButton.snp.makeConstraints { make in
make.left.equalTo(titleLabel.snp.right).offset(8)
make.centerY.equalTo(titleLabel.snp.centerY)
make.height.equalTo(14)
make.width.equalTo(48)
}
let lineView = {
let view = UIView()
view.backgroundColor = UIColor.separatorColor
return view
}()
centerView.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(52)
make.height.equalTo(1)
make.right.equalTo(-18)
}
frontLabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = UIColor.mainTextColor50
label.text = "证件页1"
label.textAlignment = .center
return label
}()
centerView.addSubview(frontLabel)
frontLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(self.snp.centerX)
make.top.equalTo(64)
make.height.equalTo(20)
}
backSurfaceLabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = UIColor.mainTextColor50
label.textAlignment = .center
label.text = "证件页2"
return label
}()
centerView.addSubview(backSurfaceLabel)
backSurfaceLabel.snp.makeConstraints { make in
make.right.equalTo(-18)
make.left.equalTo(self.snp.centerX)
make.top.equalTo(64)
make.height.equalTo(20)
}
frontImageButton = {
let button = YHCardButton()
button.setContent("card_upload", "点击上传")
button.setBackgroundImage(UIImage(named: firstImageName), for: .normal)
button.addTarget(self, action: #selector(frontImageClick), for: .touchUpInside)
button.layer.cornerRadius = 4
button.clipsToBounds = true
return button
}()
centerView.addSubview(frontImageButton)
frontImageButton.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(96)
make.height.equalTo(102)
make.width.equalTo(CGFloat(147).fix)
}
frontDeleteButton = {
let button = UIButton(type: .custom)
button.setBackgroundImage(UIImage(named: "service_card_delete"), for: .normal)
button.addTarget(self, action: #selector(frontDeleteClick), for: .touchUpInside)
button.isHidden = true
return button
}()
centerView.addSubview(frontDeleteButton)
frontDeleteButton.snp.makeConstraints { make in
make.centerX.equalTo(frontImageButton.snp.right)
make.centerY.equalTo(frontImageButton.snp.top)
make.height.equalTo(21)
make.width.equalTo(21)
}
backSurfaceImageButton = {
let button = YHCardButton()
button.setContent("card_upload", "点击上传")
button.setBackgroundImage(UIImage(named: lastImageName), for: .normal)
button.addTarget(self, action: #selector(backSurfaceImageClick), for: .touchUpInside)
button.layer.cornerRadius = 4
button.clipsToBounds = true
return button
}()
centerView.addSubview(backSurfaceImageButton)
backSurfaceImageButton.snp.makeConstraints { make in
make.right.equalTo(-18)
make.top.equalTo(96)
make.height.equalTo(102)
make.width.equalTo(CGFloat(147).fix)
}
backSurfaceDeleteButton = {
let button = UIButton(type: .custom)
button.setBackgroundImage(UIImage(named: "service_card_delete"), for: .normal)
button.addTarget(self, action: #selector(backSurfaceDeleteClick), for: .touchUpInside)
button.isHidden = true
return button
}()
centerView.addSubview(backSurfaceDeleteButton)
backSurfaceDeleteButton.snp.makeConstraints { make in
make.centerX.equalTo(backSurfaceImageButton.snp.right)
make.centerY.equalTo(backSurfaceImageButton.snp.top)
make.height.equalTo(21)
make.width.equalTo(21)
}
activityIndicator = {
let view = UIActivityIndicatorView()
view.style = .medium
return view
}()
centerView.addSubview(activityIndicator)
activityIndicator.snp.makeConstraints { make in
make.center.equalTo(backSurfaceImageButton.snp.center)
make.height.equalTo(25)
make.width.equalTo(25)
}
showMessageLabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = UIColor.failColor
label.text = "无法识别,请核查文件"
return label
}()
centerView.addSubview(showMessageLabel)
showMessageLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(201)
make.height.equalTo(20)
}
cardLabel = {
let label = UILabel()
label.font = UIFont.PFSC_M(ofSize: 15)
label.textColor = UIColor.mainTextColor
label.text = "卡片有效期"
return label
}()
centerView.addSubview(cardLabel)
cardLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(229)
make.height.equalTo(20)
}
cardBeginView = {
let view = YHItemView()
let line = UIView()
line.backgroundColor = UIColor.separatorColor
view.addSubview(line)
line.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(0.5)
}
return view
}()
cardBeginView.block = {[weak self] model in
guard let self = self else { return }
if let block = self.block {
block(model)
}
}
centerView.addSubview(cardBeginView)
cardBeginView.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(cardLabel.snp.bottom)
make.height.equalTo(52)
make.right.equalTo(-18)
}
cardEndView = {
let view = YHItemView()
let line = UIView()
line.backgroundColor = UIColor.separatorColor
view.addSubview(line)
line.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(0.5)
}
return view
}()
cardEndView.block = {[weak self] model in
guard let self = self else { return }
if let block = self.block {
block(model)
if self.compareDates(dateString1: model.message ?? "", dateString2: self.dataModel.latest_validaty_date) {
if failString == "卡片有效期不足,需要为\(self.dataModel.latest_validaty_date)或以后" {
failString = ""
}
} else {
failString = "卡片有效期不足,需要为\(self.dataModel.latest_validaty_date)或以后"
}
}
}
centerView.addSubview(cardEndView)
cardEndView.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(cardBeginView.snp.bottom)
make.height.equalTo(52)
make.right.equalTo(-18)
}
signLabel = {
let label = UILabel()
label.font = UIFont.PFSC_M(ofSize: 15)
label.textColor = UIColor.mainTextColor
label.text = "签注有效期"
return label
}()
centerView.addSubview(signLabel)
signLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(cardEndView.snp.bottom).offset(24)
make.height.equalTo(20)
make.right.equalTo(-18)
}
signBeginView = {
let view = YHItemView()
let line = UIView()
line.backgroundColor = UIColor.separatorColor
view.addSubview(line)
line.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(0.5)
}
return view
}()
signBeginView.block = {[weak self] model in
guard let self = self else { return }
if let block = self.block {
block(model)
}
}
centerView.addSubview(signBeginView)
signBeginView.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(signLabel.snp.bottom)
make.height.equalTo(52)
make.right.equalTo(-18)
}
signEndView = {
let view = YHItemView()
return view
}()
signEndView.block = {[weak self] model in
guard let self = self else { return }
if let block = self.block {
block(model)
if self.compareDates(dateString1: model.message ?? "", dateString2: self.dataModel.latest_validaty_date) {
if failString == "签注有效期不足,需要为\(self.dataModel.latest_validaty_date)或以后" {
failString = ""
}
} else {
failString = "签注有效期不足,需要为\(self.dataModel.latest_validaty_date)或以后"
}
}
}
centerView.addSubview(signEndView)
signEndView.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(signBeginView.snp.bottom)
make.height.equalTo(52)
make.right.equalTo(-18)
}
}
@objc func exampleClick() {
YHAdopterCardExampleView.exampleView(type: .travel).show()
}
@objc func frontImageClick() {
if firstUrl.count != 0 {
let vc = YHImageViewController()
vc.imgString = firstUrl
UIViewController.current?.navigationController?.pushViewController(vc)
return
}
YHImagePickerView.show() {[weak self] image in
guard let self = self else { return }
self.frontImageButton.setContent("card_loading", "上传中")
self.frontImageButton.startRotationAnimation()
self.viewModel.uploadImage(image) {[weak self] success, error in
guard let self = self else { return }
self.frontImageButton.stopRotationAnimation()
self.frontImageButton.setContent("", "")
guard let url = success else { return }
self.frontImageButton.setBackgroundImage(image, for: .normal)
self.frontDeleteButton.isHidden = false
if let block = self.urlBlock {
block(url, 0)
}
}
}
}
@objc func backSurfaceImageClick() {
if lastUrl.count != 0 {
let vc = YHImageViewController()
vc.imgString = lastUrl
UIViewController.current?.navigationController?.pushViewController(vc)
return
}
YHImagePickerView.show() {[weak self] image in
guard let self = self else { return }
self.backSurfaceImageButton.setContent("card_loading", "上传中")
self.backSurfaceImageButton.startRotationAnimation()
self.viewModel.uploadImage(image) {[weak self] success, error in
guard let self = self else { return }
self.backSurfaceImageButton.stopRotationAnimation()
self.backSurfaceImageButton.setContent("", "")
guard let url = success else { return }
self.backSurfaceImageButton.setBackgroundImage(image, for: .normal)
self.backSurfaceDeleteButton.isHidden = false
if let block = self.urlBlock {
block(url, 1)
}
}
}
}
@objc func frontDeleteClick() {
firstUrl = ""
frontDeleteButton.isHidden = true
frontImageButton.setBackgroundImage(UIImage(named: firstImageName), for: .normal)
frontImageButton.setContent("card_upload", "点击上传")
if let block = self.deleteBlock {
block("", 0)
}
}
@objc func backSurfaceDeleteClick() {
lastUrl = ""
backSurfaceDeleteButton.isHidden = true
backSurfaceImageButton.setBackgroundImage(UIImage(named: lastImageName), for: .normal)
backSurfaceImageButton.setContent("card_upload", "点击上传")
if let block = self.deleteBlock {
block("", 1)
}
}
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
}
}
//
// YHResignUploadTravelPassportTableViewCell.swift
// galaxy
//
// Created by EDY on 2024/10/14.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHResignUploadTravelPassportTableViewCell: UITableViewCell {
static let cellReuseIdentifier = "YHResignUploadTravelPassportTableViewCell"
typealias UrlBlock = (_ url: String, _ index: Int) -> ()
var urlBlock: UrlBlock?
var deleteBlock: UrlBlock?
typealias ItemBlock = (_ model: YHItemModel) -> ()
var block: ItemBlock?
var centerView: UIView!
var titleLabel: UILabel!
var exampleButton: UIButton!
var frontLabel: UILabel!
var frontImageButton: YHCardButton!
var frontDeleteButton: UIButton!
var activityIndicator: UIActivityIndicatorView!
var showMessageLabel: UILabel!
var cardBeginView: YHItemView!
var cardEndView: YHItemView!
var viewModel: YHBaseViewModel = YHBaseViewModel()
var firstUrl: String = ""
var lastUrl: String = ""
var dataModel: YHResignUploadTravelCardDetailModel = YHResignUploadTravelCardDetailModel()
var failString: String = "" {
didSet {
showMessageLabel.text = failString
}
}
var firstImageName: String = "" {
didSet {
frontImageButton.setBackgroundImage(UIImage(named: firstImageName), for: .normal)
}
}
var firstLabelName: String = "" {
didSet {
frontLabel.text = firstLabelName
}
}
var urls: [String]? {
didSet {
guard let firstUrl = urls?.first, firstUrl.count != 0 else {
cardBeginView.isHidden = true
cardEndView.isHidden = true
return
}
cardBeginView.isHidden = false
cardEndView.isHidden = false
self.firstUrl = firstUrl
self.viewModel.getPublicImageUrl(firstUrl) {[weak self] success, error in
guard let self = self else { return }
guard let url = success else { return }
self.frontImageButton.kf.setBackgroundImage(with: URL(string: url), for: .normal, completionHandler: { _ in
self.frontDeleteButton.isHidden = false
})
self.frontImageButton.setContent("", "")
}
}
}
var data: [YHItemModel] = [] {
didSet {
for item in data {
let isShow = item.isShowPrompts ?? false
let message = item.message ?? ""
let isNeed = item.isNeed ?? false
if item.id == .id1 {
cardBeginView.dataSource = item
if isShow && message.count == 0 && isNeed {
cardBeginView.snp.updateConstraints { make in
make.height.equalTo(72)
}
} else {
cardBeginView.snp.updateConstraints { make in
make.height.equalTo(52)
}
}
}
if item.id == .id2 {
cardEndView.dataSource = item
if isShow && message.count == 0 && isNeed {
cardEndView.snp.updateConstraints { make in
make.height.equalTo(72)
}
} else {
cardEndView.snp.updateConstraints { make in
make.height.equalTo(52)
}
}
if self.compareDates(dateString1: item.message ?? "", dateString2: self.dataModel.latest_validaty_date) {
failString = ""
} else {
failString = "有效期不足,需要为\(self.dataModel.latest_validaty_date)或以后"
}
}
}
}
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
selectionStyle = .none
setupUI()
}
func setupUI() {
contentView.backgroundColor = .clear
backgroundColor = .clear
centerView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
return view
}()
contentView.addSubview(centerView)
centerView.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.top.equalTo(0)
make.bottom.equalTo(-16)
}
titleLabel = {
let label = UILabel()
let str = "* " + "护照信息"
let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.PFSC_M(ofSize: 17),
.foregroundColor: UIColor.mainTextColor
]
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
let starRange = NSRange(location: 0, length: 2)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
label.attributedText = questionAttrStr
return label
}()
centerView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(16)
make.height.equalTo(20)
}
exampleButton = {
let button = UIButton(type: .custom)
button.backgroundColor = UIColor.brandMainColor.withAlphaComponent(0.08)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 10)
button.contentHorizontalAlignment = .center
button.setTitle("示例模板", for: .normal)
button.setTitleColor( UIColor.brandMainColor, for: .normal)
button.layer.cornerRadius = kCornerRadius3
button.addTarget(self, action: #selector(exampleClick), for: .touchUpInside)
return button
}()
centerView.addSubview(exampleButton)
exampleButton.snp.makeConstraints { make in
make.left.equalTo(titleLabel.snp.right).offset(8)
make.centerY.equalTo(titleLabel.snp.centerY)
make.height.equalTo(14)
make.width.equalTo(48)
}
let lineView = {
let view = UIView()
view.backgroundColor = UIColor.separatorColor
return view
}()
centerView.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(52)
make.height.equalTo(1)
make.right.equalTo(-18)
}
frontLabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = UIColor.mainTextColor50
label.text = "证件页1"
label.textAlignment = .center
return label
}()
centerView.addSubview(frontLabel)
frontLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(self.snp.centerX)
make.top.equalTo(64)
make.height.equalTo(20)
}
frontImageButton = {
let button = YHCardButton()
button.setContent("card_upload", "点击上传")
button.setBackgroundImage(UIImage(named: firstImageName), for: .normal)
button.addTarget(self, action: #selector(frontImageClick), for: .touchUpInside)
button.layer.cornerRadius = 4
button.clipsToBounds = true
return button
}()
centerView.addSubview(frontImageButton)
frontImageButton.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(96)
make.height.equalTo(102)
make.width.equalTo(CGFloat(147).fix)
}
frontDeleteButton = {
let button = UIButton(type: .custom)
button.setBackgroundImage(UIImage(named: "service_card_delete"), for: .normal)
button.addTarget(self, action: #selector(frontDeleteClick), for: .touchUpInside)
button.isHidden = true
return button
}()
centerView.addSubview(frontDeleteButton)
frontDeleteButton.snp.makeConstraints { make in
make.centerX.equalTo(frontImageButton.snp.right)
make.centerY.equalTo(frontImageButton.snp.top)
make.height.equalTo(21)
make.width.equalTo(21)
}
activityIndicator = {
let view = UIActivityIndicatorView()
view.style = .medium
return view
}()
centerView.addSubview(activityIndicator)
activityIndicator.snp.makeConstraints { make in
make.center.equalTo(frontImageButton.snp.center)
make.height.equalTo(25)
make.width.equalTo(25)
}
showMessageLabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = UIColor.failColor
label.text = "无法识别,请核查文件"
return label
}()
centerView.addSubview(showMessageLabel)
showMessageLabel.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(201)
make.height.equalTo(20)
}
cardBeginView = {
let view = YHItemView()
let line = UIView()
line.backgroundColor = UIColor.separatorColor
view.addSubview(line)
line.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(0.5)
}
return view
}()
cardBeginView.block = {[weak self] model in
guard let self = self else { return }
if let block = self.block {
block(model)
}
}
centerView.addSubview(cardBeginView)
cardBeginView.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(229)
make.height.equalTo(52)
make.right.equalTo(-18)
}
cardEndView = {
let view = YHItemView()
return view
}()
cardEndView.block = {[weak self] model in
guard let self = self else { return }
if let block = self.block {
block(model)
if self.compareDates(dateString1: model.message ?? "", dateString2: self.dataModel.latest_validaty_date) {
failString = ""
} else {
failString = "有效期不足,需要为\(self.dataModel.latest_validaty_date)或以后"
}
}
}
centerView.addSubview(cardEndView)
cardEndView.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(cardBeginView.snp.bottom)
make.height.equalTo(52)
make.right.equalTo(-18)
}
}
@objc func exampleClick() {
YHAdopterCardExampleView.exampleView(type: .chinaTravel).show()
}
@objc func frontImageClick() {
if firstUrl.count != 0 {
let vc = YHImageViewController()
vc.imgString = firstUrl
UIViewController.current?.navigationController?.pushViewController(vc)
return
}
YHImagePickerView.show() {[weak self] image in
guard let self = self else { return }
self.frontImageButton.setContent("card_loading", "上传中")
self.frontImageButton.startRotationAnimation()
self.viewModel.uploadImage(image) {[weak self] success, error in
guard let self = self else { return }
self.frontImageButton.stopRotationAnimation()
self.frontImageButton.setContent("", "")
guard let url = success else { return }
self.frontImageButton.setBackgroundImage(image, for: .normal)
self.frontDeleteButton.isHidden = false
if let block = self.urlBlock {
block(url, 0)
}
}
}
}
@objc func frontDeleteClick() {
firstUrl = ""
frontDeleteButton.isHidden = true
frontImageButton.setBackgroundImage(UIImage(named: firstImageName), for: .normal)
frontImageButton.setContent("card_upload", "点击上传")
if let block = self.deleteBlock {
block("", 0)
}
}
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
}
}
//
// YHResignUploadTravelCardDetailViewModel.swift
// galaxy
//
// Created by EDY on 2024/10/14.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHResignUploadTravelCardDetailViewModel: YHBaseViewModel {
var dataModel : YHResignUploadTravelCardDetailModel = YHResignUploadTravelCardDetailModel()
func submitResignCertificateUpdate(_ params: [String : Any],callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.TravelCard.save
let _ = YHNetRequest.postRequest(url: strUrl,params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
callBackBlock(true,nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callBackBlock(false,err)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
func getBaseDataSource(_ isShowPrompt: Bool) -> [YHItemModel] {
let item1 = YHItemModel(id: .id1, isNeed: true, title: "开始时间", isUserKeyBoard: false, prompts: "请选择", message: getResultString(dataModel.issue_start), type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择开始时间")
let item2 = YHItemModel(id: .id2, isNeed: true, title: "到期时间", isUserKeyBoard: false, prompts: "请选择", message: getResultString(dataModel.issue_end), type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择到期时间")
let item3 = YHItemModel(id: .id3, isNeed: true, title: "开始时间", isUserKeyBoard: false, prompts: "请选择", message: getResultString(dataModel.visa_start), type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择开始时间")
let item4 = YHItemModel(id: .id4, isNeed: true, title: "到期时间", isUserKeyBoard: false, prompts: "请选择", message: getResultString(dataModel.visa_end), type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择到期时间")
return [item1, item2, item3, item4]
}
func getPassPortDataSource(_ isShowPrompt: Bool) -> [YHItemModel] {
let item1 = YHItemModel(id: .id5, isNeed: true, title: "签发日期", isUserKeyBoard: false, prompts: "请选择", message: getResultString(dataModel.visa_start), type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择开始时间")
let item2 = YHItemModel(id: .id6, isNeed: true, title: "届满日期", isUserKeyBoard: false, prompts: "请选择", message: getResultString(dataModel.visa_end), type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择到期时间")
return [item1, item2]
}
func updateModel(_ item: YHItemModel) {
guard let type = item.id else { return }
switch type {
case .id1:
dataModel.issue_start = item.message ?? ""
case .id2:
dataModel.issue_end = item.message ?? ""
case .id3:
dataModel.visa_start = item.message ?? ""
case .id4:
dataModel.visa_end = item.message ?? ""
case .id5:
dataModel.visa_start = item.message ?? ""
case .id6:
dataModel.visa_end = item.message ?? ""
default:
break
}
}
func getResultString(_ data: String) -> String {
let dateString = data // 原始日期时间字符串
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" // 设置原始日期时间格式
if let date = dateFormatter.date(from: dateString) {
dateFormatter.dateFormat = "yyyy-MM-dd" // 设置目标日期格式
let convertedDateString = dateFormatter.string(from: date) // 转换日期到目标格式
return convertedDateString
}
return data
}
func getResignCertificateDetail(_ params: [String : Any],callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.TravelCard.detail
let _ = YHNetRequest.getRequest(url: strUrl,params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let resultModel = YHResignUploadTravelCardDetailModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.dataModel = resultModel
callBackBlock(true,nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callBackBlock(false,err)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
}
//
// YHResignUploadTravelCardViewModel.swift
// galaxy
//
// Created by EDY on 2024/10/14.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHResignUploadTravelCardViewModel: YHBaseViewModel {
//列表信息
var arrTravelDocs : [YHResignUploadTravelCardListModel] = []
//旅行证件嫌弃
var travelDetailModel : YHTravelDocsPreparationDetailModel?
}
extension YHResignUploadTravelCardViewModel {
//获取旅行证件准备列表
func getTravelDocsList(orderID: Int, renewalId: Int, callBackBlock:@escaping (_ success: Bool,_ err:YHErrorModel?)->()) {
let params: [String : Any] = ["order_id": orderID, "renewal_id": renewalId]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.TravelCard.list
let _ = YHNetRequest.getRequest(url: strUrl, params:params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
guard let dic = json.data?.peel as? [Any],let list = [YHResignUploadTravelCardListModel].deserialize(from: dic) else {
let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
self.arrTravelDocs = []
callBackBlock(false, err)
return
}
self.arrTravelDocs = list
callBackBlock(true, nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callBackBlock(false,err)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
//获取旅行证件详情
func getTravelDocsDetailInfo(param : [String:Any],callBackBlock:@escaping (_ success: Bool,_ err:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.TravelDocsPreparation.getTravelDocsDetailApi
let _ = YHNetRequest.getRequest(url: strUrl,params:param) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let resultModel = YHTravelDocsPreparationDetailModel.deserialize(from: dic) else {
let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
self.travelDetailModel = nil
callBackBlock(false, err)
return
}
self.travelDetailModel = resultModel
for item in resultModel.list {
if let item = item {
item.latest_validaty_date = self.travelDetailModel?.latest_validaty_date ?? ""
item.china_travel_latest_validaty_date = self.travelDetailModel?.china_travel_latest_validaty_date ?? ""
item.age = resultModel.age
}
}
callBackBlock(true, nil)
} else {
self.travelDetailModel = nil
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callBackBlock(false,err)
}
} failBlock: { err in
self.travelDetailModel = nil
callBackBlock(false,err)
}
}
//保存旅行证件
func saveTravelDocsInfo(params: [String: Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.TravelDocsPreparation.saveTravelDocsInfoApi
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else {
callBackBlock(false,nil)
return
}
if json.code == 200 {
callBackBlock(true,nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callBackBlock(false,err)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
}
......@@ -594,4 +594,11 @@ class YHAllApiName {
// 确认在港
static let confirmInHK = "super-app/renewal-visa/confirm-in-hk"
}
//续签旅行证件
struct TravelCard {
static let list = "super-app/renewal/travel-cert-list"
static let detail = "super-app/renewal/travel-cert-detail"
static let save = "super-app/renewal/travel-cert-save"
}
}
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