// // ReviewMemberListVC.swift // QuickLocation // // Created by 八条 on 2026/6/10. // import UIKit import RxSwift import RxCocoa import RxDataSources import ObjectMapper class ReviewMemberListVC: BaseViewController { fileprivate var rootView: ReviewMemberListView! override func loadView() { rootView = ReviewMemberListView(frame: UIScreen.main.bounds) view = rootView } private var viewModel: ReviewMemberListViewModel override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. bindViewModel() requestReviewlist() } private func bindViewModel() { viewModel.output.sectionedItems .bind(to: rootView.tableView.rx.items(dataSource: dataSource)) .disposed(by: disposeBag) viewModel.output.sectionedItems .subscribe(onNext: { [weak self] sections in let count = sections.first?.items.count ?? 0 self?.rootView.updateHeight(itemCount: count) }) .disposed(by: disposeBag) } // MARK: - UITableViewDataSource lazy private var dataSource: RxTableViewSectionedReloadDataSource = { return RxTableViewSectionedReloadDataSource( configureCell: { (_, tableView, indexPath, model) in let cell: ReviewMemberCell = tableView.dequeueReusableCell(for: indexPath) cell.configure(model) cell.agreeBtn.rx.tap.subscribe(onNext: { _ in self.requestReviewMember(type: 1, userId: model.user_id) }).disposed(by: cell.disposeBag) cell.refuseBtn.rx.tap.subscribe(onNext: { _ in self.requestReviewMember(type: 2, userId: model.user_id) }).disposed(by: cell.disposeBag) return cell }) }() // MARK: - API private func requestReviewlist() { DLToast.showLoading() GroupService.reviewlist(requestData: ["group_key": viewModel.groupId]).subscribe { response in DLToast.dismiss() self.viewModel.loadData(response.list) }.disposed(by: disposeBag) } private func requestReviewMember(type: Int, userId: String) { DLToast.showLoading() GroupService.reviewMember(requestData: ["group_key": viewModel.groupId, "review_op": type, "review_userid": userId]).subscribe { response in DLToast.dismiss() self.requestReviewlist() }.disposed(by: disposeBag) } // MARK: - Init init(groupId: String) { self.viewModel = ReviewMemberListViewModel(groupId: groupId) super.init(nibName: nil, bundle: nil) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } }