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
98e55521
Commit
98e55521
authored
Oct 17, 2024
by
David黄金龙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加 预约time选择器
parent
1d5b0471
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
713 additions
and
10 deletions
+713
-10
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+24
-0
YHPickTimeHoldView.swift
...point(在港递交预约)/V/RangeDatePicker2/YHPickTimeHoldView.swift
+83
-0
YHRangeDatePickerCell2.swift
...t(在港递交预约)/V/RangeDatePicker2/YHRangeDatePickerCell2.swift
+53
-0
YHRangeDatePickerSheetView2.swift
...交预约)/V/RangeDatePicker2/YHRangeDatePickerSheetView2.swift
+258
-0
YHRangeDatePickerView2.swift
...t(在港递交预约)/V/RangeDatePicker2/YHRangeDatePickerView2.swift
+251
-0
YHMyViewController.swift
...alaxy/Classes/Modules/Mine(我的)/C/YHMyViewController.swift
+22
-10
Contents.json
.../3赴港办证预约/appoint_warm_date_picker2.imageset/Contents.json
+22
-0
Group 33332539@2x.png
.../appoint_warm_date_picker2.imageset/Group 33332539@2x.png
+0
-0
Group 33332539@3x.png
.../appoint_warm_date_picker2.imageset/Group 33332539@3x.png
+0
-0
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
98e55521
...
...
@@ -829,6 +829,10 @@
A59B43CB2C4A151200B28379
/* YHStatusAdvantageVC.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A59B43CA2C4A151200B28379
/* YHStatusAdvantageVC.swift */
;
};
A59B43CD2C4A36DF00B28379
/* YHStatusAdvantageBottomView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A59B43CC2C4A36DF00B28379
/* YHStatusAdvantageBottomView.swift */
;
};
A59B43CF2C4B5AD100B28379
/* YHShareViewOnTablebarView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A59B43CE2C4B5AD100B28379
/* YHShareViewOnTablebarView.swift */
;
};
A59FD0712CBFAC7800BBED55
/* YHRangeDatePickerView2.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A59FD06F2CBFAC7800BBED55
/* YHRangeDatePickerView2.swift */
;
};
A59FD0722CBFAC7800BBED55
/* YHRangeDatePickerSheetView2.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A59FD06E2CBFAC7800BBED55
/* YHRangeDatePickerSheetView2.swift */
;
};
A59FD0732CBFAC7800BBED55
/* YHRangeDatePickerCell2.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A59FD06D2CBFAC7800BBED55
/* YHRangeDatePickerCell2.swift */
;
};
A59FD0772CC0A62A00BBED55
/* YHPickTimeHoldView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A59FD0762CC0A62A00BBED55
/* YHPickTimeHoldView.swift */
;
};
A5A89FD72C256B94005A71DD
/* YHHomeLastMessageModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5A89FD62C256B94005A71DD
/* YHHomeLastMessageModel.swift */
;
};
A5ACE9282B4564F7002C94D2
/* YHSmsCodeView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5ACE8DE2B4564F7002C94D2
/* YHSmsCodeView.swift */
;
};
A5ACE9292B4564F7002C94D2
/* YHSmsCodeInputView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5ACE8E02B4564F7002C94D2
/* YHSmsCodeInputView.swift */
;
};
...
...
@@ -1795,6 +1799,10 @@
A59B43CA2C4A151200B28379
/* YHStatusAdvantageVC.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHStatusAdvantageVC.swift
;
sourceTree
=
"<group>"
;
};
A59B43CC2C4A36DF00B28379
/* YHStatusAdvantageBottomView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHStatusAdvantageBottomView.swift
;
sourceTree
=
"<group>"
;
};
A59B43CE2C4B5AD100B28379
/* YHShareViewOnTablebarView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHShareViewOnTablebarView.swift
;
sourceTree
=
"<group>"
;
};
A59FD06D2CBFAC7800BBED55
/* YHRangeDatePickerCell2.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHRangeDatePickerCell2.swift
;
sourceTree
=
"<group>"
;
};
A59FD06E2CBFAC7800BBED55
/* YHRangeDatePickerSheetView2.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHRangeDatePickerSheetView2.swift
;
sourceTree
=
"<group>"
;
};
A59FD06F2CBFAC7800BBED55
/* YHRangeDatePickerView2.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHRangeDatePickerView2.swift
;
sourceTree
=
"<group>"
;
};
A59FD0762CC0A62A00BBED55
/* YHPickTimeHoldView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPickTimeHoldView.swift
;
sourceTree
=
"<group>"
;
};
A5A89FD62C256B94005A71DD
/* YHHomeLastMessageModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHHomeLastMessageModel.swift
;
sourceTree
=
"<group>"
;
};
A5ACE8DE2B4564F7002C94D2
/* YHSmsCodeView.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSmsCodeView.swift
;
sourceTree
=
"<group>"
;
};
A5ACE8E02B4564F7002C94D2
/* YHSmsCodeInputView.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSmsCodeInputView.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -3619,6 +3627,7 @@
04912F672CB6A59C00CC3105
/* V */
=
{
isa
=
PBXGroup
;
children
=
(
A59FD0702CBFAC7800BBED55
/* RangeDatePicker2 */
,
04912F6D2CB6A64700CC3105
/* YHResignAppointSubmitTipsView.swift */
,
044E31C42CBCFDD200500F8E
/* YHResignAppointGuideLineView.swift */
,
04912F732CB7743900CC3105
/* YHResignAppointSelectTimeItemView.swift */
,
...
...
@@ -4562,6 +4571,17 @@
path
=
M
;
sourceTree
=
"<group>"
;
};
A59FD0702CBFAC7800BBED55
/* RangeDatePicker2 */
=
{
isa
=
PBXGroup
;
children
=
(
A59FD06D2CBFAC7800BBED55
/* YHRangeDatePickerCell2.swift */
,
A59FD06E2CBFAC7800BBED55
/* YHRangeDatePickerSheetView2.swift */
,
A59FD06F2CBFAC7800BBED55
/* YHRangeDatePickerView2.swift */
,
A59FD0762CC0A62A00BBED55
/* YHPickTimeHoldView.swift */
,
);
path
=
RangeDatePicker2
;
sourceTree
=
"<group>"
;
};
A5ACE8D72B4564F7002C94D2
/* Classes */
=
{
isa
=
PBXGroup
;
children
=
(
...
...
@@ -5564,6 +5584,9 @@
0435FA812BA186D600024EAE
/* YHMyFileMethodTableViewCell.swift in Sources */
,
F8BAADA32C4FB41F0074D6C3
/* YHUatHelper.swift in Sources */
,
0468D4282B50D4AF00CFB916
/* YHPrivacyAlertView.swift in Sources */
,
A59FD0712CBFAC7800BBED55
/* YHRangeDatePickerView2.swift in Sources */
,
A59FD0722CBFAC7800BBED55
/* YHRangeDatePickerSheetView2.swift in Sources */
,
A59FD0732CBFAC7800BBED55
/* YHRangeDatePickerCell2.swift in Sources */
,
045EEEB22B9F171A0022A143
/* YHWorkActionView.swift in Sources */
,
04CA2BF02CB7A74C00F36DE7
/* YHResignUploadTravelHKViewController.swift in Sources */
,
A58AC09F2BAC05BA00A30FA9
/* YHFileListItemsView.swift in Sources */
,
...
...
@@ -5995,6 +6018,7 @@
04F243292C942A5500DF2C74
/* YHResignDocumentDetailViewController.swift in Sources */
,
A5FD63C32B63438A00D1D9DA
/* YHContactMainItemStatusModel.swift in Sources */
,
045EEEEA2B9F171A0022A143
/* YHFamilyInitialInfo.swift in Sources */
,
A59FD0772CC0A62A00BBED55
/* YHPickTimeHoldView.swift in Sources */
,
04256E232C76D22400A37BA4
/* YHAppointItem.swift in Sources */
,
04256E212C76CA7800A37BA4
/* YHActivateHKVisaCell.swift in Sources */
,
043BA8752C241B38006EF02D
/* YHAddFriendCardCell.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/ResignHKAppoint(在港递交预约)/V/RangeDatePicker2/YHPickTimeHoldView.swift
0 → 100644
View file @
98e55521
//
// YHPickTimeHoldView.swift
// galaxy
//
// Created by davidhuangA on 2024/10/17.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHPickTimeHoldView
:
UIView
{
var
clickConfirmBtnBlock
:
((
YHResignConfirmHKStatus
)
->
())?
var
confirmHKStatus
:
YHResignConfirmHKStatus
=
.
waitConfirmHK
lazy
var
lineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
separatorColor
return
view
}()
lazy
var
applicantNamesLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
.
mainTextColor
label
.
text
=
"具体时间:"
return
label
}()
lazy
var
tipImageV
:
UIImageView
=
{
let
view
=
UIImageView
()
view
.
contentMode
=
.
scaleAspectFill
view
.
image
=
UIImage
(
named
:
"activity_travel_bkg"
)
return
view
}()
lazy
var
nextImageV
:
UIImageView
=
{
let
view
=
UIImageView
()
view
.
contentMode
=
.
scaleAspectFill
view
.
image
=
UIImage
(
named
:
"activity_travel_bkg"
)
return
view
}()
lazy
var
timeTextField
:
UITextField
=
{
let
tf
=
UITextField
()
tf
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
14
)
tf
.
textColor
=
UIColor
.
mainTextColor
tf
.
placeholder
=
"请选择"
return
tf
}()
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
createUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
@objc
func
didConfirmInHKBtnClicked
()
{
clickConfirmBtnBlock
?(
self
.
confirmHKStatus
)
}
func
createUI
()
{
self
.
addSubview
(
lineView
)
self
.
addSubview
(
applicantNamesLabel
)
lineView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
top
.
equalToSuperview
()
make
.
height
.
equalTo
(
1
)
}
applicantNamesLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
16
)
make
.
right
.
equalTo
(
-
18
-
71
-
5
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/ResignHKAppoint(在港递交预约)/V/RangeDatePicker2/YHRangeDatePickerCell2.swift
0 → 100644
View file @
98e55521
//
// YHRangeDatePickerCell2.swift
// galaxy
//
// Created by davidhuangA on 2024/8/22.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
import
FSCalendar
class
YHRangeDatePickerCell2
:
FSCalendarCell
{
static
let
cellReuseIdentifier
=
"YHRangeDatePickerCell2"
public
var
middleLayer
:
CALayer
=
CALayer
();
public
var
selectionLayer
:
CALayer
=
CALayer
();
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
let
selectionLayer
=
CALayer
()
selectionLayer
.
cornerRadius
=
3
selectionLayer
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.275
,
blue
:
0.706
,
alpha
:
1
)
.
cgColor
selectionLayer
.
actions
=
[
"hidden"
:
NSNull
()]
contentView
.
layer
.
insertSublayer
(
selectionLayer
,
below
:
titleLabel
?
.
layer
)
self
.
selectionLayer
=
selectionLayer
let
middleLayer
=
CALayer
()
middleLayer
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.275
,
blue
:
0.706
,
alpha
:
0.08
)
.
cgColor
middleLayer
.
actions
=
[
"hidden"
:
NSNull
()]
contentView
.
layer
.
insertSublayer
(
middleLayer
,
below
:
titleLabel
?
.
layer
)
self
.
middleLayer
=
middleLayer
shapeLayer
.
isHidden
=
true
}
required
init
!
(
coder
aDecoder
:
NSCoder
!
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
override
func
layoutSubviews
()
{
super
.
layoutSubviews
()
titleLabel
?
.
frame
=
contentView
.
bounds
}
override
func
layoutSublayers
(
of
layer
:
CALayer
)
{
super
.
layoutSublayers
(
of
:
layer
)
middleLayer
.
frame
=
contentView
.
bounds
selectionLayer
.
frame
=
contentView
.
bounds
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/ResignHKAppoint(在港递交预约)/V/RangeDatePicker2/YHRangeDatePickerSheetView2.swift
0 → 100644
View file @
98e55521
//
// YHRangeDatePickerSheetView.swift
// galaxy
//
// Created by davidhuangA on 2024/8/22.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHRangeDatePickerSheetView2
:
UIView
{
static
let
contentViewH2
:
CGFloat
=
40
+
13
+
80
+
12
+
YHRangeDatePickerView2
.
viewH2
+
58
+
98
//(16 + 24) + (12 + 1) + (12 + 68) + 12 + YHRangeDatePickerView2.viewH2 + 52 + 6 + 98
typealias
Block
=
(
Date
,
Date
)
->
()
var
block
:
Block
?
lazy
var
blackMaskView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
hex
:
0x0F1214
,
alpha
:
0.5
)
return
view
}()
lazy
var
whiteContentView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
return
view
}()
lazy
var
titleLable
:
UILabel
=
{
let
label
=
UILabel
()
label
.
textColor
=
UIColor
.
mainTextColor
label
.
font
=
UIFont
.
PFSC_B
(
ofSize
:
17
)
label
.
text
=
"选择预约在港递交时间"
label
.
textAlignment
=
.
center
return
label
}()
lazy
var
lineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
separatorColor
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
closeBtn
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
addTarget
(
self
,
action
:
#selector(
dismiss
)
,
for
:
.
touchUpInside
)
button
.
setImage
(
UIImage
(
named
:
"work_example_close"
),
for
:
.
normal
)
button
.
setImage
(
UIImage
(
named
:
"work_example_close"
),
for
:
.
selected
)
return
button
}()
lazy
var
datePickView
:
YHRangeDatePickerView2
=
{
let
view
=
YHRangeDatePickerView2
()
return
view
}()
lazy
var
warnImageV
:
UIImageView
=
{
let
imageV
=
UIImageView
()
imageV
.
image
=
UIImage
(
named
:
"appoint_warm_date_picker2"
)
imageV
.
contentMode
=
.
scaleToFill
imageV
.
clipsToBounds
=
true
return
imageV
}()
lazy
var
timeHoldView
:
UIView
=
{
let
imageV
=
UIView
()
imageV
.
backgroundColor
=
.
yellow
//52
return
imageV
}()
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
setupUI
()
}
}
extension
YHRangeDatePickerSheetView2
{
static
func
sheetView
()
->
YHRangeDatePickerSheetView2
{
let
view
=
YHRangeDatePickerSheetView2
(
frame
:
UIScreen
.
main
.
bounds
)
return
view
}
func
show
()
{
UIApplication
.
shared
.
yhKeyWindow
()?
.
addSubview
(
self
)
UIView
.
animate
(
withDuration
:
0.5
)
{
let
whiteHeight
=
YHRangeDatePickerSheetView2
.
contentViewH2
self
.
whiteContentView
.
frame
=
CGRect
(
x
:
0
,
y
:
KScreenHeight
-
whiteHeight
,
width
:
KScreenWidth
,
height
:
whiteHeight
)
}
}
@objc
func
dismiss
()
{
removeFromSuperview
()
}
@objc
func
clickSureBtn
()
{
if
isChooseOk
()
{
if
let
date1
=
datePickView
.
startDate
,
let
date2
=
datePickView
.
endDate
{
self
.
block
?(
date1
,
date2
)
}
dismiss
()
}
else
{
YHHUD
.
flash
(
message
:
"选择开始/结束日期"
)
}
}
func
isChooseOk
()
->
Bool
{
if
datePickView
.
startDate
!=
nil
,
datePickView
.
endDate
!=
nil
{
return
true
}
return
false
}
}
private
extension
YHRangeDatePickerSheetView2
{
func
setSubmitButtonDisable
(
_
disableFlag
:
Bool
)
{
/*
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
}()
*/
rewardBtn
.
isEnabled
=
!
rewardBtn
.
isEnabled
if
disableFlag
{
//不可点击
rewardBtn
.
backgroundColor
=
UIColor
.
brandMainColor30
}
else
{
//可点击
rewardBtn
.
backgroundColor
=
UIColor
.
brandMainColor
}
}
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
=
YHRangeDatePickerSheetView2
.
contentViewH2
whiteContentView
.
frame
=
CGRect
(
x
:
0
,
y
:
KScreenHeight
,
width
:
KScreenWidth
,
height
:
whiteHeight
)
whiteContentView
.
addSubview
(
bottomView
)
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
98
)
}
whiteContentView
.
addSubview
(
titleLable
)
titleLable
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
kMargin
)
make
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
24
)
}
whiteContentView
.
addSubview
(
closeBtn
)
closeBtn
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
21
)
make
.
height
.
width
.
equalTo
(
24
)
make
.
centerY
.
equalTo
(
titleLable
.
snp
.
centerY
)
}
whiteContentView
.
addSubview
(
lineView
)
lineView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
titleLable
.
snp
.
bottom
)
.
offset
(
12
)
make
.
left
.
equalToSuperview
()
.
offset
(
21
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
21
)
make
.
height
.
equalTo
(
1
)
}
whiteContentView
.
addSubview
(
warnImageV
)
warnImageV
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
lineView
.
snp
.
bottom
)
.
offset
(
12
)
make
.
centerX
.
equalToSuperview
()
make
.
width
.
equalTo
(
343
)
make
.
height
.
equalTo
(
68
)
}
whiteContentView
.
addSubview
(
datePickView
)
datePickView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
warnImageV
.
snp
.
bottom
)
.
offset
(
12
)
make
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
YHRangeDatePickerView2
.
viewH2
)
}
whiteContentView
.
addSubview
(
timeHoldView
)
timeHoldView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
datePickView
.
snp
.
bottom
)
make
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
52
)
}
setSubmitButtonDisable
(
true
)
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/Resign(续签)/ResignHKAppoint(在港递交预约)/V/RangeDatePicker2/YHRangeDatePickerView2.swift
0 → 100644
View file @
98e55521
//
// YHRangeDatePickerView2.swift
// galaxy
//
// Created by davidhuangA on 2024/8/22.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
import
FSCalendar
class
YHRangeDatePickerView2
:
UIView
,
FSCalendarDataSource
,
FSCalendarDelegate
,
FSCalendarDelegateAppearance
{
static
let
viewH2
:
CGFloat
=
396
//508.0 - 52.0 -20 - 50
lazy
var
calendar
:
FSCalendar
=
{
// let calendar = FSCalendar(frame: CGRect(x: 0, y: (navigationController?.navigationBar.frame.maxY)! + 30, width: view.frame.size.width, height: 510))
let
calendar
=
FSCalendar
()
calendar
.
locale
=
NSLocale
(
localeIdentifier
:
"zh-CN"
)
as
Locale
calendar
.
dataSource
=
self
calendar
.
delegate
=
self
calendar
.
pagingEnabled
=
false
calendar
.
allowsMultipleSelection
=
true
calendar
.
rowHeight
=
60
calendar
.
weekdayHeight
=
40
calendar
.
locale
=
Locale
(
identifier
:
"zh-CN"
)
calendar
.
scope
=
.
month
calendar
.
appearance
.
headerDateFormat
=
"yyyy年MM月"
//隐藏 当日的 图片
calendar
.
today
=
nil
calendar
.
register
(
YHRangeDatePickerCell2
.
self
,
forCellReuseIdentifier
:
YHRangeDatePickerCell2
.
cellReuseIdentifier
)
self
.
calendar
=
calendar
//副标偏移量
calendar
.
appearance
.
subtitleOffset
=
CGPoint
(
x
:
0
,
y
:
16
)
//头部日期 字体
calendar
.
appearance
.
headerTitleFont
=
UIFont
(
name
:
"PingFangSC-Medium"
,
size
:
15
)
//头部日期 颜色
calendar
.
appearance
.
headerTitleColor
=
UIColor
(
red
:
0.071
,
green
:
0.102
,
blue
:
0.149
,
alpha
:
1
)
//头部week 字体
calendar
.
appearance
.
weekdayFont
=
UIFont
(
name
:
"PingFangSC-Regular"
,
size
:
13
)
//头部week 颜色
calendar
.
appearance
.
weekdayTextColor
=
UIColor
(
red
:
0.071
,
green
:
0.102
,
blue
:
0.149
,
alpha
:
1
)
//日历内容 默认颜色
// calendar.appearance.titleDefaultColor = UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 1)
//日历内容 字体
calendar
.
appearance
.
titleFont
=
UIFont
(
name
:
"PingFangSC-Medium"
,
size
:
16
)
calendar
.
appearance
.
subtitleFont
=
UIFont
(
name
:
"PingFangSC-Medium"
,
size
:
9
)
//日历内容 选择时 颜色
calendar
.
appearance
.
titleSelectionColor
=
.
white
calendar
.
appearance
.
subtitleSelectionColor
=
.
white
// calendar.appearance.todayColor = UIColor(red: 0, green: 0.275, blue: 0.706, alpha: 1)
// calendar.appearance.todaySelectionColor = .white
// calendar.appearance.titleTodayColor = UIColor(red: 0, green: 0.275, blue: 0.706, alpha: 1)
//非当月日期 颜色
calendar
.
appearance
.
titlePlaceholderColor
=
UIColor
(
red
:
0.071
,
green
:
0.102
,
blue
:
0.149
,
alpha
:
0.2
)
//日期 横线
calendar
.
appearance
.
separators
=
.
none
return
calendar
}()
lazy
var
gregorian
:
Calendar
=
{
let
gregorian
=
Calendar
(
identifier
:
.
chinese
)
return
gregorian
}()
lazy
var
dateFormatter
:
DateFormatter
=
{
let
dateFormatter
=
DateFormatter
()
dateFormatter
.
dateFormat
=
"yyyy-MM-dd"
return
dateFormatter
}()
// The start date of the range
var
startDate
:
Date
?
// The end date of the range
var
endDate
:
Date
?
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
.
zero
)
setupUI
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
}
// MARK: - FSCalendarDataSource
extension
YHRangeDatePickerView2
{
func
calendar
(
_
calendar
:
FSCalendar
,
subtitleFor
date
:
Date
)
->
String
?
{
if
let
start
=
startDate
{
if
self
.
gregorian
.
compare
(
start
,
to
:
date
,
toGranularity
:
.
day
)
.
rawValue
==
0
{
return
"开始"
}
}
if
let
end
=
endDate
{
if
self
.
gregorian
.
compare
(
end
,
to
:
date
,
toGranularity
:
.
day
)
.
rawValue
==
0
{
return
"结束"
}
}
return
nil
}
func
calendar
(
_
calendar
:
FSCalendar
,
titleFor
date
:
Date
)
->
String
?
{
return
self
.
gregorian
.
isDateInToday
(
date
)
?
"今"
:
nil
}
func
minimumDate
(
for
calendar
:
FSCalendar
)
->
Date
{
return
self
.
gregorian
.
date
(
byAdding
:
.
day
,
value
:
1
,
to
:
Date
())
!
}
func
maximumDate
(
for
calendar
:
FSCalendar
)
->
Date
{
return
self
.
gregorian
.
date
(
byAdding
:
.
day
,
value
:
365
,
to
:
Date
())
!
}
func
calendar
(
_
calendar
:
FSCalendar
,
cellFor
date
:
Date
,
at
monthPosition
:
FSCalendarMonthPosition
)
->
FSCalendarCell
{
let
cell
:
YHRangeDatePickerCell2
=
calendar
.
dequeueReusableCell
(
withIdentifier
:
YHRangeDatePickerCell2
.
cellReuseIdentifier
,
for
:
date
,
at
:
monthPosition
)
as!
YHRangeDatePickerCell2
return
cell
}
func
calendar
(
_
calendar
:
FSCalendar
,
willDisplay
cell
:
FSCalendarCell
,
for
date
:
Date
,
at
monthPosition
:
FSCalendarMonthPosition
)
{
configureCell
(
cell
,
for
:
date
,
at
:
monthPosition
)
}
func
calendar
(
_
calendar
:
FSCalendar
,
boundingRectWillChange
bounds
:
CGRect
,
animated
:
Bool
)
{
self
.
calendar
.
frame
.
size
.
height
=
bounds
.
height
}
// MARK: - FSCalendarDelegate
func
calendar
(
_
calendar
:
FSCalendar
,
shouldSelect
date
:
Date
,
at
monthPosition
:
FSCalendarMonthPosition
)
->
Bool
{
return
true
}
func
calendar
(
_
calendar
:
FSCalendar
,
shouldDeselect
date
:
Date
,
at
monthPosition
:
FSCalendarMonthPosition
)
->
Bool
{
return
false
}
func
calendar
(
_
calendar
:
FSCalendar
,
didSelect
date
:
Date
,
at
monthPosition
:
FSCalendarMonthPosition
)
{
if
monthPosition
==
.
next
||
monthPosition
==
.
previous
{
calendar
.
setCurrentPage
(
date
,
animated
:
true
)
tapOneDate
(
date
)
}
else
{
tapOneDate
(
date
)
}
configureVisibleCells
()
calendar
.
reloadData
()
}
func
calendar
(
_
calendar
:
FSCalendar
,
didDeselect
date
:
Date
,
at
monthPosition
:
FSCalendarMonthPosition
)
{
let
aDate
=
date
print
(
"did deselect date
\(
String
(
describing
:
dateFormatter
.
string
(
from
:
aDate
))
)
"
)
configureVisibleCells
()
}
}
// MARK: - Private methods
private
extension
YHRangeDatePickerView2
{
func
setupUI
()
{
addSubview
(
calendar
)
calendar
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
//.offset(-1)
make
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
YHRangeDatePickerView2
.
viewH2
)
}
calendar
.
backgroundColor
=
.
red
//for test hjl
}
func
tapOneDate
(
_
date
:
Date
)
{
if
startDate
==
nil
{
startDate
=
date
YHHUD
.
flash
(
message
:
"选择结束日期"
)
}
else
if
endDate
==
nil
{
// 比较结果
let
comparisonResult
=
gregorian
.
compare
(
startDate
!
,
to
:
date
,
toGranularity
:
.
day
)
switch
comparisonResult
{
case
.
orderedAscending
:
print
(
"第一个日期在第二个日期之前"
)
endDate
=
date
case
.
orderedDescending
:
print
(
"第一个日期在第二个日期之后"
)
endDate
=
startDate
startDate
=
date
case
.
orderedSame
:
print
(
"两个日期是同一天"
)
}
}
else
{
calendar
.
deselect
(
startDate
!
)
calendar
.
deselect
(
endDate
!
)
startDate
=
date
endDate
=
nil
YHHUD
.
flash
(
message
:
"选择结束日期"
)
}
}
func
configureVisibleCells
()
{
for
obj
in
(
calendar
.
visibleCells
())
{
let
date
:
Date
?
=
self
.
calendar
.
date
(
for
:
obj
)
let
position
:
FSCalendarMonthPosition
=
self
.
calendar
.
monthPosition
(
for
:
obj
)
self
.
configureCell
(
obj
,
for
:
date
!
,
at
:
position
)
}
}
func
configureCell
(
_
cell
:
FSCalendarCell
,
for
date
:
Date
,
at
position
:
FSCalendarMonthPosition
)
{
let
rangeCell
=
cell
as?
YHRangeDatePickerCell2
if
position
!=
.
current
{
rangeCell
?
.
middleLayer
.
isHidden
=
true
rangeCell
?
.
selectionLayer
.
isHidden
=
true
return
}
if
(
startDate
!=
nil
)
&&
(
endDate
!=
nil
)
{
// The date is in the middle of the range
let
isMiddle
:
Bool
=
date
.
compare
(
startDate
!
)
!=
date
.
compare
(
endDate
!
)
rangeCell
?
.
middleLayer
.
isHidden
=
!
isMiddle
}
else
{
rangeCell
?
.
middleLayer
.
isHidden
=
true
}
var
isSelected
=
false
let
aDate
=
date
isSelected
=
(
startDate
!=
nil
)
&&
(
gregorian
.
isDate
(
aDate
,
inSameDayAs
:
startDate
!
))
||
(
endDate
!=
nil
)
&&
(
gregorian
.
isDate
(
aDate
,
inSameDayAs
:
endDate
!
))
rangeCell
?
.
selectionLayer
.
isHidden
=
!
isSelected
}
}
galaxy/galaxy/Classes/Modules/Mine(我的)/C/YHMyViewController.swift
View file @
98e55521
...
...
@@ -409,17 +409,29 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
self
.
navigationController
?
.
pushViewController
(
vc
)
case
.
myOrder
:
//我的订单
if
let
token
=
YHLoginManager
.
shared
.
userModel
?
.
token
,
token
.
count
>
5
{
var
url
=
YHBaseUrlManager
.
shared
.
curH5URL
()
+
"superAppBridge.html#/order/my"
url
=
"?param="
+
YHLoginManager
.
shared
.
h5Token
printLog
(
"URL:
\(
url
)
"
)
let
vc
=
YHH5WebViewVC
()
vc
.
url
=
url
vc
.
isFullScreenFlag
=
false
vc
.
navTitle
=
"我的订单"
vc
.
isSupportWebviewInterBackFlag
=
true
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
// if let token = YHLoginManager.shared.userModel?.token,token.count > 5 {
// var url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/order/my"
// url = "?param=" + YHLoginManager.shared.h5Token
// printLog("URL: \(url)")
// let vc = YHH5WebViewVC()
// vc.url = url
// vc.isFullScreenFlag = false
// vc.navTitle = "我的订单"
// vc.isSupportWebviewInterBackFlag = true
// UIViewController.current?.navigationController?.pushViewController(vc)
// }
let
view
=
YHRangeDatePickerSheetView2
.
sheetView
()
view
.
block
=
{
[
weak
self
]
(
startDate
,
endDate
)
in
guard
let
self
=
self
else
{
return
}
printLog
(
"开始时间:
\(
startDate
)
"
)
printLog
(
"结束时间:
\(
endDate
)
"
)
}
view
.
show
()
default
:
printLog
(
"不需要响应"
)
}
...
...
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/客服段/办证段/3赴港办证预约/appoint_warm_date_picker2.imageset/Contents.json
0 → 100644
View file @
98e55521
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"Group 33332539@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"Group 33332539@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/客服段/办证段/3赴港办证预约/appoint_warm_date_picker2.imageset/Group 33332539@2x.png
0 → 100644
View file @
98e55521
21.4 KB
galaxy/galaxy/Res/Assets.xcassets/ServiceCenter/客服段/办证段/3赴港办证预约/appoint_warm_date_picker2.imageset/Group 33332539@3x.png
0 → 100644
View file @
98e55521
38.6 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