StatisticsStuListPageController.swift 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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. startDate = dateTime_str + "-01"
  52. endDate = dateTime_str + "-31"
  53. case 6://年
  54. startDate = dateTime_str + "-01-01"
  55. endDate = dateTime_str + "-12-31"
  56. default:
  57. startDate = date
  58. endDate = date
  59. }
  60. self.statisticsStuListViewModel.startDate = startDate
  61. self.statisticsStuListViewModel.endDate = endDate
  62. self.statisticsStuListViewModel.type = s_type == 0 ? .advancet : .official
  63. self.statisticsStuListViewModel.state = ""
  64. self.statisticsStuListViewModel.schoolId = schoolId
  65. }
  66. required convenience init?(coder aDecoder: NSCoder) {
  67. fatalError("init(coder:) has not been implemented")
  68. }
  69. override func setupConstraints() {
  70. statusBar.snp.makeConstraints { (make) in
  71. make.left.right.top.equalToSuperview()
  72. make.height.equalTo(Metric.statusBarHeight)
  73. }
  74. navBar.snp.remakeConstraints { (make) in
  75. make.left.right.equalToSuperview()
  76. make.height.equalTo(Metric.navBarHeight)
  77. make.top.equalTo(statusBar.snp.bottom)
  78. }
  79. tableView.snp.remakeConstraints { make in
  80. make.top.equalTo(navBar.snp.bottom)
  81. make.left.right.bottom.equalToSuperview()
  82. }
  83. }
  84. override func viewDidLoad() {
  85. super.viewDidLoad()
  86. //绑定
  87. setupUI()
  88. biandView()
  89. //获取list
  90. self.statisticsStuListViewModel.getCoachInfoList(vc:self)
  91. }
  92. func setupUI(){
  93. self.view.addSubview(navBar)
  94. self.view.addSubview(statusBar)
  95. self.view.backgroundColor = .db_theme
  96. self.navBar.back_button.addTarget(self, action: #selector(actionBackdo), for: .touchUpInside)
  97. self.navBar.search_button.isHidden = true
  98. }
  99. func biandView(){
  100. navBar.title_label.text = title_str
  101. tableView.delegate = self
  102. // tableView.dataSource = self
  103. tableView.separatorStyle = .none //去除分割线
  104. tableView.register(UINib(nibName: "MeTraineeSubjectCell", bundle: nil), forCellReuseIdentifier: cellIdentifier)
  105. tableView.rowHeight = 288.f
  106. setupRefreshHeader(tableView) {[unowned self] in
  107. self.statisticsStuListViewModel.getCoachInfoList(vc:self)
  108. }
  109. // 设置上拉加载更多
  110. tableView.es.addInfiniteScrolling { [unowned self] in
  111. if self.statisticsStuListViewModel != nil {
  112. self.statisticsStuListViewModel.getLoadMore(vc:self)
  113. }
  114. }
  115. self.isEmptyDisplay = false
  116. //RX 绑定
  117. self.statisticsStuListViewModel.items
  118. .bind(to: tableView.rx.items(cellIdentifier: cellIdentifier,cellType:MeTraineeSubjectCell.self)) { (row, model, cell) in
  119. cell.index_button.setTitle("\(row+1)", for: .normal)
  120. cell.setRowInfo(rowInfo:model as! RowInfo)
  121. }
  122. .disposed(by: disposeBag)
  123. // tableView点击事件
  124. tableView.rx.itemSelected.throttle(.seconds(1), scheduler: MainScheduler.instance)
  125. .subscribe(onNext: { [weak self]indexPath in
  126. print("点击\(indexPath)行")
  127. let rowInfo:RowInfo = self!.statisticsStuListViewModel.rows[indexPath.row]
  128. if rowInfo != nil { //rowInfo.bmType == "2"
  129. NYSwRouter.push(NYSwPushType.trainee_info,context: rowInfo)
  130. }
  131. self?.tableView.deselectRow(at: indexPath, animated: false)
  132. }).disposed(by: disposeBag)
  133. }
  134. }
  135. extension StatisticsStuListPageController:UITableViewDelegate {
  136. }