// // MeTraineeSearchViewModel.swift // JiaPeiManage // // Created by Ning.ge on 2023/7/12. // import UIKit import RxSwift class MeTraineeSearchViewModel: NSObject { // MARK: 服务属性 private let cocahService: CoachServiceType = CoachService(networking: CoachNetworking()) // @objc weak var vc:StatisticsPageController? = nil // MARK: 数据 var traineeDataModel:TraineeDataModel? var page:Int = 1 var pageSize:Int = 15 var state = "" var schoolId:Int = 0 var appCoachId = "" var coachId = "" var rows:[RowInfo] = [] private let itemsSubject = BehaviorSubject<[RowInfo]>(value: []) var items: Observable<[RowInfo]> { return itemsSubject.asObservable() } override init() { super.init() // searchCoachInfoList() } /// 数据请求 func searchCoachInfoList(vc:MeTraineeSearchPageViewController) { print("网络请求") var keyword:String = vc.search_textfield.text!.trimmingCharacters(in: .whitespacesAndNewlines) if keyword == "" { self.traineeDataModel?.total = 0 self.rows.removeAll() vc.isEmptyDisplay = true vc.hideLoadAnimation() vc.stopRefresh() vc.tableView.reloadData() return } //非绑定的学员 并且 是开启预报名地区 if appCoachId == "" && LocalManager.userInfo.cityPower == "1"{ self.cocahService.allStudentInfoListRequest(city: LocalManager.userInfo.city!, coachId:coachId, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId).subscribe(onSuccess: { [unowned self] traineeDataModel in self.rows.removeAll() self.traineeDataModel = traineeDataModel self.rows += traineeDataModel.rows! print("coachInfoListRequest成功") vc.isEmptyDisplay = true vc.hideLoadAnimation() vc.stopRefresh() vc.tableView.reloadData() }, onError: { error in vc.stopRefresh() }) .disposed(by: vc.disposeBag) }else{//绑定的学员+remark=1+ 走原始api let coachIdStr = (appCoachId == "" ? coachId: "") self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: appCoachId, coachId: coachIdStr, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state) .subscribe(onSuccess: { [unowned self] traineeDataModel in self.rows.removeAll() self.traineeDataModel = traineeDataModel self.rows += traineeDataModel.rows! print("coachInfoListRequest成功") vc.isEmptyDisplay = true vc.hideLoadAnimation() vc.stopRefresh() vc.tableView.reloadData() }, onError: { error in vc.stopRefresh() }) .disposed(by: vc.disposeBag) } } //更多 func getLoadMore(vc:MeTraineeSearchPageViewController){ //计算-页数 if (traineeDataModel != nil){ let total = pageSize*self.page if(total<(traineeDataModel?.total)!){ self.page+=1 }else{ vc.stopLoad() return //已经显示完 } } var keyword:String = vc.search_textfield.text!.trimmingCharacters(in: .whitespacesAndNewlines) //非绑定的学员 并且 是开启预报名地区 if appCoachId == "" && LocalManager.userInfo.cityPower == "1"{ self.cocahService.allStudentInfoListRequest(city: LocalManager.userInfo.city!, coachId:coachId, field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId).subscribe(onSuccess: { [unowned self] traineeDataModel in self.traineeDataModel = traineeDataModel if(traineeDataModel.rows!.count>0){ self.rows += traineeDataModel.rows! } vc.tableView.reloadData() vc.stopLoad() }, onError: { error in vc.stopRefresh() }) .disposed(by: vc.disposeBag) }else{//绑定的学员+remark=1+ 走原始api self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: appCoachId, coachId: "", field: keyword, pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state) .subscribe(onSuccess: { [unowned self] traineeDataModel in self.traineeDataModel = traineeDataModel if(traineeDataModel.rows!.count>0){ self.rows += traineeDataModel.rows! } vc.tableView.reloadData() vc.stopLoad() }, onError: { error in vc.stopRefresh() }) .disposed(by: vc.disposeBag) } } }