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
5f12e6f8
Commit
5f12e6f8
authored
Apr 25, 2025
by
Alex朱枝文
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '4.25' into 'develop'
4.25 See merge request
!8
parents
1d915dfa
9671277b
Changes
29
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
502 additions
and
87 deletions
+502
-87
Fastfile
galaxy/fastlane/Fastfile
+1
-1
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+20
-8
YHTabBarViewController.swift
galaxy/galaxy/Classes/Base/C/YHTabBarViewController.swift
+18
-0
YHHKEventCenterViewController.swift
...es/Modules/Home(首页)/C/YHHKEventCenterViewController.swift
+18
-5
YHHKEventWebViewController.swift
...asses/Modules/Home(首页)/C/YHHKEventWebViewController.swift
+22
-12
YHHomeWebViewController.swift
.../Classes/Modules/Home(首页)/C/YHHomeWebViewController.swift
+0
-2
YHHomePageViewModel.swift
...axy/Classes/Modules/Home(首页)/VM/YHHomePageViewModel.swift
+5
-1
YHSelectViewController.swift
.../Modules/Home(首页)/YHSelect/C/YHSelectViewController.swift
+1
-1
YHCertificateAppointViewController.swift
...cate(3 赴港办证预约)/C/YHCertificateAppointViewController.swift
+7
-0
YHReAppointViewController.swift
...ntCertificate(3 赴港办证预约)/C/YHReAppointViewController.swift
+8
-1
YHAppointHKResultModel.swift
...pointCertificate(3 赴港办证预约)/M/YHAppointHKResultModel.swift
+3
-1
YHAppointItem.swift
...e(办证段)/AppointCertificate(3 赴港办证预约)/M/YHAppointItem.swift
+4
-0
YHGrabNumberInfoView.swift
...AppointCertificate(3 赴港办证预约)/V/YHGrabNumberInfoView.swift
+8
-1
YHGrabingNumberListCell.swift
...ointCertificate(3 赴港办证预约)/V/YHGrabingNumberListCell.swift
+3
-1
YHHaveGrabbedNumberListCell.swift
...Certificate(3 赴港办证预约)/V/YHHaveGrabbedNumberListCell.swift
+3
-1
YHInfoItemOptionView.swift
...AppointCertificate(3 赴港办证预约)/V/YHInfoItemOptionView.swift
+36
-1
YHSelectApplicantGroupCell.swift
...tCertificate(3 赴港办证预约)/V/YHSelectApplicantGroupCell.swift
+62
-0
YHVisitHKAlertView.swift
...)/AppointCertificate(3 赴港办证预约)/V/YHVisitHKAlertView.swift
+166
-0
YHSignatureWebViewController.swift
...ntManagement(续签文书管理)/C/YHSignatureWebViewController.swift
+1
-1
YHH5WebViewVC.swift
.../Classes/Modules/InteractionH5(与H5交互)/YHH5WebViewVC.swift
+39
-23
YHLiveShopView.swift
...sses/Modules/LivestreamSales(直播销售)/V/YHLiveShopView.swift
+5
-3
YHLongtapPictureSheetView.swift
...dules/PictureReview(图片预览)/YHLongtapPictureSheetView.swift
+18
-4
YHPictureBrowserViewController.swift
.../PictureReview(图片预览)/YHPictureBrowserViewController.swift
+18
-4
YHMakePlanViewController.swift
...odules/Plan(方案)/MakePlan/C/YHMakePlanViewController.swift
+1
-1
YHMakePlanCell.swift
.../Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanCell.swift
+2
-2
YHMakePlanHeadView.swift
...sses/Modules/Plan(方案)/MakePlan/V/YHMakePlanHeadView.swift
+7
-7
YHMakePlanStateHeadView.swift
...Modules/Plan(方案)/MakePlan/V/YHMakePlanStateHeadView.swift
+20
-1
YHMakePlanTopView.swift
...asses/Modules/Plan(方案)/MakePlan/V/YHMakePlanTopView.swift
+5
-4
YHAnalytics.swift
galaxy/galaxy/Classes/Tools/Analytics/YHAnalytics.swift
+1
-1
No files found.
galaxy/fastlane/Fastfile
View file @
5f12e6f8
...
...
@@ -33,7 +33,7 @@ platform :ios do
sc_105_branch = "sc-1.0.5"
main_fix = "main-fix"
jiaofei = "jiaofei"
plan = "
plan
"
plan = "
4.25
"
#打包正使用的分支
myPack_branch = plan
...
...
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
5f12e6f8
...
...
@@ -1267,6 +1267,7 @@
04D8FFB02D9A3CF200703C75
/* YHPlanShareImageCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04D8FFAF2D9A3CF200703C75
/* YHPlanShareImageCell.swift */
;
};
04D8FFB22DA5007A00703C75
/* YHPictureBrowserViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04D8FFB12DA5007A00703C75
/* YHPictureBrowserViewController.swift */
;
};
04D8FFB42DA61DA300703C75
/* YHPlanTestViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04D8FFB32DA61DA200703C75
/* YHPlanTestViewController.swift */
;
};
04D8FFB62DAE489A00703C75
/* YHVisitHKAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04D8FFB52DAE489A00703C75
/* YHVisitHKAlertView.swift */
;
};
04E4CF3E2D5C6D32004D4013
/* YHCountryMessageView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04E4CF3D2D5C6D32004D4013
/* YHCountryMessageView.swift */
;
};
04E4CF402D5C83AE004D4013
/* YHSelectPhoneCountryViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04E4CF3F2D5C83AE004D4013
/* YHSelectPhoneCountryViewController.swift */
;
};
04E507D62D6EE856005F758B
/* YHUserLevelAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04E507D52D6EE856005F758B
/* YHUserLevelAlertView.swift */
;
};
...
...
@@ -2576,6 +2577,7 @@
04D8FFAF2D9A3CF200703C75
/* YHPlanShareImageCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPlanShareImageCell.swift
;
sourceTree
=
"<group>"
;
};
04D8FFB12DA5007A00703C75
/* YHPictureBrowserViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPictureBrowserViewController.swift
;
sourceTree
=
"<group>"
;
};
04D8FFB32DA61DA200703C75
/* YHPlanTestViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPlanTestViewController.swift
;
sourceTree
=
"<group>"
;
};
04D8FFB52DAE489A00703C75
/* YHVisitHKAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHVisitHKAlertView.swift
;
sourceTree
=
"<group>"
;
};
04E4CF3D2D5C6D32004D4013
/* YHCountryMessageView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHCountryMessageView.swift
;
sourceTree
=
"<group>"
;
};
04E4CF3F2D5C83AE004D4013
/* YHSelectPhoneCountryViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHSelectPhoneCountryViewController.swift
;
sourceTree
=
"<group>"
;
};
04E507D52D6EE856005F758B
/* YHUserLevelAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHUserLevelAlertView.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -3627,6 +3629,7 @@
045C0B882D12CA5E00BD2DC0
/* YHServiceItemCell.swift */
,
045C0B892D12CA5E00BD2DC0
/* YHServiceSelectAlertView.swift */
,
045C0B8A2D12CA5E00BD2DC0
/* YHWaitAppointMembersCell.swift */
,
04D8FFB52DAE489A00703C75
/* YHVisitHKAlertView.swift */
,
);
path
=
V
;
sourceTree
=
"<group>"
;
...
...
@@ -7208,6 +7211,7 @@
045C0FC52D12CA5F00BD2DC0
/* YHMainInformationTableViewCell.swift in Sources */
,
045C0FC62D12CA5F00BD2DC0
/* YHApplyActivityResultViewController.swift in Sources */
,
045C0FC72D12CA5F00BD2DC0
/* YhOverlayView.swift in Sources */
,
04D8FFB62DAE489A00703C75
/* YHVisitHKAlertView.swift in Sources */
,
04AE20372D13B7CF00891D24
/* YHGCChildInfoContainerVC.swift in Sources */
,
045C0FC82D12CA5F00BD2DC0
/* YHCollectionModel.swift in Sources */
,
045C0FC92D12CA5F00BD2DC0
/* YHOtherLanguageSelecteView.swift in Sources */
,
...
...
@@ -8490,7 +8494,7 @@
CODE_SIGN_ENTITLEMENTS
=
galaxy/galaxyTestEnv.entitlements
;
CODE_SIGN_IDENTITY
=
"Apple Development"
;
CODE_SIGN_STYLE
=
Automatic
;
CURRENT_PROJECT_VERSION
=
3
;
CURRENT_PROJECT_VERSION
=
4
;
DEVELOPMENT_TEAM
=
RXHYW88XR7
;
ENABLE_USER_SCRIPT_SANDBOXING
=
NO
;
FRAMEWORK_SEARCH_PATHS
=
(
...
...
@@ -8517,10 +8521,12 @@
"$(inherited)"
,
"@executable_path/Frameworks"
,
);
MARKETING_VERSION
=
2.2.
0
;
MARKETING_VERSION
=
2.2.
1
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.intelligence.galaxy
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PROVISIONING_PROFILE_SPECIFIER
=
""
;
SUPPORTED_PLATFORMS
=
"iphoneos iphonesimulator"
;
SUPPORTS_MACCATALYST
=
NO
;
SWIFT_ACTIVE_COMPILATION_CONDITIONS
=
TESTENV
;
SWIFT_EMIT_LOC_STRINGS
=
YES
;
SWIFT_OBJC_BRIDGING_HEADER
=
"$(SRCROOT)/$(TARGET_NAME)/Res/galaxy-Bridge-Header.h"
;
...
...
@@ -8636,7 +8642,7 @@
CODE_SIGN_ENTITLEMENTS
=
galaxy/galaxy.entitlements
;
CODE_SIGN_IDENTITY
=
"Apple Development"
;
CODE_SIGN_STYLE
=
Automatic
;
CURRENT_PROJECT_VERSION
=
3
;
CURRENT_PROJECT_VERSION
=
4
;
DEVELOPMENT_TEAM
=
RXHYW88XR7
;
ENABLE_USER_SCRIPT_SANDBOXING
=
NO
;
FRAMEWORK_SEARCH_PATHS
=
(
...
...
@@ -8663,10 +8669,12 @@
"$(inherited)"
,
"@executable_path/Frameworks"
,
);
MARKETING_VERSION
=
2.2.
0
;
MARKETING_VERSION
=
2.2.
1
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.intelligence.galaxy
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PROVISIONING_PROFILE_SPECIFIER
=
""
;
SUPPORTED_PLATFORMS
=
"iphoneos iphonesimulator"
;
SUPPORTS_MACCATALYST
=
NO
;
SWIFT_ACTIVE_COMPILATION_CONDITIONS
=
UATENV
;
SWIFT_EMIT_LOC_STRINGS
=
YES
;
SWIFT_OBJC_BRIDGING_HEADER
=
"$(SRCROOT)/$(TARGET_NAME)/Res/galaxy-Bridge-Header.h"
;
...
...
@@ -8844,7 +8852,7 @@
CODE_SIGN_ENTITLEMENTS
=
galaxy/galaxyDebug.entitlements
;
CODE_SIGN_IDENTITY
=
"Apple Development"
;
CODE_SIGN_STYLE
=
Automatic
;
CURRENT_PROJECT_VERSION
=
3
;
CURRENT_PROJECT_VERSION
=
4
;
DEVELOPMENT_TEAM
=
RXHYW88XR7
;
ENABLE_USER_SCRIPT_SANDBOXING
=
NO
;
FRAMEWORK_SEARCH_PATHS
=
(
...
...
@@ -8871,10 +8879,12 @@
"$(inherited)"
,
"@executable_path/Frameworks"
,
);
MARKETING_VERSION
=
2.2.
0
;
MARKETING_VERSION
=
2.2.
1
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.intelligence.galaxy
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PROVISIONING_PROFILE_SPECIFIER
=
""
;
SUPPORTED_PLATFORMS
=
"iphoneos iphonesimulator"
;
SUPPORTS_MACCATALYST
=
NO
;
SWIFT_EMIT_LOC_STRINGS
=
YES
;
SWIFT_OBJC_BRIDGING_HEADER
=
"$(SRCROOT)/$(TARGET_NAME)/Res/galaxy-Bridge-Header.h"
;
SWIFT_VERSION
=
5.0
;
...
...
@@ -8892,7 +8902,7 @@
CODE_SIGN_ENTITLEMENTS
=
galaxy/galaxy.entitlements
;
CODE_SIGN_IDENTITY
=
"Apple Development"
;
CODE_SIGN_STYLE
=
Automatic
;
CURRENT_PROJECT_VERSION
=
3
;
CURRENT_PROJECT_VERSION
=
4
;
DEVELOPMENT_TEAM
=
RXHYW88XR7
;
ENABLE_USER_SCRIPT_SANDBOXING
=
NO
;
FRAMEWORK_SEARCH_PATHS
=
(
...
...
@@ -8919,10 +8929,12 @@
"$(inherited)"
,
"@executable_path/Frameworks"
,
);
MARKETING_VERSION
=
2.2.
0
;
MARKETING_VERSION
=
2.2.
1
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.intelligence.galaxy
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PROVISIONING_PROFILE_SPECIFIER
=
""
;
SUPPORTED_PLATFORMS
=
"iphoneos iphonesimulator"
;
SUPPORTS_MACCATALYST
=
NO
;
SWIFT_EMIT_LOC_STRINGS
=
YES
;
SWIFT_OBJC_BRIDGING_HEADER
=
"$(SRCROOT)/$(TARGET_NAME)/Res/galaxy-Bridge-Header.h"
;
SWIFT_VERSION
=
5.0
;
...
...
galaxy/galaxy/Classes/Base/C/YHTabBarViewController.swift
View file @
5f12e6f8
...
...
@@ -43,6 +43,24 @@ class YHTabBarViewController: ESTabBarController {
shareView
.
frame
=
self
.
tabBar
.
frame
view
.
addSubview
(
shareView
)
/*
if UIDevice.current.userInterfaceIdiom == .pad {
if #available(iOS 18.0, *) {
traitOverrides.horizontalSizeClass = .compact
// 2. 遍历子视图,找到可能是 _UITabContainerView 的视图
for subview in view.subviews {
let className = String(describing: type(of: subview))
if className.contains("TabContainer") { // 模糊匹配类名
subview.isHidden = true // 或其他操作
break
}
}
view.addSubview(tabBar)
}
}
*/
shareView
.
block
=
{
tag
in
if
let
model
=
self
.
shareModel
{
...
...
galaxy/galaxy/Classes/Modules/Home(首页)/C/YHHKEventCenterViewController.swift
View file @
5f12e6f8
...
...
@@ -75,18 +75,18 @@ class YHHKEventCenterViewController: YHBaseViewController {
gk_navTitle
=
"香港办事"
gk_navBackgroundColor
=
.
white
gk_navBarAlpha
=
1.0
homeViewModel
.
getHKEvent
{
[
weak
self
]
_
,
_
in
guard
let
self
=
self
else
{
return
}
homeViewModel
.
getHKEvent
{
_
,
_
in
//
guard let self = self else { return }
self
.
hkList
=
self
.
homeViewModel
.
hkList
??
[]
self
.
arrItemTitles
.
removeAll
()
for
item
in
self
.
hkList
{
self
.
arrItemTitles
.
append
(
item
.
tag
)
let
vc
=
YHHKEventWebViewController
()
vc
.
model
=
item
arrItemVCs
.
append
(
vc
)
self
.
arrItemVCs
.
append
(
vc
)
}
self
.
segmentedDataSource
.
titles
=
arrItemTitles
self
.
segmentedView
.
dataSource
=
segmentedDataSource
self
.
segmentedDataSource
.
titles
=
self
.
arrItemTitles
self
.
segmentedView
.
dataSource
=
se
lf
.
se
gmentedDataSource
self
.
segmentedView
.
reloadData
()
}
}
...
...
@@ -140,6 +140,15 @@ class YHHKEventCenterViewController: YHBaseViewController {
}
}
task
.
resume
()
}
else
if
model
.
tag
.
contains
(
"香港行程"
)
{
guard
let
urlString
=
model
.
list
.
first
else
{
return
}
var
currentUrl
=
urlString
if
let
orderID
=
UserDefaults
.
standard
.
value
(
forKey
:
"orderIdForPreview"
)
as?
Int
{
currentUrl
=
urlString
+
"?paramO=
\(
orderID
)
"
+
"¶m="
+
YHLoginManager
.
shared
.
h5Token
}
YHShareManager
.
shared
.
sendLinkContent
(
"一图看清香港办事"
,
""
,
UIImage
(
named
:
"AppIcon"
)
??
UIImage
(),
link
:
currentUrl
)
}
else
{
guard
let
urlString
=
model
.
list
.
first
else
{
return
...
...
@@ -150,6 +159,10 @@ class YHHKEventCenterViewController: YHBaseViewController {
YHOneKeyLoginManager
.
shared
.
oneKeyLogin
()
}
}
deinit
{
}
}
extension
YHHKEventCenterViewController
:
JXSegmentedViewDelegate
{
...
...
galaxy/galaxy/Classes/Modules/Home(首页)/C/YHHKEventWebViewController.swift
View file @
5f12e6f8
...
...
@@ -11,8 +11,8 @@ import Photos
import
WebKit
import
JXSegmentedView
class
YHHKEventWebViewController
:
YH
BaseViewController
{
var
webview
=
WKWebView
()
class
YHHKEventWebViewController
:
YH
H5WebViewVC
{
//
var webview = WKWebView()
var
model
:
YHHKEventModel
=
YHHKEventModel
()
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
...
...
@@ -33,11 +33,17 @@ class YHHKEventWebViewController: YHBaseViewController {
extension
YHHKEventWebViewController
{
func
loadData
()
{
guard
let
urlString
=
model
.
list
.
first
else
{
return
}
if
let
url
=
URL
(
string
:
urlString
)
{
var
currentUrl
=
urlString
if
model
.
tag
.
contains
(
"香港行程"
)
{
if
let
orderID
=
UserDefaults
.
standard
.
value
(
forKey
:
"orderIdForPreview"
)
as?
Int
{
currentUrl
=
urlString
+
"?paramO=
\(
orderID
)
"
+
"¶m="
+
YHLoginManager
.
shared
.
h5Token
}
}
if
let
url
=
URL
(
string
:
currentUrl
)
{
let
request
=
URLRequest
(
url
:
url
)
webview
.
load
(
request
)
}
else
{
let
tmpUrl
=
YHURLEncodeHelper
.
urlEncodedString
(
urlString
)
let
tmpUrl
=
YHURLEncodeHelper
.
urlEncodedString
(
currentUrl
)
if
let
url
=
URL
(
string
:
tmpUrl
)
{
let
request
=
URLRequest
(
url
:
url
)
webview
.
load
(
request
)
...
...
@@ -60,13 +66,15 @@ extension YHHKEventWebViewController {
func
setupUI
()
{
gk_navigationBar
.
isHidden
=
true
gk_navBarAlpha
=
0.0
gk_navLineHidden
=
false
gk_navBackgroundColor
=
.
white
// 创建wkwebview
webview
=
WKWebView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
self
.
view
.
frame
.
width
,
height
:
self
.
view
.
frame
.
height
-
0
))
webview
.
navigationDelegate
=
self
// 添加wkwebview
view
.
addSubview
(
webview
)
//
webview = WKWebView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height - 0))
//
webview.navigationDelegate = self
//
// 添加wkwebview
//
view.addSubview(webview)
webview
.
frame
=
CGRect
(
x
:
0
,
y
:
0
,
width
:
self
.
view
.
frame
.
width
,
height
:
self
.
view
.
frame
.
height
-
0
)
view
.
addSubview
(
bottomViewForSavePic
)
bottomViewForSavePic
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
bottom
.
equalToSuperview
()
...
...
@@ -76,10 +84,12 @@ extension YHHKEventWebViewController {
self
.
saveImageToPhotoLib
()
}
}
}
extension
YHHKEventWebViewController
:
WKNavigationDelegate
{
func
webView
(
_
webView
:
WKWebView
,
didFinish
navigation
:
WKNavigation
!
)
{
extension
YHHKEventWebViewController
{
override
func
webView
(
_
webView
:
WKWebView
,
didFinish
navigation
:
WKNavigation
!
)
{
super
.
webView
(
webView
,
didFinish
:
navigation
)
if
model
.
tag
.
contains
(
"日历"
)
{
bottomViewForSavePic
.
isHidden
=
false
}
...
...
galaxy/galaxy/Classes/Modules/Home(首页)/C/YHHomeWebViewController.swift
View file @
5f12e6f8
...
...
@@ -34,7 +34,6 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
config
.
mediaTypesRequiringUserActionForPlayback
=
[]
let
webview
=
DWKWebView
(
frame
:
.
zero
,
configuration
:
config
)
webview
.
scrollView
.
contentInsetAdjustmentBehavior
=
.
never
webview
.
navigationDelegate
=
self
// webview.scrollView.delegate = self
webview
.
setDebugMode
(
false
)
...
...
@@ -135,7 +134,6 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
// webview = DWKWebView(frame: CGRect(x: 0, y: statusHeight + navHeight!, width: self.view.frame.width, height: self.view.frame.height - statusHeight - navHeight! - 59 - k_Height_safeAreaInsetsBottom()))
webview
.
navigationDelegate
=
self
webview
.
setDebugMode
(
false
)
webview
.
scrollView
.
contentInsetAdjustmentBehavior
=
.
never
api
.
delegate
=
self
...
...
galaxy/galaxy/Classes/Modules/Home(首页)/VM/YHHomePageViewModel.swift
View file @
5f12e6f8
...
...
@@ -398,8 +398,12 @@ extension YHHomePageViewModel {
}
func
getHKEvent
(
param
:
[
String
:
Int
]
=
[:],
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
Void
)
{
var
params
=
param
if
let
orderID
=
UserDefaults
.
standard
.
value
(
forKey
:
"orderIdForPreview"
)
as?
Int
{
params
=
[
"order_id"
:
orderID
]
}
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
Common
.
hklistApi
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
param
)
{
[
weak
self
]
json
,
_
in
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
param
s
)
{
[
weak
self
]
json
,
_
in
guard
let
self
=
self
else
{
return
}
// 1. json字符串 转 对象
if
json
.
code
==
200
{
...
...
galaxy/galaxy/Classes/Modules/Home(首页)/YHSelect/C/YHSelectViewController.swift
View file @
5f12e6f8
...
...
@@ -287,7 +287,7 @@ class YHSelectLookTableViewCell: UITableViewCell {
}
let
a
:
ASAttributedString
=
.
init
(
"¥"
,
.
font
(
UIFont
(
name
:
"D-DIN-PRO-Bold"
,
size
:
14
)
??
UIFont
()),
.
foreground
(
UIColor
.
mainTextColor
))
let
b
:
ASAttributedString
=
.
init
(
"
\(
dataSource
.
linePrice
.
formattedPrice
()
)
"
,
.
font
(
UIFont
(
name
:
"D-DIN-PRO-Bold"
,
size
:
20
)
??
UIFont
()),
.
foreground
(
UIColor
.
mainTextColor
))
let
c
:
ASAttributedString
=
.
init
(
"¥
\(
dataSource
.
price
.
formattedPrice
()
)
"
,
.
font
(
UIFont
(
name
:
"D-DIN-PRO-
Bold
"
,
size
:
14
)
??
UIFont
()),
.
foreground
(
UIColor
(
hex
:
0x8993a2
)),
.
strikethrough
(
.
single
))
let
c
:
ASAttributedString
=
.
init
(
"¥
\(
dataSource
.
price
.
formattedPrice
()
)
"
,
.
font
(
UIFont
(
name
:
"D-DIN-PRO-
Medium
"
,
size
:
14
)
??
UIFont
()),
.
foreground
(
UIColor
(
hex
:
0x8993a2
)),
.
strikethrough
(
.
single
))
if
dataSource
.
linePrice
==
dataSource
.
price
{
self
.
subTitleLabel
.
attributed
.
text
=
a
+
b
}
else
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/CustomerService(客服段)/Certificate(办证段)/AppointCertificate(3 赴港办证预约)/C/YHCertificateAppointViewController.swift
View file @
5f12e6f8
...
...
@@ -791,6 +791,12 @@ extension YHCertificateAppointViewController {
groupModel
.
isNeedCheck
=
true
isOK
=
false
}
// 到访香港体验中心 未选
if
groupModel
.
isWillVisitHkGalaxyBay
==
0
{
groupModel
.
isNeedCheck
=
true
isOK
=
false
}
}
}
if
!
isOK
{
// 检测各批次是否有日期或办证地点未选择
...
...
@@ -826,6 +832,7 @@ extension YHCertificateAppointViewController {
let
batch
:
[
String
:
Any
]
=
[
"start_time"
:
start_time
,
"end_time"
:
end_time
,
"migration_office"
:
model
.
hkPlace
.
name
,
"is_will_visit_hk_galaxy_bay"
:
model
.
isWillVisitHkGalaxyBay
,
"users"
:
users
]
batchs
.
append
(
batch
)
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/CustomerService(客服段)/Certificate(办证段)/AppointCertificate(3 赴港办证预约)/C/YHReAppointViewController.swift
View file @
5f12e6f8
...
...
@@ -21,7 +21,7 @@ class YHReAppointViewController: YHBaseViewController {
lazy
var
tableView
:
UITableView
=
{
let
tableView
=
UITableView
(
frame
:
.
zero
,
style
:
.
grouped
)
tableView
.
estimatedSectionHeaderHeight
=
16.0
tableView
.
estimatedSectionHeaderHeight
=
0.01
tableView
.
estimatedSectionFooterHeight
=
0.01
tableView
.
contentInsetAdjustmentBehavior
=
.
never
tableView
.
showsVerticalScrollIndicator
=
false
...
...
@@ -217,6 +217,12 @@ extension YHReAppointViewController {
groupModel
.
isNeedCheck
=
true
isOK
=
false
}
// 到访香港体验中心 未选
if
groupModel
.
isWillVisitHkGalaxyBay
==
0
{
groupModel
.
isNeedCheck
=
true
isOK
=
false
}
}
}
if
!
isOK
{
// 检测各批次是否有日期或办证地点未选择
...
...
@@ -252,6 +258,7 @@ extension YHReAppointViewController {
let
batch
:
[
String
:
Any
]
=
[
"start_time"
:
start_time
,
"end_time"
:
end_time
,
"migration_office"
:
model
.
hkPlace
.
name
,
"is_will_visit_hk_galaxy_bay"
:
model
.
isWillVisitHkGalaxyBay
,
"users"
:
users
]
batchs
.
append
(
batch
)
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/CustomerService(客服段)/Certificate(办证段)/AppointCertificate(3 赴港办证预约)/M/YHAppointHKResultModel.swift
View file @
5f12e6f8
...
...
@@ -41,7 +41,8 @@ class YHAppointMemberGroupModel: SmartCodable {
// 此处是私链URL数组
var
receipts
:
[
String
]
=
[]
var
submitTime
:
String
=
""
var
isWillVisitHkGalaxyBay
:
Int
=
0
// 0没有选择1是2否
// 自定义
// 私链反馈回执对应的公链
var
publicReceipts
:
[
String
]
=
[]
...
...
@@ -65,6 +66,7 @@ class YHAppointMemberGroupModel: SmartCodable {
case
goTime
=
"go_time"
case
receipts
=
"receipts"
case
submitTime
=
"submit_time"
case
isWillVisitHkGalaxyBay
=
"is_will_visit_hk_galaxy_bay"
}
required
init
()
{
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/CustomerService(客服段)/Certificate(办证段)/AppointCertificate(3 赴港办证预约)/M/YHAppointItem.swift
View file @
5f12e6f8
...
...
@@ -71,4 +71,8 @@ class YHSelectGroupMemberModel {
// 是否显示重新预约人员名单
var
isShowReAppointView
:
Bool
=
false
//
var
isWillVisitHkGalaxyBay
:
Int
=
0
// 0没有选择1是2否
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/CustomerService(客服段)/Certificate(办证段)/AppointCertificate(3 赴港办证预约)/V/YHGrabNumberInfoView.swift
View file @
5f12e6f8
...
...
@@ -12,6 +12,7 @@ enum YHGrabItemViewType: Int {
case
info
case
grab
case
files
case
visit
}
class
YHGrabItem
{
...
...
@@ -97,9 +98,14 @@ class YHGrabNumberInfoItemView: UIView {
if
item
.
files
.
count
%
4
!=
0
{
rowCount
+=
1
}
collectionView
.
snp
.
remakeConstraints
{
make
in
make
.
left
.
right
.
bottom
.
equalTo
(
0
)
make
.
top
.
equalTo
(
detailLabel
.
snp
.
bottom
)
.
offset
(
16
)
if
item
.
type
==
.
visit
{
make
.
top
.
equalTo
(
titleLabel
.
snp
.
bottom
)
.
offset
(
16
)
}
else
{
make
.
top
.
equalTo
(
detailLabel
.
snp
.
bottom
)
.
offset
(
16
)
}
if
item
.
type
==
.
files
{
make
.
height
.
equalTo
((
fileWidth
+
16.0
)
*
Double
(
rowCount
))
...
...
@@ -122,6 +128,7 @@ class YHGrabNumberInfoItemView: UIView {
lazy
var
titleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
numberOfLines
=
0
label
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
.
mainTextColor
(
alpha
:
0.5
)
return
label
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/CustomerService(客服段)/Certificate(办证段)/AppointCertificate(3 赴港办证预约)/V/YHGrabingNumberListCell.swift
View file @
5f12e6f8
...
...
@@ -41,8 +41,10 @@ class YHGrabingNumberListCell: UITableViewCell {
if
group
.
wantMinTime
==
group
.
wantMaxTime
{
wantTimeText
=
group
.
wantMinTime
}
let
visitOption
=
group
.
isWillVisitHkGalaxyBay
==
1
?
"是"
:
"否"
let
items2
=
[
YHGrabItem
(
type
:
.
info
,
title
:
"期望赴港时间:"
,
detail
:
wantTimeText
,
isSingleLine
:
true
),
YHGrabItem
(
type
:
.
info
,
title
:
"期望香港办证点:"
,
detail
:
group
.
wantImmigrationOffice
,
isSingleLine
:
false
)]
YHGrabItem
(
type
:
.
info
,
title
:
"期望香港办证点:"
,
detail
:
group
.
wantImmigrationOffice
,
isSingleLine
:
false
),
YHGrabItem
(
type
:
.
visit
,
title
:
"到访香港体验中心:香港华润大厦 (湾仔入境处旁)"
,
detail
:
visitOption
,
isSingleLine
:
false
)]
listView
.
intentionInfoView
.
updateItems
(
items2
)
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/CustomerService(客服段)/Certificate(办证段)/AppointCertificate(3 赴港办证预约)/V/YHHaveGrabbedNumberListCell.swift
View file @
5f12e6f8
...
...
@@ -34,8 +34,10 @@ class YHHaveGrabbedNumberListCell: UITableViewCell {
if
group
.
wantMinTime
==
group
.
wantMaxTime
{
wantTimeText
=
group
.
wantMinTime
}
let
visitOption
=
group
.
isWillVisitHkGalaxyBay
==
1
?
"是"
:
"否"
let
items2
=
[
YHGrabItem
(
type
:
.
info
,
title
:
"期望赴港时间:"
,
detail
:
wantTimeText
,
isSingleLine
:
true
),
YHGrabItem
(
type
:
.
info
,
title
:
"期望香港办证点:"
,
detail
:
group
.
wantImmigrationOffice
,
isSingleLine
:
false
)]
YHGrabItem
(
type
:
.
info
,
title
:
"期望香港办证点:"
,
detail
:
group
.
wantImmigrationOffice
,
isSingleLine
:
false
),
YHGrabItem
(
type
:
.
visit
,
title
:
"到访香港体验中心:香港华润大厦 (湾仔入境处旁)"
,
detail
:
visitOption
,
isSingleLine
:
false
)]
listView
.
intentionInfoView
.
updateItems
(
items2
)
listContainView
.
addSubview
(
listView
)
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/CustomerService(客服段)/Certificate(办证段)/AppointCertificate(3 赴港办证预约)/V/YHInfoItemOptionView.swift
View file @
5f12e6f8
...
...
@@ -55,6 +55,21 @@ class YHInfoItemOptionView: UIView {
}
}
var
tips
:
String
=
""
{
didSet
{
let
isShowTips
=
!
tips
.
isEmpty
tipsLabel
.
text
=
tips
tipsLabel
.
snp
.
updateConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
titleView
.
snp
.
bottom
)
.
offset
(
isShowTips
?
5.0
:
0.0
)
make
.
height
.
equalTo
(
isShowTips
?
17.0
:
0.0
)
make
.
bottom
.
equalTo
(
-
titleGap
)
}
self
.
setNeedsLayout
()
self
.
layoutIfNeeded
()
}
}
var
selectIndex
:
Int
=
-
1
{
didSet
{
for
(
index
,
_
)
in
options
.
enumerated
()
{
...
...
@@ -69,8 +84,12 @@ class YHInfoItemOptionView: UIView {
didSet
{
titleView
.
snp
.
updateConstraints
{
make
in
make
.
top
.
equalTo
(
titleGap
)
}
tipsLabel
.
snp
.
updateConstraints
{
make
in
make
.
bottom
.
equalTo
(
-
titleGap
)
}
self
.
setNeedsLayout
()
self
.
layoutIfNeeded
()
}
...
...
@@ -94,6 +113,14 @@ class YHInfoItemOptionView: UIView {
return
label
}()
private
lazy
var
tipsLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
numberOfLines
=
0
label
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
12
)
label
.
textColor
=
.
failColor
return
label
}()
func
createOptionButton
()
->
UIButton
{
let
btn
=
UIButton
()
...
...
@@ -139,6 +166,8 @@ class YHInfoItemOptionView: UIView {
func
createUI
()
{
self
.
addSubview
(
titleView
)
self
.
addSubview
(
tipsLabel
)
titleView
.
addSubview
(
titleLabel
)
let
firstBtn
=
self
.
createOptionButton
()
...
...
@@ -165,10 +194,16 @@ class YHInfoItemOptionView: UIView {
titleView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
0
)
make
.
top
.
equalTo
(
titleGap
)
make
.
bottom
.
equalTo
(
-
titleGap
)
make
.
width
.
equalTo
(
titleMaxWidth
)
}
tipsLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
titleView
.
snp
.
bottom
)
.
offset
(
0
)
make
.
height
.
equalTo
(
0
)
make
.
bottom
.
equalTo
(
-
titleGap
)
}
titleLabel
.
snp
.
makeConstraints
{
make
in
make
.
edges
.
equalToSuperview
()
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/CustomerService(客服段)/Certificate(办证段)/AppointCertificate(3 赴港办证预约)/V/YHSelectApplicantGroupCell.swift
View file @
5f12e6f8
...
...
@@ -25,6 +25,24 @@ class YHSelectApplicantGroupCell: UITableViewCell {
// param 选中的用户 是否选中 选中的用户是第几批
var
selectBlock
:
((
_
member
:
YHHKMemberModel
,
_
isSelect
:
Bool
,
_
groupIndex
:
Int
)
->
Void
)?
var
isShowVisitOption
:
Bool
=
true
{
didSet
{
visitOptionView
.
isHidden
=
!
isShowVisitOption
visitOptionView
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
locationSelectView
.
snp
.
bottom
)
.
offset
(
0
)
make
.
left
.
equalTo
(
18
)
make
.
right
.
equalTo
(
-
18
)
if
!
isShowVisitOption
{
make
.
height
.
equalTo
(
0
)
}
make
.
bottom
.
equalToSuperview
()
}
self
.
setNeedsLayout
()
self
.
layoutIfNeeded
()
}
}
var
isShowSelectUserView
:
Bool
=
true
{
didSet
{
...
...
@@ -99,6 +117,7 @@ class YHSelectApplicantGroupCell: UITableViewCell {
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
view
.
layer
.
cornerRadius
=
kCornerRadius6
view
.
clipsToBounds
=
true
return
view
}()
...
...
@@ -288,6 +307,34 @@ class YHSelectApplicantGroupCell: UITableViewCell {
return
label
}()
lazy
var
visitOptionView
:
YHInfoItemOptionView
=
{
let
view
=
YHInfoItemOptionView
(
frame
:
.
zero
)
view
.
title
=
"到访香港体验中心:香港华润大厦 (湾仔入境处旁)"
view
.
options
=
[
"是"
,
"否"
]
view
.
selectIndex
=
0
view
.
selectBlock
=
{
[
weak
self
]
index
in
guard
let
self
=
self
else
{
return
}
guard
let
model
=
dataModel
?
.
model
else
{
return
}
if
index
==
1
{
// 点击否
refreshBlock
?()
let
view
=
YHVisitHKAlertView
.
alertView
()
view
.
confirmBlock
=
{
[
weak
self
]
isSure
in
guard
let
self
=
self
else
{
return
}
model
.
isWillVisitHkGalaxyBay
=
(
isSure
?
1
:
2
)
refreshBlock
?()
}
view
.
show
()
}
else
{
// 点击是
model
.
isWillVisitHkGalaxyBay
=
(
index
==
0
?
1
:
2
)
refreshBlock
?()
}
}
return
view
}()
required
init
?(
coder
:
NSCoder
)
{
super
.
init
(
coder
:
coder
)
}
...
...
@@ -310,6 +357,7 @@ class YHSelectApplicantGroupCell: UITableViewCell {
whiteContentView
.
addSubview
(
optionsView
)
whiteContentView
.
addSubview
(
timeSelectView
)
whiteContentView
.
addSubview
(
locationSelectView
)
whiteContentView
.
addSubview
(
visitOptionView
)
whiteContentView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
16
)
...
...
@@ -360,6 +408,12 @@ class YHSelectApplicantGroupCell: UITableViewCell {
make
.
top
.
equalTo
(
timeSelectView
.
snp
.
bottom
)
.
offset
(
0
)
make
.
left
.
equalTo
(
18
)
make
.
right
.
equalTo
(
-
18
)
}
visitOptionView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
locationSelectView
.
snp
.
bottom
)
.
offset
(
0
)
make
.
left
.
equalTo
(
18
)
make
.
right
.
equalTo
(
-
18
)
make
.
bottom
.
equalToSuperview
()
}
}
...
...
@@ -473,6 +527,14 @@ private extension YHSelectApplicantGroupCell {
// 办证地点是否显示红色错误提示
timeSelectView
.
isNeedShowErrorTips
=
(
model
.
isNeedCheck
&&
!
isSelectDate
)
var
selectIndex
=
-
1
if
model
.
isWillVisitHkGalaxyBay
==
1
{
// 是
selectIndex
=
0
}
else
if
model
.
isWillVisitHkGalaxyBay
==
2
{
// 否
selectIndex
=
1
}
visitOptionView
.
selectIndex
=
selectIndex
visitOptionView
.
tips
=
(
model
.
isNeedCheck
&&
selectIndex
==
-
1
)
?
"请选择"
:
""
self
.
setNeedsLayout
()
self
.
layoutIfNeeded
()
}
...
...
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/CustomerService(客服段)/Certificate(办证段)/AppointCertificate(3 赴港办证预约)/V/YHVisitHKAlertView.swift
0 → 100644
View file @
5f12e6f8
//
// YHVisitHKAlertView.swift
// galaxy
//
// Created by Dufet on 2025/4/15.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
import
AttributedString
class
YHVisitHKAlertView
:
UIView
{
var
confirmBlock
:
((
Bool
)
->
Void
)?
lazy
var
blackMaskView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
.
init
(
hex
:
0x000000
,
alpha
:
0.68
)
return
view
}()
lazy
var
whiteContentView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
view
.
layer
.
cornerRadius
=
kCornerRadius6
return
view
}()
lazy
var
titleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
textAlignment
=
.
center
label
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
17
)
label
.
textColor
=
UIColor
.
mainTextColor
label
.
text
=
"温馨提示"
return
label
}()
lazy
var
lineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
separatorColor
return
view
}()
lazy
var
messageLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
numberOfLines
=
0
let
a
=
ASAttributedString
.
init
(
"银河香港体验中心距离湾仔入境处"
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
15
)),
.
foreground
(
UIColor
.
mainTextColor70
))
let
b
=
ASAttributedString
.
init
(
"步行5分钟"
,
.
font
(
UIFont
.
PFSC_B
(
ofSize
:
15
)),
.
foreground
(
UIColor
.
brandMainColor
))
let
c
=
ASAttributedString
.
init
(
",办证前或办证结束,您可"
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
15
)),
.
foreground
(
UIColor
.
mainTextColor70
))
let
d
=
ASAttributedString
.
init
(
"预留30分钟-60分钟"
,
.
font
(
UIFont
.
PFSC_B
(
ofSize
:
15
)),
.
foreground
(
UIColor
.
brandMainColor
))
let
e
=
ASAttributedString
.
init
(
"时间,我们将为您详细规划续签方案,欢迎您莅临香港体验中心!"
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
15
)),
.
foreground
(
UIColor
.
mainTextColor70
))
label
.
attributed
.
text
=
a
+
b
+
c
+
d
+
e
return
label
}()
lazy
var
confirmBtn
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
backgroundColor
=
UIColor
.
brandMainColor
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
14
)
button
.
setTitle
(
"到访"
.
local
,
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
.
white
,
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
kCornerRadius3
button
.
addTarget
(
self
,
action
:
#selector(
agree
)
,
for
:
.
touchUpInside
)
return
button
}()
lazy
var
unconfirmBtn
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
backgroundColor
=
UIColor
.
white
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
14
)
button
.
setTitle
(
"不到访"
.
local
,
for
:
.
normal
)
button
.
setTitleColor
(
UIColor
.
brandMainColor
,
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
kCornerRadius3
button
.
layer
.
borderWidth
=
1
button
.
layer
.
borderColor
=
UIColor
.
brandMainColor
.
cgColor
button
.
addTarget
(
self
,
action
:
#selector(
disagree
)
,
for
:
.
touchUpInside
)
return
button
}()
static
func
alertView
()
->
YHVisitHKAlertView
{
let
view
=
YHVisitHKAlertView
(
frame
:
UIScreen
.
main
.
bounds
)
return
view
}
func
show
()
{
UIApplication
.
shared
.
yhKeyWindow
()?
.
addSubview
(
self
)
}
func
dismiss
()
{
self
.
removeFromSuperview
()
}
@objc
func
agree
()
{
confirmBlock
?(
true
)
dismiss
()
}
@objc
func
disagree
()
{
confirmBlock
?(
false
)
dismiss
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
createUI
()
}
func
createUI
()
{
self
.
addSubview
(
blackMaskView
)
self
.
addSubview
(
whiteContentView
)
whiteContentView
.
addSubview
(
titleLabel
)
whiteContentView
.
addSubview
(
lineView
)
whiteContentView
.
addSubview
(
messageLabel
)
whiteContentView
.
addSubview
(
unconfirmBtn
)
whiteContentView
.
addSubview
(
confirmBtn
)
blackMaskView
.
snp
.
makeConstraints
{
make
in
make
.
edges
.
equalToSuperview
()
}
whiteContentView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
38
)
make
.
right
.
equalTo
(
-
38
)
make
.
centerY
.
equalToSuperview
()
}
titleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
16
)
make
.
height
.
equalTo
(
24
)
make
.
left
.
equalTo
(
21
)
make
.
right
.
equalTo
(
-
21
)
}
lineView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalTo
(
0
)
make
.
height
.
equalTo
(
0.5
)
make
.
top
.
equalTo
(
titleLabel
.
snp
.
bottom
)
.
offset
(
12
)
}
messageLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
21
)
make
.
right
.
equalTo
(
-
21
)
make
.
top
.
equalTo
(
lineView
.
snp
.
bottom
)
.
offset
(
16
)
}
unconfirmBtn
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
21
)
make
.
top
.
equalTo
(
messageLabel
.
snp
.
bottom
)
.
offset
(
21
)
make
.
height
.
equalTo
(
45
)
make
.
width
.
equalTo
(
confirmBtn
.
snp
.
width
)
make
.
right
.
equalTo
(
confirmBtn
.
snp
.
left
)
.
offset
(
-
10
)
make
.
bottom
.
equalTo
(
-
16
)
}
confirmBtn
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalTo
(
-
21
)
make
.
centerY
.
equalTo
(
unconfirmBtn
)
make
.
height
.
equalTo
(
45
)
}
}
}
galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/QMAS(优才)/Resign(续签)/ResignDocumentManagement(续签文书管理)/C/YHSignatureWebViewController.swift
View file @
5f12e6f8
...
...
@@ -14,7 +14,6 @@ class YHSignatureWebViewController: YHBaseViewController {
var
titleName
:
String
=
""
lazy
var
webView
:
WKWebView
=
{
let
webView
=
WKWebView
(
frame
:
CGRect
(
x
:
0
,
y
:
k_Height_NavigationtBarAndStatuBar
,
width
:
KScreenWidth
,
height
:
KScreenHeight
-
k_Height_NavigationtBarAndStatuBar
),
configuration
:
self
.
configuaration
)
webView
.
navigationDelegate
=
self
return
webView
}()
...
...
@@ -53,6 +52,7 @@ class YHSignatureWebViewController: YHBaseViewController {
func
createUI
()
{
gk_navTitle
=
titleName
webView
.
navigationDelegate
=
self
webView
.
addSubview
(
progressBar
)
self
.
view
.
addSubview
(
webView
)
// 监听网页加载的进度
...
...
galaxy/galaxy/Classes/Modules/InteractionH5(与H5交互)/YHH5WebViewVC.swift
View file @
5f12e6f8
...
...
@@ -10,6 +10,7 @@ import UIKit
@preconcurrency
import
WebKit
import
dsBridge
import
Photos
import
Kingfisher
/*
快速测评 及 其他与H5交互的界面
...
...
@@ -36,22 +37,22 @@ class YHH5WebViewVC: YHBaseViewController, WKUIDelegate, WKNavigationDelegate {
config
.
allowsInlineMediaPlayback
=
true
/// 开启让自动播放
config
.
mediaTypesRequiringUserActionForPlayback
=
[]
let
webview
=
DWKWebView
(
frame
:
.
zero
,
configuration
:
config
)
webview
.
scrollView
.
contentInsetAdjustmentBehavior
=
.
never
webview
.
navigationDelegate
=
self
webview
.
scrollView
.
delegate
=
self
let
view
=
DWKWebView
(
frame
:
.
zero
,
configuration
:
config
)
view
.
scrollView
.
contentInsetAdjustmentBehavior
=
.
never
// view.navigationDelegate = self
// view.scrollView.delegate = self
web
view
.
setDebugMode
(
false
)
view
.
setDebugMode
(
false
)
// webview.uiDelegate = self
return
webview
return
view
}()
lazy
var
progBar
:
UIProgressView
=
{
progBar
=
UIProgressView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
self
.
view
.
frame
.
width
,
height
:
30
))
progBar
.
progress
=
0.0
progBar
.
tintColor
=
UIColor
.
brandMainColor
return
progBar
let
view
=
UIProgressView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
self
.
view
.
frame
.
width
,
height
:
30
))
view
.
progress
=
0.0
view
.
tintColor
=
UIColor
.
brandMainColor
return
view
}()
var
url
=
""
...
...
@@ -82,14 +83,14 @@ class YHH5WebViewVC: YHBaseViewController, WKUIDelegate, WKNavigationDelegate {
name
:
UIResponder
.
keyboardWillHideNotification
,
object
:
nil
)
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
reloadUI
()
}
deinit
{
webview
.
removeObserver
(
self
,
forKeyPath
:
"estimatedProgress"
)
webview
.
removeObserver
(
self
,
forKeyPath
:
"title"
)
if
webview
.
observationInfo
!=
nil
{
webview
.
removeObserver
(
self
,
forKeyPath
:
#keyPath(
WKWebView.estimatedProgress
)
)
webview
.
removeObserver
(
self
,
forKeyPath
:
#keyPath(
WKWebView.title
)
)
}
// webview.removeObserver(self, forKeyPath: "estimatedProgress")
// webview.removeObserver(self, forKeyPath: "title")
webview
.
navigationDelegate
=
nil
NotificationCenter
.
default
.
removeObserver
(
self
)
}
...
...
@@ -306,7 +307,8 @@ private extension YHH5WebViewVC {
}
gk_navigationBar
.
isHidden
=
isHideNavigationBar
webview
.
navigationDelegate
=
self
webview
.
scrollView
.
delegate
=
self
NotificationCenter
.
default
.
addObserver
(
self
,
selector
:
#selector(
updateNetWorkUI
)
,
name
:
.
reachabilityChanged
,
object
:
nil
)
view
.
backgroundColor
=
.
white
...
...
@@ -480,6 +482,7 @@ private extension YHH5WebViewVC {
let
dict
=
[
"height"
:
"
\(
0
)
"
]
webview
.
callHandler
(
"onKeyboardHeightChanged"
,
arguments
:
[
dict
])
}
}
// MARK: - WKNavigationDelegate
...
...
@@ -742,15 +745,28 @@ extension YHH5WebViewVC {
}
func
saveLocalPictureSyn
(
_
picUrl
:
String
)
{
let
imageView
=
UIImageView
()
imageView
.
kf
.
setImage
(
with
:
URL
(
string
:
picUrl
))
{
result
in
guard
let
url
=
URL
(
string
:
picUrl
)
else
{
YHHUD
.
flash
(
message
:
"保存失败"
)
return
}
KingfisherManager
.
shared
.
retrieveImage
(
with
:
url
)
{
result
in
switch
result
{
case
.
success
(
let
value
):
self
.
saveImage
(
value
.
image
)
case
.
success
(
let
imageLoadingResult
):
self
.
saveImage
(
imageLoadingResult
.
image
)
case
.
failure
:
YHHUD
.
flash
(
message
:
"保存失败"
)
}
}
// let imageView = UIImageView()
// imageView.kf.setImage(with: URL(string: picUrl)) { result in
// switch result {
// case .success(let value):
// self.saveImage(value.image)
// case .failure:
// YHHUD.flash(message: "保存失败")
// }
// }
}
func
savePicToLocal
(
_
data
:
String
)
{
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/V/YHLiveShopView.swift
View file @
5f12e6f8
...
...
@@ -262,10 +262,12 @@ class YHLiveShopViewCell: UITableViewCell {
}
titleLabel
.
text
=
dataSource
.
name
messageLabel
.
text
=
dataSource
.
description
let
a
:
ASAttributedString
=
.
init
(
"¥"
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
14
)),
.
foreground
(
UIColor
.
mainTextColor
))
let
b
:
ASAttributedString
=
.
init
(
"
\(
dataSource
.
linePrice
)
"
,
.
font
(
UIFont
(
name
:
"DINAlternate-Bold"
,
size
:
20
)
??
UIFont
.
PFSC_R
(
ofSize
:
20
)),
.
foreground
(
UIColor
.
mainTextColor
))
let
a
:
ASAttributedString
=
.
init
(
"¥"
,
.
font
(
UIFont
(
name
:
"D-DIN-PRO-Bold"
,
size
:
14
)
??
UIFont
.
PFSC_R
(
ofSize
:
14
)),
.
foreground
(
UIColor
.
mainTextColor
))
let
linePrice
=
dataSource
.
linePrice
.
formattedPrice
()
let
b
:
ASAttributedString
=
.
init
(
"
\(
linePrice
)
"
,
.
font
(
UIFont
(
name
:
"D-DIN-PRO-Bold"
,
size
:
20
)
??
UIFont
.
PFSC_R
(
ofSize
:
20
)),
.
foreground
(
UIColor
.
mainTextColor
))
priceLabel
.
attributed
.
text
=
a
+
b
let
c
:
ASAttributedString
=
.
init
(
"¥
\(
dataSource
.
price
)
"
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
14
)),
.
foreground
(
UIColor
(
hex
:
0x8993a2
)),
.
strikethrough
(
.
single
))
let
price
=
dataSource
.
price
.
formattedPrice
()
let
c
:
ASAttributedString
=
.
init
(
"¥
\(
price
)
"
,
.
font
(
UIFont
(
name
:
"D-DIN-PRO-Medium"
,
size
:
14
)
??
UIFont
.
PFSC_R
(
ofSize
:
14
)),
.
foreground
(
UIColor
(
hex
:
0x8993a2
)),
.
strikethrough
(
.
single
))
subPriceLabel
.
attributed
.
text
=
c
flagLabel
.
text
=
"
\(
dataSource
.
flag
)
"
subPriceLabel
.
isHidden
=
dataSource
.
linePrice
==
dataSource
.
price
...
...
galaxy/galaxy/Classes/Modules/PictureReview(图片预览)/YHLongtapPictureSheetView.swift
View file @
5f12e6f8
...
...
@@ -5,6 +5,8 @@
// Created by davidhuangA on 2024/8/6.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
Kingfisher
import
UIKit
import
Photos
import
PhotosUI
...
...
@@ -238,15 +240,27 @@ private extension YHLongtapPictureSheetView {
}
func
saveLocalPictureSyn
(
_
picUrl
:
String
)
{
let
imageView
=
UIImageView
()
imageView
.
kf
.
setImage
(
with
:
URL
(
string
:
picUrl
))
{
result
in
guard
let
url
=
URL
(
string
:
picUrl
)
else
{
YHHUD
.
flash
(
message
:
"保存失败"
)
return
}
KingfisherManager
.
shared
.
retrieveImage
(
with
:
url
)
{
result
in
switch
result
{
case
.
success
(
let
value
):
self
.
saveImage
(
value
.
image
)
case
.
success
(
let
imageLoadingResult
):
self
.
saveImage
(
imageLoadingResult
.
image
)
case
.
failure
:
YHHUD
.
flash
(
message
:
"保存失败"
)
}
}
// let imageView = UIImageView()
// imageView.kf.setImage(with: URL(string: picUrl)) { result in
// switch result {
// case .success(let value):
// self.saveImage(value.image)
// case .failure:
// YHHUD.flash(message: "保存失败")
// }
// }
}
func
saveImage
(
_
image
:
UIImage
)
{
...
...
galaxy/galaxy/Classes/Modules/PictureReview(图片预览)/YHPictureBrowserViewController.swift
View file @
5f12e6f8
...
...
@@ -6,6 +6,7 @@
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
Kingfisher
import
UIKit
import
JXPhotoBrowser
import
Photos
...
...
@@ -68,15 +69,28 @@ class YHPictureBrowserViewController: JXPhotoBrowser {
}
func
saveLocalPictureSyn
(
_
picUrl
:
String
)
{
let
imageView
=
UIImageView
()
imageView
.
kf
.
setImage
(
with
:
URL
(
string
:
picUrl
))
{
result
in
guard
let
url
=
URL
(
string
:
picUrl
)
else
{
YHHUD
.
flash
(
message
:
"保存失败"
)
return
}
KingfisherManager
.
shared
.
retrieveImage
(
with
:
url
)
{
result
in
switch
result
{
case
.
success
(
let
value
):
self
.
saveImage
(
value
.
image
)
case
.
success
(
let
imageLoadingResult
):
self
.
saveImage
(
imageLoadingResult
.
image
)
case
.
failure
:
YHHUD
.
flash
(
message
:
"保存失败"
)
}
}
// let imageView = UIImageView()
// imageView.kf.setImage(with: URL(string: picUrl)) { result in
// switch result {
// case .success(let value):
// self.saveImage(value.image)
// case .failure:
// YHHUD.flash(message: "保存失败")
// }
// }
}
func
saveImage
(
_
image
:
UIImage
)
{
...
...
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/C/YHMakePlanViewController.swift
View file @
5f12e6f8
...
...
@@ -13,7 +13,7 @@ class YHMakePlanViewController: YHBaseViewController {
let
viewModel
=
YHMakePlanViewModel
()
lazy
var
headView
:
YHMakePlanHeadView
=
{
let
view
=
YHMakePlanHeadView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
333
.
fix
+
44
))
let
view
=
YHMakePlanHeadView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
333
.
fix
+
44
+
35
))
view
.
block
=
{
tag
in
self
.
topView
.
custtomView
.
updataData
(
tag
)
let
indexPath
=
IndexPath
(
row
:
tag
,
section
:
0
)
...
...
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanCell.swift
View file @
5f12e6f8
...
...
@@ -121,7 +121,7 @@ class YHMakePlanCell: UITableViewCell {
}
var
y
=
0
for
i
in
0
..<
(
dataSource
?
.
count
??
0
)
{
if
i
!=
0
||
i
!=
(
dataSource
?
.
count
??
0
)
-
1
{
if
i
!=
0
{
let
line
=
UIView
()
line
.
backgroundColor
=
UIColor
.
separatorColor
mainItemView
.
addSubview
(
line
)
...
...
@@ -133,7 +133,7 @@ class YHMakePlanCell: UITableViewCell {
}
y
+=
1
}
var
h
=
121
let
h
=
121
let
itemView
=
YHMakePlanCardView
()
itemView
.
actionHandler
=
{
product
in
self
.
actionHandler
?(
product
)
...
...
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanHeadView.swift
View file @
5f12e6f8
...
...
@@ -70,13 +70,6 @@ class YHMakePlanHeadView: UIView {
make
.
height
.
equalTo
(
333
.
fix
)
}
centerView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
16
)
make
.
right
.
equalTo
(
-
16
)
make
.
height
.
equalTo
(
88
)
make
.
bottom
.
equalTo
(
centerImageView
.
snp
.
bottom
)
.
offset
(
-
16
)
}
logoImageView
.
snp
.
makeConstraints
{
make
in
make
.
centerX
.
equalToSuperview
()
make
.
height
.
equalTo
(
109
)
...
...
@@ -84,6 +77,13 @@ class YHMakePlanHeadView: UIView {
make
.
top
.
equalTo
(
96
)
}
centerView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
16
)
make
.
right
.
equalTo
(
-
16
)
make
.
height
.
equalTo
(
133
)
make
.
top
.
equalTo
(
logoImageView
.
snp
.
bottom
)
.
offset
(
24
)
}
custtomView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
44
)
...
...
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanStateHeadView.swift
View file @
5f12e6f8
...
...
@@ -46,13 +46,24 @@ class YHMakePlanStateHeadView: UIView {
private
let
progressDescriptionLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
text
=
"
续签综合
通过率"
label
.
text
=
"
预测续签
通过率"
label
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
label
.
textColor
=
UIColor
(
hex
:
0x8893a2
)
label
.
textAlignment
=
.
center
return
label
}()
private
let
explainLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
text
=
"*该概率为预估概率,最终以实际续签结果为准"
label
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
12
)
label
.
textColor
=
UIColor
(
hex
:
0x8893a2
)
label
.
textAlignment
=
.
center
label
.
backgroundColor
=
UIColor
(
hex
:
0xf8f9fb
)
label
.
layer
.
cornerRadius
=
kCornerRadius4
return
label
}()
// MARK: - Initialization
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
...
...
@@ -72,6 +83,7 @@ class YHMakePlanStateHeadView: UIView {
addSubview
(
yearsDescriptionLabel
)
addSubview
(
percentageLabel
)
addSubview
(
progressDescriptionLabel
)
addSubview
(
explainLabel
)
}
private
func
setupConstraints
()
{
...
...
@@ -98,6 +110,13 @@ class YHMakePlanStateHeadView: UIView {
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalTo
(
self
.
snp
.
centerX
)
}
explainLabel
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalTo
(
-
16
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
18
)
make
.
left
.
equalToSuperview
()
.
offset
(
18
)
make
.
height
.
equalTo
(
29
)
}
}
// MARK: - Configuration
...
...
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanTopView.swift
View file @
5f12e6f8
...
...
@@ -17,10 +17,10 @@ class YHMakePlanTopView: UIView {
let
year
=
dataSource
?
.
year
??
0
let
rate
=
dataSource
?
.
pass_rate
??
""
let
a
:
ASAttributedString
=
.
init
(
"预计可续期(年) "
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
14
)),
.
foreground
(
UIColor
(
hex
:
0x6a7586
)))
let
b
:
ASAttributedString
=
.
init
(
"
\(
year
)
"
,
.
font
(
UIFont
.
PFSC_M
(
ofSize
:
24
)),
.
foreground
(
UIColor
.
mainTextColor
))
let
b
:
ASAttributedString
=
.
init
(
"
\(
year
)
"
,
.
font
(
UIFont
.
PFSC_M
(
ofSize
:
16
)),
.
foreground
(
UIColor
.
mainTextColor
))
yearsLabel
.
attributed
.
text
=
a
+
b
let
aa
:
ASAttributedString
=
.
init
(
"
续签综合
通过率 "
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
14
)),
.
foreground
(
UIColor
(
hex
:
0x6a7586
)))
let
bb
:
ASAttributedString
=
.
init
(
"
\(
rate
)
"
,
.
font
(
UIFont
.
PFSC_M
(
ofSize
:
24
)),
.
foreground
(
UIColor
.
mainTextColor
))
let
aa
:
ASAttributedString
=
.
init
(
"
预测续签
通过率 "
,
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
14
)),
.
foreground
(
UIColor
(
hex
:
0x6a7586
)))
let
bb
:
ASAttributedString
=
.
init
(
"
\(
rate
)
"
,
.
font
(
UIFont
.
PFSC_M
(
ofSize
:
16
)),
.
foreground
(
UIColor
.
mainTextColor
))
// let c: ASAttributedString = .init("%", .font(UIFont.PFSC_M(ofSize: 16)), .foreground(UIColor.mainTextColor))
percentageLabel
.
attributed
.
text
=
aa
+
bb
}
...
...
@@ -33,6 +33,7 @@ class YHMakePlanTopView: UIView {
private
let
percentageLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
textAlignment
=
.
right
return
label
}()
...
...
@@ -79,7 +80,7 @@ class YHMakePlanTopView: UIView {
}
percentageLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
self
.
snp
.
centerX
)
make
.
right
.
equalTo
(
-
34
)
make
.
height
.
equalTo
(
24
)
make
.
top
.
equalTo
(
18
)
}
...
...
galaxy/galaxy/Classes/Tools/Analytics/YHAnalytics.swift
View file @
5f12e6f8
...
...
@@ -17,7 +17,7 @@ class YHAnalytics {
#if DEBUG
let
options
=
SAConfigOptions
.
init
(
serverURL
:
YhConstant
.
SensorsAnalytics
.
urlForTest
,
launchOptions
:
launchOptions
)
// 开启log
options
.
enableLog
=
fals
e
options
.
enableLog
=
tru
e
SensorsAnalyticsSDK
.
sharedInstance
()?
.
set
([
"evn"
:
"test"
])
#elseif TESTENV
let
options
=
SAConfigOptions
.
init
(
serverURL
:
YhConstant
.
SensorsAnalytics
.
urlForTest
,
launchOptions
:
launchOptions
)
...
...
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