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
916f235d
Commit
916f235d
authored
Feb 20, 2025
by
Alex朱枝文
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
积分中心接口调试
parent
341a5cd1
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
292 additions
and
24 deletions
+292
-24
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+8
-0
YHMemberCenterViewController.swift
...ses/Modules/Mine(我的)/C/YHMemberCenterViewController.swift
+0
-0
YHMemberCenterCellContent.swift
...es/Modules/Mine(我的)/Model/YHMemberCenterCellContent.swift
+1
-1
YHMemberCenterInfo.swift
...y/Classes/Modules/Mine(我的)/Model/YHMemberCenterInfo.swift
+82
-0
YHMembershipLevel.swift
...xy/Classes/Modules/Mine(我的)/Model/YHMembershipLevel.swift
+15
-6
YHMemberCenterActionCell.swift
...Classes/Modules/Mine(我的)/V/YHMemberCenterActionCell.swift
+5
-0
YHMemberCenterHeaderBannerCell.swift
...s/Modules/Mine(我的)/V/YHMemberCenterHeaderBannerCell.swift
+9
-5
YHMemberCenterHeaderView.swift
...Classes/Modules/Mine(我的)/V/YHMemberCenterHeaderView.swift
+130
-12
YHMemberCenterViewModel.swift
.../Modules/Mine(我的)/ViewModel/YHMemberCenterViewModel.swift
+41
-0
YHAllApiName.swift
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
+1
-0
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
916f235d
...
@@ -72,6 +72,8 @@
...
@@ -72,6 +72,8 @@
0436713D2D6470A400E8D9BA
/* YHMemberCenterActionCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0436713C2D6470A400E8D9BA
/* YHMemberCenterActionCell.swift */
;
};
0436713D2D6470A400E8D9BA
/* YHMemberCenterActionCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0436713C2D6470A400E8D9BA
/* YHMemberCenterActionCell.swift */
;
};
0436713F2D64817500E8D9BA
/* YHMemberCenterFooterView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0436713E2D64817500E8D9BA
/* YHMemberCenterFooterView.swift */
;
};
0436713F2D64817500E8D9BA
/* YHMemberCenterFooterView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0436713E2D64817500E8D9BA
/* YHMemberCenterFooterView.swift */
;
};
043671412D64935200E8D9BA
/* YHMemberCenterCellContent.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
043671402D64935200E8D9BA
/* YHMemberCenterCellContent.swift */
;
};
043671412D64935200E8D9BA
/* YHMemberCenterCellContent.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
043671402D64935200E8D9BA
/* YHMemberCenterCellContent.swift */
;
};
043671432D66DDB500E8D9BA
/* YHMemberCenterInfo.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
043671422D66DDB500E8D9BA
/* YHMemberCenterInfo.swift */
;
};
043671452D66FBEE00E8D9BA
/* YHMemberCenterViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
043671442D66FBEE00E8D9BA
/* YHMemberCenterViewModel.swift */
;
};
045C0F7F2D12CA5F00BD2DC0
/* submit_page_scroll.gif in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F4F2D12CA5E00BD2DC0
/* submit_page_scroll.gif */
;
};
045C0F7F2D12CA5F00BD2DC0
/* submit_page_scroll.gif in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F4F2D12CA5E00BD2DC0
/* submit_page_scroll.gif */
;
};
045C0F802D12CA5F00BD2DC0
/* Localizable.xcstrings in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F762D12CA5E00BD2DC0
/* Localizable.xcstrings */
;
};
045C0F802D12CA5F00BD2DC0
/* Localizable.xcstrings in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F762D12CA5E00BD2DC0
/* Localizable.xcstrings */
;
};
045C0F812D12CA5F00BD2DC0
/* img_0.png in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F5E2D12CA5E00BD2DC0
/* img_0.png */
;
};
045C0F812D12CA5F00BD2DC0
/* img_0.png in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
045C0F5E2D12CA5E00BD2DC0
/* img_0.png */
;
};
...
@@ -1310,6 +1312,8 @@
...
@@ -1310,6 +1312,8 @@
0436713C2D6470A400E8D9BA
/* YHMemberCenterActionCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMemberCenterActionCell.swift
;
sourceTree
=
"<group>"
;
};
0436713C2D6470A400E8D9BA
/* YHMemberCenterActionCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMemberCenterActionCell.swift
;
sourceTree
=
"<group>"
;
};
0436713E2D64817500E8D9BA
/* YHMemberCenterFooterView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMemberCenterFooterView.swift
;
sourceTree
=
"<group>"
;
};
0436713E2D64817500E8D9BA
/* YHMemberCenterFooterView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMemberCenterFooterView.swift
;
sourceTree
=
"<group>"
;
};
043671402D64935200E8D9BA
/* YHMemberCenterCellContent.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMemberCenterCellContent.swift
;
sourceTree
=
"<group>"
;
};
043671402D64935200E8D9BA
/* YHMemberCenterCellContent.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMemberCenterCellContent.swift
;
sourceTree
=
"<group>"
;
};
043671422D66DDB500E8D9BA
/* YHMemberCenterInfo.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMemberCenterInfo.swift
;
sourceTree
=
"<group>"
;
};
043671442D66FBEE00E8D9BA
/* YHMemberCenterViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMemberCenterViewModel.swift
;
sourceTree
=
"<group>"
;
};
045C0A142D12CA5E00BD2DC0
/* YHBaseViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewController.swift
;
sourceTree
=
"<group>"
;
};
045C0A142D12CA5E00BD2DC0
/* YHBaseViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewController.swift
;
sourceTree
=
"<group>"
;
};
045C0A152D12CA5E00BD2DC0
/* YHBaseViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewModel.swift
;
sourceTree
=
"<group>"
;
};
045C0A152D12CA5E00BD2DC0
/* YHBaseViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewModel.swift
;
sourceTree
=
"<group>"
;
};
045C0A162D12CA5E00BD2DC0
/* YHNavigationController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHNavigationController.swift
;
sourceTree
=
"<group>"
;
};
045C0A162D12CA5E00BD2DC0
/* YHNavigationController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHNavigationController.swift
;
sourceTree
=
"<group>"
;
};
...
@@ -5736,6 +5740,7 @@
...
@@ -5736,6 +5740,7 @@
045C0EE22D12CA5E00BD2DC0
/* YHCollectionModel.swift */
,
045C0EE22D12CA5E00BD2DC0
/* YHCollectionModel.swift */
,
048D6AE02D5F17C400BC6F4C
/* YHMembershipLevel.swift */
,
048D6AE02D5F17C400BC6F4C
/* YHMembershipLevel.swift */
,
043671402D64935200E8D9BA
/* YHMemberCenterCellContent.swift */
,
043671402D64935200E8D9BA
/* YHMemberCenterCellContent.swift */
,
043671422D66DDB500E8D9BA
/* YHMemberCenterInfo.swift */
,
);
);
path
=
Model
;
path
=
Model
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -5819,6 +5824,7 @@
...
@@ -5819,6 +5824,7 @@
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
045C0EFB2D12CA5E00BD2DC0
/* YHMyLikeViewModel.swift */
,
045C0EFB2D12CA5E00BD2DC0
/* YHMyLikeViewModel.swift */
,
043671442D66FBEE00E8D9BA
/* YHMemberCenterViewModel.swift */
,
);
);
path
=
ViewModel
;
path
=
ViewModel
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -7124,6 +7130,7 @@
...
@@ -7124,6 +7130,7 @@
045C109A2D12CA5F00BD2DC0
/* YhCacheTool.swift in Sources */
,
045C109A2D12CA5F00BD2DC0
/* YhCacheTool.swift in Sources */
,
045C109B2D12CA5F00BD2DC0
/* YHHomeInfoDetailViewController.swift in Sources */
,
045C109B2D12CA5F00BD2DC0
/* YHHomeInfoDetailViewController.swift in Sources */
,
045C109C2D12CA5F00BD2DC0
/* YHAdopterChinaViewController.swift in Sources */
,
045C109C2D12CA5F00BD2DC0
/* YHAdopterChinaViewController.swift in Sources */
,
043671452D66FBEE00E8D9BA
/* YHMemberCenterViewModel.swift in Sources */
,
04AE20332D13B72F00891D24
/* YHGCChildPrimaryInfoVC.swift in Sources */
,
04AE20332D13B72F00891D24
/* YHGCChildPrimaryInfoVC.swift in Sources */
,
045C109D2D12CA5F00BD2DC0
/* YHHKRecordsSectionItemBaseCell.swift in Sources */
,
045C109D2D12CA5F00BD2DC0
/* YHHKRecordsSectionItemBaseCell.swift in Sources */
,
045C109E2D12CA5F00BD2DC0
/* YHResignMaterialViewModel.swift in Sources */
,
045C109E2D12CA5F00BD2DC0
/* YHResignMaterialViewModel.swift in Sources */
,
...
@@ -7295,6 +7302,7 @@
...
@@ -7295,6 +7302,7 @@
045C113B2D12CA5F00BD2DC0
/* YHButlerServiceMessageHandler.swift in Sources */
,
045C113B2D12CA5F00BD2DC0
/* YHButlerServiceMessageHandler.swift in Sources */
,
045C113C2D12CA5F00BD2DC0
/* YHResignScheduleLineCollectCell.swift in Sources */
,
045C113C2D12CA5F00BD2DC0
/* YHResignScheduleLineCollectCell.swift in Sources */
,
04AE20502D19425900891D24
/* YHGCCertificateListVC.swift in Sources */
,
04AE20502D19425900891D24
/* YHGCCertificateListVC.swift in Sources */
,
043671432D66DDB500E8D9BA
/* YHMemberCenterInfo.swift in Sources */
,
045C113D2D12CA5F00BD2DC0
/* YHMyFileListCell.swift in Sources */
,
045C113D2D12CA5F00BD2DC0
/* YHMyFileListCell.swift in Sources */
,
045C113E2D12CA5F00BD2DC0
/* YHLookResignResultModel.swift in Sources */
,
045C113E2D12CA5F00BD2DC0
/* YHLookResignResultModel.swift in Sources */
,
045C113F2D12CA5F00BD2DC0
/* YHIncomeTypeSelectCell.swift in Sources */
,
045C113F2D12CA5F00BD2DC0
/* YHIncomeTypeSelectCell.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/Mine(我的)/C/YHMemberCenterViewController.swift
View file @
916f235d
This diff is collapsed.
Click to expand it.
galaxy/galaxy/Classes/Modules/Mine(我的)/Model/YHMemberCenterCellContent.swift
View file @
916f235d
...
@@ -10,7 +10,7 @@ import Foundation
...
@@ -10,7 +10,7 @@ import Foundation
enum
YHMemberCenterCellContent
:
String
,
CaseIterable
{
enum
YHMemberCenterCellContent
:
String
,
CaseIterable
{
case
kidsBay
=
"kidsbay高端早教盒子"
case
kidsBay
=
"kidsbay高端早教盒子"
case
luxury
=
"
北上港深
奢华体验中心"
case
luxury
=
"奢华体验中心"
case
crossBorder
=
"深港跨境出行预约"
case
crossBorder
=
"深港跨境出行预约"
case
hkTravel
=
"香港境内出行预约"
case
hkTravel
=
"香港境内出行预约"
case
drivingLicense
=
"国际驾照续期"
case
drivingLicense
=
"国际驾照续期"
...
...
galaxy/galaxy/Classes/Modules/Mine(我的)/Model/YHMemberCenterInfo.swift
0 → 100644
View file @
916f235d
//
// YHMemberCenterInfo.swift
// galaxy
//
// Created by alexzzw on 2025/2/20.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
SmartCodable
import
UIKit
class
YHMemberCenterInfo
:
SmartCodable
{
var
answerConsult
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
brandStrategy
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
carTransfer
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
currentLevel
:
Int
=
0
var
dedicatedAdviser
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
exchangeCount
:
Int
=
0
var
exchangedCount
:
Int
=
0
var
experienceCenter
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
growthValue
:
Int
=
0
var
highEndPrivilege
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
highTeaBox
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
hkCarTransfer
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
hongkongSchoolPlanning
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
internationalDrivingLicense
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
luxuryTea
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
maxGrowth
:
Int
=
0
var
offlineSalon
:
YHMemberGiftModel
=
YHMemberGiftModel
()
var
specialIntegralConsumption
:
YHMemberGiftModel
=
YHMemberGiftModel
()
enum
CodingKeys
:
String
,
CodingKey
{
case
answerConsult
=
"answer_consult"
case
brandStrategy
=
"brand_strategy"
case
carTransfer
=
"car_transfer"
case
currentLevel
=
"current_level"
case
dedicatedAdviser
=
"dedicated_adviser"
case
exchangeCount
=
"exchange_count"
case
exchangedCount
=
"exchanged_count"
case
experienceCenter
=
"experience_center"
case
growthValue
=
"growth_value"
case
highEndPrivilege
=
"high_end_privilege"
case
highTeaBox
=
"high_tea_box"
case
hkCarTransfer
=
"hk_car_transfer"
case
hongkongSchoolPlanning
=
"hongkong_school_planning"
case
internationalDrivingLicense
=
"international_driving_license"
case
luxuryTea
=
"luxury_tea"
case
maxGrowth
=
"max_growth"
case
offlineSalon
=
"offline_salon"
case
specialIntegralConsumption
=
"special_integral_consumption"
}
required
init
()
{
}
}
// MARK: - YHMemberAnswerConsult
class
YHMemberGiftModel
:
SmartCodable
{
var
giftId
:
String
=
""
var
minLevel
:
Int
=
0
var
name
:
String
=
""
var
num
:
Int
=
0
enum
CodingKeys
:
String
,
CodingKey
{
case
giftId
=
"gift_id"
case
minLevel
=
"min_level"
case
name
case
num
}
required
init
()
{
}
}
galaxy/galaxy/Classes/Modules/Mine(我的)/Model/YHMembershipLevel.swift
View file @
916f235d
...
@@ -8,15 +8,24 @@
...
@@ -8,15 +8,24 @@
import
Foundation
import
Foundation
enum
YHMembershipLevel
:
String
,
CaseIterable
{
enum
YHMembershipLevel
:
Int
,
CaseIterable
{
case
normal
=
"大众会员"
case
normal
=
10
case
gold
=
"黄金会员"
case
gold
=
20
case
platinum
=
"铂金会员"
case
platinum
=
30
case
diamond
=
"钻石会员"
case
diamond
=
40
// 可以添加其他属性或方法
// 可以添加其他属性或方法
var
description
:
String
{
var
description
:
String
{
return
rawValue
switch
self
{
case
.
normal
:
return
"大众会员"
case
.
gold
:
return
"黄金会员"
case
.
platinum
:
return
"铂金会员"
case
.
diamond
:
return
"钻石会员"
}
}
}
// 示例:获取会员等级对应的权益
// 示例:获取会员等级对应的权益
...
...
galaxy/galaxy/Classes/Modules/Mine(我的)/V/YHMemberCenterActionCell.swift
View file @
916f235d
...
@@ -36,6 +36,7 @@ class YHMemberCenterActionCell: YHResignDocumentCell {
...
@@ -36,6 +36,7 @@ class YHMemberCenterActionCell: YHResignDocumentCell {
private
lazy
var
actionButton
:
YHMemberCenterActionButton
=
{
private
lazy
var
actionButton
:
YHMemberCenterActionButton
=
{
let
button
=
YHMemberCenterActionButton
(
type
:
.
custom
)
let
button
=
YHMemberCenterActionButton
(
type
:
.
custom
)
button
.
update
(
state
:
.
redeemable
)
button
.
update
(
state
:
.
redeemable
)
button
.
addTarget
(
self
,
action
:
#selector(
actionButtonClicked
)
,
for
:
.
touchUpInside
)
return
button
return
button
}()
}()
...
@@ -47,6 +48,10 @@ class YHMemberCenterActionCell: YHResignDocumentCell {
...
@@ -47,6 +48,10 @@ class YHMemberCenterActionCell: YHResignDocumentCell {
required
init
?(
coder
:
NSCoder
)
{
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
fatalError
(
"init(coder:) has not been implemented"
)
}
}
@objc
private
func
actionButtonClicked
()
{
actionButtonEvent
?()
}
private
func
setupUI
()
{
private
func
setupUI
()
{
updateCellCorner
(
.
single
)
updateCellCorner
(
.
single
)
...
...
galaxy/galaxy/Classes/Modules/Mine(我的)/V/YHMemberCenterHeaderBannerCell.swift
View file @
916f235d
...
@@ -34,6 +34,8 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell {
...
@@ -34,6 +34,8 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell {
private
lazy
var
upgradeButton
:
UIButton
=
{
private
lazy
var
upgradeButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
let
button
=
UIButton
(
type
:
.
custom
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
12
)
button
.
titleLabel
?
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
12
)
button
.
clipsToBounds
=
true
button
.
layer
.
cornerRadius
=
17
return
button
return
button
}()
}()
...
@@ -129,23 +131,25 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell {
...
@@ -129,23 +131,25 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell {
make
.
right
.
lessThanOrEqualTo
(
upgradeButton
.
snp
.
left
)
.
offset
(
-
26
)
make
.
right
.
lessThanOrEqualTo
(
upgradeButton
.
snp
.
left
)
.
offset
(
-
26
)
}
}
}
}
func
setupData
(
level
:
YHMembershipLevel
,
levelString
:
String
,
countFrom
:
Int
,
countTo
:
Int
,
tips
:
String
,
upgradeTitle
:
String
)
{
func
setupData
(
level
:
YHMembershipLevel
,
levelString
:
String
,
tips
:
String
,
upgradeTitle
:
String
,
showProgress
:
Bool
,
ratioString
:
String
,
ratio
:
CGFloat
,
showRatio
:
Bool
,
showTips
:
Bool
)
{
bannerImagV
.
image
=
UIImage
(
named
:
level
.
cardIconTitle
())
bannerImagV
.
image
=
UIImage
(
named
:
level
.
cardIconTitle
())
bannerTitleLabel
.
text
=
level
.
description
bannerTitleLabel
.
text
=
level
.
description
bannerTitleLabel
.
textColor
=
level
.
levelTitleColor
()
bannerTitleLabel
.
textColor
=
level
.
levelTitleColor
()
levelButton
.
setTitleColor
(
level
.
levelButtonTitleColor
(),
for
:
.
normal
)
levelButton
.
setTitleColor
(
level
.
levelButtonTitleColor
(),
for
:
.
normal
)
levelButton
.
setTitle
(
levelString
,
for
:
.
normal
)
levelButton
.
setTitle
(
levelString
,
for
:
.
normal
)
countLabel
.
textColor
=
level
.
countTitleColor
()
countLabel
.
textColor
=
level
.
countTitleColor
()
countLabel
.
text
=
countTo
==
0
?
"
\(
countFrom
)
"
:
"
\(
countFrom
)
/
\(
countTo
)
"
countLabel
.
text
=
ratioString
progressView
.
progress
=
Float
(
Double
(
countFrom
)
*
1.0
/
Double
(
countTo
))
countLabel
.
isHidden
=
!
showRatio
progressView
.
progress
=
Float
(
ratio
)
tipsLabel
.
textColor
=
level
.
tipsTitleColor
()
tipsLabel
.
textColor
=
level
.
tipsTitleColor
()
tipsLabel
.
text
=
tips
tipsLabel
.
text
=
tips
tipsLabel
.
isHidden
=
!
showTips
upgradeButton
.
setTitle
(
upgradeTitle
,
for
:
.
normal
)
upgradeButton
.
setTitle
(
upgradeTitle
,
for
:
.
normal
)
upgradeButton
.
setTitleColor
(
level
.
upgradeButtonTitleColor
(),
for
:
.
normal
)
upgradeButton
.
setTitleColor
(
level
.
upgradeButtonTitleColor
(),
for
:
.
normal
)
upgradeButton
.
backgroundColor
=
level
.
upgradeButtonBackgroundColor
()
upgradeButton
.
backgroundColor
=
level
.
upgradeButtonBackgroundColor
()
if
level
==
.
normal
||
level
==
.
diamond
{
if
!
showProgress
{
progressView
.
isHidden
=
true
progressView
.
isHidden
=
true
countLabel
.
snp
.
remakeConstraints
{
make
in
countLabel
.
snp
.
remakeConstraints
{
make
in
make
.
left
.
equalTo
(
bannerTitleLabel
)
make
.
left
.
equalTo
(
bannerTitleLabel
)
...
...
galaxy/galaxy/Classes/Modules/Mine(我的)/V/YHMemberCenterHeaderView.swift
View file @
916f235d
...
@@ -13,18 +13,26 @@ class YHMemberCenterHeaderView: UIView {
...
@@ -13,18 +13,26 @@ class YHMemberCenterHeaderView: UIView {
class
BannerData
{
class
BannerData
{
var
level
:
YHMembershipLevel
=
.
normal
var
level
:
YHMembershipLevel
=
.
normal
var
levelString
:
String
=
""
var
levelString
:
String
=
""
var
countFrom
:
Int
=
0
var
countTo
:
Int
=
0
var
tips
:
String
=
""
var
tips
:
String
=
""
var
upgradeTitle
:
String
=
""
var
upgradeTitle
:
String
=
""
var
showProgress
:
Bool
=
false
var
ratioString
:
String
=
""
var
ratio
:
CGFloat
=
0
var
showRatio
:
Bool
=
false
var
showTips
:
Bool
=
false
init
(
level
:
YHMembershipLevel
,
levelString
:
String
,
countFrom
:
Int
,
countTo
:
Int
,
tips
:
String
,
upgradeTitle
:
String
)
{
init
(
level
:
YHMembershipLevel
,
levelString
:
String
,
tips
:
String
,
upgradeTitle
:
String
,
showProgress
:
Bool
,
ratioString
:
String
,
ratio
:
CGFloat
,
showRatio
:
Bool
,
showTips
:
Bool
)
{
self
.
level
=
level
self
.
level
=
level
self
.
levelString
=
levelString
self
.
levelString
=
levelString
self
.
countFrom
=
countFrom
self
.
countTo
=
countTo
self
.
tips
=
tips
self
.
tips
=
tips
self
.
upgradeTitle
=
upgradeTitle
self
.
upgradeTitle
=
upgradeTitle
self
.
showProgress
=
showProgress
self
.
ratioString
=
ratioString
self
.
ratio
=
ratio
self
.
showRatio
=
showRatio
self
.
showTips
=
showTips
}
}
}
}
...
@@ -57,12 +65,122 @@ class YHMemberCenterHeaderView: UIView {
...
@@ -57,12 +65,122 @@ class YHMemberCenterHeaderView: UIView {
return
view
return
view
}()
}()
var
datas
:
[
BannerData
]
{
var
datas
:
[
BannerData
]
=
[]
let
normal
=
BannerData
(
level
:
.
normal
,
levelString
:
"当前等级"
,
countFrom
:
0
,
countTo
:
0
,
tips
:
"消费即升至黄金会员"
,
upgradeTitle
:
"去升级"
)
let
gold
=
BannerData
(
level
:
.
gold
,
levelString
:
"您未达到该等级"
,
countFrom
:
1000
,
countTo
:
60000
,
tips
:
"距铂金会员还需60000成长值"
,
upgradeTitle
:
"去升级"
)
func
updateDatas
(
_
memberCenterInfo
:
YHMemberCenterInfo
)
{
let
platinum
=
BannerData
(
level
:
.
platinum
,
levelString
:
"您未达到该等级"
,
countFrom
:
0
,
countTo
:
150000
,
tips
:
"距钻石会员还需150000成长值"
,
upgradeTitle
:
"去升级"
)
datas
=
YHMembershipLevel
.
allCases
.
map
({
level
in
let
diamond
=
BannerData
(
level
:
.
diamond
,
levelString
:
"您未达到该等级"
,
countFrom
:
0
,
countTo
:
0
,
tips
:
"当前成长值"
,
upgradeTitle
:
"去升级"
)
var
levelString
=
"您未达到该等级"
return
[
normal
,
gold
,
platinum
,
diamond
]
var
upgradeTitle
=
"去升级"
var
countFrom
:
Int
=
0
var
countTo
:
Int
=
0
var
tips
:
String
=
""
var
showProgress
:
Bool
=
false
var
ratioString
:
String
=
""
var
ratio
:
CGFloat
=
0
var
showRatio
:
Bool
=
false
var
showTips
:
Bool
=
false
switch
level
{
case
.
normal
:
countFrom
=
0
countTo
=
0
if
memberCenterInfo
.
currentLevel
==
level
.
rawValue
{
levelString
=
"当前等级"
upgradeTitle
=
"已达成"
tips
=
"消费即升至黄金会员"
ratioString
=
"0"
ratio
=
0
showRatio
=
true
showTips
=
true
}
else
if
memberCenterInfo
.
currentLevel
>
level
.
rawValue
{
levelString
=
"您已高于该等级"
upgradeTitle
=
"已达成"
tips
=
"当前成长值"
ratioString
=
"
\(
memberCenterInfo
.
growthValue
)
"
ratio
=
0
showRatio
=
false
showTips
=
false
}
case
.
gold
:
countFrom
=
0
countTo
=
60000
if
memberCenterInfo
.
currentLevel
<
level
.
rawValue
{
levelString
=
"您未达到该等级"
upgradeTitle
=
"去升级"
tips
=
"消费即升至黄金会员"
ratioString
=
"0"
ratio
=
0
showRatio
=
true
showTips
=
true
}
else
if
memberCenterInfo
.
currentLevel
==
level
.
rawValue
{
levelString
=
"当前等级"
upgradeTitle
=
"已达成"
tips
=
"距铂金会员还需
\(
countTo
-
memberCenterInfo
.
growthValue
)
成长值"
ratioString
=
"
\(
memberCenterInfo
.
growthValue
)
/(countTo)"
let
value
=
Double
(
memberCenterInfo
.
growthValue
)
/
Double
(
countTo
)
ratio
=
value
<
0
?
0
:
value
showProgress
=
true
showRatio
=
true
showTips
=
true
}
else
if
memberCenterInfo
.
currentLevel
>
level
.
rawValue
{
levelString
=
"您已高于该等级"
upgradeTitle
=
"已达成"
tips
=
"当前成长值"
ratioString
=
"
\(
memberCenterInfo
.
growthValue
)
"
ratio
=
0
}
case
.
platinum
:
countFrom
=
60000
countTo
=
150000
if
memberCenterInfo
.
currentLevel
<
level
.
rawValue
{
levelString
=
"您未达到该等级"
upgradeTitle
=
"去升级"
tips
=
"
\(
countFrom
)
成长值升至铂金会员"
ratioString
=
"
\(
countFrom
)
/(countTo)"
ratio
=
0
showTips
=
true
}
else
if
memberCenterInfo
.
currentLevel
==
level
.
rawValue
{
levelString
=
"当前等级"
upgradeTitle
=
"已达成"
tips
=
"距钻石会员还需
\(
countTo
-
memberCenterInfo
.
growthValue
)
成长值"
ratioString
=
"
\(
memberCenterInfo
.
growthValue
)
/(countTo)"
let
value
=
Double
(
memberCenterInfo
.
growthValue
)
/
Double
(
countTo
)
ratio
=
value
<
0
?
0
:
value
showProgress
=
true
showRatio
=
true
showTips
=
true
}
else
if
memberCenterInfo
.
currentLevel
>
level
.
rawValue
{
levelString
=
"您已高于该等级"
upgradeTitle
=
"已达成"
tips
=
"当前成长值"
ratioString
=
"
\(
memberCenterInfo
.
growthValue
)
"
ratio
=
0
}
case
.
diamond
:
countFrom
=
150000
countTo
=
Int
.
max
if
memberCenterInfo
.
currentLevel
<
level
.
rawValue
{
levelString
=
"您未达到该等级"
upgradeTitle
=
"去升级"
tips
=
"
\(
countFrom
)
成长值升至钻石会员"
ratioString
=
"
\(
memberCenterInfo
.
growthValue
)
"
ratio
=
0
showTips
=
true
}
else
if
memberCenterInfo
.
currentLevel
==
level
.
rawValue
{
levelString
=
"当前等级"
upgradeTitle
=
"已达成"
tips
=
"当前成长值"
ratioString
=
"
\(
memberCenterInfo
.
growthValue
)
"
ratio
=
0
showRatio
=
true
showTips
=
true
}
}
return
BannerData
(
level
:
level
,
levelString
:
levelString
,
tips
:
tips
,
upgradeTitle
:
upgradeTitle
,
showProgress
:
showProgress
,
ratioString
:
ratioString
,
ratio
:
ratio
,
showRatio
:
showRatio
,
showTips
:
showTips
)
})
bannerView
.
reloadData
()
}
}
override
init
(
frame
:
CGRect
)
{
override
init
(
frame
:
CGRect
)
{
...
@@ -96,7 +214,7 @@ extension YHMemberCenterHeaderView: FSPagerViewDataSource, FSPagerViewDelegate {
...
@@ -96,7 +214,7 @@ extension YHMemberCenterHeaderView: FSPagerViewDataSource, FSPagerViewDelegate {
}
}
if
let
cell
=
pagerView
.
dequeueReusableCell
(
withReuseIdentifier
:
"YHMemberCenterHeaderBannerCell"
,
at
:
index
)
as?
YHMemberCenterHeaderBannerCell
{
if
let
cell
=
pagerView
.
dequeueReusableCell
(
withReuseIdentifier
:
"YHMemberCenterHeaderBannerCell"
,
at
:
index
)
as?
YHMemberCenterHeaderBannerCell
{
let
model
=
datas
[
index
]
let
model
=
datas
[
index
]
cell
.
setupData
(
level
:
model
.
level
,
levelString
:
model
.
levelString
,
countFrom
:
model
.
countFrom
,
countTo
:
model
.
countTo
,
tips
:
model
.
tips
,
upgradeTitle
:
model
.
upgradeTitle
)
cell
.
setupData
(
level
:
model
.
level
,
levelString
:
model
.
levelString
,
tips
:
model
.
tips
,
upgradeTitle
:
model
.
upgradeTitle
,
showProgress
:
model
.
showProgress
,
ratioString
:
model
.
ratioString
,
ratio
:
model
.
ratio
,
showRatio
:
model
.
showRatio
,
showTips
:
model
.
showTips
)
return
cell
return
cell
}
}
return
FSPagerViewCell
()
return
FSPagerViewCell
()
...
...
galaxy/galaxy/Classes/Modules/Mine(我的)/ViewModel/YHMemberCenterViewModel.swift
0 → 100644
View file @
916f235d
//
// YHMemberCenterViewModel.swift
// galaxy
//
// Created by alexzzw on 2025/2/20.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHMemberCenterViewModel
:
YHBaseViewModel
{
var
memberCenterInfo
:
YHMemberCenterInfo
?
func
getMemberInfo
(
_
callBack
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
())
{
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
Member
.
memberBenefits
let
_
=
YHNetRequest
.
getRequest
(
url
:
strUrl
)
{
[
weak
self
]
json
,
code
in
//1. json字符串 转 对象
guard
let
self
=
self
else
{
return
}
if
json
.
code
==
200
{
guard
let
dic
=
json
.
data
?
.
peel
as?
[
String
:
Any
],
let
resultModel
=
YHMemberCenterInfo
.
deserialize
(
from
:
dic
)
else
{
let
err
=
YHErrorModel
(
errorCode
:
YHErrorCode
.
dictParseError
.
rawValue
,
errorMsg
:
YHErrorCode
.
dictParseError
.
description
())
callBack
(
false
,
err
)
return
}
self
.
memberCenterInfo
=
resultModel
callBack
(
true
,
nil
)
}
else
{
let
error
:
YHErrorModel
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
callBack
(
false
,
error
)
}
}
failBlock
:
{
err
in
callBack
(
false
,
err
)
}
}
}
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
View file @
916f235d
...
@@ -752,6 +752,7 @@ class YHAllApiName {
...
@@ -752,6 +752,7 @@ class YHAllApiName {
// 会员
// 会员
struct
Member
{
struct
Member
{
static
let
memberInfoApi
=
"super-app/h5-points/member-info"
static
let
memberInfoApi
=
"super-app/h5-points/member-info"
static
let
memberBenefits
=
"super-app/h5-points/member-benefits"
}
}
...
...
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