StatisticsStuListPageController.swift 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. //
  2. // StatisticsStuListPageController.swift
  3. // JiaPeiManage
  4. //
  5. // Created by Ning.ge on 2024/4/3.
  6. //
  7. import UIKit
  8. import RxSwift
  9. import RxCocoa
  10. final class StatisticsStuListPageController: BaseTableViewController {
  11. let cellIdentifier:String = "_MeTraineeStuListCell"
  12. //VM
  13. let statisticsStuListViewModel = StatisticsStuListViewModel()
  14. // MARK: UI let
  15. let statusBar = UIView().then {
  16. $0.backgroundColor = UIColor.db_theme
  17. }
  18. let navBar = MeTraineeNavBar.loadFromNib().then {
  19. $0.title_label.text = "今日预报名"
  20. }
  21. var s_type = 0
  22. var title_str = ""
  23. var dateTime_str = ""
  24. init(type:Int,title:String,schoolId:Int,dateTime:String) {
  25. super.init()
  26. s_type = type
  27. title_str = title
  28. dateTime_str = dateTime
  29. var startDate = ""
  30. var endDate = ""
  31. let date = NYDate.getThisDate() //今日
  32. switch type {
  33. case 0://今日预报名
  34. startDate = date
  35. endDate = date
  36. case 1://今日
  37. startDate = date
  38. endDate = date
  39. case 2://本月
  40. let dates = NYDate.getDateMonth()//本月
  41. startDate = dates[0]
  42. endDate = dates[1]
  43. case 3://本年
  44. let dates = NYDate.getDateYear() //本年
  45. startDate = dates[0]
  46. endDate = dates[1]
  47. case 4://日
  48. startDate = dateTime_str
  49. endDate = dateTime_str
  50. case 5://月
  51. //月份判断
  52. let components = dateTime_str.components(separatedBy: "-")
  53. if components.count >= 2 {
  54. let dates = NYDate.getMonthStartAndEndDates(forMonth: dateTime_str)
  55. startDate = dates[0]
  56. endDate = dates[1]
  57. }
  58. case 6://年
  59. startDate = dateTime_str + "-01-01"
  60. endDate = dateTime_str + "-12-31"
  61. default:
  62. startDate = date
  63. endDate = date
  64. }
  65. self.statisticsStuListViewModel.startDate = startDate
  66. self.statisticsStuListViewModel.endDate = endDate
  67. self.statisticsStuListViewModel.type = s_type == 0 ? .advancet : .official
  68. self.statisticsStuListViewModel.state = ""
  69. self.statisticsStuListViewModel.schoolId = schoolId
  70. }
  71. required convenience init?(coder aDecoder: NSCoder) {
  72. fatalError("init(coder:) has not been implemented")
  73. }
  74. override func setupConstraints() {
  75. statusBar.snp.makeConstraints { (make) in
  76. make.left.right.top.equalToSuperview()
  77. make.height.equalTo(Metric.statusBarHeight)
  78. }
  79. navBar.snp.remakeConstraints { (make) in
  80. make.left.right.equalToSuperview()
  81. make.height.equalTo(Metric.navBarHeight)
  82. make.top.equalTo(statusBar.snp.bottom)
  83. }
  84. tableView.snp.remakeConstraints { make in
  85. make.top.equalTo(navBar.snp.bottom)
  86. make.left.right.bottom.equalToSuperview()
  87. }
  88. }
  89. override func viewDidLoad() {
  90. super.viewDidLoad()
  91. //绑定
  92. setupUI()
  93. biandView()
  94. //获取list
  95. self.statisticsStuListViewModel.getCoachInfoList(vc:self)
  96. }
  97. func setupUI(){
  98. self.view.addSubview(navBar)
  99. self.view.addSubview(statusBar)
  100. self.view.backgroundColor = .db_theme
  101. self.navBar.back_button.addTarget(self, action: #selector(actionBackdo), for: .touchUpInside)
  102. self.navBar.search_button.isHidden = true
  103. }
  104. func biandView(){
  105. navBar.title_label.text = title_str
  106. tableView.delegate = self
  107. // tableView.dataSource = self
  108. tableView.separatorStyle = .none //去除分割线
  109. tableView.register(UINib(nibName: "MeTraineeSubjectCell", bundle: nil), forCellReuseIdentifier: cellIdentifier)
  110. tableView.rowHeight = 288.f
  111. setupRefreshHeader(tableView) {[unowned self] in
  112. self.statisticsStuListViewModel.getCoachInfoList(vc:self)
  113. }
  114. // 设置上拉加载更多
  115. tableView.es.addInfiniteScrolling { [unowned self] in
  116. if self.statisticsStuListViewModel != nil {
  117. self.statisticsStuListViewModel.getLoadMore(vc:self)
  118. }
  119. }
  120. self.isEmptyDisplay = false
  121. //RX 绑定
  122. self.statisticsStuListViewModel.items
  123. .bind(to: tableView.rx.items(cellIdentifier: cellIdentifier,cellType:MeTraineeSubjectCell.self)) { (row, model, cell) in
  124. cell.index_button.setTitle("\(row+1)", for: .normal)
  125. cell.setRowInfo(rowInfo:model as! RowInfo)
  126. }
  127. .disposed(by: disposeBag)
  128. // tableView点击事件
  129. tableView.rx.itemSelected.throttle(.seconds(1), scheduler: MainScheduler.instance)
  130. .subscribe(onNext: { [weak self]indexPath in
  131. print("点击\(indexPath)行")
  132. let rowInfo:RowInfo = self!.statisticsStuListViewModel.rows[indexPath.row]
  133. if rowInfo != nil { //rowInfo.bmType == "2"
  134. NYSwRouter.push(NYSwPushType.trainee_info,context: rowInfo)
  135. }
  136. self?.tableView.deselectRow(at: indexPath, animated: false)
  137. }).disposed(by: disposeBag)
  138. }
  139. }
  140. extension StatisticsStuListPageController:UITableViewDelegate {
  141. }