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
b97c8321
Commit
b97c8321
authored
Oct 10, 2024
by
pete谢兆麟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
上传旅行证件UI
parent
334ddb21
Changes
19
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
892 additions
and
1 deletion
+892
-1
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+68
-0
YHServiceCenterViewController.swift
...ligentService(服务中心)/C/YHServiceCenterViewController.swift
+4
-1
YHResignUploadTravelCardListViewController.swift
...传旅行证件)/C/YHResignUploadTravelCardListViewController.swift
+185
-0
YHResignUploadTravelHKViewController.swift
...Crad(上传旅行证件)/C/YHResignUploadTravelHKViewController.swift
+0
-0
YHResignUploadTravelPassportViewController.swift
...传旅行证件)/C/YHResignUploadTravelPassportViewController.swift
+0
-0
YHResignUploadTravelCardFootViewController.swift
...传旅行证件)/V/YHResignUploadTravelCardFootViewController.swift
+79
-0
YHResignUploadTravelCardListfootView.swift
...Crad(上传旅行证件)/V/YHResignUploadTravelCardListfootView.swift
+183
-0
YHResignUploadTravelCardListheadView.swift
...Crad(上传旅行证件)/V/YHResignUploadTravelCardListheadView.swift
+37
-0
YHResignUploadTravelGuideView.swift
...dTravelCrad(上传旅行证件)/V/YHResignUploadTravelGuideView.swift
+264
-0
Contents.json
...s/Assets.xcassets/ServiceCenter/续签/续签上传旅行证件/Contents.json
+6
-0
Contents.json
...旅行证件/resign_upload_travel_foot_one.imageset/Contents.json
+22
-0
resign_upload_travel_foot_one@2x.png
...el_foot_one.imageset/resign_upload_travel_foot_one@2x.png
+0
-0
resign_upload_travel_foot_one@3x.png
...el_foot_one.imageset/resign_upload_travel_foot_one@3x.png
+0
-0
Contents.json
...旅行证件/resign_upload_travel_foot_two.imageset/Contents.json
+22
-0
resign_upload_travel_foot_two@2x.png
...el_foot_two.imageset/resign_upload_travel_foot_two@2x.png
+0
-0
resign_upload_travel_foot_two@3x.png
...el_foot_two.imageset/resign_upload_travel_foot_two@3x.png
+0
-0
Contents.json
...续签上传旅行证件/resign_upload_travel_head.imageset/Contents.json
+22
-0
resign_upload_travel_head@2x.png
...oad_travel_head.imageset/resign_upload_travel_head@2x.png
+0
-0
resign_upload_travel_head@3x.png
...oad_travel_head.imageset/resign_upload_travel_head@3x.png
+0
-0
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
b97c8321
This diff is collapsed.
Click to expand it.
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/C/YHServiceCenterViewController.swift
View file @
b97c8321
...
...
@@ -238,7 +238,10 @@ extension YHServiceCenterViewController {
}
@objc
func
pushOrderView
()
{
// let vc = YHResignUploadTravelHKViewController()
// self.navigationController?.pushViewController(vc)
//
// return
var
flag
=
true
if
self
.
state
==
1
||
self
.
state
==
3
{
flag
=
false
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/UploadTravelCrad(上传旅行证件)/C/YHResignUploadTravelCardListViewController.swift
0 → 100644
View file @
b97c8321
//
// YHResignUploadTravelCardListViewController.swift
// galaxy
//
// Created by EDY on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHResignUploadTravelCardListViewController
:
YHBaseViewController
{
var
orderId
:
Int
=
0
lazy
var
viewModel
:
YHTravelDocsPreparationViewModel
=
{
let
vm
=
YHTravelDocsPreparationViewModel
()
return
vm
}()
lazy
var
tableView
:
UITableView
=
{
let
tableView
=
UITableView
(
frame
:
.
zero
,
style
:
.
grouped
)
tableView
.
estimatedSectionHeaderHeight
=
16.0
tableView
.
estimatedSectionFooterHeight
=
0.01
tableView
.
contentInsetAdjustmentBehavior
=
.
never
tableView
.
showsVerticalScrollIndicator
=
false
tableView
.
separatorStyle
=
.
none
tableView
.
delegate
=
self
tableView
.
dataSource
=
self
tableView
.
tableHeaderView
=
YHResignUploadTravelCardListheadView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
16
+
90
.
fix
))
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
)
return
tableView
}()
//我已知悉,确认
lazy
var
rewardBtn
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
15
)
button
.
contentHorizontalAlignment
=
.
center
button
.
setTitle
(
"下一步,去查看续签总结"
,
for
:
.
normal
)
button
.
setTitle
(
"下一步,去查看续签总结"
,
for
:
.
disabled
)
button
.
setTitleColor
(
UIColor
.
white
,
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
.
white
,
for
:
.
disabled
)
button
.
layer
.
cornerRadius
=
kCornerRadius3
button
.
clipsToBounds
=
true
button
.
addTarget
(
self
,
action
:
#selector(
clickNextBtn
)
,
for
:
.
touchUpInside
)
button
.
backgroundColor
=
UIColor
.
brandMainColor
return
button
}()
lazy
var
bottomView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
view
.
addSubview
(
self
.
rewardBtn
)
self
.
rewardBtn
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
10
)
make
.
left
.
equalTo
(
kMargin
)
make
.
right
.
equalTo
(
-
kMargin
)
make
.
height
.
equalTo
(
44
)
}
view
.
layer
.
zPosition
=
10
return
view
}()
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
setupUI
()
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
loadData
()
}
@objc
func
clickNextBtn
()
{
}
}
private
extension
YHResignUploadTravelCardListViewController
{
func
loadData
()
{
let
params
:
[
String
:
Any
]
=
[
"order_id"
:
orderId
]
YHHUD
.
show
(
.
progress
(
message
:
"加载中..."
))
viewModel
.
getTravelDocsList
(
param
:
params
){
success
,
error
in
YHHUD
.
hide
()
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
()
{
gk_navTitle
=
"上传旅行证件"
gk_navBarAlpha
=
1.0
gk_navBackgroundColor
=
.
white
view
.
backgroundColor
=
UIColor
.
contentBkgColor
if
orderId
==
0
{
if
let
id
=
UserDefaults
.
standard
.
value
(
forKey
:
"orderIdForPreview"
)
{
self
.
orderId
=
(
id
as?
Int
)
??
0
}
}
view
.
addSubview
(
bottomView
)
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
make
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
98
)
make
.
bottom
.
equalToSuperview
()
}
view
.
addSubview
(
tableView
)
tableView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
make
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
k_Height_NavigationtBarAndStatuBar
)
make
.
bottom
.
equalTo
(
-
98
)
}
}
}
extension
YHResignUploadTravelCardListViewController
:
UITableViewDelegate
,
UITableViewDataSource
{
func
numberOfSections
(
in
tableView
:
UITableView
)
->
Int
{
return
viewModel
.
arrTravelDocs
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
return
1
}
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
let
approveCell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHTravelDocsPreparationListCell
.
cellReuseIdentifier
,
for
:
indexPath
)
as!
YHTravelDocsPreparationListCell
approveCell
.
dataModel
=
viewModel
.
arrTravelDocs
[
indexPath
.
section
]
return
approveCell
}
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
YHTravelDocsPreparationListCell
.
cellH
}
func
tableView
(
_
tableView
:
UITableView
,
didSelectRowAt
indexPath
:
IndexPath
)
{
if
let
model
=
viewModel
.
arrTravelDocs
[
indexPath
.
section
]
{
if
model
.
status
==
-
1
{
return
}
else
{
let
vc
=
YHTravelDocsPreparationDetailVC
()
vc
.
dataModel
=
model
vc
.
orderId
=
orderId
self
.
navigationController
?
.
pushViewController
(
vc
)
}
}
}
private
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
CGFloat
{
return
16.0
}
private
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
CGFloat
{
return
0.01
}
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
let
view
=
UIView
()
return
view
}
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
UIView
?
{
let
view
=
UIView
()
return
view
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/UploadTravelCrad(上传旅行证件)/C/YHResignUploadTravelHKViewController.swift
0 → 100644
View file @
b97c8321
This diff is collapsed.
Click to expand it.
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/UploadTravelCrad(上传旅行证件)/C/YHResignUploadTravelPassportViewController.swift
0 → 100644
View file @
b97c8321
This diff is collapsed.
Click to expand it.
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/UploadTravelCrad(上传旅行证件)/V/YHResignUploadTravelCardFootViewController.swift
0 → 100644
View file @
b97c8321
//
// YHResignUploadTravelCardFootViewController.swift
// galaxy
//
// Created by EDY on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
import
JXSegmentedView
class
YHResignUploadTravelCardFootViewController
:
YHBaseViewController
{
var
type
:
Int
=
0
var
imageView
:
UIImageView
!
var
linkButton
:
UIButton
!
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
setupUI
()
loadData
()
}
}
extension
YHResignUploadTravelCardFootViewController
{
func
loadData
()
{
}
func
setupUI
()
{
gk_navBarAlpha
=
0
gk_navigationBar
.
isHidden
=
true
view
.
backgroundColor
=
.
white
imageView
=
{
let
tableView
=
UIImageView
()
return
tableView
}()
view
.
addSubview
(
imageView
)
var
height
=
0.0
if
type
==
0
{
height
=
528
.
fix
imageView
.
image
=
UIImage
(
named
:
"resign_upload_travel_foot_one"
)
}
else
{
height
=
699
.
fix
imageView
.
image
=
UIImage
(
named
:
"resign_upload_travel_foot_two"
)
}
imageView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
right
.
left
.
equalToSuperview
()
make
.
height
.
equalTo
(
height
)
}
if
type
==
1
{
linkButton
=
{
let
tableView
=
UIButton
(
type
:
.
custom
)
tableView
.
addTarget
(
self
,
action
:
#selector(
click
)
,
for
:
.
touchUpInside
)
return
tableView
}()
view
.
addSubview
(
linkButton
)
linkButton
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
44
)
make
.
right
.
equalTo
(
-
44
)
make
.
top
.
equalTo
(
152
.
fix
)
make
.
height
.
equalTo
(
40
.
fix
)
}
}
view
.
layer
.
cornerRadius
=
kCornerRadius6
view
.
layer
.
maskedCorners
=
[
.
layerMinXMaxYCorner
,
.
layerMaxXMaxYCorner
]
}
@objc
func
click
()
{
YHHUD
.
flash
(
message
:
"跳转链接"
)
}
}
extension
YHResignUploadTravelCardFootViewController
:
JXSegmentedListContainerViewListDelegate
{
func
listView
()
->
UIView
{
return
view
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/UploadTravelCrad(上传旅行证件)/V/YHResignUploadTravelCardListfootView.swift
0 → 100644
View file @
b97c8321
//
// YHResignUploadTravelCardListfootView.swift
// galaxy
//
// Created by EDY on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
import
JXSegmentedView
class
YHResignUploadTravelCardListfootView
:
UIView
{
var
lineView
:
UIView
!
var
titleLabel
:
UILabel
!
var
controllerOne
:
YHResignUploadTravelCardFootViewController
=
YHResignUploadTravelCardFootViewController
()
var
controllerTwo
:
YHResignUploadTravelCardFootViewController
=
YHResignUploadTravelCardFootViewController
()
var
arrItemTitles
=
[
"大陆办理"
,
"香港办理"
]
var
arrItemVCs
:
[
YHResignUploadTravelCardFootViewController
]
=
[]
var
segmentedView
:
JXSegmentedView
=
JXSegmentedView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
48
))
lazy
var
segmentedDataSource
:
JXSegmentedDotDataSource
=
{
let
dataSource
=
JXSegmentedDotDataSource
()
dataSource
.
isTitleColorGradientEnabled
=
true
dataSource
.
titles
=
arrItemTitles
dataSource
.
titleNormalFont
=
UIFont
.
PFSC_M
(
ofSize
:
14
)
dataSource
.
titleNormalColor
=
.
labelTextColor2
dataSource
.
titleSelectedFont
=
UIFont
.
PFSC_M
(
ofSize
:
14
)
dataSource
.
titleSelectedColor
=
.
mainTextColor
dataSource
.
isItemSpacingAverageEnabled
=
false
dataSource
.
itemWidth
=
JXSegmentedViewAutomaticDimension
dataSource
.
itemSpacing
=
16
dataSource
.
dotStates
=
[
false
,
false
,
false
,
false
]
dataSource
.
dotSize
=
CGSize
(
width
:
6
,
height
:
6
)
return
dataSource
}()
//分类title 所对应的VC
lazy
var
listContainerView
:
JXSegmentedListContainerView
!
=
{
return
JXSegmentedListContainerView
(
dataSource
:
self
,
type
:
.
scrollView
)
}()
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
setUpView
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setUpView
()
{
backgroundColor
=
.
clear
lineView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
.
brandMainColor
return
view
}()
addSubview
(
lineView
)
lineView
.
snp
.
remakeConstraints
{
make
in
make
.
left
.
equalTo
(
16
)
make
.
top
.
equalTo
(
38
)
make
.
height
.
equalTo
(
12
)
make
.
width
.
equalTo
(
3
)
}
titleLabel
=
{
let
view
=
UILabel
()
view
.
text
=
"港澳通行证逗留(D)签注延期-办理指引"
view
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
17
)
view
.
textColor
=
UIColor
.
mainTextColor
return
view
}()
addSubview
(
titleLabel
)
titleLabel
.
snp
.
remakeConstraints
{
make
in
make
.
left
.
equalTo
(
27
)
make
.
centerY
.
equalTo
(
lineView
.
snp
.
centerY
)
make
.
height
.
equalTo
(
24
)
make
.
right
.
equalToSuperview
()
}
controllerOne
.
type
=
0
controllerTwo
.
type
=
1
arrItemVCs
.
append
(
controllerOne
)
arrItemVCs
.
append
(
controllerTwo
)
//segmentedViewDataSource一定要通过属性强持有!!!!!!!!!
// segmentedView.backgroundColor = .clear
segmentedView
.
collectionView
.
backgroundColor
=
.
white
// segmentedView.contentScrollView?.backgroundColor = .clear
addSubview
(
segmentedView
)
segmentedView
.
listContainer
=
listContainerView
addSubview
(
listContainerView
)
//分类Title
segmentedView
.
dataSource
=
segmentedDataSource
segmentedView
.
delegate
=
self
//配置指示器
let
indicator
=
JXSegmentedIndicatorLineView
()
indicator
.
indicatorWidth
=
16
indicator
.
indicatorColor
=
UIColor
.
brandMainColor
indicator
.
indicatorHeight
=
2
indicator
.
indicatorCornerRadius
=
0
indicator
.
verticalOffset
=
4
segmentedView
.
indicators
=
[
indicator
]
segmentedView
.
backgroundColor
=
UIColor
(
red
:
0.95
,
green
:
0.95
,
blue
:
0.95
,
alpha
:
1
)
segmentedView
.
snp
.
remakeConstraints
{
make
in
make
.
right
.
equalTo
(
-
16
)
make
.
left
.
equalTo
(
16
)
make
.
top
.
equalTo
(
82
)
make
.
height
.
equalTo
(
44
)
}
listContainerView
.
snp
.
remakeConstraints
{
make
in
make
.
right
.
equalTo
(
-
16
)
make
.
left
.
equalTo
(
16
)
make
.
top
.
equalTo
(
segmentedView
.
snp
.
bottom
)
make
.
height
.
equalTo
(
528
.
fix
)
}
let
whiteView
=
UIView
()
whiteView
.
backgroundColor
=
.
white
whiteView
.
layer
.
cornerRadius
=
kCornerRadius6
whiteView
.
layer
.
maskedCorners
=
[
.
layerMinXMinYCorner
,
.
layerMaxXMinYCorner
]
addSubview
(
whiteView
)
whiteView
.
snp
.
remakeConstraints
{
make
in
make
.
bottom
.
equalTo
(
segmentedView
.
snp
.
top
)
make
.
right
.
equalTo
(
-
16
)
make
.
left
.
equalTo
(
16
)
make
.
height
.
equalTo
(
6
)
}
}
}
extension
YHResignUploadTravelCardListfootView
:
JXSegmentedViewDelegate
{
func
segmentedView
(
_
segmentedView
:
JXSegmentedView
,
didSelectedItemAt
index
:
Int
)
{
if
index
==
0
{
listContainerView
.
snp
.
remakeConstraints
{
make
in
make
.
right
.
equalTo
(
-
16
)
make
.
left
.
equalTo
(
16
)
make
.
top
.
equalTo
(
segmentedView
.
snp
.
bottom
)
make
.
height
.
equalTo
(
528
.
fix
)
}
}
else
{
listContainerView
.
snp
.
remakeConstraints
{
make
in
make
.
right
.
equalTo
(
-
16
)
make
.
left
.
equalTo
(
16
)
make
.
top
.
equalTo
(
segmentedView
.
snp
.
bottom
)
make
.
bottom
.
equalTo
(
-
16
)
}
}
// NotificationCenter.default.post(name: Notification.Name(rawValue: "scrollViewDidEndDragging"), object: nil)
}
/// 正在滚动中的回调
///
/// - Parameters:
/// - segmentedView: JXSegmentedView
/// - leftIndex: 正在滚动中,相对位置处于左边的index
/// - rightIndex: 正在滚动中,相对位置处于右边的index
/// - percent: 从左往右计算的百分比
func
segmentedView
(
_
segmentedView
:
JXSegmentedView
,
scrollingFrom
leftIndex
:
Int
,
to
rightIndex
:
Int
,
percent
:
CGFloat
)
{
// NotificationCenter.default.post(name: Notification.Name(rawValue: "scrollViewWillBeginDragging"), object: nil)
}
}
extension
YHResignUploadTravelCardListfootView
:
JXSegmentedListContainerViewDataSource
{
func
numberOfLists
(
in
listContainerView
:
JXSegmentedListContainerView
)
->
Int
{
if
let
titleDataSource
=
segmentedView
.
dataSource
as?
JXSegmentedBaseDataSource
{
return
titleDataSource
.
dataSource
.
count
}
return
0
}
func
listContainerView
(
_
listContainerView
:
JXSegmentedListContainerView
,
initListAt
index
:
Int
)
->
JXSegmentedListContainerViewListDelegate
{
return
arrItemVCs
[
index
]
as!
JXSegmentedListContainerViewListDelegate
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/UploadTravelCrad(上传旅行证件)/V/YHResignUploadTravelCardListheadView.swift
0 → 100644
View file @
b97c8321
//
// YHResignUploadTravelCardListheadView.swift
// galaxy
//
// Created by EDY on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHResignUploadTravelCardListheadView
:
UIView
{
var
fileImageView
:
UIImageView
!
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
setUpView
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setUpView
()
{
fileImageView
=
{
let
view
=
UIImageView
()
view
.
image
=
UIImage
(
named
:
"resign_upload_travel_head"
)
return
view
}()
addSubview
(
fileImageView
)
fileImageView
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
-
16
)
make
.
top
.
left
.
equalTo
(
16
)
make
.
height
.
equalTo
(
90
.
fix
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/UploadTravelCrad(上传旅行证件)/V/YHResignUploadTravelGuideView.swift
0 → 100644
View file @
b97c8321
//
// YHResignUploadTravelGuideView.swift
// galaxy
//
// Created by EDY on 2024/10/10.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHResignUploadTravelGuideView
:
UIView
{
typealias
Block
=
()
->
()
var
block
:
Block
?
lazy
var
blackMaskView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hex
:
0x0F1214
,
alpha
:
0.5
)
// let tap = UITapGestureRecognizer(target: self, action: #selector(dismiss))
// view.addGestureRecognizer(tap)
return
view
}()
lazy
var
whiteContentView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
return
view
}()
lazy
var
bottomView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
clear
view
.
addSubview
(
self
.
rewardBtn
)
self
.
rewardBtn
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
10
)
make
.
left
.
equalTo
(
kMargin
)
make
.
right
.
equalTo
(
-
kMargin
)
make
.
height
.
equalTo
(
44
)
}
view
.
layer
.
zPosition
=
10
return
view
}()
//我已知悉,确认
lazy
var
rewardBtn
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
15
)
button
.
contentHorizontalAlignment
=
.
center
button
.
setTitle
(
"知道了"
,
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
.
white
,
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
kCornerRadius3
button
.
clipsToBounds
=
true
button
.
addTarget
(
self
,
action
:
#selector(
clickSureBtn
)
,
for
:
.
touchUpInside
)
button
.
backgroundColor
=
UIColor
.
brandMainColor
return
button
}()
lazy
var
myScrollView
:
UIScrollView
=
{
let
view
=
UIScrollView
()
view
.
backgroundColor
=
.
clear
view
.
showsVerticalScrollIndicator
=
false
view
.
delegate
=
self
return
view
}()
lazy
var
bkgImageV
:
UIImageView
=
{
let
imageV
=
UIImageView
()
imageV
.
image
=
UIImage
(
named
:
"official_approval_guideline"
)
imageV
.
contentMode
=
.
scaleToFill
imageV
.
clipsToBounds
=
true
return
imageV
}()
lazy
var
bkgImageV2
:
UIImageView
=
{
let
imageV
=
UIImageView
()
imageV
.
image
=
UIImage
(
named
:
"official_approval_guideline_bkg"
)
imageV
.
contentMode
=
.
scaleToFill
imageV
.
clipsToBounds
=
true
return
imageV
}()
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
setupUI
()
}
private
var
timer
:
Timer
?
private
var
maxCount
:
Int
=
5
//之前是否展示过
var
ischeckBeforeFlag
:
Bool
=
false
{
didSet
{
if
ischeckBeforeFlag
{
setButtonEnable
(
true
)
}
else
{
setButtonEnable
(
false
)
startTimer
()
}
}
}
}
extension
YHResignUploadTravelGuideView
{
static
func
sheetView
()
->
YHResignUploadTravelGuideView
{
let
view
=
YHResignUploadTravelGuideView
(
frame
:
UIScreen
.
main
.
bounds
)
return
view
}
func
show
()
{
UIApplication
.
shared
.
yhKeyWindow
()?
.
addSubview
(
self
)
UIView
.
animate
(
withDuration
:
0.5
)
{
let
whiteHeight
=
KScreenHeight
-
k_Height_NavigationtBarAndStatuBar
self
.
whiteContentView
.
frame
=
CGRect
(
x
:
0
,
y
:
KScreenHeight
-
whiteHeight
,
width
:
KScreenWidth
,
height
:
whiteHeight
)
}
}
@objc
func
dismiss
()
{
self
.
removeFromSuperview
()
}
@objc
func
clickSureBtn
()
{
self
.
block
?()
dismiss
()
}
}
private
extension
YHResignUploadTravelGuideView
{
@objc
func
timerFired
()
{
// 定时器触发时执行的代码
print
(
"Timer fired"
)
self
.
maxCount
=
self
.
maxCount
-
1
if
self
.
maxCount
<
0
{
self
.
stopTimer
()
self
.
setButtonEnable
(
true
)
}
else
{
rewardBtn
.
setTitle
(
"请上滑看完指引后操作(
\(
maxCount
)
s)"
,
for
:
.
normal
)
}
}
func
startTimer
()
{
stopTimer
()
timer
=
Timer
.
scheduledTimer
(
timeInterval
:
1.0
,
target
:
self
,
selector
:
#selector(
timerFired
)
,
userInfo
:
nil
,
repeats
:
true
)
RunLoop
.
current
.
add
(
timer
!
,
forMode
:
.
common
)
}
func
stopTimer
()
{
maxCount
=
5
timer
?
.
invalidate
()
timer
=
nil
}
func
setButtonEnable
(
_
enable
:
Bool
)
{
rewardBtn
.
isEnabled
=
enable
if
enable
{
rewardBtn
.
setTitle
(
"我已知悉,确认"
,
for
:
.
normal
)
rewardBtn
.
backgroundColor
=
UIColor
.
brandMainColor
}
else
{
rewardBtn
.
setTitle
(
"请上滑看完指引后操作(5s)"
,
for
:
.
normal
)
rewardBtn
.
backgroundColor
=
UIColor
(
hex
:
0xB7C0CC
,
alpha
:
1.0
)
}
}
func
setupUI
()
{
self
.
addSubview
(
blackMaskView
)
self
.
addSubview
(
whiteContentView
)
let
corner
=
UIRectCorner
(
rawValue
:
UIRectCorner
.
topLeft
.
rawValue
|
UIRectCorner
.
topRight
.
rawValue
)
let
path
=
UIBezierPath
(
roundedRect
:
bounds
,
byRoundingCorners
:
corner
,
cornerRadii
:
CGSizeMake
(
kCornerRadius6
,
kCornerRadius6
));
let
layer
=
CAShapeLayer
();
layer
.
frame
=
whiteContentView
.
bounds
;
layer
.
path
=
path
.
cgPath
;
whiteContentView
.
layer
.
mask
=
layer
;
whiteContentView
.
clipsToBounds
=
true
blackMaskView
.
snp
.
makeConstraints
{
make
in
make
.
edges
.
equalToSuperview
()
}
let
whiteHeight
=
KScreenHeight
-
k_Height_NavigationtBarAndStatuBar
// whiteContentView.snp.makeConstraints { make in
// make.left.right.bottom.equalToSuperview()
// make.height.equalTo(whiteHeight)
// }
whiteContentView
.
frame
=
CGRect
(
x
:
0
,
y
:
KScreenHeight
,
width
:
KScreenWidth
,
height
:
whiteHeight
)
whiteContentView
.
addSubview
(
bkgImageV2
)
bkgImageV2
.
snp
.
makeConstraints
{
make
in
make
.
top
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
375
)
}
whiteContentView
.
addSubview
(
bottomView
)
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
98
)
}
whiteContentView
.
addSubview
(
myScrollView
)
myScrollView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
20
)
make
.
right
.
equalToSuperview
()
make
.
width
.
equalTo
(
KScreenWidth
)
make
.
height
.
equalTo
(
whiteHeight
-
98
-
20
)
}
if
let
tmpImage
=
UIImage
(
named
:
"official_approval_guideline"
)
{
let
scale
=
Double
(
tmpImage
.
size
.
height
/
tmpImage
.
size
.
width
)
let
imageH
=
scale
*
KScreenWidth
myScrollView
.
addSubview
(
bkgImageV
)
bkgImageV
.
snp
.
makeConstraints
{
make
in
make
.
top
.
left
.
equalToSuperview
()
make
.
width
.
equalTo
(
KScreenWidth
)
make
.
height
.
equalTo
(
imageH
)
}
myScrollView
.
contentSize
=
CGSize
(
width
:
KScreenWidth
,
height
:
imageH
)
}
let
button
=
UIButton
(
type
:
.
custom
)
button
.
setBackgroundImage
(
UIImage
(
named
:
"service_card_close"
),
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
clickSureBtn
)
,
for
:
.
touchUpInside
)
whiteContentView
.
addSubview
(
button
)
button
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
-
21
)
make
.
width
.
height
.
equalTo
(
24
)
make
.
top
.
equalTo
(
16
)
}
}
}
extension
YHResignUploadTravelGuideView
:
UIScrollViewDelegate
{
func
scrollViewDidScroll
(
_
scrollView
:
UIScrollView
)
{
if
!
ischeckBeforeFlag
{
let
scrollViewContentHeight
=
scrollView
.
contentSize
.
height
let
scrollOffsetThreshold
=
scrollViewContentHeight
-
scrollView
.
bounds
.
size
.
height
// 当前滚动位置
let
currentOffset
=
scrollView
.
contentOffset
.
y
if
currentOffset
>
scrollOffsetThreshold
{
// 接近底部
// 滚动到了底部
ischeckBeforeFlag
=
true
stopTimer
()
setButtonEnable
(
true
)
}
else
{
// 没有滚动到底部
}
}
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签上传旅行证件/Contents.json
0 → 100644
View file @
b97c8321
{
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签上传旅行证件/resign_upload_travel_foot_one.imageset/Contents.json
0 → 100644
View file @
b97c8321
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"resign_upload_travel_foot_one@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"resign_upload_travel_foot_one@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签上传旅行证件/resign_upload_travel_foot_one.imageset/resign_upload_travel_foot_one@2x.png
0 → 100644
View file @
b97c8321
396 KB
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签上传旅行证件/resign_upload_travel_foot_one.imageset/resign_upload_travel_foot_one@3x.png
0 → 100644
View file @
b97c8321
742 KB
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签上传旅行证件/resign_upload_travel_foot_two.imageset/Contents.json
0 → 100644
View file @
b97c8321
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"resign_upload_travel_foot_two@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"resign_upload_travel_foot_two@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签上传旅行证件/resign_upload_travel_foot_two.imageset/resign_upload_travel_foot_two@2x.png
0 → 100644
View file @
b97c8321
426 KB
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签上传旅行证件/resign_upload_travel_foot_two.imageset/resign_upload_travel_foot_two@3x.png
0 → 100644
View file @
b97c8321
791 KB
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签上传旅行证件/resign_upload_travel_head.imageset/Contents.json
0 → 100644
View file @
b97c8321
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"resign_upload_travel_head@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"resign_upload_travel_head@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签上传旅行证件/resign_upload_travel_head.imageset/resign_upload_travel_head@2x.png
0 → 100644
View file @
b97c8321
74.2 KB
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/续签/续签上传旅行证件/resign_upload_travel_head.imageset/resign_upload_travel_head@3x.png
0 → 100644
View file @
b97c8321
142 KB
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