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

积分中心页面事件打点

parent 3cf75303
......@@ -51,11 +51,7 @@ class YHMemberCenterViewController: YHBaseViewController {
guard let self = self else {
return
}
self.bgIcon.image = UIImage(named: level.bgIconTitle())
self.currentLevel = level
if let info = self.viewModel.memberCenterInfo {
self.updateDatas(info)
}
switchCard(level)
}
view.levelButtonEvent = { [weak self] _ in
self?.gotoGuideView()
......@@ -70,6 +66,16 @@ class YHMemberCenterViewController: YHBaseViewController {
let view = YHMemberCenterFooterView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: YHMemberCenterFooterView.viewHeight))
return view
}()
private func switchCard(_ level: YHMembershipLevel) {
bgIcon.image = UIImage(named: level.bgIconTitle())
YHAnalytics.timeEnd(currentLevel.logKey)
currentLevel = level
YHAnalytics.timeStrat(level.logKey)
if let info = viewModel.memberCenterInfo {
updateDatas(info)
}
}
override func viewDidLoad() {
super.viewDidLoad()
......@@ -84,6 +90,12 @@ class YHMemberCenterViewController: YHBaseViewController {
} else {
requestData(isNeedLoading: false)
}
YHAnalytics.timeStrat(currentLevel.logKey)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
YHAnalytics.timeEnd(currentLevel.logKey)
}
private func setupUI() {
......@@ -127,7 +139,16 @@ class YHMemberCenterViewController: YHBaseViewController {
}
if success, let memberCenterInfo = viewModel.memberCenterInfo {
self.headerView.updateDatas(memberCenterInfo)
self.updateDatas(memberCenterInfo)
if isNeedLoading, let index = YHMembershipLevel.allCases.firstIndex(where: { data in
data.rawValue == memberCenterInfo.currentLevel
}) {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
self.headerView.bannerView.scrollToItem(at: index, animated: false)
self.switchCard(YHMembershipLevel.allCases[index])
}
} else {
self.updateDatas(memberCenterInfo)
}
} else {
var errorMsg = "获取会员信息失败,请重试!"
if let error = error, error.errorMsg.count > 0 {
......@@ -161,6 +182,7 @@ class YHMemberCenterViewController: YHBaseViewController {
}
}
let myLevel = YHMembershipLevel(rawValue: memberCenterInfo.currentLevel) ?? .normal
switch currentLevel {
case .normal:
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
......
......@@ -14,7 +14,7 @@ enum YHMembershipLevel: Int, CaseIterable {
case platinum = 30
case diamond = 40
// 可以添加其他属性或方法
// 名称
var description: String {
switch self {
case .normal:
......@@ -28,7 +28,7 @@ enum YHMembershipLevel: Int, CaseIterable {
}
}
// 可以添加其他属性或方法
// 可享特权数目
var privilegeCount: Int {
switch self {
case .normal:
......@@ -41,6 +41,20 @@ enum YHMembershipLevel: Int, CaseIterable {
return 13
}
}
// 埋点key
var logKey: String {
switch self {
case .normal:
return "General_Member_Membership_Privileges_Page"
case .gold:
return "Gold_Member_Membership_Privileges_Page"
case .platinum:
return "Platinum_Member_Membership_Privileges_Page"
case .diamond:
return "Diamond_Member_Membership_Privileges_Page"
}
}
// 示例:获取会员等级对应的权益
func benefits() -> [String] {
......
......@@ -56,7 +56,7 @@ class YHMemberCenterHeaderView: UIView {
var upgradeButtonEvent: ((_ level: YHMembershipLevel) -> Void)?
var levelButtonEvent: ((_ level: YHMembershipLevel) -> Void)?
private lazy var bannerView: FSPagerView = {
lazy var bannerView: FSPagerView = {
let view = FSPagerView()
view.delegate = self
view.dataSource = self
......@@ -183,14 +183,14 @@ class YHMemberCenterHeaderView: UIView {
return BannerData(level: level, levelString: levelString, tips: tips, upgradeTitle: upgradeTitle, showProgress: showProgress, ratioString: ratioString, ratio: ratio, showRatio: showRatio, showTips: showTips)
})
bannerView.reloadData()
if let index = datas.firstIndex(where: { data in
data.level.rawValue == memberCenterInfo.currentLevel
}) {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
self.bannerView.scrollToItem(at: index, animated: false)
self.scrollToIndexEvent?(self.datas[index].level)
}
}
// if let index = datas.firstIndex(where: { data in
// data.level.rawValue == memberCenterInfo.currentLevel
// }) {
// DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
// self.bannerView.scrollToItem(at: index, animated: false)
// self.scrollToIndexEvent?(self.datas[index].level)
// }
// }
}
override init(frame: CGRect) {
......
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