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
bd4e9eb2
Commit
bd4e9eb2
authored
Apr 02, 2025
by
pete谢兆麟
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'plan' of
http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS
into plan
parents
547e1ea5
719707b3
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
185 additions
and
26 deletions
+185
-26
YHHomeBannerView.swift
.../galaxy/Classes/Modules/Home(首页)/V/YHHomeBannerView.swift
+8
-2
YHPlanPolicyDetailViewController.swift
...Modules/Plan(方案)/C/YHPlanPolicyDetailViewController.swift
+83
-4
YHPlanShareViewController.swift
...lasses/Modules/Plan(方案)/C/YHPlanShareViewController.swift
+28
-0
YHPlanViewController.swift
...axy/Classes/Modules/Plan(方案)/C/YHPlanViewController.swift
+8
-10
YHPlanLinkShareView.swift
...laxy/Classes/Modules/Plan(方案)/V/YHPlanLinkShareView.swift
+2
-1
YHPlanShareView.swift
...y/galaxy/Classes/Modules/Plan(方案)/V/YHPlanShareView.swift
+27
-9
YHSurveyViewModel.swift
...alaxy/Classes/Modules/Plan(方案)/VM/YHSurveyViewModel.swift
+28
-0
YHAllApiName.swift
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
+1
-0
No files found.
galaxy/galaxy/Classes/Modules/Home(首页)/V/YHHomeBannerView.swift
View file @
bd4e9eb2
...
...
@@ -116,8 +116,14 @@ private extension YHHomeBannerView {
}
else
if
tabBarName
.
contains
(
"renewal_plan"
,
caseSensitive
:
false
)
{
if
YHLoginManager
.
shared
.
isLogin
()
{
surveyViewModel
.
getRenewalPlanState
{
state
,
_
in
if
state
?
.
isGeneratePlan
==
true
{
surveyViewModel
.
getRenewalPlanGenerated
{
state
,
error
in
guard
let
state
=
state
else
{
if
let
msg
=
error
?
.
errorMsg
,
!
msg
.
isEmpty
{
YHHUD
.
flash
(
message
:
msg
)
}
return
}
if
state
.
isGeneratePlan
==
true
{
let
vc
=
YHPlanViewController
()
UIViewController
.
current
?
.
navigationController
?
.
pushViewController
(
vc
)
}
else
{
...
...
galaxy/galaxy/Classes/Modules/Plan(方案)/C/YHPlanPolicyDetailViewController.swift
View file @
bd4e9eb2
...
...
@@ -7,6 +7,8 @@
//
import
UIKit
import
Photos
import
VisualEffectView
class
YHPlanPolicyImageInfo
{
var
model
:
YHPlanCaseModel
=
YHPlanCaseModel
()
...
...
@@ -54,10 +56,12 @@ class YHPlanPolicyDetailViewController: YHBaseViewController {
return
collectView
}()
lazy
var
blurView
:
UIVisualEffectView
=
{
let
blurEffect
=
UIBlurEffect
(
style
:
.
light
)
// 可以选择不同的模糊样式
let
blurEffectView
=
UIVisualEffectView
(
effect
:
blurEffect
)
return
blurEffectView
lazy
var
blurView
:
VisualEffectView
=
{
let
blurView
=
VisualEffectView
()
blurView
.
colorTint
=
UIColor
(
hex
:
0xAFAFAF
)
.
withAlphaComponent
(
0.15
)
blurView
.
blurRadius
=
16
blurView
.
scale
=
1
return
blurView
}()
lazy
var
shareBtn
:
UIButton
=
{
...
...
@@ -73,6 +77,24 @@ class YHPlanPolicyDetailViewController: YHBaseViewController {
@objc
func
didShareBtnClicked
()
{
let
view
=
YHPlanLinkShareView
.
alertView
()
view
.
clickBlock
=
{
[
weak
self
]
type
in
guard
let
self
=
self
else
{
return
}
if
0
<=
currentIndex
,
currentIndex
<
arr
.
count
{
let
model
=
arr
[
currentIndex
]
if
type
==
.
wechat
{
sendImageToWechat
(
model
.
img_url
)
}
else
if
type
==
.
copyLink
{
let
pasteBoard
=
UIPasteboard
.
general
pasteBoard
.
string
=
model
.
img_url
YHHUD
.
flash
(
message
:
"复制成功"
)
}
else
if
type
==
.
saveImg
{
saveImgFromUrl
(
model
.
img_url
)
}
}
}
view
.
show
()
}
...
...
@@ -195,3 +217,60 @@ extension YHPlanPolicyDetailViewController: UIScrollViewDelegate {
}
}
extension
YHPlanPolicyDetailViewController
{
func
saveImgFromUrl
(
_
urlString
:
String
)
{
guard
let
url
=
URL
(
string
:
urlString
)
else
{
YHHUD
.
flash
(
message
:
"保存失败"
)
return
}
YHHUD
.
show
(
.
progress
(
message
:
"下载中..."
))
let
task
=
URLSession
.
shared
.
dataTask
(
with
:
url
)
{
data
,
_
,
error
in
DispatchQueue
.
main
.
async
{
YHHUD
.
hide
()
guard
let
data
=
data
,
error
==
nil
else
{
return
YHHUD
.
flash
(
message
:
"保存成功"
)
}
let
image
=
UIImage
(
data
:
data
)
if
let
image
=
image
{
// 保存图片到图库
PHPhotoLibrary
.
shared
()
.
performChanges
({
PHAssetChangeRequest
.
creationRequestForAsset
(
from
:
image
)
},
completionHandler
:
{
success
,
error
in
if
success
{
// 图片保存成功
DispatchQueue
.
main
.
async
{
YHHUD
.
flash
(
message
:
"保存成功"
)
}
}
else
if
let
error
=
error
{
// 保存失败
DispatchQueue
.
main
.
async
{
YHHUD
.
flash
(
message
:
"保存失败"
)
}
print
(
"保存图片出错:
\(
error
.
localizedDescription
)
"
)
}
})
}
}
}
task
.
resume
()
}
func
sendImageToWechat
(
_
urlString
:
String
)
{
guard
let
url
=
URL
(
string
:
urlString
)
else
{
return
}
let
task
=
URLSession
.
shared
.
dataTask
(
with
:
url
)
{
data
,
_
,
error
in
DispatchQueue
.
main
.
async
{
guard
let
data
=
data
,
error
==
nil
else
{
return
}
let
image
=
UIImage
(
data
:
data
)
if
let
image
=
image
{
YHShareManager
.
shared
.
sendImageContent
(
image
)
}
}
}
task
.
resume
()
}
}
galaxy/galaxy/Classes/Modules/Plan(方案)/C/YHPlanShareViewController.swift
View file @
bd4e9eb2
...
...
@@ -111,6 +111,34 @@ class YHPlanShareViewController: YHBaseViewController {
lazy
var
bottomShareView
:
YHPlanShareView
=
{
let
v
=
YHPlanShareView
(
frame
:
.
zero
)
v
.
type
=
.
link
v
.
clickBlock
=
{
[
weak
self
]
type
,
eventType
in
guard
let
self
=
self
else
{
return
}
if
eventType
==
.
cancel
{
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
return
}
if
type
==
.
link
{
if
eventType
==
.
wechat
{
let
iconImg
=
UIImage
(
named
:
"shareIcon"
)
??
UIImage
()
YHShareManager
.
shared
.
sendLinkContent
(
"SB"
,
"XXXXXXXX"
,
iconImg
,
link
:
"www.baidu.com"
)
}
else
if
eventType
==
.
copyLink
{
let
pasteBoard
=
UIPasteboard
.
general
pasteBoard
.
string
=
""
YHHUD
.
flash
(
message
:
"复制成功"
)
}
}
else
if
type
==
.
pdf
{
if
eventType
==
.
wechat
{
}
else
if
eventType
==
.
saveImg
{
}
}
}
return
v
}()
...
...
galaxy/galaxy/Classes/Modules/Plan(方案)/C/YHPlanViewController.swift
View file @
bd4e9eb2
...
...
@@ -128,7 +128,7 @@ class YHPlanViewController: YHBaseViewController {
}()
lazy
var
bgImgView
:
UIImageView
=
{
let
v
=
UIImageView
()
let
v
=
UIImageView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
KScreenWidth
)
)
v
.
image
=
UIImage
(
named
:
"plan_list_head_bg"
)
return
v
}()
...
...
@@ -299,11 +299,6 @@ class YHPlanViewController: YHBaseViewController {
self
.
view
.
addSubview
(
bottomView
)
self
.
view
.
addSubview
(
whiteBackBtn
)
self
.
view
.
addSubview
(
shareBtn
)
bgImgView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
top
.
equalToSuperview
()
make
.
height
.
equalTo
(
bgImgView
.
snp
.
width
)
}
tableView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
...
...
@@ -537,14 +532,17 @@ extension YHPlanViewController: UIScrollViewDelegate {
}
fakeTableView
.
isHidden
=
tableView
.
contentOffset
.
y
<=
topScrollHeight
-
1
if
fakeTableView
.
contentOffset
.
y
>
0
{
bgImgView
.
y
=
-
scroll
View
.
contentOffset
.
y
-
fakeTableView
.
contentOffset
.
y
bgImgView
.
y
=
-
table
View
.
contentOffset
.
y
-
fakeTableView
.
contentOffset
.
y
}
else
{
bgImgView
.
y
=
-
scroll
View
.
contentOffset
.
y
bgImgView
.
y
=
-
table
View
.
contentOffset
.
y
}
fakeTableView
.
isHidden
=
tableView
.
contentOffset
.
y
<=
topScrollHeight
-
1
if
fakeTableView
.
contentOffset
.
y
<
-
1
{
fakeTableView
.
contentOffset
.
y
=
-
1
}
if
tableView
.
contentOffset
.
y
>=
topScrollHeight
,
fakeTableView
.
contentOffset
.
y
>=
0
{
tableView
.
isHidden
=
true
fakeTableView
.
isHidden
=
false
...
...
galaxy/galaxy/Classes/Modules/Plan(方案)/V/YHPlanLinkShareView.swift
View file @
bd4e9eb2
...
...
@@ -129,8 +129,9 @@ class YHPlanLinkShareView: UIView {
clickBlock
?(
.
saveImg
)
}
else
if
sender
.
tag
==
cancelTag
{
dismiss
()
}
dismiss
()
}
@objc
func
show
()
{
...
...
galaxy/galaxy/Classes/Modules/Plan(方案)/V/YHPlanShareView.swift
View file @
bd4e9eb2
...
...
@@ -18,17 +18,17 @@ class YHPlanShareView: UIView {
var
type
:
YHPlanShareBgType
=
.
link
{
didSet
{
if
type
==
.
link
{
copyLinkBtn
.
i
conImgV
.
image
=
UIImage
(
named
:
"plan_share_copy"
)
copyLinkBtn
.
textLabel
.
text
=
"复制链接"
copyLinkBtn
.
i
sHidden
=
false
saveBtn
.
isHidden
=
true
}
else
if
type
==
.
pdf
{
copyLinkBtn
.
i
conImgV
.
image
=
UIImage
(
named
:
"plan_share_save"
)
copyLinkBtn
.
textLabel
.
text
=
"保存PDF"
copyLinkBtn
.
i
sHidden
=
true
saveBtn
.
isHidden
=
false
}
}
}
var
clickBlock
:
((
YHPlanShareItemButtonType
)
->
Void
)?
var
clickBlock
:
((
YHPlanShare
BgType
,
YHPlanShare
ItemButtonType
)
->
Void
)?
lazy
var
whiteContentView
:
UIView
=
{
let
v
=
UIView
()
...
...
@@ -67,18 +67,29 @@ class YHPlanShareView: UIView {
return
v
}()
lazy
var
saveBtn
:
YHPlanShareItemButton
=
{
let
v
=
YHPlanShareItemButton
()
v
.
tag
=
saveImgTag
v
.
textLabel
.
text
=
"保存PDF"
v
.
iconImgV
.
image
=
UIImage
(
named
:
"plan_share_save"
)
v
.
isHidden
=
true
v
.
addTarget
(
self
,
action
:
#selector(
didFunctionBtnClicked(_:)
)
,
for
:
.
touchUpInside
)
return
v
}()
@objc
func
didFunctionBtnClicked
(
_
sender
:
UIButton
)
{
if
sender
.
tag
==
wechatBtnTag
{
clickBlock
?(
.
wechat
)
clickBlock
?(
type
,
.
wechat
)
}
else
if
sender
.
tag
==
copyLinkTag
{
clickBlock
?(
.
copyLink
)
clickBlock
?(
type
,
.
copyLink
)
}
else
if
sender
.
tag
==
saveImgTag
{
clickBlock
?(
.
saveImg
)
clickBlock
?(
type
,
.
saveImg
)
}
else
if
sender
.
tag
==
cancelTag
{
clickBlock
?(
type
,
.
cancel
)
}
}
...
...
@@ -96,6 +107,7 @@ class YHPlanShareView: UIView {
self
.
addSubview
(
whiteContentView
)
whiteContentView
.
addSubview
(
wechatBtn
)
whiteContentView
.
addSubview
(
copyLinkBtn
)
whiteContentView
.
addSubview
(
saveBtn
)
whiteContentView
.
addSubview
(
cancelBtn
)
whiteContentView
.
snp
.
makeConstraints
{
make
in
...
...
@@ -109,6 +121,12 @@ class YHPlanShareView: UIView {
make
.
left
.
equalTo
(
self
.
snp
.
centerX
)
.
offset
(
35
)
}
saveBtn
.
snp
.
makeConstraints
{
make
in
make
.
width
.
equalTo
(
64
)
make
.
height
.
equalTo
(
74
)
make
.
center
.
equalTo
(
copyLinkBtn
)
}
wechatBtn
.
snp
.
makeConstraints
{
make
in
make
.
width
.
equalTo
(
64
)
make
.
height
.
equalTo
(
74
)
...
...
galaxy/galaxy/Classes/Modules/Plan(方案)/VM/YHSurveyViewModel.swift
View file @
bd4e9eb2
...
...
@@ -104,4 +104,32 @@ extension YHSurveyViewModel {
callback
(
nil
,
err
)
}
}
/*
问卷首页是否生成方案
*/
func
getRenewalPlanGenerated
(
callback
:
@escaping
(
_
planState
:
YHSurveyRenewalPlanState
?,
_
error
:
YHErrorModel
?)
->
Void
)
{
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
Survey
.
getRenewalPlanGenerated
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
,
params
:
[:])
{
[
weak
self
]
json
,
_
in
// 1. json字符串 转 对象
printLog
(
"model 是 ==>
\(
json
)
"
)
if
json
.
code
==
200
{
guard
let
dic
=
json
.
data
?
.
peel
as?
[
String
:
Any
],
let
resultModel
=
YHSurveyRenewalPlanState
.
deserialize
(
from
:
dic
)
else
{
let
err
=
YHErrorModel
(
errorCode
:
YHErrorCode
.
dictParseError
.
rawValue
,
errorMsg
:
YHErrorCode
.
dictParseError
.
description
())
callback
(
nil
,
err
)
return
}
self
?
.
planState
=
resultModel
callback
(
resultModel
,
nil
)
}
else
{
let
err
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
.
isEmpty
?
""
:
json
.
msg
)
callback
(
nil
,
err
)
}
}
failBlock
:
{
err
in
callback
(
nil
,
err
)
}
}
}
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
View file @
bd4e9eb2
...
...
@@ -764,6 +764,7 @@ class YHAllApiName {
static
let
surveyContent
=
"super-app/renewal/advice/survey-content"
static
let
submitSurveyAnswer
=
"super-app/renewal/advice/submit-survey-answer"
static
let
getRenewalPlanState
=
"super-app/renewal/advice/get-renewal-plan-is-generate"
static
let
getRenewalPlanGenerated
=
"super-app/renewal/advice/get-renewal-plan-is-generated"
}
}
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