123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- //
- // StatisticsPageController.swift
- // JiaPeiManage
- //
- // Created by Ning.ge on 2023/6/26.
- //
- import UIKit
- import RxSwift
- import RxCocoa
- import PGDatePicker
- enum StatisticsType: Int {
- case normal
- case presell
- }
- final class StatisticsPageController: BaseGroupTableViewController {
- //VM
- var statisticsPageViewModel:StatisticsPageViewModel?
-
- // MARK: UI let
- let statusBar = UIView().then {
- $0.backgroundColor = UIColor.db_theme
- }
-
- let navBar = MeTraineeNavBar.loadFromNib().then {
- $0.title_label.text = "全部报名统计"
- }
- //头部 view
- let headerView = StatisticsPageHeaderView.loadFromNib().then {
- $0.backgroundColor = .db_theme
- }
- let officialheaderView = StatisticsOfficialPageHeaderView.loadFromNib().then {
- $0.backgroundColor = .db_theme
- }
- //头部 日期选择
- let selectDateViewBgBtn = UIButton(type:.custom).then {
- $0.isHidden = true
- $0.backgroundColor = UIColor.clear
- }
- let selectDateView = StatisticsSelectDateView.loadFromNib().then {
- $0.isHidden = true
- }
- // MARK: 数据
- var type:StatisticsType = .normal // 普通-预售
-
- override func setupConstraints() {
-
- statusBar.snp.makeConstraints { (make) in
- make.left.right.top.equalToSuperview()
- make.height.equalTo(Metric.statusBarHeight)
- }
-
- navBar.snp.remakeConstraints { (make) in
- make.left.right.equalToSuperview()
- make.height.equalTo(Metric.navBarHeight)
- make.top.equalTo(statusBar.snp.bottom)
- }
-
- tableView.snp.remakeConstraints { make in
- make.top.equalTo(navBar.snp.bottom)
- make.left.right.bottom.equalToSuperview()
- }
-
- selectDateViewBgBtn.snp.makeConstraints { (make) in
- make.edges.equalToSuperview()
- }
-
- selectDateView.snp.remakeConstraints { make in
- make.top.equalTo(352.f)
- make.left.right.equalToSuperview()
- make.height.equalTo(172.f)
- }
- }
-
- init(type:StatisticsType) {
- self.type = type
- super.init()
- statisticsPageViewModel = StatisticsPageViewModel(vc: self)
- statisticsPageViewModel?.type = type
- }
-
- required convenience init?(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupUI()
- biandView()
- self.statisticsPageViewModel!.getStatisticsList(isLoading: true)
- }
-
- func setupUI(){
- self.view.addSubview(navBar)
- self.view.addSubview(statusBar)
- self.view.backgroundColor = .db_theme
- self.view.insertSubview(selectDateViewBgBtn, at: 9998)
- self.view.insertSubview(selectDateView, at: 9999)
- self.navBar.back_button.addTarget(self, action: #selector(actionBackdo), for: .touchUpInside)
- self.navBar.search_button.isHidden = true
- self.statisticsPageViewModel!.configDefaulthDate()
- self.statisticsPageViewModel!.configUIdata()
- if(type == .presell){
- //header - 事件
- headerView.items_date_segmented.rx.selectedSegmentIndex
- .map { DateType(rawValue: $0)! }
- .subscribe(onNext: { [unowned self] dateType in
- self.statisticsPageViewModel?.selectedSegmentIndexdo(dateType: dateType)
- print("datetype = \(dateType)")
- })
- .disposed(by: disposeBag)
- //日前选择
- headerView.date_section_button.rx.tap.subscribe ({ [unowned self] (_) in
- self.statisticsPageViewModel!.showSelectDateView()
- }).disposed(by: disposeBag)
- //时间排序
- headerView.time_button.rx.tap
- .subscribe ({ [unowned self] (_) in
- headerView.time_button.isSelected = !headerView.time_button.isSelected
- self.statisticsPageViewModel?.getDateSortdo()
- }).disposed(by: disposeBag)
- //学员排序
- headerView.student_button.rx.tap.subscribe ({ [unowned self] (_) in
- headerView.student_button.isSelected = !headerView.student_button.isSelected
- self.statisticsPageViewModel?.getStuCountdo()
- }).disposed(by: disposeBag)
- }else{
- //普通模式
- //header - 事件
- officialheaderView.items_date_segmented.rx.selectedSegmentIndex
- .map { DateType(rawValue: $0)! }
- .subscribe(onNext: { [unowned self] dateType in
- self.statisticsPageViewModel?.selectedSegmentIndexdo(dateType: dateType)
- print("datetype = \(dateType)")
- })
- .disposed(by: disposeBag)
- //日前选择
- officialheaderView.date_section_button.rx.tap.subscribe ({ [unowned self] (_) in
- self.statisticsPageViewModel!.showSelectDateView()
- }).disposed(by: disposeBag)
- //时间排序
- officialheaderView.time_button.rx.tap
- .subscribe ({ [unowned self] (_) in
- officialheaderView.time_button.isSelected = !officialheaderView.time_button.isSelected
- self.statisticsPageViewModel!.getDateSortdo()
- }).disposed(by: disposeBag)
- //学员排序
- officialheaderView.student_button.rx.tap.subscribe ({ [unowned self] (_) in
- officialheaderView.student_button.isSelected = !officialheaderView.student_button.isSelected
- self.statisticsPageViewModel?.getStuCountdo()
- }).disposed(by: disposeBag)
- }
-
- //hide showSelectDateView
- selectDateViewBgBtn.rx.tap.subscribe ({ [unowned self] (_) in
- self.statisticsPageViewModel!.showSelectDateView()
- }).disposed(by: disposeBag)
- //开始时间 事件
- selectDateView.startdate_button.rx.tap.subscribe ({ [unowned self] (_) in
- self.statisticsPageViewModel!.showPGDatePickManager(tag: 1)
- }).disposed(by: disposeBag)
- //结束时间 事件
- selectDateView.enddate_button.rx.tap.subscribe ({ [unowned self] (_) in
- self.statisticsPageViewModel!.showPGDatePickManager(tag: 2)
- }).disposed(by: disposeBag)
- //本月
- selectDateView.month_button.rx.tap.subscribe ({ [unowned self] (_) in
- selectDateView.selectItemIndex(index: 0)
- }).disposed(by: disposeBag)
- //上月
- selectDateView.lastmonth_button.rx.tap.subscribe ({ [unowned self] (_) in
- selectDateView.selectItemIndex(index: 1)
- }).disposed(by: disposeBag)
- //近3月
- selectDateView.threemonth_button.rx.tap.subscribe ({ [unowned self] (_) in
- selectDateView.selectItemIndex(index: 2)
- }).disposed(by: disposeBag)
- //本年
- selectDateView.year_button.rx.tap.subscribe ({ [unowned self] (_) in
- selectDateView.selectItemIndex(index: 3)
- }).disposed(by: disposeBag)
- //重置
- selectDateView.reset_button.rx.tap.subscribe ({ [unowned self] (_) in
- self.statisticsPageViewModel!.resetHandledo()
- }).disposed(by: disposeBag)
- //确定
- selectDateView.confirm_button.rx.tap.subscribe ({ [unowned self] (_) in
- self.statisticsPageViewModel!.confirmHandledo()
- }).disposed(by: disposeBag)
-
- }
- func biandView(){
- tableView.delegate = self.statisticsPageViewModel
- tableView.dataSource = self.statisticsPageViewModel
- tableView.separatorStyle = .none //去除分割线
- tableView.register(UINib(nibName: "StatisticsPageCell", bundle: nil), forCellReuseIdentifier: self.statisticsPageViewModel!.cellIdentifier)
- tableView.rowHeight = 44.f
- if(isIphoneX){
- tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
- }else {
- if #available(iOS 13.0, *) {
- tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
- }else {
- tableView.contentInset = UIEdgeInsets(top: -25, left: 0, bottom: -25, right: 0)
- }
- }
- setupRefreshHeader(tableView) {[unowned self] in
- self.statisticsPageViewModel!.getStatisticsList(isLoading: false)
- }
- self.isEmptyDisplay = false
- }
-
- }
|