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

会员中心按钮状态调整

parent d331adc0
......@@ -11,7 +11,7 @@ import UIKit
class YHMemberCenterViewController: YHBaseViewController {
enum TableRow {
case currentPrivilege(_ curLevel: YHMembershipLevel, _ count: Int)
case myPrivilege(_ myLevel: YHMembershipLevel, _ count: Int)
case myPrivilege(_ myLevel: YHMembershipLevel, _ count: Int, _ redeemCount: Int, _ redeemedCount: Int)
case action(_ title: String, _ detail: String, _ imageStr: String, _ ratio: CGFloat, _ buttonStr: String, _ buttonState: YHMemberCenterActionButton.ButtonState, _ id: String, _ contentType: YHMemberCenterCellContent)
}
......@@ -141,69 +141,105 @@ class YHMemberCenterViewController: YHBaseViewController {
private func updateDatas(_ memberCenterInfo: YHMemberCenterInfo) {
datas.removeAll()
var details: [String] = []
var buttonTitles: [String] = []
var buttonStates: [YHMemberCenterActionButton.ButtonState] = []
func appendMenu(_ giftModel: YHMemberGiftModel) {
if memberCenterInfo.currentLevel < giftModel.minLevel {
let minLevel = YHMembershipLevel(rawValue: giftModel.minLevel) ?? .normal
details.append("本月剩余兑换数量:\(giftModel.num)")
buttonTitles.append("\(minLevel.description)可兑")
buttonStates.append(.memberOnly)
} else if giftModel.num <= 0 {
details.append("本月已兑换完毕,次月更新")
buttonTitles.append("暂无库存")
buttonStates.append(.outOfStock)
} else {
details.append("本月剩余兑换数量:\(giftModel.num)")
buttonTitles.append("了解更多")
buttonStates.append(.redeemable)
}
}
switch currentLevel {
case .normal:
datas.append(.myPrivilege(.normal, 5))
datas.append(.myPrivilege(.normal, 5, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount))
let services: [YHMemberCenterCellContent] = [.customerService, .pointsConsumption, .afternoonTea, .offlineSalons, .onSiteConsultation]
let ids: [String] = [memberCenterInfo.dedicatedAdviser.giftId, memberCenterInfo.specialIntegralConsumption.giftId, memberCenterInfo.luxuryTea.giftId, memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId]
let details: [String] = ["不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"]
let buttonTitles: [String] = ["立即联系", "了解更多", "立即兑换", "了解更多", "了解更多"]
let buttonStates: [YHMemberCenterActionButton.ButtonState] = [.redeemable, .redeemable, .redeemable, .redeemable, .redeemable]
details = ["不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"]
buttonTitles = ["立即联系", "了解更多", "立即兑换", "了解更多", "了解更多"]
buttonStates = [.redeemable, .redeemable, .redeemable, .redeemable, .redeemable]
services.enumerated().forEach { index, service in
let row: TableRow = .action(service.rawValue, details[index], service.imageUrl(), service.imageRatio(), buttonTitles[index], buttonStates[index], ids[index], service)
datas.append(row)
}
case .gold:
datas.append(.currentPrivilege(.gold, 7))
datas.append(.myPrivilege(.normal, 5))
datas.append(.myPrivilege(.normal, 5, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount))
let services: [YHMemberCenterCellContent] = [.kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId,
memberCenterInfo.luxuryTea.giftId,
memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId, memberCenterInfo.dedicatedAdviser.giftId,
memberCenterInfo.specialIntegralConsumption.giftId]
let details: [String] = ["本月剩余兑换数量:20", "本月剩余兑换数量:20", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"]
let buttonTitles: [String] = ["了解更多", "了解更多", "立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"]
let buttonStates: [YHMemberCenterActionButton.ButtonState] = [.redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable]
appendMenu(memberCenterInfo.highTeaBox)
appendMenu(memberCenterInfo.experienceCenter)
details.append(contentsOf: ["不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"])
buttonTitles.append(contentsOf: ["立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"])
buttonStates.append(contentsOf: [.redeemable, .redeemable, .redeemable, .redeemable, .redeemable])
services.enumerated().forEach { index, service in
let row: TableRow = .action(service.rawValue, details[index], service.imageUrl(), service.imageRatio(), buttonTitles[index], buttonStates[index], ids[index], service)
datas.append(row)
}
case .platinum:
datas.append(.currentPrivilege(.platinum, 8))
datas.append(.myPrivilege(.normal, 5))
let services: [YHMemberCenterCellContent] = [.kidsBay, .luxury, .hkTravel, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId,
memberCenterInfo.hkCarTransfer.giftId,
datas.append(.myPrivilege(.normal, 5, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount))
let services: [YHMemberCenterCellContent] = [.crossBorder, .kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.carTransfer.giftId,
memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId,
memberCenterInfo.luxuryTea.giftId,
memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId, memberCenterInfo.dedicatedAdviser.giftId,
memberCenterInfo.specialIntegralConsumption.giftId]
appendMenu(memberCenterInfo.carTransfer)
appendMenu(memberCenterInfo.highTeaBox)
appendMenu(memberCenterInfo.experienceCenter)
details.append(contentsOf: ["不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"])
buttonTitles.append(contentsOf: ["立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"])
buttonStates.append(contentsOf: [.redeemable, .redeemable, .redeemable, .redeemable, .redeemable])
let details: [String] = ["本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"]
let buttonTitles: [String] = ["了解更多", "了解更多", "了解更多", "立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"]
let buttonStates: [YHMemberCenterActionButton.ButtonState] = [.redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable]
services.enumerated().forEach { index, service in
let row: TableRow = .action(service.rawValue, details[index], service.imageUrl(), service.imageRatio(), buttonTitles[index], buttonStates[index], ids[index], service)
datas.append(row)
}
case .diamond:
datas.append(.currentPrivilege(.diamond, 13))
datas.append(.myPrivilege(.normal, 5))
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,
datas.append(.myPrivilege(.normal, 5, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount))
let services: [YHMemberCenterCellContent] = [.highEndMeeting, .crossBorder, .hkTravel,.drivingLicense, .schoolSelection, .brandPlanning, .kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.highEndPrivilege.giftId,
memberCenterInfo.carTransfer.giftId,
memberCenterInfo.hkCarTransfer.giftId,
memberCenterInfo.internationalDrivingLicense.giftId,
memberCenterInfo.hongkongSchoolPlanning.giftId,
memberCenterInfo.brandStrategy.giftId,
memberCenterInfo.highEndPrivilege.giftId,
memberCenterInfo.highTeaBox.giftId,
memberCenterInfo.experienceCenter.giftId,
memberCenterInfo.luxuryTea.giftId,
memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId, memberCenterInfo.dedicatedAdviser.giftId,
memberCenterInfo.specialIntegralConsumption.giftId]
let details: [String] = ["本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月已兑换完毕,次月更新", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "本月剩余兑换数量:20", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"]
let buttonTitles: [String] = ["了解更多", "了解更多", "暂无库存", "了解更多", "了解更多", "了解更多", "了解更多", "了解更多", "立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"]
let buttonStates: [YHMemberCenterActionButton.ButtonState] = [.redeemable, .redeemable, .outOfStock, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable, .redeemable]
appendMenu(memberCenterInfo.highEndPrivilege)
appendMenu(memberCenterInfo.carTransfer)
appendMenu(memberCenterInfo.hkCarTransfer)
appendMenu(memberCenterInfo.internationalDrivingLicense)
appendMenu(memberCenterInfo.hongkongSchoolPlanning)
appendMenu(memberCenterInfo.brandStrategy)
appendMenu(memberCenterInfo.highTeaBox)
appendMenu(memberCenterInfo.experienceCenter)
details.append(contentsOf: ["不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"])
buttonTitles.append(contentsOf: ["立即兑换", "了解更多", "了解更多", "立即联系", "了解更多"])
buttonStates.append(contentsOf: [.redeemable, .redeemable, .redeemable, .redeemable, .redeemable])
services.enumerated().forEach { index, service in
let row: TableRow = .action(service.rawValue, details[index], service.imageUrl(), service.imageRatio(), buttonTitles[index], buttonStates[index], ids[index], service)
datas.append(row)
......@@ -322,7 +358,8 @@ class YHMemberCenterViewController: YHBaseViewController {
}
private func gotoPrivilegePage() {
YHHUD.flash(message: "进特权页,待完善!!")
let vc = YHVipLevelRightViewController()
navigationController?.pushViewController(vc)
}
}
......@@ -349,9 +386,9 @@ extension YHMemberCenterViewController: UITableViewDelegate, UITableViewDataSour
cell.setupCell(mid: "\(level.description)拥有特权\(count)项")
return cell
}
case let .myPrivilege(_, count):
case let .myPrivilege(_, count, redeemCount, redeemedCount):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHMemberCenterMyPrivilegeCell.cellReuseIdentifier) as? YHMemberCenterMyPrivilegeCell {
cell.setupCell(right: "\(count)项")
cell.setupCell(right: "\(count)项", redeemCount: redeemCount, redeemedCount: redeemedCount)
return cell
}
case let .action(title, detail, imageStr, ratio, buttonStr, buttonState, id, service):
......@@ -374,9 +411,7 @@ extension YHMemberCenterViewController: UITableViewDelegate, UITableViewDataSour
switch section {
case .currentPrivilege:
return 74.0
case .myPrivilege:
return 64
case .action:
case .myPrivilege, .action:
return UITableView.automaticDimension
}
}
......
......@@ -10,7 +10,7 @@ import Foundation
enum YHMemberCenterCellContent: String, CaseIterable {
case kidsBay = "kidsbay高端早教盒子"
case luxury = "奢华体验中心"
case luxury = "奢华会客体验中心"
case crossBorder = "深港跨境出行预约"
case hkTravel = "香港境内出行预约"
case drivingLicense = "国际驾照续期"
......
......@@ -39,6 +39,30 @@ class YHMemberCenterMyPrivilegeCell: YHResignDocumentCell {
return view
}()
private lazy var bottomContainerView: UIView = {
let view = UIView()
view.backgroundColor = UIColor(hexString: "#F8F9FB")
view.layer.cornerRadius = 2
view.clipsToBounds = true
return view
}()
private lazy var privilegeLabel: UILabel = {
let label = UILabel()
label.text = "高端权益兑换"
label.font = .PFSC_R(ofSize: 12)
label.textColor = .mainTextColor
return label
}()
private lazy var privilegeTipsLabel: UILabel = {
let label = UILabel()
label.text = "可兑换次数: 0,已兑换次数: 0"
label.font = .PFSC_R(ofSize: 12)
label.textColor = UIColor(hexString: "#8993A2")
return label
}()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
......@@ -48,8 +72,9 @@ class YHMemberCenterMyPrivilegeCell: YHResignDocumentCell {
fatalError("init(coder:) has not been implemented")
}
func setupCell(right: String) {
func setupCell(right: String, redeemCount: Int, redeemedCount: Int) {
rightLabel.text = right
privilegeTipsLabel.text = "可兑换次数: \(redeemCount),已兑换次数: \(redeemedCount)"
}
private func setupUI() {
......@@ -59,32 +84,56 @@ class YHMemberCenterMyPrivilegeCell: YHResignDocumentCell {
subContainerView.addSubview(rightLabel)
subContainerView.addSubview(rightIcon)
subContainerView.addSubview(bottomContainerView)
bottomContainerView.addSubview(privilegeLabel)
bottomContainerView.addSubview(privilegeTipsLabel)
midLabel.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
leftIcon.setContentCompressionResistancePriority(.required, for: .horizontal)
rightIcon.setContentCompressionResistancePriority(.required, for: .horizontal)
rightLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
leftIcon.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.top.equalToSuperview().offset(20)
make.left.equalToSuperview().offset(16)
make.width.height.equalTo(24)
}
midLabel.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.centerY.equalTo(leftIcon)
make.left.equalTo(leftIcon.snp.right).offset(8)
make.right.lessThanOrEqualTo(rightLabel.snp.left).offset(-8)
}
rightIcon.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.centerY.equalTo(leftIcon)
make.right.equalToSuperview().offset(-16)
make.width.height.equalTo(20)
}
rightLabel.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.centerY.equalTo(leftIcon)
make.right.equalTo(rightIcon.snp.left).offset(-1)
}
bottomContainerView.snp.makeConstraints { make in
make.top.equalTo(midLabel.snp.bottom).offset(17)
make.left.equalTo(leftIcon)
make.right.equalTo(rightIcon)
make.bottom.equalToSuperview().offset(-17)
make.height.equalTo(41)
}
privilegeLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
privilegeTipsLabel.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
privilegeLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(12)
make.centerY.equalToSuperview()
}
privilegeTipsLabel.snp.makeConstraints { make in
make.right.equalToSuperview().offset(-12)
make.centerY.equalToSuperview()
}
}
}
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