From e15c976316feef72ff9bcabce38e0a078f9505db Mon Sep 17 00:00:00 2001 From: 杨锴 <841720330@qq.com> Date: 星期四, 12 九月 2024 18:18:03 +0800 Subject: [PATCH] fix API --- XQMuse/Root/Pavilion/PavilionVC.swift | 48 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 36 insertions(+), 12 deletions(-) diff --git a/XQMuse/Root/Pavilion/PavilionVC.swift b/XQMuse/Root/Pavilion/PavilionVC.swift index a326dd1..e10327f 100644 --- a/XQMuse/Root/Pavilion/PavilionVC.swift +++ b/XQMuse/Root/Pavilion/PavilionVC.swift @@ -7,14 +7,37 @@ import UIKit import JQTools +import RxSwift +import RxRelay +import CoreLocation + +class PavilionViewModel:RefreshInnerModel<PavilionDetailModel>{ + var location = BehaviorRelay<CLLocationCoordinate2D?>(value: nil) + var search = BehaviorRelay<String?>(value: nil) + + override func api() -> (Observable<BaseResponse<BaseResponseList<PavilionDetailModel>>>)? { + return Services.getPavlilonPage(location: location.value, search: search.value, page: page) + } +} class PavilionVC: BaseVC { @IBOutlet weak var collectionView: UICollectionView! - - override func viewDidLoad() { - super.viewDidLoad() - } + private var viewModel = PavilionViewModel() + private var locationTool = JQ_LocationTool.instance() + + override func viewDidLoad() { + super.viewDidLoad() + + viewModel.configure(collectionView) + viewModel.beginRefresh() + + locationTool.startLocation { location in + self.viewModel.location.accept(location.coordinate) + self.viewModel.beginRefresh() + } errorClouse: { error in + } + } override func setUI() { super.setUI() @@ -24,38 +47,39 @@ collectionView.backgroundColor = .clear collectionView.showsVerticalScrollIndicator = false collectionView.backgroundColor = .clear - collectionView.contentInset = UIEdgeInsets(top: 52.5, left: 28.5, bottom: 0, right: 28.5) + collectionView.contentInset = UIEdgeInsets(top: 0, left: 28.5, bottom: 0, right: 28.5) collectionView.register(UINib(nibName: "PavilionItemCell", bundle: nil), forCellWithReuseIdentifier: "_PavilionItemCell") } @IBAction func searchAction(_ sender: Any) { let searchVC = PavilionSearchVC() + searchVC.viewModel = viewModel push(vc: searchVC) } - + } extension PavilionVC:UICollectionViewDelegate{ func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - let detailVC = PavilionDetailVC() + let model = viewModel.dataSource.value!.list[indexPath.row] + let detailVC = PavilionDetailVC(id: model.id) push(vc: detailVC) } } extension PavilionVC:UICollectionViewDataSource{ func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - - let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_PavilionItemCell", for: indexPath) as! PavilionItemCell + let model = viewModel.dataSource.value!.list[indexPath.row] + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_PavilionItemCell", for: indexPath) as! PavilionItemCell cell.backgroundColor = .jq_randomColor cell.jq_cornerRadius = 16 + cell.setPavilionDetailModel(model) return cell - } - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return 10 + return viewModel.dataSource.value?.list.count ?? 0 } } -- Gitblit v1.7.1