Commit 1f423b85 authored by pete谢兆麟's avatar pete谢兆麟

小红点逻辑添加

parent 345e0921
...@@ -43,8 +43,8 @@ class YHServiceCenterMainViewController: YHBaseViewController { ...@@ -43,8 +43,8 @@ class YHServiceCenterMainViewController: YHBaseViewController {
var arrItemTitles = ["全部", "待开始", "进行中", "已完成"] var arrItemTitles = ["全部", "待开始", "进行中", "已完成"]
var arrItemVCs: [YHServiceOrderListView] = [] var arrItemVCs: [YHServiceOrderListView] = []
var segmentedView : JXSegmentedView = JXSegmentedView(frame: CGRect(x: 0, y: k_Height_safeAreaInsetsTop(), width: KScreenWidth, height: 48)) var segmentedView : JXSegmentedView = JXSegmentedView(frame: CGRect(x: 0, y: k_Height_safeAreaInsetsTop(), width: KScreenWidth, height: 48))
lazy var segmentedDataSource: JXSegmentedTitleDataSource = { lazy var segmentedDataSource: JXSegmentedDotDataSource = {
let dataSource = JXSegmentedTitleDataSource() let dataSource = JXSegmentedDotDataSource()
dataSource.isTitleColorGradientEnabled = true dataSource.isTitleColorGradientEnabled = true
dataSource.titles = arrItemTitles dataSource.titles = arrItemTitles
...@@ -57,6 +57,8 @@ class YHServiceCenterMainViewController: YHBaseViewController { ...@@ -57,6 +57,8 @@ class YHServiceCenterMainViewController: YHBaseViewController {
dataSource.isItemSpacingAverageEnabled = false dataSource.isItemSpacingAverageEnabled = false
dataSource.itemWidth = JXSegmentedViewAutomaticDimension dataSource.itemWidth = JXSegmentedViewAutomaticDimension
dataSource.itemSpacing = 16 dataSource.itemSpacing = 16
dataSource.dotStates = [false, false, false, false]
dataSource.dotSize = CGSize(width: 6, height: 6)
return dataSource return dataSource
}() }()
...@@ -315,31 +317,31 @@ extension YHServiceCenterMainViewController { ...@@ -315,31 +317,31 @@ extension YHServiceCenterMainViewController {
controllerOne.type = 0 controllerOne.type = 0
controllerOne.orderID = orderId controllerOne.orderID = orderId
controllerOne.block = {[weak self] type, count in controllerOne.block = {[weak self] type, count, flag in
guard let self = self else { return } guard let self = self else { return }
arrItemTitles[0] = "全部(\(count))" arrItemTitles[0] = "全部(\(count))"
self.updata() self.updata(flag: flag, type: 0)
} }
controllerTwo.type = 2 controllerTwo.type = 2
controllerTwo.orderID = orderId controllerTwo.orderID = orderId
controllerTwo.block = {[weak self] type, count in controllerTwo.block = {[weak self] type, count, flag in
guard let self = self else { return } guard let self = self else { return }
arrItemTitles[1] = "进行中(\(count))" arrItemTitles[1] = "进行中(\(count))"
self.updata() self.updata(flag: flag, type: 2)
} }
controllerThree.type = 1 controllerThree.type = 1
controllerThree.orderID = orderId controllerThree.orderID = orderId
controllerThree.block = {[weak self] type, count in controllerThree.block = {[weak self] type, count, flag in
guard let self = self else { return } guard let self = self else { return }
arrItemTitles[2] = "待开始(\(count))" arrItemTitles[2] = "待开始(\(count))"
self.updata() self.updata(flag: flag, type: 1)
} }
controllerFour.type = 3 controllerFour.type = 3
controllerFour.orderID = orderId controllerFour.orderID = orderId
controllerFour.block = {[weak self] type, count in controllerFour.block = {[weak self] type, count, flag in
guard let self = self else { return } guard let self = self else { return }
arrItemTitles[3] = "已完成(\(count))" arrItemTitles[3] = "已完成(\(count))"
self.updata() self.updata(flag: flag, type: 3)
doneCount = count doneCount = count
self.getStep() self.getStep()
} }
...@@ -349,8 +351,6 @@ extension YHServiceCenterMainViewController { ...@@ -349,8 +351,6 @@ extension YHServiceCenterMainViewController {
arrItemVCs.append(controllerFour) arrItemVCs.append(controllerFour)
//segmentedViewDataSource一定要通过属性强持有!!!!!!!!! //segmentedViewDataSource一定要通过属性强持有!!!!!!!!!
segmentedView.dataSource = segmentedDataSource
segmentedView.delegate = self
segmentedView.collectionView.backgroundColor = .white segmentedView.collectionView.backgroundColor = .white
view.addSubview(segmentedView) view.addSubview(segmentedView)
...@@ -373,9 +373,12 @@ extension YHServiceCenterMainViewController { ...@@ -373,9 +373,12 @@ extension YHServiceCenterMainViewController {
segmentedView.defaultSelectedIndex = 1 segmentedView.defaultSelectedIndex = 1
} }
func updata(){ func updata(flag: Bool, type: Int){
DispatchQueue.main.async { DispatchQueue.main.async {
self.segmentedDataSource.titles = self.arrItemTitles self.segmentedDataSource.titles = self.arrItemTitles
if type == 3 {
self.segmentedDataSource.dotStates = [false,false,false,flag]
}
self.segmentedView.reloadData() self.segmentedView.reloadData()
} }
} }
......
...@@ -11,7 +11,7 @@ import JXSegmentedView ...@@ -11,7 +11,7 @@ import JXSegmentedView
class YHServiceOrderListView: YHBaseViewController { class YHServiceOrderListView: YHBaseViewController {
private let viewModel : YHServiceCenterMainViewModel = YHServiceCenterMainViewModel() private let viewModel : YHServiceCenterMainViewModel = YHServiceCenterMainViewModel()
typealias Block = (Int,Int) -> () typealias Block = (Int,Int,Bool) -> ()
var block: Block? var block: Block?
var orderID: Int = 0 var orderID: Int = 0
var type: Int = 0 var type: Int = 0
...@@ -48,7 +48,21 @@ extension YHServiceOrderListView { ...@@ -48,7 +48,21 @@ extension YHServiceOrderListView {
} }
} }
if let block = self.block { if let block = self.block {
block(type, self.viewModel.arrDataForSeviceCenterProgress.count) if type == 3 {
var oneflag = false
var twoflag = false
for item in self.viewModel.arrDataForSeviceCenterProgress {
if item.type == 3 {
oneflag = isNeedShowRedPointFor(key: kMyScoreRedPointInfoKey, proVersion: item.pro_version)
}
if item.type == 4 {
twoflag = isNeedShowRedPointFor(key: kMyPlanRedPointInfoKey, proVersion: item.pro_version)
}
}
block(type, self.viewModel.arrDataForSeviceCenterProgress.count, oneflag||twoflag)
} else {
block(type, self.viewModel.arrDataForSeviceCenterProgress.count, false)
}
} }
} }
} }
...@@ -83,6 +97,30 @@ extension YHServiceOrderListView { ...@@ -83,6 +97,30 @@ extension YHServiceOrderListView {
make.height.equalTo(150) make.height.equalTo(150)
} }
} }
func isNeedShowRedPointFor(key: String, proVersion: Int) -> Bool {
if key != kMyPlanRedPointInfoKey && key != kMyScoreRedPointInfoKey {
return false
}
let targetKey = key + "_\(self.orderID)"
if let dict = UserDefaults.standard.object(forKey: targetKey) as? [String: Any] {
if !dict.keys.contains(kProVersionKey) || !dict.keys.contains(kClickKey) {
return false
}
if let version = dict[kProVersionKey] as? Int {
if version != proVersion { // 版本不一致一定显示红点
return true
}
// 版本一致但是未点击显示红点
if let isClicked = dict[kClickKey] as? Bool, isClicked == false {
return true
}
}
return false
}
// 本地没有红点记录存储则必展示红点
return true
}
} }
extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource { extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource {
......
...@@ -280,7 +280,6 @@ extension YHServiceOrderProgressTableViewCell { ...@@ -280,7 +280,6 @@ extension YHServiceOrderProgressTableViewCell {
messageLabel.text = "恭喜您,方案评分已更新~" messageLabel.text = "恭喜您,方案评分已更新~"
} }
self.redPointView.isHidden = !isNeedShowRedPointFor(key: kMyScoreRedPointInfoKey, proVersion: model.pro_version) self.redPointView.isHidden = !isNeedShowRedPointFor(key: kMyScoreRedPointInfoKey, proVersion: model.pro_version)
} else if model.type == 4 { } else if model.type == 4 {
if model.pro_version == 1 { if model.pro_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