// // MeTraineeDetails03Controller.swift // JiaPeiManage // // Created by Ning.ge on 2023/6/20. // import UIKit import RxSwift import RxCocoa final class MeTraineeDetails03Controller: BaseGroupTableViewController { let cellIdentifier:String = "_MeTraineeDetails03Cell" // MARK: 服务属性 private let cocahService: CoachServiceType = CoachService(networking: CoachNetworking()) // MARK: UI属性 let header03_view = MeTraineeDetails03HeaderView.loadFromNib() // MARK: 数据 var stuLogFaceDataModel:StuLogFaceDataModel? var rows : [StuLogFaceInfoModel] = [] var page:Int = 1 var pageSize:Int = 10 var stuOutId:Int = 0 var traineeInfoModel:TraineeInfoModel? init(stuOutId:Int,info:TraineeInfoModel) { super.init() self.stuOutId = stuOutId self.traineeInfoModel = info } required convenience init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func viewDidLoad() { self.isNotData = true super.viewDidLoad() //绑定 biandView() if(self.stuOutId>0){getStuResultList()} } // MARK: 私有方法 func getStuResultList(){ page = 1 self.cocahService.stuLogFaceListByStuIdRequest(pageNum: page, pageSize: pageSize, stuOutId: stuOutId, city: LocalManager.userInfo.city!) .subscribe(onSuccess: {[unowned self] stuLogFaceDataModel in self.rows.removeAll() self.stuLogFaceDataModel = stuLogFaceDataModel self.rows+=stuLogFaceDataModel.rows print("resultInfoModel成功") self.hideLoadAnimation() self.tableView.reloadData() self.stopRefresh() }, onError: { error in self.stopRefresh() }) .disposed(by: disposeBag) } //更多 func getLoadMore(){ //计算-页数 if (stuLogFaceDataModel != nil){ let total = pageSize*self.page if(total<(stuLogFaceDataModel?.total)!){ self.page+=1 }else{ self.stopLoad() return //已经显示完 } } //请求网络-加载 self.cocahService.stuLogFaceListByStuIdRequest(pageNum: page, pageSize: pageSize, stuOutId: stuOutId, city: LocalManager.userInfo.city!) .subscribe(onSuccess: {[unowned self] stuLogFaceDataModel in self.stuLogFaceDataModel = stuLogFaceDataModel self.rows+=stuLogFaceDataModel.rows print("resultInfoModel成功") self.tableView.reloadData() self.stopLoad() }, onError: { error in self.stopLoad() }) .disposed(by: disposeBag) } func biandView(){ tableView.delegate = self tableView.dataSource = self tableView.separatorStyle = .none //去除分割线 tableView.register(UINib(nibName: "MeTraineeDetails03Cell", bundle: nil), forCellReuseIdentifier: cellIdentifier) tableView.rowHeight = 92.f if #available(iOS 13.0, *) { tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) }else { tableView.contentInset = UIEdgeInsets(top: -25, left: 0, bottom: -25, right: 0) } setupRefreshHeader(tableView) {[unowned self] in self.getStuResultList() } self.isEmptyDisplay = false self.hideLoadAnimation() // 设置上拉加载更多 tableView.es.addInfiniteScrolling { [weak self] in self?.getLoadMore() } } } //数据源 extension MeTraineeDetails03Controller:UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { if (rows.count>0){ return rows.count } return 0 } func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { if(self.traineeInfoModel != nil){ header03_view.usertemplate_imageview.sd_setImage(with: self.traineeInfoModel?.face?.urlValue) } return header03_view } func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 224.f } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! MeTraineeDetails03Cell cell.contentView.backgroundColor = ((indexPath.row%2) != 0) ? UIColor("#113357") : UIColor("#0B2B4D") cell.backgroundColor = ((indexPath.row%2) != 0) ? UIColor("#113357") : UIColor("#0B2B4D") let info = rows[indexPath.row] as StuLogFaceInfoModel cell.stutime_label.text = info.crdate cell.user_imageview.sd_setImage(with: info.img?.urlValue) cell.similar_label.text = info.similar cell.phone_label.text = info.sim return cell } } //事件 extension MeTraineeDetails03Controller:UITableViewDelegate { }