MeTraineeSearchPageViewController.swift 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. //
  2. // MeTraineeSearchPageViewController.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 MeTraineeSearchPageViewController: BaseTableViewController {
  11. let cellIdentifier:String = "_MeTraineeSubjectCellSearch"
  12. // MARK: UI属性
  13. @IBOutlet weak var searchView: UIView!
  14. //搜索
  15. @IBOutlet weak var search_textfield: QMUITextField!
  16. //搜按钮
  17. @IBOutlet weak var search_button: UIButton!
  18. let meTraineeSearchViewModel = MeTraineeSearchViewModel()
  19. let headerView = MeTraineeSubjectHeaderView.loadFromNib()
  20. var schoolId:Int = 0
  21. var appCoachId = ""
  22. var coachId = ""
  23. //重置约束
  24. override func setupConstraints() {
  25. self.tableView.snp.remakeConstraints { make in
  26. make.top.equalTo(self.searchView.snp.bottom)
  27. make.left.right.bottom.equalTo(self.view)
  28. }
  29. self.loadViewIfNeeded()
  30. }
  31. override func viewDidLoad() {
  32. super.viewDidLoad()
  33. meTraineeSearchViewModel.appCoachId = appCoachId
  34. meTraineeSearchViewModel.schoolId = schoolId
  35. meTraineeSearchViewModel.coachId = coachId
  36. setupUI()
  37. biandView()
  38. }
  39. // MARK: 私有方法
  40. func setupUI(){
  41. if isIphoneX {self.nav_topH_layout.constant = 64.f+24.f}
  42. self.view.backgroundColor = .db_theme
  43. // self.searchView.addSubview(search_bar)
  44. self.search_textfield.placeholderColor = .db_place
  45. tableView.dataSource = self
  46. tableView.delegate = self
  47. tableView.separatorStyle = .none //去除分割线
  48. tableView.register(UINib(nibName: "MeTraineeSubjectCell", bundle: nil), forCellReuseIdentifier: cellIdentifier)
  49. tableView.rowHeight = 288.f
  50. setupRefreshHeader(tableView) {[unowned self] in
  51. DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
  52. // 在延迟 1 秒后执行的代码
  53. self.stopRefresh()
  54. }
  55. NSLog("AAAAAAA")
  56. }
  57. self.isEmptyDisplay = false
  58. }
  59. //绑定-rx
  60. func biandView(){
  61. search_textfield.rx.text.orEmpty
  62. // .filter { !$0.isEmpty } // Filter out empty strings
  63. .subscribe(onNext: { [unowned self] searchText in
  64. // Handle the updated search text here
  65. print("Search text changed: \(searchText)")
  66. // self.searchCoachInfoList()
  67. self.meTraineeSearchViewModel.searchCoachInfoList(searchPageVC: self)
  68. })
  69. .disposed(by: disposeBag)
  70. //RX 绑定
  71. // self.meTraineeSearchViewModel.items
  72. // .bind(to: tableView.rx.items(cellIdentifier: cellIdentifier,cellType:MeTraineeSubjectCell.self)) { (row, model, cell) in
  73. // cell.index_button.setTitle("\(row+1)", for: .normal)
  74. // cell.setRowInfo(rowInfo:model as! RowInfo)
  75. // }
  76. // .disposed(by: disposeBag)
  77. // tableView点击事件
  78. tableView.rx.itemSelected.subscribe(onNext: { [weak self]indexPath in
  79. print("点击\(indexPath)行")
  80. let rowInfo:RowInfo = (self!.meTraineeSearchViewModel.traineeDataModel?.rows![indexPath.row])!
  81. if rowInfo != nil {
  82. let context: Int = rowInfo.id!
  83. NYSwRouter.push(NYSwPushType.trainee_info,context: context)
  84. }
  85. self?.tableView.deselectRow(at: indexPath, animated: false)
  86. }).disposed(by: disposeBag)
  87. }
  88. }
  89. //数据源
  90. extension MeTraineeSearchPageViewController:UITableViewDataSource {
  91. func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
  92. if self.meTraineeSearchViewModel.traineeDataModel != nil {
  93. let total = String(format: "%d", self.meTraineeSearchViewModel.traineeDataModel?.total ?? 0)
  94. headerView.total_label.text = "总数:"+total
  95. }
  96. return headerView
  97. }
  98. func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
  99. return 55.f
  100. }
  101. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  102. return self.meTraineeSearchViewModel.traineeDataModel?.rows!.count ?? 0
  103. }
  104. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  105. let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! MeTraineeSubjectCell
  106. cell.index_button.setTitle("\(indexPath.row+1)", for: .normal)
  107. cell.setRowInfo(rowInfo: (self.meTraineeSearchViewModel.traineeDataModel?.rows?[indexPath.row])!)
  108. return cell
  109. }
  110. }
  111. //事件
  112. extension MeTraineeSearchPageViewController:UITableViewDelegate {
  113. }