Commit 41d82dc1 authored by Steven杜宇's avatar Steven杜宇

// 服务红点逻辑

parent a415b91d
......@@ -20,6 +20,12 @@ let kProVersionKey = "pro_version"
let kClickKey = "click"
enum RedPointVersionType {
case none // 本地并无红点版本存储
case same // 本地版本和服务器版本一致
case different // 本地版本和服务器版本不一致
}
class YHServiceOrderProgressTableViewCell: UITableViewCell {
let redPointWidth = 6.0
......@@ -186,7 +192,7 @@ extension YHServiceOrderProgressTableViewCell {
}
if model.type == 3 {
titleLabel.text = "我的评分"
messageLabel.text = "恭喜您,评分报告已生成~"
messageLabel.text = "恭喜您,自评报告已生成~"
}
if model.type == 4 {
titleLabel.text = "我的方案"
......@@ -268,10 +274,26 @@ extension YHServiceOrderProgressTableViewCell {
if model.type == 3 || model.type == 4 {
if model.status == 3 { // 只有已完成状态才有红点显示逻辑处理 否则都隐藏
if model.type == 3 {
self.redPointView.isHidden = !isNeedShowRedPointFor(key: kMyScoreRedPointInfoKey, proVersion: model.pro_version)
let targetKey = kMyScoreRedPointInfoKey
let versionType = getRedPointVersionFor(key: targetKey, proVersion: model.pro_version)
if versionType == .none { // 本地无记录
messageLabel.text = "恭喜您,自评报告已生成~"
} else { // 本地有版本记录无论版本与服务器是否一致都走此逻辑
messageLabel.text = "恭喜您,方案评分已更新~"
}
self.redPointView.isHidden = !isNeedShowRedPointFor(key: targetKey, proVersion: model.pro_version)
} else if model.type == 4 {
self.redPointView.isHidden = !isNeedShowRedPointFor(key: kMyPlanRedPointInfoKey, proVersion: model.pro_version)
let targetKey = kMyPlanRedPointInfoKey
let versionType = getRedPointVersionFor(key: targetKey, proVersion: model.pro_version)
if versionType == .none { // 本地无记录
messageLabel.text = "恭喜您,专属方案已生成~"
} else { // 本地有版本记录无论版本与服务器是否一致都走此逻辑
messageLabel.text = "恭喜您,专属方案已更新~"
}
self.redPointView.isHidden = !isNeedShowRedPointFor(key: targetKey, proVersion: model.pro_version)
}
} else {
self.redPointView.isHidden = true
......@@ -309,7 +331,6 @@ extension YHServiceOrderProgressTableViewCell {
make.top.equalTo(21)
make.left.equalTo(21)
make.height.equalTo(24)
// make.width.equalTo(68)
}
messageLabel = {
......@@ -421,4 +442,27 @@ extension YHServiceOrderProgressTableViewCell {
// 本地没有红点记录存储则必展示红点
return true
}
func getRedPointVersionFor(key: String, proVersion: Int) -> RedPointVersionType {
if key != kMyPlanRedPointInfoKey && key != kMyScoreRedPointInfoKey {
return .none
}
if let dict = UserDefaults.standard.object(forKey: key) as? [String: Any] {
if !dict.keys.contains(kProVersionKey) || !dict.keys.contains(kClickKey) {
return .none
}
if let version = dict[kProVersionKey] as? Int {
if version != proVersion { // 版本不一致一定显示红点
return .different
}
return .same
} else {
return .none
}
}
// 本地没有红点记录存储
return .none
}
}
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