MeTraineeSubjectPageViewController.swift 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. //
  2. // MeTraineeSubjectPageViewController.swift
  3. // JiaPeiManage
  4. //
  5. // Created by Ning.ge on 2023/6/15.
  6. //
  7. import UIKit
  8. import RxSwift
  9. import RxCocoa
  10. final class MeTraineeSubjectPageViewController: BaseTableViewController {
  11. let cellIdentifier:String = "_MeTraineeSubjectCell"
  12. // MARK: 服务属性
  13. private let cocahService: CoachServiceType = CoachService(networking: CoachNetworking())
  14. // MARK: UI属性
  15. // MARK: 数据
  16. var traineeDataModel:TraineeDataModel?
  17. var rows:[RowInfo] = []
  18. var page:Int = 1
  19. var pageSize:Int = 10
  20. var state = "1"
  21. var schoolId:Int = 0
  22. init(state:String,schoolId:Int) {
  23. super.init()
  24. self.state = state
  25. self.schoolId = schoolId
  26. }
  27. required convenience init?(coder aDecoder: NSCoder) {
  28. fatalError("init(coder:) has not been implemented")
  29. }
  30. override func viewDidLoad() {
  31. super.viewDidLoad()
  32. getCoachInfoList()
  33. //绑定
  34. biandView()
  35. }
  36. // MARK: 私有方法
  37. func getCoachInfoList()
  38. {
  39. page = 1
  40. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: "\(LocalManager.userInfo.id)", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  41. .subscribe(onSuccess: { traineeDataModel in
  42. self.rows.removeAll()
  43. self.traineeDataModel = traineeDataModel
  44. self.rows += traineeDataModel.rows!
  45. print("coachInfoListRequest成功")
  46. self.hideLoadAnimation()
  47. self.tableView.reloadData()
  48. self.stopRefresh()
  49. }, onError: { error in
  50. self.stopRefresh()
  51. })
  52. .disposed(by: disposeBag)
  53. }
  54. //更多
  55. func getLoadMore(){
  56. //计算-页数
  57. if (traineeDataModel != nil){
  58. let total = pageSize*self.page
  59. if(total<(traineeDataModel?.total)!){
  60. self.page+=1
  61. }else{
  62. self.stopLoad()
  63. return //已经显示完
  64. }
  65. }
  66. //请求网络-加载
  67. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: "\(LocalManager.userInfo.id)", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
  68. .subscribe(onSuccess: { traineeDataModel in
  69. self.traineeDataModel = traineeDataModel
  70. if(traineeDataModel.rows!.count>0){
  71. self.rows += traineeDataModel.rows!
  72. }
  73. print("coachInfoListRequest成功")
  74. self.tableView.reloadData()
  75. self.stopLoad()
  76. }, onError: { error in
  77. self.stopLoad()
  78. })
  79. .disposed(by: disposeBag)
  80. }
  81. func biandView(){
  82. tableView.delegate = self
  83. tableView.dataSource = self
  84. tableView.separatorStyle = .none //去除分割线
  85. tableView.register(UINib(nibName: "MeTraineeSubjectCell", bundle: nil), forCellReuseIdentifier: cellIdentifier)
  86. tableView.rowHeight = 288.f
  87. setupRefreshHeader(tableView) {[unowned self] in
  88. self.getCoachInfoList()
  89. }
  90. self.isEmptyDisplay = false
  91. // 设置上拉加载更多
  92. tableView.es.addInfiniteScrolling { [weak self] in
  93. self?.getLoadMore()
  94. }
  95. }
  96. }
  97. //数据源
  98. extension MeTraineeSubjectPageViewController:UITableViewDataSource {
  99. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  100. return self.rows.count ?? 0
  101. }
  102. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  103. let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! MeTraineeSubjectCell
  104. cell.index_button.setTitle("\(indexPath.row+1)", for: .normal)
  105. cell.setRowInfo(rowInfo: (self.rows[indexPath.row]))
  106. return cell
  107. }
  108. }
  109. //事件
  110. extension MeTraineeSubjectPageViewController:UITableViewDelegate {
  111. func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  112. tableView.deselectRow(at: indexPath, animated: false)
  113. let rowInfo = self.rows[indexPath.row]
  114. if rowInfo != nil {
  115. let context: Int = rowInfo.id ?? 0
  116. NYSwRouter.push(NYSwPushType.trainee_info,context: context)
  117. }
  118. }
  119. }