Commit eb6e6503 authored by Alex朱枝文's avatar Alex朱枝文

会员中心页调整

parent db5f0ae5
...@@ -74,6 +74,7 @@ ...@@ -74,6 +74,7 @@
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 */; }; 043671432D66DDB500E8D9BA /* YHMemberCenterInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043671422D66DDB500E8D9BA /* YHMemberCenterInfo.swift */; };
043671452D66FBEE00E8D9BA /* YHMemberCenterViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043671442D66FBEE00E8D9BA /* YHMemberCenterViewModel.swift */; }; 043671452D66FBEE00E8D9BA /* YHMemberCenterViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043671442D66FBEE00E8D9BA /* YHMemberCenterViewModel.swift */; };
043671472D6C3ED100E8D9BA /* YHMembershipGrowthGuideView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043671462D6C3ED100E8D9BA /* YHMembershipGrowthGuideView.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 */; };
...@@ -1316,6 +1317,7 @@ ...@@ -1316,6 +1317,7 @@
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>"; }; 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>"; }; 043671442D66FBEE00E8D9BA /* YHMemberCenterViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMemberCenterViewModel.swift; sourceTree = "<group>"; };
043671462D6C3ED100E8D9BA /* YHMembershipGrowthGuideView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMembershipGrowthGuideView.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>"; };
...@@ -5816,6 +5818,7 @@ ...@@ -5816,6 +5818,7 @@
04AFEF4A2D5DF3710007A011 /* YHMyUserInfoView.swift */, 04AFEF4A2D5DF3710007A011 /* YHMyUserInfoView.swift */,
04AFEF4C2D5EEF860007A011 /* YHUserVipInfoView.swift */, 04AFEF4C2D5EEF860007A011 /* YHUserVipInfoView.swift */,
048D6ADC2D5EF0A900BC6F4C /* YHMemberCenterHeaderView.swift */, 048D6ADC2D5EF0A900BC6F4C /* YHMemberCenterHeaderView.swift */,
043671462D6C3ED100E8D9BA /* YHMembershipGrowthGuideView.swift */,
048D6ADE2D5F0FBE00BC6F4C /* YHMemberCenterHeaderBannerCell.swift */, 048D6ADE2D5F0FBE00BC6F4C /* YHMemberCenterHeaderBannerCell.swift */,
048D6AE22D6348EF00BC6F4C /* YHMemberCenterCurrentPrivilegeCell.swift */, 048D6AE22D6348EF00BC6F4C /* YHMemberCenterCurrentPrivilegeCell.swift */,
0436713A2D643A7A00E8D9BA /* YHMemberCenterMyPrivilegeCell.swift */, 0436713A2D643A7A00E8D9BA /* YHMemberCenterMyPrivilegeCell.swift */,
...@@ -7528,6 +7531,7 @@ ...@@ -7528,6 +7531,7 @@
045C11FC2D12CA5F00BD2DC0 /* YHHKPlaceInfoCell.swift in Sources */, 045C11FC2D12CA5F00BD2DC0 /* YHHKPlaceInfoCell.swift in Sources */,
045C11FD2D12CA5F00BD2DC0 /* YHIncomeRecordUtilType.swift in Sources */, 045C11FD2D12CA5F00BD2DC0 /* YHIncomeRecordUtilType.swift in Sources */,
045C11FE2D12CA5F00BD2DC0 /* YHVideoPlayerControlView.swift in Sources */, 045C11FE2D12CA5F00BD2DC0 /* YHVideoPlayerControlView.swift in Sources */,
043671472D6C3ED100E8D9BA /* YHMembershipGrowthGuideView.swift in Sources */,
045C11FF2D12CA5F00BD2DC0 /* YHResignCertificateModel.swift in Sources */, 045C11FF2D12CA5F00BD2DC0 /* YHResignCertificateModel.swift in Sources */,
045C12002D12CA5F00BD2DC0 /* YHPrincipleApprovedAlertView.swift in Sources */, 045C12002D12CA5F00BD2DC0 /* YHPrincipleApprovedAlertView.swift in Sources */,
045C12012D12CA5F00BD2DC0 /* YHSchemeTableHeadView.swift in Sources */, 045C12012D12CA5F00BD2DC0 /* YHSchemeTableHeadView.swift in Sources */,
......
...@@ -16,13 +16,13 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -16,13 +16,13 @@ class YHMemberCenterViewController: YHBaseViewController {
} }
private var currentLevel: YHMembershipLevel = .normal private var currentLevel: YHMembershipLevel = .normal
private var viewModel = YHMemberCenterViewModel() private var viewModel = YHMemberCenterViewModel()
private var firstEnter = true private var firstEnter = true
var datas: [TableRow] = [] var datas: [TableRow] = []
private lazy var tableView: UITableView = { private lazy var tableView: UITableView = {
let view = UITableView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight), style: .grouped) let view = UITableView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight), style: .grouped)
view.estimatedSectionHeaderHeight = 0.01 view.estimatedSectionHeaderHeight = 0.01
...@@ -57,6 +57,12 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -57,6 +57,12 @@ class YHMemberCenterViewController: YHBaseViewController {
self.updateDatas(info) self.updateDatas(info)
} }
} }
view.levelButtonEvent = { [weak self] _ in
self?.gotoGuideView()
}
view.upgradeButtonEvent = { [weak self] _ in
self?.gotoYinheStore()
}
return view return view
}() }()
...@@ -69,7 +75,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -69,7 +75,7 @@ class YHMemberCenterViewController: YHBaseViewController {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
} }
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
if firstEnter { if firstEnter {
...@@ -78,7 +84,6 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -78,7 +84,6 @@ class YHMemberCenterViewController: YHBaseViewController {
} else { } else {
requestData(isNeedLoading: false) requestData(isNeedLoading: false)
} }
} }
private func setupUI() { private func setupUI() {
...@@ -108,7 +113,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -108,7 +113,7 @@ class YHMemberCenterViewController: YHBaseViewController {
tableView.tableHeaderView = headerView tableView.tableHeaderView = headerView
tableView.tableFooterView = footerView tableView.tableFooterView = footerView
} }
private func requestData(isNeedLoading: Bool = false) { private func requestData(isNeedLoading: Bool = false) {
if isNeedLoading { if isNeedLoading {
YHHUD.show(.progress(message: "加载中...")) YHHUD.show(.progress(message: "加载中..."))
...@@ -133,6 +138,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -133,6 +138,7 @@ class YHMemberCenterViewController: YHBaseViewController {
} }
} }
} }
private func updateDatas(_ memberCenterInfo: YHMemberCenterInfo) { private func updateDatas(_ memberCenterInfo: YHMemberCenterInfo) {
datas.removeAll() datas.removeAll()
switch currentLevel { switch currentLevel {
...@@ -151,10 +157,10 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -151,10 +157,10 @@ class YHMemberCenterViewController: YHBaseViewController {
datas.append(.currentPrivilege(.gold, 7)) datas.append(.currentPrivilege(.gold, 7))
datas.append(.myPrivilege(.normal, 5)) datas.append(.myPrivilege(.normal, 5))
let services: [YHMemberCenterCellContent] = [.kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption] let services: [YHMemberCenterCellContent] = [.kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId, let ids: [String] = [memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId,
memberCenterInfo.luxuryTea.giftId, memberCenterInfo.luxuryTea.giftId,
memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId, memberCenterInfo.dedicatedAdviser.giftId, memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId, memberCenterInfo.dedicatedAdviser.giftId,
memberCenterInfo.specialIntegralConsumption.giftId] memberCenterInfo.specialIntegralConsumption.giftId]
let details: [String] = ["本月剩余兑换数量:20", "本月剩余兑换数量:20", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"] let details: [String] = ["本月剩余兑换数量:20", "本月剩余兑换数量:20", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"]
let buttonTitles: [String] = ["了解更多", "了解更多", "立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"] let buttonTitles: [String] = ["了解更多", "了解更多", "立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"]
let buttonStates: [YHMemberCenterActionButton.ButtonState] = [.redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable] let buttonStates: [YHMemberCenterActionButton.ButtonState] = [.redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable]
...@@ -166,12 +172,12 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -166,12 +172,12 @@ class YHMemberCenterViewController: YHBaseViewController {
datas.append(.currentPrivilege(.platinum, 8)) datas.append(.currentPrivilege(.platinum, 8))
datas.append(.myPrivilege(.normal, 5)) datas.append(.myPrivilege(.normal, 5))
let services: [YHMemberCenterCellContent] = [.kidsBay, .luxury, .hkTravel, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption] let services: [YHMemberCenterCellContent] = [.kidsBay, .luxury, .hkTravel, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId, let ids: [String] = [memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId,
memberCenterInfo.hkCarTransfer.giftId, memberCenterInfo.hkCarTransfer.giftId,
memberCenterInfo.luxuryTea.giftId, memberCenterInfo.luxuryTea.giftId,
memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId, memberCenterInfo.dedicatedAdviser.giftId, memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId, memberCenterInfo.dedicatedAdviser.giftId,
memberCenterInfo.specialIntegralConsumption.giftId] memberCenterInfo.specialIntegralConsumption.giftId]
let details: [String] = ["本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"] let details: [String] = ["本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"]
let buttonTitles: [String] = ["了解更多", "了解更多", "了解更多", "立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"] let buttonTitles: [String] = ["了解更多", "了解更多", "了解更多", "立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"]
let buttonStates: [YHMemberCenterActionButton.ButtonState] = [.redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable] let buttonStates: [YHMemberCenterActionButton.ButtonState] = [.redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable]
...@@ -182,19 +188,19 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -182,19 +188,19 @@ class YHMemberCenterViewController: YHBaseViewController {
case .diamond: case .diamond:
datas.append(.currentPrivilege(.diamond, 13)) datas.append(.currentPrivilege(.diamond, 13))
datas.append(.myPrivilege(.normal, 5)) datas.append(.myPrivilege(.normal, 5))
let services: [YHMemberCenterCellContent] = [.kidsBay, .luxury, .crossBorder, .hkTravel, .drivingLicense, .schoolSelection, .brandPlanning, .highEndMeeting, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption] let services: [YHMemberCenterCellContent] = [.kidsBay, .luxury, .crossBorder, .hkTravel, .drivingLicense, .schoolSelection, .brandPlanning, .highEndMeeting, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId, let ids: [String] = [memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId,
memberCenterInfo.carTransfer.giftId, memberCenterInfo.carTransfer.giftId,
memberCenterInfo.hkCarTransfer.giftId, memberCenterInfo.hkCarTransfer.giftId,
memberCenterInfo.internationalDrivingLicense.giftId, memberCenterInfo.internationalDrivingLicense.giftId,
memberCenterInfo.hongkongSchoolPlanning.giftId, memberCenterInfo.hongkongSchoolPlanning.giftId,
memberCenterInfo.brandStrategy.giftId, memberCenterInfo.brandStrategy.giftId,
memberCenterInfo.highEndPrivilege.giftId, memberCenterInfo.highEndPrivilege.giftId,
memberCenterInfo.luxuryTea.giftId, memberCenterInfo.luxuryTea.giftId,
memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId, memberCenterInfo.dedicatedAdviser.giftId, memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId, memberCenterInfo.dedicatedAdviser.giftId,
memberCenterInfo.specialIntegralConsumption.giftId] memberCenterInfo.specialIntegralConsumption.giftId]
let details: [String] = ["本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月已兑换完毕,次月更新", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"] let details: [String] = ["本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月已兑换完毕,次月更新", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"]
let buttonTitles: [String] = ["了解更多", "了解更多", "暂无库存", "了解更多", "了解更多", "了解更多", "了解更多", "了解更多", "立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"] let buttonTitles: [String] = ["了解更多", "了解更多", "暂无库存", "了解更多", "了解更多", "了解更多", "了解更多", "了解更多", "立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"]
let buttonStates: [YHMemberCenterActionButton.ButtonState] = [.redeemable, .redeemable, .outOfStock, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable] let buttonStates: [YHMemberCenterActionButton.ButtonState] = [.redeemable, .redeemable, .outOfStock, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable]
...@@ -206,7 +212,6 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -206,7 +212,6 @@ class YHMemberCenterViewController: YHBaseViewController {
tableView.reloadData() tableView.reloadData()
} }
@objc private func didHistoryButtonClicked() { @objc private func didHistoryButtonClicked() {
var url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/vip/order" var url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/vip/order"
if YHLoginManager.shared.isLogin() { if YHLoginManager.shared.isLogin() {
...@@ -235,7 +240,13 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -235,7 +240,13 @@ class YHMemberCenterViewController: YHBaseViewController {
let url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/vip/center" let url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/vip/center"
YHShareManager.shared.sendLinkContent("分享会员中心", "", UIImage(named: "AppIcon") ?? UIImage(), link: url) YHShareManager.shared.sendLinkContent("分享会员中心", "", UIImage(named: "AppIcon") ?? UIImage(), link: url)
} }
private func gotoYinheStore() {
let vc = YHSelectViewController()
vc.hideFlag = false
navigationController?.pushViewController(vc)
}
private func serviceDidClick(id: String, contentType: YHMemberCenterCellContent) { private func serviceDidClick(id: String, contentType: YHMemberCenterCellContent) {
switch contentType { switch contentType {
case .kidsBay, .luxury, .crossBorder, .hkTravel, .drivingLicense, .schoolSelection, .brandPlanning, .highEndMeeting, .afternoonTea, .onSiteConsultation: case .kidsBay, .luxury, .crossBorder, .hkTravel, .drivingLicense, .schoolSelection, .brandPlanning, .highEndMeeting, .afternoonTea, .onSiteConsultation:
...@@ -248,7 +259,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -248,7 +259,7 @@ class YHMemberCenterViewController: YHBaseViewController {
gotoScoreCenter() gotoScoreCenter()
} }
} }
private func gotoCommunity() { private func gotoCommunity() {
goTabBarBy(tabType: .community) goTabBarBy(tabType: .community)
DispatchQueue.main.async { DispatchQueue.main.async {
...@@ -256,8 +267,16 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -256,8 +267,16 @@ class YHMemberCenterViewController: YHBaseViewController {
} }
} }
private func gotoGuideView() {
let view = YHMembershipGrowthGuideView.sheetView()
view.closeButtonEvent = {
}
view.show()
}
private func gotoScoreCenter() { private func gotoScoreCenter() {
if let param = YHLoginManager.shared.userModel?.token,param.count>5 { if let param = YHLoginManager.shared.userModel?.token, param.count > 5 {
var url = YHBaseUrlManager.shared.curH5URL() + "superApp/integral" var url = YHBaseUrlManager.shared.curH5URL() + "superApp/integral"
url = url + "?param=" + YHLoginManager.shared.h5Token url = url + "?param=" + YHLoginManager.shared.h5Token
let vc = YHH5WebViewVC() let vc = YHH5WebViewVC()
...@@ -269,7 +288,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -269,7 +288,7 @@ class YHMemberCenterViewController: YHBaseViewController {
navigationController?.pushViewController(vc) navigationController?.pushViewController(vc)
} }
} }
private func gotoService(_ id: String) { private func gotoService(_ id: String) {
var url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/vip/detail?exchange_support_type=2&source=vip&id=\(id)" var url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/vip/detail?exchange_support_type=2&source=vip&id=\(id)"
if YHLoginManager.shared.isLogin() { if YHLoginManager.shared.isLogin() {
...@@ -293,7 +312,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -293,7 +312,7 @@ class YHMemberCenterViewController: YHBaseViewController {
vc.isFullScreenFlag = true vc.isFullScreenFlag = true
navigationController?.pushViewController(vc) navigationController?.pushViewController(vc)
} }
private func goQiyuService() { private func goQiyuService() {
guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0, let navigationController = UIViewController.current?.navigationController else { guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0, let navigationController = UIViewController.current?.navigationController else {
return return
...@@ -301,7 +320,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -301,7 +320,7 @@ class YHMemberCenterViewController: YHBaseViewController {
YHButlerServiceManager.shared.gotoButlerServiceSessionVC(navigationController: navigationController, completion: { _ in YHButlerServiceManager.shared.gotoButlerServiceSessionVC(navigationController: navigationController, completion: { _ in
}) })
} }
private func gotoPrivilegePage() { private func gotoPrivilegePage() {
YHHUD.flash(message: "进特权页,待完善!!") YHHUD.flash(message: "进特权页,待完善!!")
} }
...@@ -393,7 +412,7 @@ extension YHMemberCenterViewController: UITableViewDelegate, UITableViewDataSour ...@@ -393,7 +412,7 @@ extension YHMemberCenterViewController: UITableViewDelegate, UITableViewDataSour
} }
return 0.01 return 0.01
} }
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
guard datas.count > section else { guard datas.count > section else {
return 0.01 return 0.01
......
...@@ -10,6 +10,11 @@ import FSPagerView ...@@ -10,6 +10,11 @@ import FSPagerView
import UIKit import UIKit
class YHMemberCenterHeaderBannerCell: FSPagerViewCell { class YHMemberCenterHeaderBannerCell: FSPagerViewCell {
var upgradeButtonEvent: ((_ level: YHMembershipLevel) -> Void)?
var levelButtonEvent: ((_ level: YHMembershipLevel) -> Void)?
private var level: YHMembershipLevel = .normal
private lazy var bannerImagV: UIImageView = { private lazy var bannerImagV: UIImageView = {
let imagV: UIImageView = UIImageView() let imagV: UIImageView = UIImageView()
imagV.contentMode = .scaleAspectFit imagV.contentMode = .scaleAspectFit
...@@ -28,6 +33,7 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell { ...@@ -28,6 +33,7 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell {
private lazy var levelButton: UIButton = { private lazy var levelButton: UIButton = {
let button = UIButton(type: .custom) let button = UIButton(type: .custom)
button.titleLabel?.font = UIFont.PFSC_R(ofSize: 13) button.titleLabel?.font = UIFont.PFSC_R(ofSize: 13)
button.addTarget(self, action: #selector(levelButtonClicked), for: .touchUpInside)
return button return button
}() }()
...@@ -36,6 +42,7 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell { ...@@ -36,6 +42,7 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell {
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 12) button.titleLabel?.font = UIFont.PFSC_M(ofSize: 12)
button.clipsToBounds = true button.clipsToBounds = true
button.layer.cornerRadius = 17 button.layer.cornerRadius = 17
button.addTarget(self, action: #selector(upgradeButtonClicked), for: .touchUpInside)
return button return button
}() }()
...@@ -133,11 +140,14 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell { ...@@ -133,11 +140,14 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell {
} }
func setupData(level: YHMembershipLevel, levelString: String, tips: String, upgradeTitle: String, showProgress: Bool, ratioString: String, ratio: CGFloat, showRatio: Bool, showTips: Bool) { func setupData(level: YHMembershipLevel, levelString: String, tips: String, upgradeTitle: String, showProgress: Bool, ratioString: String, ratio: CGFloat, showRatio: Bool, showTips: Bool) {
self.level = level
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)
levelButton.setImage(UIImage(named: level.levelButtonImageTitle()), for: .normal)
levelButton.iconInRight(with: 0)
countLabel.textColor = level.countTitleColor() countLabel.textColor = level.countTitleColor()
countLabel.text = ratioString countLabel.text = ratioString
countLabel.isHidden = !showRatio countLabel.isHidden = !showRatio
...@@ -165,6 +175,14 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell { ...@@ -165,6 +175,14 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell {
} }
} }
} }
@objc private func upgradeButtonClicked() {
upgradeButtonEvent?(level)
}
@objc private func levelButtonClicked() {
levelButtonEvent?(level)
}
} }
fileprivate extension YHMembershipLevel { fileprivate extension YHMembershipLevel {
...@@ -219,6 +237,15 @@ fileprivate extension YHMembershipLevel { ...@@ -219,6 +237,15 @@ fileprivate extension YHMembershipLevel {
return UIColor(hexString: "#E0C9AF80")?.withAlphaComponent(0.5) return UIColor(hexString: "#E0C9AF80")?.withAlphaComponent(0.5)
} }
} }
func levelButtonImageTitle() -> String {
switch self {
case .normal, .gold, .platinum:
return "arrow_right_white_16"
case .diamond:
return "arrow_right_gold_16"
}
}
func countTitleColor() -> UIColor? { func countTitleColor() -> UIColor? {
switch self { switch self {
......
...@@ -53,6 +53,8 @@ class YHMemberCenterHeaderView: UIView { ...@@ -53,6 +53,8 @@ class YHMemberCenterHeaderView: UIView {
} }
var scrollToIndexEvent: ((YHMembershipLevel) -> Void)? var scrollToIndexEvent: ((YHMembershipLevel) -> Void)?
var upgradeButtonEvent: ((_ level: YHMembershipLevel) -> Void)?
var levelButtonEvent: ((_ level: YHMembershipLevel) -> Void)?
private lazy var bannerView: FSPagerView = { private lazy var bannerView: FSPagerView = {
let view = FSPagerView() let view = FSPagerView()
...@@ -103,8 +105,8 @@ class YHMemberCenterHeaderView: UIView { ...@@ -103,8 +105,8 @@ class YHMemberCenterHeaderView: UIView {
showTips = false showTips = false
} }
case .gold: case .gold:
countFrom = 0 countFrom = 1
countTo = 60000 countTo = 6001
if memberCenterInfo.currentLevel < level.rawValue { if memberCenterInfo.currentLevel < level.rawValue {
levelString = "您未达到该等级" levelString = "您未达到该等级"
upgradeTitle = "去升级" upgradeTitle = "去升级"
...@@ -118,7 +120,7 @@ class YHMemberCenterHeaderView: UIView { ...@@ -118,7 +120,7 @@ class YHMemberCenterHeaderView: UIView {
upgradeTitle = "已达成" upgradeTitle = "已达成"
tips = "距铂金会员还需\(countTo - memberCenterInfo.growthValue)成长值" tips = "距铂金会员还需\(countTo - memberCenterInfo.growthValue)成长值"
ratioString = "\(memberCenterInfo.growthValue)/(countTo)" ratioString = "\(memberCenterInfo.growthValue)/(countTo)"
let value = Double(memberCenterInfo.growthValue) / Double(countTo) let value = Double(memberCenterInfo.growthValue) / Double(countTo - 1)
ratio = value < 0 ? 0 : value ratio = value < 0 ? 0 : value
showProgress = true showProgress = true
showRatio = true showRatio = true
...@@ -131,8 +133,8 @@ class YHMemberCenterHeaderView: UIView { ...@@ -131,8 +133,8 @@ class YHMemberCenterHeaderView: UIView {
ratio = 0 ratio = 0
} }
case .platinum: case .platinum:
countFrom = 60000 countFrom = 6001
countTo = 150000 countTo = 15001
if memberCenterInfo.currentLevel < level.rawValue { if memberCenterInfo.currentLevel < level.rawValue {
levelString = "您未达到该等级" levelString = "您未达到该等级"
upgradeTitle = "去升级" upgradeTitle = "去升级"
...@@ -145,7 +147,7 @@ class YHMemberCenterHeaderView: UIView { ...@@ -145,7 +147,7 @@ class YHMemberCenterHeaderView: UIView {
upgradeTitle = "已达成" upgradeTitle = "已达成"
tips = "距钻石会员还需\(countTo - memberCenterInfo.growthValue)成长值" tips = "距钻石会员还需\(countTo - memberCenterInfo.growthValue)成长值"
ratioString = "\(memberCenterInfo.growthValue)/(countTo)" ratioString = "\(memberCenterInfo.growthValue)/(countTo)"
let value = Double(memberCenterInfo.growthValue) / Double(countTo) let value = Double(memberCenterInfo.growthValue) / Double(countTo - 1)
ratio = value < 0 ? 0 : value ratio = value < 0 ? 0 : value
showProgress = true showProgress = true
showRatio = true showRatio = true
...@@ -158,7 +160,7 @@ class YHMemberCenterHeaderView: UIView { ...@@ -158,7 +160,7 @@ class YHMemberCenterHeaderView: UIView {
ratio = 0 ratio = 0
} }
case .diamond: case .diamond:
countFrom = 150000 countFrom = 15001
countTo = Int.max countTo = Int.max
if memberCenterInfo.currentLevel < level.rawValue { if memberCenterInfo.currentLevel < level.rawValue {
levelString = "您未达到该等级" levelString = "您未达到该等级"
...@@ -215,6 +217,12 @@ extension YHMemberCenterHeaderView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -215,6 +217,12 @@ 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, tips: model.tips, upgradeTitle: model.upgradeTitle, showProgress: model.showProgress, ratioString: model.ratioString, ratio: model.ratio, showRatio: model.showRatio, showTips: model.showTips) 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)
cell.levelButtonEvent = { [weak self] level in
self?.levelButtonEvent?(level)
}
cell.upgradeButtonEvent = { [weak self] level in
self?.upgradeButtonEvent?(level)
}
return cell return cell
} }
return FSPagerViewCell() return FSPagerViewCell()
......
//
// YHMembershipGrowthGuideView.swift
// galaxy
//
// Created by alexzzw on 2025/2/24.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHMembershipGrowthGuideView: UIView {
var closeButtonEvent: (() -> Void)?
private lazy var topTitleLabel: UILabel = {
let label = UILabel()
label.text = "会员及成长值说明"
label.font = .PFSC_B(ofSize: 17)
label.textColor = .mainTextColor
label.textAlignment = .center
return label
}()
private lazy var closeButton: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "service_card_close"), for: .normal)
button.addTarget(self, action: #selector(closeButtonClicked), for: .touchUpInside)
return button
}()
private lazy var topLineView: UIView = {
let view = UIView()
view.backgroundColor = UIColor(hexString: "#E9ECF0")
return view
}()
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 myScrollView: UIScrollView = {
let view = UIScrollView()
view.backgroundColor = .clear
view.showsVerticalScrollIndicator = false
view.showsHorizontalScrollIndicator = false
return view
}()
lazy var bkgImageV: UIImageView = {
let imageV = UIImageView()
imageV.image = UIImage(named: "membership_growth_guide")
imageV.contentMode = .scaleAspectFit
imageV.clipsToBounds = true
return imageV
}()
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
}
extension YHMembershipGrowthGuideView {
static func sheetView() -> YHMembershipGrowthGuideView {
let view = YHMembershipGrowthGuideView(frame: UIScreen.main.bounds)
return view
}
func show() {
UIApplication.shared.yhKeyWindow()?.addSubview(self)
UIView.animate(withDuration: 0.5) {
let whiteHeight = KScreenHeight - k_Height_NavigationtBarAndStatuBar
self.whiteContentView.frame = CGRect(x: 0, y: KScreenHeight - whiteHeight, width: KScreenWidth, height: whiteHeight)
}
}
@objc func dismiss() {
removeFromSuperview()
}
}
private extension YHMembershipGrowthGuideView {
@objc private func closeButtonClicked() {
dismiss()
closeButtonEvent?()
}
func setupUI() {
addSubview(blackMaskView)
addSubview(whiteContentView)
let corner = UIRectCorner(rawValue: UIRectCorner.topLeft.rawValue | UIRectCorner.topRight.rawValue)
let path = UIBezierPath(roundedRect: bounds, byRoundingCorners: corner, cornerRadii: CGSizeMake(kCornerRadius6, kCornerRadius6))
let layer = CAShapeLayer()
layer.frame = whiteContentView.bounds
layer.path = path.cgPath
whiteContentView.layer.mask = layer
whiteContentView.clipsToBounds = true
blackMaskView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
let whiteHeight = KScreenHeight - k_Height_NavigationtBarAndStatuBar
whiteContentView.frame = CGRect(x: 0, y: KScreenHeight, width: KScreenWidth, height: whiteHeight)
whiteContentView.addSubview(topTitleLabel)
whiteContentView.addSubview(closeButton)
whiteContentView.addSubview(topLineView)
topTitleLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalToSuperview().offset(16)
}
closeButton.snp.makeConstraints { make in
make.centerY.equalTo(topTitleLabel)
make.right.equalToSuperview().offset(-20)
make.width.height.equalTo(24)
}
topLineView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(52)
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
}
whiteContentView.addSubview(myScrollView)
myScrollView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(54)
make.left.equalToSuperview()
make.right.equalToSuperview()
make.width.equalTo(KScreenWidth)
make.height.equalTo(whiteHeight - 54)
}
if let _ = UIImage(named: "membership_growth_guide") {
let radio = 558.0 / 333.0
let margin = (375.0 - 333.0) / 2.0
myScrollView.addSubview(bkgImageV)
bkgImageV.snp.makeConstraints { make in
make.top.equalToSuperview()
make.left.equalToSuperview().offset(margin)
make.right.equalToSuperview().offset(-margin)
make.width.equalTo(333.0)
make.height.equalTo(333.0 * radio)
}
myScrollView.contentSize = CGSize(width: KScreenWidth, height: 333.0 * radio)
}
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "arrow_right_gold_16@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "arrow_right_gold_16@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "membership_growth_guide@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "membership_growth_guide@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment