Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
galaxy-iOS
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mobile-group
galaxy-iOS
Commits
dd717f28
Commit
dd717f28
authored
Oct 14, 2024
by
Alex朱枝文
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
续签在港缴费接口调试
parent
c90615f5
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
343 additions
and
58 deletions
+343
-58
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+20
-0
YHServiceOrderListViewController.swift
...entService(服务中心)/C/YHServiceOrderListViewController.swift
+2
-1
YHHKVisaRenewalPaymentVC.swift
...saRenewalPayment(续签在港缴费)/C/YHHKVisaRenewalPaymentVC.swift
+172
-48
YHHKVisaRenewalPaymentList.swift
...RenewalPayment(续签在港缴费)/M/YHHKVisaRenewalPaymentList.swift
+56
-0
YHHKVisaRenewalPersonType.swift
...aRenewalPayment(续签在港缴费)/M/YHHKVisaRenewalPersonType.swift
+19
-0
YHVisaRenewalPaymentStatus.swift
...RenewalPayment(续签在港缴费)/M/YHVisaRenewalPaymentStatus.swift
+5
-5
YHVisaRenewalPresenceStatus.swift
...enewalPayment(续签在港缴费)/M/YHVisaRenewalPresenceStatus.swift
+4
-4
YHHKVisaRenewalPaymentViewModel.swift
...lPayment(续签在港缴费)/VM/YHHKVisaRenewalPaymentViewModel.swift
+58
-0
YHAllApiName.swift
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
+7
-0
resign_visa_guide_error_content@2x.png
...r_content.imageset/resign_visa_guide_error_content@2x.png
+0
-0
resign_visa_guide_error_content@3x.png
...r_content.imageset/resign_visa_guide_error_content@3x.png
+0
-0
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
dd717f28
...
...
@@ -250,6 +250,8 @@
044F39642CB90501007CA277
/* YHVisaRenewalItemDetailType.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044F39632CB90501007CA277
/* YHVisaRenewalItemDetailType.swift */
;
};
044F39662CB9500B007CA277
/* YHVisaRenewalPayConfirmingPresenceAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
044F39652CB9500B007CA277
/* YHVisaRenewalPayConfirmingPresenceAlertView.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 */
;
};
045A08C02C37ABF500BCBABA
/* YHSegmentView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045A08BF2C37ABF500BCBABA
/* YHSegmentView.swift */
;
};
045A08C22C37EB8B00BCBABA
/* YHMyFileListNoneCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045A08C12C37EB8B00BCBABA
/* YHMyFileListNoneCell.swift */
;
};
...
...
@@ -433,6 +435,7 @@
0468D4362B57752F00CFB916
/* YHUserModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D4352B57752F00CFB916
/* YHUserModel.swift */
;
};
0468D43A2B579EAC00CFB916
/* YHLoginViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0468D4392B579EAC00CFB916
/* YHLoginViewModel.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 */
;
};
0472CBAC2C5A11640096F48F
/* YHPrincleViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0472CBA32C5A11640096F48F
/* YHPrincleViewModel.swift */
;
};
0472E25C2C521E64008EAB6E
/* YHHomeIdentityListVC.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0472E25B2C521E64008EAB6E
/* YHHomeIdentityListVC.swift */
;
};
...
...
@@ -1185,6 +1188,8 @@
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>"
;
};
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>"
;
};
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>"
;
};
...
...
@@ -1371,6 +1376,7 @@
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>"
;
};
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>"
;
};
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>"
;
};
...
...
@@ -2558,6 +2564,7 @@
044F39272CB54BB3007CA277
/* HongKongVisaRenewalPayment(续签在港缴费) */
=
{
isa
=
PBXGroup
;
children
=
(
044F39692CBA7CB1007CA277
/* VM */
,
044F392A2CB54C15007CA277
/* V */
,
044F39292CB54C07007CA277
/* M */
,
044F39282CB54C00007CA277
/* C */
,
...
...
@@ -2581,6 +2588,8 @@
044F39552CB8C2FC007CA277
/* YHVisaRenewalPresenceStatus.swift */
,
044F39632CB90501007CA277
/* YHVisaRenewalItemDetailType.swift */
,
044F395F2CB8F3F9007CA277
/* YHVisaRenewalPaymentStatus.swift */
,
044F396C2CBA7FD1007CA277
/* YHHKVisaRenewalPaymentList.swift */
,
0471BF612CBA9046003B7942
/* YHHKVisaRenewalPersonType.swift */
,
);
path
=
M
;
sourceTree
=
"<group>"
;
...
...
@@ -2614,6 +2623,14 @@
path
=
V
;
sourceTree
=
"<group>"
;
};
044F39692CBA7CB1007CA277
/* VM */
=
{
isa
=
PBXGroup
;
children
=
(
044F396A2CBA7D3F007CA277
/* YHHKVisaRenewalPaymentViewModel.swift */
,
);
path
=
VM
;
sourceTree
=
"<group>"
;
};
045EED972B9F171A0022A143
/* ServiceProcess(我的信息流程) */
=
{
isa
=
PBXGroup
;
children
=
(
...
...
@@ -5494,6 +5511,7 @@
049663BA2BF6105C003C8295
/* YHRefreshHeaderAnimator.swift in Sources */
,
A5C382D12B5FAAB300C5E65C
/* YHContactItemModel.swift in Sources */
,
04B360F52C646844001EB053
/* YHPrincipleApprovedMailViewController.swift in Sources */
,
044F396B2CBA7D3F007CA277
/* YHHKVisaRenewalPaymentViewModel.swift in Sources */
,
044EE23C2C92BFDC00A2FE3A
/* YHResignCertificateModel.swift in Sources */
,
049D62C22C6F258700E811A1
/* YHFamilyInfoConfirmViewController.swift in Sources */
,
0430E64C2C732821000511E2
/* YHNoAdopterAlertView.swift in Sources */
,
...
...
@@ -5520,6 +5538,7 @@
04F957472C203033003C631C
/* YHMyGoodFriendsVC.swift in Sources */
,
044867B42BA1953B00DFAD4A
/* YHCertificateFilterView.swift in Sources */
,
045EEEDF2B9F171A0022A143
/* YHCollegeSearchBar.swift in Sources */
,
0471BF622CBA9046003B7942
/* YHHKVisaRenewalPersonType.swift in Sources */
,
044D0BEE2C2019C100C5CF5E
/* YHCommunityViewController.swift in Sources */
,
A567E5B52BD7643D00D5D5A0
/* YHSearchInfoBar.swift in Sources */
,
044EE2462C93E22E00A2FE3A
/* YHResignCertificateDetailHkViewController.swift in Sources */
,
...
...
@@ -5781,6 +5800,7 @@
A5CA3F5A2C74B64A00EB22F5
/* YHSmallWhiteNoteTemplateView.swift in Sources */
,
04CA2C312CBA653E00F36DE7
/* YHLookResignAlertView.swift in Sources */
,
045EEF242B9F171A0022A143
/* YHStepView.swift in Sources */
,
044F396D2CBA7FD1007CA277
/* YHHKVisaRenewalPaymentList.swift in Sources */
,
04CE1AD62C2AD91F001CB80A
/* YHApplyActivityResultViewController.swift in Sources */
,
044D0BF82C21572B00C5CF5E
/* YHAllowSettingTableViewCell.swift in Sources */
,
A5ACE9482B4564F7002C94D2
/* YHHUDWariningView.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/C/YHServiceOrderListViewController.swift
View file @
dd717f28
...
...
@@ -226,7 +226,8 @@ class YHServiceOrderListView: YHBaseViewController {
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
}
else
if
type
==
37
{
//在港签证缴费
let
vc
=
YHHKVisaRenewalPaymentVC
(
orderId
:
orderId
,
renewalId
:
stepId
)
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
}
else
if
type
==
38
{
//上传旅行证件
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/C/YHHKVisaRenewalPaymentVC.swift
View file @
dd717f28
...
...
@@ -97,9 +97,15 @@ class YHHKVisaRenewalPaymentVC: YHBaseViewController {
private
var
didShowGuideVC
=
false
private
lazy
var
viewModel
=
YHHKVisaRenewalPaymentViewModel
()
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
.
renewalId
=
renewalId
super
.
init
(
nibName
:
nil
,
bundle
:
nil
)
}
...
...
@@ -132,7 +138,10 @@ extension YHHKVisaRenewalPaymentVC {
}
@objc
private
func
clickSureButton
()
{
//
let
vc
=
YHResignUploadTravelCardListViewController
()
vc
.
orderId
=
orderId
// vc.batchId = renewalId
navigationController
?
.
pushViewController
(
vc
)
}
private
func
setupUI
()
{
...
...
@@ -179,49 +188,164 @@ extension YHHKVisaRenewalPaymentVC {
tableView
.
tableFooterView
=
UIView
(
frame
:
CGRect
.
init
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
kMargin
))
}
private
func
requestData
()
{
let
approvalPendingMsg
=
"申请人暂未获批,无法在港缴费"
let
confirmedPresenceMsg
=
"申请人已在港"
var
sections
:
[[
YHVisaRenewalItemDetailType
]]
=
[]
let
confirmingPresenceTips
:
ASAttributedString
=
.
init
(
string
:
"提示:"
,
.
foreground
(
UIColor
.
yhOrangeColor
))
+
.
init
(
string
:
"缴费前请先确认涉及到的"
)
+
.
init
(
string
:
"申请人在香港"
,
.
foreground
(
UIColor
.
yhOrangeColor
))
let
confirmingPresenceSection
:
[
YHVisaRenewalItemDetailType
]
=
[
.
sectionHeader
(
"确认申请人在港"
,
nil
),
.
tips
(
confirmingPresenceTips
),
.
residenceAction
(
"欧阳唯一"
,
.
approvalPending
,
.
mid
,
{
printLog
(
"欧阳唯一 approvalPending"
)
YHHUD
.
flash
(
message
:
approvalPendingMsg
)
}),
.
residenceAction
(
"欧阳唯二"
,
.
confirmingPresence
,
.
mid
,
{
[
weak
self
]
in
printLog
(
"欧阳唯二 confirmingPresence"
)
self
?
.
showAlertView
(
confirmBlock
:
{
//
})
}),
.
residenceAction
(
"欧阳唯三"
,
.
confirmedPresence
,
.
bottom
,
{
printLog
(
"欧阳唯三 confirmedPresence"
)
YHHUD
.
flash
(
message
:
confirmedPresenceMsg
)
})]
sections
.
append
(
confirmingPresenceSection
)
let
payMethodTips
:
ASAttributedString
=
.
init
(
string
:
"提示:"
,
.
foreground
(
UIColor
.
yhOrangeColor
))
+
.
init
(
string
:
"请先到下方“缴费成员”处"
)
+
.
init
(
string
:
"复制档案号"
,
.
foreground
(
UIColor
.
yhOrangeColor
))
+
.
init
(
string
:
"再缴费"
)
let
webPageUrl
=
"https://www.gov.hk/tc/residents/immigration/nonpermanent/onlinepaymentforevisa.htm"
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
)
let
payMembersSection
:
[
YHVisaRenewalItemDetailType
]
=
[
.
sectionHeader
(
"缴费成员"
,
"电子签证范例"
),
.
occupyingSpace
,
.
subHeader
(
"欧阳唯一"
,
.
pendingPayment
),
.
subInfo
(
"档案号:"
,
"TQEN-03709888-23"
,
"复制"
,
.
mid
,
nil
,
false
,
{
[
weak
self
]
in
self
?
.
copyToPasteBoard
(
"TQEN-03709888-23"
)
}),
.
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
self
?
.
copyToPasteBoard
(
"TQEN-03709888-23"
)
}),
.
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
self
?
.
copyToPasteBoard
(
"TQEN-03709888-23"
)
}),
.
subContent
(
"缴费电子签证:"
,
"Visa QMEN-0021813-22.pdf"
,
"查看"
,
.
mid
,
{
[
weak
self
]
in
self
?
.
gotoPreview
(
"Visa QMEN-0021813-22.pdf"
)
}),
.
subContent
(
"缴费电子签证链接:"
,
"https://www.gov.hk/tc/residents/immigration/nonpermanent/onlinepaymentforevisa.htm"
,
"复制"
,
.
bottom
,
{
[
weak
self
]
in
self
?
.
copyToPasteBoard
(
"https://www.gov.hk/tc/residents/immigration/nonpermanent/onlinepaymentforevisa.htm"
)
}),
.
occupyingSpace
,
.
subHeader
(
"欧阳唯五"
,
.
pendingApproval
),
.
subRemark
(
"续签申请暂未正式获批,请耐心等待"
),
.
occupyingSpace
]
sections
.
append
(
payMembersSection
)
datas
=
sections
tableView
.
reloadData
()
private
func
requestData
(
isNeedLoading
:
Bool
=
false
)
{
if
isNeedLoading
{
YHHUD
.
show
(
.
progress
(
message
:
"加载中..."
))
}
viewModel
.
getPaymentList
(
orderId
:
orderId
,
renewalId
:
renewalId
)
{
[
weak
self
]
paymentListModel
,
error
in
if
isNeedLoading
{
YHHUD
.
hide
()
}
guard
let
paymentListModel
=
paymentListModel
else
{
printLog
(
"YHHKVisaRenewalPaymentVC: 请求失败"
)
if
let
errorMsg
=
error
?
.
errorMsg
,
errorMsg
.
count
>
0
{
YHHUD
.
flash
(
message
:
errorMsg
)
}
return
}
guard
let
self
=
self
else
{
return
}
let
approvalPendingMsg
=
"申请人暂未获批,无法在港缴费"
let
confirmedPresenceMsg
=
"申请人已在港"
var
sections
:
[[
YHVisaRenewalItemDetailType
]]
=
[]
let
confirmingPresenceTips
:
ASAttributedString
=
.
init
(
string
:
"提示:"
,
.
foreground
(
UIColor
.
yhOrangeColor
))
+
.
init
(
string
:
"缴费前请先确认涉及到的"
)
+
.
init
(
string
:
"申请人在香港"
,
.
foreground
(
UIColor
.
yhOrangeColor
))
var
confirmingPresenceSection
:
[
YHVisaRenewalItemDetailType
]
=
[
.
sectionHeader
(
"确认申请人在港"
,
nil
),
.
tips
(
confirmingPresenceTips
)]
var
actionMembers
:
[
YHVisaRenewalItemDetailType
]
=
[]
var
paymentMembers
:
[
YHVisaRenewalItemDetailType
]
=
[]
self
.
updateSureButtonState
(
false
)
paymentListModel
.
list
.
forEach
{
[
weak
self
]
person
in
guard
let
self
=
self
else
{
return
}
if
let
presenceStatus
=
YHVisaRenewalPresenceStatus
(
rawValue
:
person
.
confirm_hk_status
)
{
let
member
=
YHVisaRenewalItemDetailType
.
residenceAction
(
person
.
name
,
presenceStatus
,
.
mid
)
{
switch
presenceStatus
{
case
.
approvalPending
:
printLog
(
"欧阳唯一 approvalPending"
)
YHHUD
.
flash
(
message
:
approvalPendingMsg
)
case
.
confirmingPresence
:
printLog
(
"欧阳唯二 confirmingPresence"
)
self
.
showAlertView
(
confirmBlock
:
{
[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
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
)?)
{
...
...
@@ -278,11 +402,11 @@ extension YHHKVisaRenewalPaymentVC {
}
present
(
vc
,
animated
:
true
,
completion
:
nil
)
}
private
func
copyToPasteBoard
(
_
text
:
String
)
{
private
func
copyToPasteBoard
(
_
text
:
String
,
message
:
String
=
"复制成功"
)
{
let
pasteBoard
=
UIPasteboard
.
general
pasteBoard
.
string
=
text
YHHUD
.
flash
(
message
:
"复制成功"
)
YHHUD
.
flash
(
message
:
message
)
}
private
func
saveImage
(
_
image
:
UIImage
)
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/M/YHHKVisaRenewalPaymentList.swift
0 → 100644
View file @
dd717f28
//
// 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
()
{
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/M/YHHKVisaRenewalPersonType.swift
0 → 100644
View file @
dd717f28
//
// 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
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/M/YHVisaRenewalPaymentStatus.swift
View file @
dd717f28
...
...
@@ -8,12 +8,12 @@
import
Foundation
enum
YHVisaRenewalPaymentStatus
{
enum
YHVisaRenewalPaymentStatus
:
Int
{
// 待缴费 待获批 已缴费 已过期
case
pendingPayment
case
p
endingApproval
case
paid
case
expired
case
pendingPayment
=
7
case
p
aid
=
8
case
expired
=
9
case
pendingApproval
=
10
var
title
:
String
{
switch
self
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/M/YHVisaRenewalPresenceStatus.swift
View file @
dd717f28
...
...
@@ -8,11 +8,11 @@
import
Foundation
enum
YHVisaRenewalPresenceStatus
{
enum
YHVisaRenewalPresenceStatus
:
Int
{
// 暂未获批 确认在港 已确认在港
case
approvalPending
case
confirmingPresence
case
confirmedPresence
case
approvalPending
=
0
case
confirmingPresence
=
1
case
confirmedPresence
=
2
var
title
:
String
{
switch
self
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/HongKongVisaRenewalPayment(续签在港缴费)/VM/YHHKVisaRenewalPaymentViewModel.swift
0 → 100644
View file @
dd717f28
//
// 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
)
}
}
}
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
View file @
dd717f28
...
...
@@ -585,4 +585,11 @@ class YHAllApiName {
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"
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签在港缴费/resign_visa_guide_error_content.imageset/resign_visa_guide_error_content@2x.png
View replaced file @
c90615f5
View file @
dd717f28
117 KB
|
W:
|
H:
117 KB
|
W:
|
H:
2-up
Swipe
Onion skin
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签在港缴费/resign_visa_guide_error_content.imageset/resign_visa_guide_error_content@3x.png
View replaced file @
c90615f5
View file @
dd717f28
209 KB
|
W:
|
H:
209 KB
|
W:
|
H:
2-up
Swipe
Onion skin
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment