EstuLogListViewController.swift 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. //
  2. // EstuLogListViewController.swift
  3. // JiaPeiManage
  4. //
  5. // Created by Ning.ge on 2023/8/28.
  6. //
  7. import UIKit
  8. import RxSwift
  9. import RxCocoa
  10. final class EstuLogListViewController: BaseTableViewController {
  11. let cellIdentifier:String = "_EstuLogListCell"
  12. let dtcellIdentifier:String = "_EstuLogListDetailsCell"
  13. // MARK: 服务属性
  14. private let elogCoachService: ElogCoachServiceType = ElogCoachService(networking: ElogCoachNetworking())
  15. // MARK: 私有属性
  16. // MARK: UI let
  17. let statusBar = UIView().then {
  18. $0.backgroundColor = UIColor.db_theme
  19. }
  20. let navBar = MeTraineeNavBar.loadFromNib().then {
  21. $0.search_button.isHidden = true
  22. }
  23. let estuLogHeaderView = EstuLogHeaderView.loadFromNib()
  24. let mtheader01_view = MeTraineeDetails01HeaderView.loadFromNib().then {
  25. $0.title_label.text = "查询明细"
  26. }
  27. let header01_view = EstuLog01HeaderView.loadFromNib()
  28. var selectPath = -1;
  29. //学员ID
  30. var stuId:Int = 0
  31. var eteachLogDataModel:ETeachLogDataModel?
  32. var rows : [ETeachLogInfo] = []
  33. var page:Int = 1
  34. var pageSize:Int = 10
  35. override func setupConstraints() {
  36. statusBar.snp.makeConstraints { (make) in
  37. make.left.right.top.equalToSuperview()
  38. make.height.equalTo(Metric.statusBarHeight)
  39. }
  40. navBar.snp.remakeConstraints { (make) in
  41. make.left.right.equalToSuperview()
  42. make.height.equalTo(Metric.navBarHeight)
  43. make.top.equalTo(statusBar.snp.bottom)
  44. }
  45. tableView.snp.remakeConstraints { make in
  46. make.top.equalTo(self.navBar.snp.bottom)
  47. make.left.right.bottom.equalTo(self.view)
  48. }
  49. self.loadViewIfNeeded()
  50. }
  51. func scrollViewDidScroll(_ scrollView: UIScrollView) {
  52. }
  53. // MARK: StatusBar
  54. override func viewWillAppear(_ animated: Bool) {
  55. super.viewWillAppear(animated)
  56. self.navigationController?.setNavigationBarHidden(true, animated: true)
  57. }
  58. required convenience init?(coder aDecoder: NSCoder) {
  59. fatalError("init(coder:) has not been implemented")
  60. }
  61. override func viewDidLoad() {
  62. super.viewDidLoad()
  63. configureMagicController()
  64. setupUI()
  65. biandView()
  66. }
  67. // MARK: 私有方法
  68. func setupUI(){
  69. self.navBar.title_label.text = "电子教学日志"
  70. self.navBar.back_button.addTarget(self, action: #selector(actionBackdo), for: .touchUpInside)
  71. }
  72. func configureMagicController(){
  73. self.view.addSubview(navBar)
  74. self.view.addSubview(statusBar)
  75. }
  76. func biandView(){
  77. tableView.delegate = self
  78. tableView.dataSource = self
  79. tableView.separatorStyle = .none //去除分割线
  80. tableView.register(UINib(nibName: "EstuLogListCell", bundle: nil), forCellReuseIdentifier: cellIdentifier)
  81. tableView.register(UINib(nibName: "EstuLogListDetailsCell", bundle: nil), forCellReuseIdentifier: dtcellIdentifier)
  82. setupRefreshHeader(tableView) {[unowned self] in
  83. self.getStudentTeachLogList()
  84. }
  85. self.isEmptyDisplay = false
  86. self.hideLoadAnimation()
  87. // 设置上拉加载更多
  88. tableView.es.addInfiniteScrolling { [weak self] in
  89. //self?.getStudentTeachLogList()
  90. }
  91. // tableView点击事件
  92. tableView.rx.itemSelected.throttle(.seconds(1), scheduler: MainScheduler.instance)
  93. .subscribe(onNext: { [weak self]indexPath in
  94. print("点击\(indexPath)行")
  95. self?.selectPath = indexPath.row
  96. self?.tableView.reloadData()
  97. // let rowInfo:RowInfo = self!.meTraineeSearchViewModel.rows[indexPath.row]
  98. // if rowInfo != nil && rowInfo.bmType == "2" {
  99. // let context: Int = rowInfo.id!
  100. // NYSwRouter.push(NYSwPushType.trainee_info,context: context)
  101. // }
  102. // self?.tableView.deselectRow(at: indexPath, animated: false)
  103. }).disposed(by: disposeBag)
  104. }
  105. func getStudentTeachLogList (){
  106. self.elogCoachService.elogTmsStudentTeachLogByIdRequest(city: LocalManager.userInfo.city!, id: stuId, pageNum: page, pageSize: pageSize).subscribe(onSuccess: {[unowned self] eteachLogDataModel in
  107. self.rows.removeAll()
  108. self.eteachLogDataModel = eteachLogDataModel
  109. self.rows += eteachLogDataModel.rows!
  110. print("eteachLogDataModelRequest成功")
  111. self.isEmptyDisplay = true
  112. self.hideLoadAnimation()
  113. self.stopRefresh()
  114. self.tableView.reloadData()
  115. }, onError: { error in
  116. self.stopRefresh()
  117. NYTips.hide()
  118. })
  119. .disposed(by: disposeBag)
  120. }
  121. }
  122. //数据源
  123. extension EstuLogListViewController:UITableViewDataSource {
  124. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  125. return self.rows.count
  126. }
  127. func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
  128. let header_view = UIView().then {
  129. $0.backgroundColor = .db_theme
  130. }
  131. header_view.addSubview(estuLogHeaderView)
  132. estuLogHeaderView.snp.makeConstraints { make in
  133. make.left.right.top.equalTo(header_view)
  134. make.height.equalTo(59.f)
  135. }
  136. header_view.addSubview(mtheader01_view)
  137. mtheader01_view.snp.makeConstraints { make in
  138. make.top.equalTo(estuLogHeaderView.bottom)
  139. make.left.right.equalTo(header_view)
  140. make.height.equalTo(52.f)
  141. }
  142. header_view.addSubview(header01_view)
  143. header01_view.snp.makeConstraints { make in
  144. make.top.equalTo(mtheader01_view.bottom)
  145. make.left.right.equalTo(header_view)
  146. make.height.equalTo(44.f)
  147. }
  148. header_view.layoutIfNeeded()
  149. return header_view
  150. }
  151. func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
  152. return 155.f
  153. }
  154. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  155. var cell:UITableViewCell;
  156. var info = rows[indexPath.row] as ETeachLogInfo
  157. info.stuid = stuId
  158. if self.selectPath == indexPath.row {
  159. let dcell = tableView.dequeueReusableCell(withIdentifier: dtcellIdentifier, for: indexPath) as! EstuLogListDetailsCell
  160. dcell.setRowInfo(rowInfo: info)
  161. cell = dcell
  162. }else {
  163. let ecell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! EstuLogListCell
  164. ecell.setRowInfo(rowInfo: info)
  165. cell = ecell
  166. }
  167. return cell
  168. }
  169. func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  170. if(selectPath==indexPath.row){
  171. return 465.f;
  172. }
  173. return 80.f;
  174. }
  175. }
  176. //事件
  177. extension EstuLogListViewController:UITableViewDelegate {
  178. }