MeTraineeSearchPageViewController.swift 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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: 服务属性
  13. private let cocahService: CoachServiceType = CoachService(networking: CoachNetworking())
  14. // MARK: UI属性
  15. // @IBOutlet weak var nav_top_layout: NSLayoutConstraint!
  16. @IBOutlet weak var searchView: UIView!
  17. //搜索
  18. @IBOutlet weak var search_textfield: QMUITextField!
  19. //搜按钮
  20. @IBOutlet weak var search_button: UIButton!
  21. //search bar
  22. // let search_bar = QMUISearchBar().then {
  23. // $0.backgroundColor = UIColor("#26486B")
  24. // $0.layer.cornerRadius = 15.f
  25. // $0.layer.masksToBounds = true
  26. // }
  27. let headerView = MeTraineeSubjectHeaderView.loadFromNib()
  28. // MARK: 数据
  29. var traineeDataModel:TraineeDataModel?
  30. var page:Int = 1
  31. var pageSize:Int = 100
  32. var state = ""
  33. //重置约束
  34. override func setupConstraints() {
  35. self.tableView.snp.remakeConstraints { make in
  36. make.top.equalTo(self.searchView.snp.bottom)
  37. make.left.right.bottom.equalTo(self.view)
  38. }
  39. self.loadViewIfNeeded()
  40. }
  41. override func viewDidLoad() {
  42. super.viewDidLoad()
  43. setupUI()
  44. biandView()
  45. }
  46. // MARK: 私有方法
  47. func setupUI(){
  48. if isIphoneX {self.nav_topH_layout.constant = 64.f+24.f}
  49. self.view.backgroundColor = .db_theme
  50. // self.searchView.addSubview(search_bar)
  51. self.search_textfield.placeholderColor = .db_place
  52. tableView.delegate = self
  53. tableView.dataSource = self
  54. tableView.separatorStyle = .none //去除分割线
  55. tableView.register(UINib(nibName: "MeTraineeSubjectCell", bundle: nil), forCellReuseIdentifier: cellIdentifier)
  56. tableView.rowHeight = 288.f
  57. setupRefreshHeader(tableView) {[unowned self] in
  58. DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
  59. // 在延迟 1 秒后执行的代码
  60. self.stopRefresh()
  61. }
  62. NSLog("AAAAAAA")
  63. }
  64. self.isEmptyDisplay = false
  65. //获取第一响应者
  66. }
  67. //绑定-rx
  68. func biandView(){
  69. search_textfield.rx.text.orEmpty
  70. // .filter { !$0.isEmpty } // Filter out empty strings
  71. .subscribe(onNext: { [unowned self] searchText in
  72. // Handle the updated search text here
  73. print("Search text changed: \(searchText)")
  74. self.searchCoachInfoList()
  75. })
  76. .disposed(by: disposeBag)
  77. }
  78. func searchCoachInfoList()
  79. {
  80. print("网络请求")
  81. self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: "\(LocalManager.userInfo.id)", field: search_textfield.text!, pageNum: page, pageSize: pageSize, schoolId: 0, state: state)
  82. .subscribe(onSuccess: { traineeDataModel in
  83. self.traineeDataModel = traineeDataModel
  84. print("coachInfoListRequest成功")
  85. self.isEmptyDisplay = true
  86. self.hideLoadAnimation()
  87. self.tableView.reloadData()
  88. }, onError: { error in
  89. })
  90. .disposed(by: disposeBag)
  91. }
  92. }
  93. //数据源
  94. extension MeTraineeSearchPageViewController:UITableViewDataSource {
  95. func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
  96. if traineeDataModel != nil {
  97. let total = String(format: "%d", traineeDataModel?.total ?? 0)
  98. headerView.total_label.text = "总数:"+total
  99. }
  100. return headerView
  101. }
  102. func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
  103. return 55.f
  104. }
  105. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  106. return traineeDataModel?.rows!.count ?? 0
  107. }
  108. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  109. let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! MeTraineeSubjectCell
  110. cell.index_button.setTitle("\(indexPath.row+1)", for: .normal)
  111. cell.setRowInfo(rowInfo: (self.traineeDataModel?.rows?[indexPath.row])!)
  112. return cell
  113. }
  114. }
  115. //事件
  116. extension MeTraineeSearchPageViewController:UITableViewDelegate {
  117. func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  118. tableView.deselectRow(at: indexPath, animated: false)
  119. let rowInfo:RowInfo = (self.traineeDataModel?.rows![indexPath.row])!
  120. if rowInfo != nil {
  121. let context: Int = rowInfo.id!
  122. NYSwRouter.push(NYSwPushType.trainee_info,context: context)
  123. }
  124. }
  125. }
  126. extension MeTraineeSearchPageViewController:UIScrollViewDelegate {
  127. func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
  128. self.view.endEditing(true)
  129. }
  130. }