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

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

parents cc57a111 dd717f28
...@@ -250,6 +250,8 @@ ...@@ -250,6 +250,8 @@
044F39642CB90501007CA277 /* YHVisaRenewalItemDetailType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044F39632CB90501007CA277 /* YHVisaRenewalItemDetailType.swift */; }; 044F39642CB90501007CA277 /* YHVisaRenewalItemDetailType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044F39632CB90501007CA277 /* YHVisaRenewalItemDetailType.swift */; };
044F39662CB9500B007CA277 /* YHVisaRenewalPayConfirmingPresenceAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044F39652CB9500B007CA277 /* YHVisaRenewalPayConfirmingPresenceAlertView.swift */; }; 044F39662CB9500B007CA277 /* YHVisaRenewalPayConfirmingPresenceAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044F39652CB9500B007CA277 /* YHVisaRenewalPayConfirmingPresenceAlertView.swift */; };
044F39682CBA1CAE007CA277 /* YHResignDocumentUploadSignedDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044F39672CBA1CAE007CA277 /* YHResignDocumentUploadSignedDocument.swift */; }; 044F39682CBA1CAE007CA277 /* YHResignDocumentUploadSignedDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044F39672CBA1CAE007CA277 /* YHResignDocumentUploadSignedDocument.swift */; };
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 */; }; 04506F552C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */; };
045A08C02C37ABF500BCBABA /* YHSegmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045A08BF2C37ABF500BCBABA /* YHSegmentView.swift */; }; 045A08C02C37ABF500BCBABA /* YHSegmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045A08BF2C37ABF500BCBABA /* YHSegmentView.swift */; };
045A08C22C37EB8B00BCBABA /* YHMyFileListNoneCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045A08C12C37EB8B00BCBABA /* YHMyFileListNoneCell.swift */; }; 045A08C22C37EB8B00BCBABA /* YHMyFileListNoneCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045A08C12C37EB8B00BCBABA /* YHMyFileListNoneCell.swift */; };
...@@ -433,6 +435,7 @@ ...@@ -433,6 +435,7 @@
0468D4362B57752F00CFB916 /* YHUserModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D4352B57752F00CFB916 /* YHUserModel.swift */; }; 0468D4362B57752F00CFB916 /* YHUserModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D4352B57752F00CFB916 /* YHUserModel.swift */; };
0468D43A2B579EAC00CFB916 /* YHLoginViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D4392B579EAC00CFB916 /* YHLoginViewModel.swift */; }; 0468D43A2B579EAC00CFB916 /* YHLoginViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D4392B579EAC00CFB916 /* YHLoginViewModel.swift */; };
046A95312C6EFB980059326A /* YHFamilyMemberRiskWarningAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 046A95302C6EFB980059326A /* YHFamilyMemberRiskWarningAlertView.swift */; }; 046A95312C6EFB980059326A /* YHFamilyMemberRiskWarningAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 046A95302C6EFB980059326A /* YHFamilyMemberRiskWarningAlertView.swift */; };
0471BF622CBA9046003B7942 /* YHHKVisaRenewalPersonType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0471BF612CBA9046003B7942 /* YHHKVisaRenewalPersonType.swift */; };
0472CBA82C5A11640096F48F /* YHPrincipleUploadListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0472CB9C2C5A11640096F48F /* YHPrincipleUploadListVC.swift */; }; 0472CBA82C5A11640096F48F /* YHPrincipleUploadListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0472CB9C2C5A11640096F48F /* YHPrincipleUploadListVC.swift */; };
0472CBAC2C5A11640096F48F /* YHPrincleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0472CBA32C5A11640096F48F /* YHPrincleViewModel.swift */; }; 0472CBAC2C5A11640096F48F /* YHPrincleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0472CBA32C5A11640096F48F /* YHPrincleViewModel.swift */; };
0472E25C2C521E64008EAB6E /* YHHomeIdentityListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0472E25B2C521E64008EAB6E /* YHHomeIdentityListVC.swift */; }; 0472E25C2C521E64008EAB6E /* YHHomeIdentityListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0472E25B2C521E64008EAB6E /* YHHomeIdentityListVC.swift */; };
...@@ -1185,6 +1188,8 @@ ...@@ -1185,6 +1188,8 @@
044F39632CB90501007CA277 /* YHVisaRenewalItemDetailType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVisaRenewalItemDetailType.swift; sourceTree = "<group>"; }; 044F39632CB90501007CA277 /* YHVisaRenewalItemDetailType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVisaRenewalItemDetailType.swift; sourceTree = "<group>"; };
044F39652CB9500B007CA277 /* YHVisaRenewalPayConfirmingPresenceAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVisaRenewalPayConfirmingPresenceAlertView.swift; sourceTree = "<group>"; }; 044F39652CB9500B007CA277 /* YHVisaRenewalPayConfirmingPresenceAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVisaRenewalPayConfirmingPresenceAlertView.swift; sourceTree = "<group>"; };
044F39672CBA1CAE007CA277 /* YHResignDocumentUploadSignedDocument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignDocumentUploadSignedDocument.swift; sourceTree = "<group>"; }; 044F39672CBA1CAE007CA277 /* YHResignDocumentUploadSignedDocument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResignDocumentUploadSignedDocument.swift; sourceTree = "<group>"; };
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>"; }; 04506F542C6F57E600738EA1 /* YHFamilyMemberInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyMemberInfoCell.swift; sourceTree = "<group>"; };
045A08BF2C37ABF500BCBABA /* YHSegmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSegmentView.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>"; }; 045A08C12C37EB8B00BCBABA /* YHMyFileListNoneCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMyFileListNoneCell.swift; sourceTree = "<group>"; };
...@@ -1371,6 +1376,7 @@ ...@@ -1371,6 +1376,7 @@
046AB7762BD674170086C6F1 /* galaxy.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = galaxy.entitlements; sourceTree = "<group>"; }; 046AB7762BD674170086C6F1 /* galaxy.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = galaxy.entitlements; sourceTree = "<group>"; };
046AB7772BD674170086C6F1 /* galaxyDebug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = galaxyDebug.entitlements; sourceTree = "<group>"; }; 046AB7772BD674170086C6F1 /* galaxyDebug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = galaxyDebug.entitlements; sourceTree = "<group>"; };
046AB7782BD674170086C6F1 /* galaxyTestEnv.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = galaxyTestEnv.entitlements; sourceTree = "<group>"; }; 046AB7782BD674170086C6F1 /* galaxyTestEnv.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = galaxyTestEnv.entitlements; sourceTree = "<group>"; };
0471BF612CBA9046003B7942 /* YHHKVisaRenewalPersonType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHKVisaRenewalPersonType.swift; sourceTree = "<group>"; };
0472CB9C2C5A11640096F48F /* YHPrincipleUploadListVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPrincipleUploadListVC.swift; sourceTree = "<group>"; }; 0472CB9C2C5A11640096F48F /* YHPrincipleUploadListVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPrincipleUploadListVC.swift; sourceTree = "<group>"; };
0472CBA32C5A11640096F48F /* YHPrincleViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPrincleViewModel.swift; sourceTree = "<group>"; }; 0472CBA32C5A11640096F48F /* YHPrincleViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPrincleViewModel.swift; sourceTree = "<group>"; };
0472E25B2C521E64008EAB6E /* YHHomeIdentityListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeIdentityListVC.swift; sourceTree = "<group>"; }; 0472E25B2C521E64008EAB6E /* YHHomeIdentityListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeIdentityListVC.swift; sourceTree = "<group>"; };
...@@ -2558,6 +2564,7 @@ ...@@ -2558,6 +2564,7 @@
044F39272CB54BB3007CA277 /* HongKongVisaRenewalPayment(续签在港缴费) */ = { 044F39272CB54BB3007CA277 /* HongKongVisaRenewalPayment(续签在港缴费) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
044F39692CBA7CB1007CA277 /* VM */,
044F392A2CB54C15007CA277 /* V */, 044F392A2CB54C15007CA277 /* V */,
044F39292CB54C07007CA277 /* M */, 044F39292CB54C07007CA277 /* M */,
044F39282CB54C00007CA277 /* C */, 044F39282CB54C00007CA277 /* C */,
...@@ -2581,6 +2588,8 @@ ...@@ -2581,6 +2588,8 @@
044F39552CB8C2FC007CA277 /* YHVisaRenewalPresenceStatus.swift */, 044F39552CB8C2FC007CA277 /* YHVisaRenewalPresenceStatus.swift */,
044F39632CB90501007CA277 /* YHVisaRenewalItemDetailType.swift */, 044F39632CB90501007CA277 /* YHVisaRenewalItemDetailType.swift */,
044F395F2CB8F3F9007CA277 /* YHVisaRenewalPaymentStatus.swift */, 044F395F2CB8F3F9007CA277 /* YHVisaRenewalPaymentStatus.swift */,
044F396C2CBA7FD1007CA277 /* YHHKVisaRenewalPaymentList.swift */,
0471BF612CBA9046003B7942 /* YHHKVisaRenewalPersonType.swift */,
); );
path = M; path = M;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -2614,6 +2623,14 @@ ...@@ -2614,6 +2623,14 @@
path = V; path = V;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
044F39692CBA7CB1007CA277 /* VM */ = {
isa = PBXGroup;
children = (
044F396A2CBA7D3F007CA277 /* YHHKVisaRenewalPaymentViewModel.swift */,
);
path = VM;
sourceTree = "<group>";
};
045EED972B9F171A0022A143 /* ServiceProcess(我的信息流程) */ = { 045EED972B9F171A0022A143 /* ServiceProcess(我的信息流程) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -5494,6 +5511,7 @@ ...@@ -5494,6 +5511,7 @@
049663BA2BF6105C003C8295 /* YHRefreshHeaderAnimator.swift in Sources */, 049663BA2BF6105C003C8295 /* YHRefreshHeaderAnimator.swift in Sources */,
A5C382D12B5FAAB300C5E65C /* YHContactItemModel.swift in Sources */, A5C382D12B5FAAB300C5E65C /* YHContactItemModel.swift in Sources */,
04B360F52C646844001EB053 /* YHPrincipleApprovedMailViewController.swift in Sources */, 04B360F52C646844001EB053 /* YHPrincipleApprovedMailViewController.swift in Sources */,
044F396B2CBA7D3F007CA277 /* YHHKVisaRenewalPaymentViewModel.swift in Sources */,
044EE23C2C92BFDC00A2FE3A /* YHResignCertificateModel.swift in Sources */, 044EE23C2C92BFDC00A2FE3A /* YHResignCertificateModel.swift in Sources */,
049D62C22C6F258700E811A1 /* YHFamilyInfoConfirmViewController.swift in Sources */, 049D62C22C6F258700E811A1 /* YHFamilyInfoConfirmViewController.swift in Sources */,
0430E64C2C732821000511E2 /* YHNoAdopterAlertView.swift in Sources */, 0430E64C2C732821000511E2 /* YHNoAdopterAlertView.swift in Sources */,
...@@ -5520,6 +5538,7 @@ ...@@ -5520,6 +5538,7 @@
04F957472C203033003C631C /* YHMyGoodFriendsVC.swift in Sources */, 04F957472C203033003C631C /* YHMyGoodFriendsVC.swift in Sources */,
044867B42BA1953B00DFAD4A /* YHCertificateFilterView.swift in Sources */, 044867B42BA1953B00DFAD4A /* YHCertificateFilterView.swift in Sources */,
045EEEDF2B9F171A0022A143 /* YHCollegeSearchBar.swift in Sources */, 045EEEDF2B9F171A0022A143 /* YHCollegeSearchBar.swift in Sources */,
0471BF622CBA9046003B7942 /* YHHKVisaRenewalPersonType.swift in Sources */,
044D0BEE2C2019C100C5CF5E /* YHCommunityViewController.swift in Sources */, 044D0BEE2C2019C100C5CF5E /* YHCommunityViewController.swift in Sources */,
A567E5B52BD7643D00D5D5A0 /* YHSearchInfoBar.swift in Sources */, A567E5B52BD7643D00D5D5A0 /* YHSearchInfoBar.swift in Sources */,
044EE2462C93E22E00A2FE3A /* YHResignCertificateDetailHkViewController.swift in Sources */, 044EE2462C93E22E00A2FE3A /* YHResignCertificateDetailHkViewController.swift in Sources */,
...@@ -5781,6 +5800,7 @@ ...@@ -5781,6 +5800,7 @@
A5CA3F5A2C74B64A00EB22F5 /* YHSmallWhiteNoteTemplateView.swift in Sources */, A5CA3F5A2C74B64A00EB22F5 /* YHSmallWhiteNoteTemplateView.swift in Sources */,
04CA2C312CBA653E00F36DE7 /* YHLookResignAlertView.swift in Sources */, 04CA2C312CBA653E00F36DE7 /* YHLookResignAlertView.swift in Sources */,
045EEF242B9F171A0022A143 /* YHStepView.swift in Sources */, 045EEF242B9F171A0022A143 /* YHStepView.swift in Sources */,
044F396D2CBA7FD1007CA277 /* YHHKVisaRenewalPaymentList.swift in Sources */,
04CE1AD62C2AD91F001CB80A /* YHApplyActivityResultViewController.swift in Sources */, 04CE1AD62C2AD91F001CB80A /* YHApplyActivityResultViewController.swift in Sources */,
044D0BF82C21572B00C5CF5E /* YHAllowSettingTableViewCell.swift in Sources */, 044D0BF82C21572B00C5CF5E /* YHAllowSettingTableViewCell.swift in Sources */,
A5ACE9482B4564F7002C94D2 /* YHHUDWariningView.swift in Sources */, A5ACE9482B4564F7002C94D2 /* YHHUDWariningView.swift in Sources */,
......
...@@ -226,7 +226,8 @@ class YHServiceOrderListView: YHBaseViewController { ...@@ -226,7 +226,8 @@ class YHServiceOrderListView: YHBaseViewController {
UIViewController.current?.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} else if type == 37 { } else if type == 37 {
//在港签证缴费 //在港签证缴费
let vc = YHHKVisaRenewalPaymentVC(orderId: orderId, renewalId: stepId)
UIViewController.current?.navigationController?.pushViewController(vc)
} else if type == 38 { } else if type == 38 {
//上传旅行证件 //上传旅行证件
......
...@@ -97,9 +97,15 @@ class YHHKVisaRenewalPaymentVC: YHBaseViewController { ...@@ -97,9 +97,15 @@ class YHHKVisaRenewalPaymentVC: YHBaseViewController {
private var didShowGuideVC = false private var didShowGuideVC = false
private lazy var viewModel = YHHKVisaRenewalPaymentViewModel()
private let orderId: Int private let orderId: Int
init(orderId: Int) { private let renewalId: Int
init(orderId: Int, renewalId: Int) {
// self.orderId = 136927
// self.renewalId = 343
self.orderId = orderId self.orderId = orderId
self.renewalId = renewalId
super.init(nibName: nil, bundle: nil) super.init(nibName: nil, bundle: nil)
} }
...@@ -132,7 +138,10 @@ extension YHHKVisaRenewalPaymentVC { ...@@ -132,7 +138,10 @@ extension YHHKVisaRenewalPaymentVC {
} }
@objc private func clickSureButton() { @objc private func clickSureButton() {
// let vc = YHResignUploadTravelCardListViewController()
vc.orderId = orderId
// vc.batchId = renewalId
navigationController?.pushViewController(vc)
} }
private func setupUI() { private func setupUI() {
...@@ -179,49 +188,164 @@ extension YHHKVisaRenewalPaymentVC { ...@@ -179,49 +188,164 @@ extension YHHKVisaRenewalPaymentVC {
tableView.tableFooterView = UIView(frame: CGRect.init(x: 0, y: 0, width: KScreenWidth, height: kMargin)) tableView.tableFooterView = UIView(frame: CGRect.init(x: 0, y: 0, width: KScreenWidth, height: kMargin))
} }
private func requestData() { private func requestData(isNeedLoading: Bool = false) {
let approvalPendingMsg = "申请人暂未获批,无法在港缴费" if isNeedLoading {
let confirmedPresenceMsg = "申请人已在港" YHHUD.show(.progress(message: "加载中..."))
var sections: [[YHVisaRenewalItemDetailType]] = [] }
let confirmingPresenceTips: ASAttributedString = .init(string: "提示:", .foreground(UIColor.yhOrangeColor)) + .init(string: "缴费前请先确认涉及到的") + .init(string: "申请人在香港", .foreground(UIColor.yhOrangeColor)) viewModel.getPaymentList(orderId: orderId, renewalId: renewalId) { [weak self] paymentListModel, error in
let confirmingPresenceSection: [YHVisaRenewalItemDetailType] = [.sectionHeader("确认申请人在港", nil), .tips(confirmingPresenceTips), .residenceAction("欧阳唯一", .approvalPending, .mid, { if isNeedLoading {
printLog("欧阳唯一 approvalPending") YHHUD.hide()
YHHUD.flash(message: approvalPendingMsg) }
}), .residenceAction("欧阳唯二", .confirmingPresence, .mid, { [weak self] in guard let paymentListModel = paymentListModel else {
printLog("欧阳唯二 confirmingPresence") printLog("YHHKVisaRenewalPaymentVC: 请求失败")
self?.showAlertView(confirmBlock: { if let errorMsg = error?.errorMsg, errorMsg.count > 0 {
// YHHUD.flash(message: errorMsg)
}) }
}), .residenceAction("欧阳唯三", .confirmedPresence, .bottom, { return
printLog("欧阳唯三 confirmedPresence") }
YHHUD.flash(message: confirmedPresenceMsg) guard let self = self else {
})] return
sections.append(confirmingPresenceSection) }
let payMethodTips: ASAttributedString = .init(string: "提示:", .foreground(UIColor.yhOrangeColor)) + .init(string: "请先到下方“缴费成员”处") + .init(string: "复制档案号", .foreground(UIColor.yhOrangeColor)) + .init(string: "再缴费") let approvalPendingMsg = "申请人暂未获批,无法在港缴费"
let webPageUrl = "https://www.gov.hk/tc/residents/immigration/nonpermanent/onlinepaymentforevisa.htm" let confirmedPresenceMsg = "申请人已在港"
let qrImage = webPageUrl.generateQRCode() var sections: [[YHVisaRenewalItemDetailType]] = []
let payMethodSection: [YHVisaRenewalItemDetailType] = [.sectionHeader("港府官网缴费方式", "缴费遇到问题?", { [weak self] in let confirmingPresenceTips: ASAttributedString = .init(string: "提示:", .foreground(UIColor.yhOrangeColor)) + .init(string: "缴费前请先确认涉及到的") + .init(string: "申请人在香港", .foreground(UIColor.yhOrangeColor))
printLog("缴费遇到问题") var confirmingPresenceSection: [YHVisaRenewalItemDetailType] = [.sectionHeader("确认申请人在港", nil), .tips(confirmingPresenceTips)]
self?.showTroubleshootingGuideVC() var actionMembers: [YHVisaRenewalItemDetailType] = []
}), .tips(payMethodTips), .payMethodUrl("方式一", "点击下方链接,跳转浏览器,进入港府官网操作缴费", webPageUrl, { [weak self] in var paymentMembers: [YHVisaRenewalItemDetailType] = []
printLog("点击下方链接,跳转浏览器") self.updateSureButtonState(false)
self?.gotoWebVC(webPageUrl) paymentListModel.list.forEach { [weak self] person in
}), .payMethodQrcode("方式二", "用其他设备直接扫码,或长按保存图片,通过微信识别打开", qrImage)] guard let self = self else {
sections.append(payMethodSection) return
let payMembersSection: [YHVisaRenewalItemDetailType] = [.sectionHeader("缴费成员", "电子签证范例"), .occupyingSpace, .subHeader("欧阳唯一", .pendingPayment), .subInfo("档案号:", "TQEN-03709888-23", "复制", .mid, nil, false, { [weak self] in }
self?.copyToPasteBoard("TQEN-03709888-23") if let presenceStatus = YHVisaRenewalPresenceStatus(rawValue: person.confirm_hk_status) {
}), .subInfo("可缴费时间段:", "2023.10.1 - 2023.11.20", nil), .subInfo("缴费金额:", "230港币(≈211.89人民币)", nil), .subRemark("请复制档案号去港府官网缴费"), .occupyingSpace, .subHeader("欧阳唯三", .expired), .subInfo("档案号:", "TQEN-03709888-23", "复制", .mid, nil, false, { [weak self] in let member = YHVisaRenewalItemDetailType.residenceAction(person.name, presenceStatus, .mid) {
self?.copyToPasteBoard("TQEN-03709888-23") switch presenceStatus {
}), .subInfo("可缴费时间段:", "2023.10.1 - 2023.11.20", nil), .subInfo("缴费金额:", "230港币(≈211.89人民币)", nil, .bottom), .occupyingSpace, .subHeader("欧阳唯四", .paid), .subInfo("档案号:", "TQEN-03709888-23", "复制", .mid, 12, true, { [weak self] in case .approvalPending:
self?.copyToPasteBoard("TQEN-03709888-23") printLog("欧阳唯一 approvalPending")
}), .subContent("缴费电子签证:", "Visa QMEN-0021813-22.pdf", "查看", .mid, { [weak self] in YHHUD.flash(message: approvalPendingMsg)
self?.gotoPreview("Visa QMEN-0021813-22.pdf") case .confirmingPresence:
}), .subContent("缴费电子签证链接:", "https://www.gov.hk/tc/residents/immigration/nonpermanent/onlinepaymentforevisa.htm", "复制", .bottom, { [weak self] in printLog("欧阳唯二 confirmingPresence")
self?.copyToPasteBoard("https://www.gov.hk/tc/residents/immigration/nonpermanent/onlinepaymentforevisa.htm") self.showAlertView(confirmBlock: { [weak self] in
}), .occupyingSpace, .subHeader("欧阳唯五", .pendingApproval), .subRemark("续签申请暂未正式获批,请耐心等待"), .occupyingSpace] guard let self = self else {
sections.append(payMembersSection) return
datas = sections }
tableView.reloadData() YHHUD.show(.progress(message: "确认中..."))
self.viewModel.confirmInHK(orderId: self.orderId, renewalId: self.renewalId, uid: person.id, type: person.type) { [weak self] success, error in
guard let self = self else {
return
}
YHHUD.hide()
if success {
YHHUD.flash(message: "已确认在港")
self.requestData(isNeedLoading: true)
} else {
if let errorMsg = error?.errorMsg, errorMsg.count > 0 {
YHHUD.flash(message: errorMsg)
}
}
}
})
case .confirmedPresence:
printLog("欧阳唯三 confirmedPresence")
YHHUD.flash(message: confirmedPresenceMsg)
}
}
actionMembers.append(member)
}
if let paymentStatus = YHVisaRenewalPaymentStatus(rawValue: person.pay_status) {
switch paymentStatus {
case .pendingPayment:
paymentMembers.append(.occupyingSpace)
paymentMembers.append(.subHeader(person.name, .pendingPayment))
paymentMembers.append(.subInfo("档案号:", person.file_num, "复制", .mid, nil, false, { [weak self] in
guard let self = self else {
return
}
self.copyToPasteBoard(person.file_num, message: "已复制档案号")
}))
paymentMembers.append(.subInfo("可缴费时间段:", "\(person.min_pay_time) - \(person.max_pay_time)", nil))
paymentMembers.append(.subInfo("缴费金额:", "\(person.fee_hkd)港币(≈\(person.fee_rmb)人民币)", nil))
paymentMembers.append(.subRemark("请复制档案号去港府官网缴费"))
case .paid:
paymentMembers.append(.occupyingSpace)
paymentMembers.append(.subHeader(person.name, .paid))
paymentMembers.append(.subInfo("档案号:", person.file_num, "复制", .mid, 12, true, { [weak self] in
guard let self = self else {
return
}
self.copyToPasteBoard(person.file_num, message: "已复制档案号")
}))
var fileName = person.receipt
if let url = URL(string: fileName) {
fileName = url.lastPathComponent
}
paymentMembers.append(.subContent("缴费电子签证:", fileName, "查看", .mid, { [weak self] in
guard let self = self else {
return
}
self.gotoPreview(person.receipt)
}))
paymentMembers.append(.subContent("缴费电子签证链接:", person.receipt, "复制", .bottom, { [weak self] in
guard let self = self else {
return
}
self.copyToPasteBoard(person.receipt, message: "已复制电子签证链接")
}))
self.updateSureButtonState(true)
case .expired:
paymentMembers.append(.occupyingSpace)
paymentMembers.append(.subHeader(person.name, .expired))
paymentMembers.append(.subInfo("档案号:", person.file_num, "复制", .mid, nil, false, { [weak self] in
guard let self = self else {
return
}
self.copyToPasteBoard(person.file_num, message: "已复制档案号")
}))
paymentMembers.append(.subInfo("可缴费时间段:", "\(person.min_pay_time) - \(person.max_pay_time)", nil))
paymentMembers.append(.subInfo("缴费金额:", "\(person.fee_hkd)港币(≈\(person.fee_rmb)人民币)", nil))
case .pendingApproval:
paymentMembers.append(.occupyingSpace)
paymentMembers.append(.subHeader(person.name, .pendingApproval))
paymentMembers.append(.subRemark("续签申请暂未正式获批,请耐心等待"))
}
}
}
if let lastMember = actionMembers.last, case let.residenceAction(name, status, _, action) = lastMember {
actionMembers[actionMembers.count - 1] = .residenceAction(name, status, .bottom, action)
confirmingPresenceSection.append(contentsOf: actionMembers)
}
if paymentMembers.count > 0 {
paymentMembers.append(.occupyingSpace)
}
sections.append(confirmingPresenceSection)
let payMethodTips: ASAttributedString = .init(string: "提示:", .foreground(UIColor.yhOrangeColor)) + .init(string: "请先到下方“缴费成员”处") + .init(string: "复制档案号", .foreground(UIColor.yhOrangeColor)) + .init(string: "再缴费")
let webPageUrl = paymentListModel.payment_url//"https://www.gov.hk/tc/residents/immigration/nonpermanent/onlinepaymentforevisa.htm"
if webPageUrl.count > 0, URL(string: webPageUrl) != nil {
let qrImage = webPageUrl.generateQRCode()
let payMethodSection: [YHVisaRenewalItemDetailType] = [.sectionHeader("港府官网缴费方式", "缴费遇到问题?", { [weak self] in
printLog("缴费遇到问题")
self?.showTroubleshootingGuideVC()
}), .tips(payMethodTips), .payMethodUrl("方式一", "点击下方链接,跳转浏览器,进入港府官网操作缴费", webPageUrl, { [weak self] in
printLog("点击下方链接,跳转浏览器")
self?.gotoWebVC(webPageUrl)
}), .payMethodQrcode("方式二", "用其他设备直接扫码,或长按保存图片,通过微信识别打开", qrImage)]
sections.append(payMethodSection)
}
var payMembersSection: [YHVisaRenewalItemDetailType] = [.sectionHeader("缴费成员", "电子签证范例")]
payMembersSection.append(contentsOf: paymentMembers)
sections.append(payMembersSection)
datas = sections
tableView.reloadData()
}
}
private func updateSureButtonState(_ isEnabled: Bool = false) {
sureButton.alpha = isEnabled ? 1 : 0.3
sureButton.isEnabled = isEnabled
} }
private func showAlertView(confirmBlock: (() -> Void)?) { private func showAlertView(confirmBlock: (() -> Void)?) {
...@@ -278,11 +402,11 @@ extension YHHKVisaRenewalPaymentVC { ...@@ -278,11 +402,11 @@ extension YHHKVisaRenewalPaymentVC {
} }
present(vc, animated: true, completion: nil) present(vc, animated: true, completion: nil)
} }
private func copyToPasteBoard(_ text: String) { private func copyToPasteBoard(_ text: String, message: String = "复制成功") {
let pasteBoard = UIPasteboard.general let pasteBoard = UIPasteboard.general
pasteBoard.string = text pasteBoard.string = text
YHHUD.flash(message: "复制成功") YHHUD.flash(message: message)
} }
private func saveImage(_ image: UIImage) { private func saveImage(_ image: UIImage) {
......
//
// YHHKVisaRenewalPaymentList.swift
// galaxy
//
// Created by alexzzw on 2024/10/12.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import Foundation
import SmartCodable
class YHHKVisaRenewalPaymentList: SmartCodable {
var payment_url: String = ""
var list: [YHHKVisaRenewalPaymentItem] = []
required init() {
}
}
class YHHKVisaRenewalPaymentItem: SmartCodable {
// 用户id
var id: Int = 0
// 用户类型 主申请人-applicant 配偶-spouse 孩子-child 母亲-mother 父亲-father 兄弟姐妹-brother
var type: String = ""
// 用户姓名
var name: String = ""
// 确认赴港状态 0-未获批 1-已获批未确认在港 2-已获批已确认在港
var confirm_hk_status: Int = 0
// 档案号
var file_num: String = ""
// 可缴费开始参考时间
var min_pay_time: String = ""
// 可缴费结束参考时间
var max_pay_time: String = ""
// 缴费金额港币
var fee_hkd: Int = 0
// 缴费金额人民币
var fee_rmb: String = ""
// 支付状态 7-待缴费 8-已缴费 9-已过期 10-待获批
var pay_status: Int = 0
// 电子签证地址
var receipt: String = ""
required init() {
}
}
//
// YHHKVisaRenewalPersonType.swift
// galaxy
//
// Created by alexzzw on 2024/10/12.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import Foundation
enum YHHKVisaRenewalPersonType: String {
// 主申请人-applicant 配偶-spouse 孩子-child 母亲-mother 父亲-father 兄弟姐妹-brother
case applicant
case spouse
case child
case mother
case father
case brother
}
...@@ -8,12 +8,12 @@ ...@@ -8,12 +8,12 @@
import Foundation import Foundation
enum YHVisaRenewalPaymentStatus { enum YHVisaRenewalPaymentStatus: Int {
// 待缴费 待获批 已缴费 已过期 // 待缴费 待获批 已缴费 已过期
case pendingPayment case pendingPayment = 7
case pendingApproval case paid = 8
case paid case expired = 9
case expired case pendingApproval = 10
var title: String { var title: String {
switch self { switch self {
......
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
import Foundation import Foundation
enum YHVisaRenewalPresenceStatus { enum YHVisaRenewalPresenceStatus: Int {
// 暂未获批 确认在港 已确认在港 // 暂未获批 确认在港 已确认在港
case approvalPending case approvalPending = 0
case confirmingPresence case confirmingPresence = 1
case confirmedPresence case confirmedPresence = 2
var title: String { var title: String {
switch self { switch self {
......
//
// YHHKVisaRenewalPaymentViewModel.swift
//
//
// Created by alexzzw on 2024/10/12.
//
import UIKit
class YHHKVisaRenewalPaymentViewModel: YHBaseViewModel {
func getPaymentList(orderId: Int, renewalId: Int, callback: @escaping (_ paymentListModel: YHHKVisaRenewalPaymentList?, _ error: YHErrorModel?) -> ()) {
let params: [String : Any] = ["order_id": orderId, "renewal_id": renewalId]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.ResignVisa.paymentList
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { json, code in
//1. json字符串 转 对象
printLog("model 是 ==> \(json)")
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let resultModel = YHHKVisaRenewalPaymentList.deserialize(from: dic) else {
let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
callback(nil, err)
return
}
callback(resultModel, nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callback(nil, err)
}
} failBlock: { err in
callback(nil, err)
}
}
func confirmInHK(orderId: Int, renewalId: Int, uid: Int, type: String, callBackBlock: @escaping (_ success: Bool, _ error: YHErrorModel?) -> () ) {
// 用户类型 主申请人-applicant 配偶-spouse 孩子-child 母亲-mother 父亲-father 兄弟姐妹-brother
let params: [String : Any] = ["order_id": orderId,
"renewal_id": renewalId,
"uid": uid,
"type": type]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.ResignVisa.confirmInHK
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { json, code in
//1. json字符串 转 对象
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)
}
}
}
...@@ -587,4 +587,11 @@ class YHAllApiName { ...@@ -587,4 +587,11 @@ class YHAllApiName {
static let list = "super-app/renewal/supplement/list" static let list = "super-app/renewal/supplement/list"
} }
// 续签-电子签证缴费
struct ResignVisa {
// 在港签证缴费列表
static let paymentList = "super-app/renewal-visa/payment-list"
// 确认在港
static let confirmInHK = "super-app/renewal-visa/confirm-in-hk"
}
} }
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