123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- //
- // MeTraineeSearchPageViewController.swift
- // JiaPeiManage
- //
- // Created by Ning.ge on 2023/6/15.
- //
- import UIKit
- import RxSwift
- import RxCocoa
- final class MeTraineeSearchPageViewController: BaseTableViewController {
-
- let cellIdentifier:String = "_MeTraineeSubjectCellSearch"
- // MARK: UI属性
- @IBOutlet weak var searchView: UIView!
- //搜索
- @IBOutlet weak var search_textfield: QMUITextField!
- //搜按钮
- @IBOutlet weak var search_button: UIButton!
- //title
- @IBOutlet weak var title_label: UILabel!
-
- let meTraineeSearchViewModel = MeTraineeSearchViewModel()
- let headerView = MeTraineeSubjectHeaderView.loadFromNib()
- var schoolId:Int = 0
- var appCoachId = ""
- var coachId = ""
- var type:Int = 0
- //重置约束
- override func setupConstraints() {
- self.tableView.snp.remakeConstraints { make in
- make.top.equalTo(self.searchView.snp.bottom)
- make.left.right.bottom.equalTo(self.view)
- }
- self.loadViewIfNeeded()
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
- meTraineeSearchViewModel.appCoachId = appCoachId
- meTraineeSearchViewModel.schoolId = schoolId
- meTraineeSearchViewModel.coachId = coachId
- setupUI()
- biandView()
- }
-
-
- // MARK: 私有方法
- func setupUI(){
- switch type {
- case 0://我的学员
- title_label.text = "我的学员"
- break
- case 1://在校学员
- title_label.text = "在校学员"
- break
- case 2://绑定学员
- title_label.text = "绑定学员"
- break
- default:
- title_label.text = "我的学员"
- }
- if isIphoneX {self.nav_topH_layout.constant = 64.f+24.f}
- self.view.backgroundColor = .db_theme
- // self.searchView.addSubview(search_bar)
- self.search_textfield.placeholderColor = .db_place
- tableView.dataSource = self
- tableView.delegate = self
- tableView.separatorStyle = .none //去除分割线
- tableView.register(UINib(nibName: "MeTraineeSubjectCell", bundle: nil), forCellReuseIdentifier: cellIdentifier)
- tableView.rowHeight = 288.f
- setupRefreshHeader(tableView) {[unowned self] in
- DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
- // 在延迟 1 秒后执行的代码
- self.stopRefresh()
- }
- NSLog("AAAAAAA")
- }
- // 设置上拉加载更多
- tableView.es.addInfiniteScrolling { [unowned self] in
- self.meTraineeSearchViewModel.getLoadMore(vc: self)
- }
- self.isEmptyDisplay = true
- }
-
- //绑定-rx
- func biandView(){
-
- // search_textfield.rx.text
- // .debounce(.milliseconds(300), scheduler: MainScheduler.instance) // 添加节流防抖,减少频繁查询
- // .distinctUntilChanged() // 确保只有文本内容发生变化时才触发查询
- // .subscribe(onNext: { [unowned self] query in
- // guard let query = query else { return }
- // // 在这里处理查询操作,比如发送网络请求或对本地数据进行过滤
- // self.meTraineeSearchViewModel.searchCoachInfoList(vc: self)
- // print("Query: \(query)")
- // // 每当输入文本发生变化,都会在这里触发查询
- // })
- // .disposed(by: disposeBag)
-
- search_textfield.rx.controlEvent(.editingDidEndOnExit)
- .subscribe(onNext: { [weak self] in
- self?.handleSearch()
- })
- .disposed(by: disposeBag)
- // tableView点击事件
- tableView.rx.itemSelected.subscribe(onNext: { [weak self]indexPath in
- print("点击\(indexPath)行")
- let rowInfo:RowInfo = (self!.meTraineeSearchViewModel.traineeDataModel?.rows![indexPath.row])!
- if rowInfo != nil && rowInfo.bmType == "2" {
- let context: Int = rowInfo.id!
- NYSwRouter.push(NYSwPushType.trainee_info,context: context)
- }
- self?.tableView.deselectRow(at: indexPath, animated: false)
- }).disposed(by: disposeBag)
- }
- //处理搜索
- func handleSearch() {
- // 在这里处理搜索事件
- if let query = search_textfield.text, !query.isEmpty {
- print("Search query: \(query)")
- // 在这里执行搜索操作,比如发送网络请求或对本地数据进行过滤
- self.meTraineeSearchViewModel.searchCoachInfoList(vc: self)
- search_textfield.resignFirstResponder() // 隐藏键盘
- }
- }
-
- }
- //数据源
- extension MeTraineeSearchPageViewController:UITableViewDataSource {
- func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
- if self.meTraineeSearchViewModel.traineeDataModel != nil {
- let total = String(format: "%d", self.meTraineeSearchViewModel.traineeDataModel?.total ?? 0)
- headerView.total_label.text = "总数:"+total
- }
- return headerView
- }
- func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
- return 55.f
- }
- func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return self.meTraineeSearchViewModel.rows.count ?? 0
- }
- func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! MeTraineeSubjectCell
- cell.index_button.setTitle("\(indexPath.row+1)", for: .normal)
- cell.setRowInfo(rowInfo: self.meTraineeSearchViewModel.rows[indexPath.row])
- return cell
- }
- }
- //事件
- extension MeTraineeSearchPageViewController:UITableViewDelegate {
- }
|