From 642175113bf6f2c90894e689dacda50278cad570 Mon Sep 17 00:00:00 2001
From: 杨锴 <841720330@qq.com>
Date: 星期四, 19 九月 2024 15:50:11 +0800
Subject: [PATCH] complete most UI &  Mock API

---
 XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift |   64 +++++++++++++++++++++++++-------
 1 files changed, 50 insertions(+), 14 deletions(-)

diff --git a/XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift b/XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift
index d22fbf6..2c00a0e 100644
--- a/XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift
+++ b/XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift
@@ -7,53 +7,89 @@
 
 import UIKit
 import JQTools
+import RxRelay
+import RxSwift
+
+class WatchHistoryViewModel:RefreshInnerModel<CourseModel>{
+
+				let state = BehaviorRelay<Int>(value: 1)
+				var type = BehaviorRelay<WatchType>(value: .collect)
+
+				override func api() -> (Observable<BaseResponse<BaseResponseList<CourseModel>>>)? {
+								switch type.value {
+												case .history:Services.lookHistory(page: page, pageSize: 20, state: state.value)
+												case .collect:Services.myCollect(page: page, pageSize: 20, state: state.value)
+												case .payment:Services.myOrderCourse(page: page, pageSize: 20, state: state.value)
+								}
+				}
+}
+
+
 class WatchHistoryDetailVC: BaseVC {
 
-				private var page:Int!
-
+				private var viewModel = WatchHistoryViewModel()
 				private var collectionView:UICollectionView!
 
-				init(page:Int) {
+				init(state:Int,type:WatchType) {
 								super.init(nibName: nil, bundle: nil)
-								self.page = page
+								self.viewModel.type.accept(type)
+								self.viewModel.state.accept(state)
 				}
-				
+
 				required init?(coder: NSCoder) {
 								fatalError("init(coder:) has not been implemented")
 				}
-				
-    override func viewDidLoad() {
-        super.viewDidLoad()
+
+				override func viewDidLoad() {
+								super.viewDidLoad()
+
 
 								let layout = UICollectionViewFlowLayout()
 								collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
 								collectionView.delegate = self
 								collectionView.dataSource = self
 								collectionView.showsVerticalScrollIndicator = false
+								collectionView.backgroundColor = .clear
 								collectionView.register(UINib(nibName: "HomeRelaxBannerCCell", bundle: nil), forCellWithReuseIdentifier: "_HomeRelaxBannerCCell")
-								collectionView.contentInset = UIEdgeInsets(top: 29, left: 29.5 , bottom: 0, right: 29.5)
+								collectionView.contentInset = UIEdgeInsets(top: 0, left: 29.5 , bottom: 0, right: 29.5)
 
 								view.addSubview(collectionView)
 								collectionView.snp.makeConstraints { make in
-												make.edges.equalToSuperview()
+												make.top.equalTo(0)
+												make.left.right.bottom.equalToSuperview()
 								}
-    }
+
+								viewModel.configure(collectionView)
+								viewModel.beginRefresh()
+				}
 }
 
 extension WatchHistoryDetailVC:UICollectionViewDelegate & UICollectionViewDataSource{
 				func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
-								return 5
+								return viewModel.dataSource.value?.list.count ?? 0
 				}
 
 				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
 								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBannerCCell", for: indexPath) as! HomeRelaxBannerCCell
-								cell.contentView.backgroundColor = .jq_randomColor
+								let m = viewModel.dataSource.value!.list[indexPath.row]
+								cell.setCourseModel(m)
 								return cell
 				}
 
+				func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
+								return CGSizeMake(JQ_ScreenW, 29)
+				}
+
 				func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
-												let vc = HomeItemDetailVC(id: 0)
+
+								let m = viewModel.dataSource.value!.list[indexPath.row]
+								if viewModel.state.value == 1{
+												let vc = HomeItemDetailVC(id: m.id)
 												JQ_currentViewController().jq_push(vc: vc)
+								}else{
+												let vc = CourseDetialVC(courseId: m.id)
+												JQ_currentViewController().jq_push(vc: vc)
+								}
 				}
 }
 

--
Gitblit v1.7.1