|
@@ -23,10 +23,18 @@ final class StatisticsPageController: BaseGroupTableViewController {
|
|
let navBar = MeTraineeNavBar.loadFromNib().then {
|
|
let navBar = MeTraineeNavBar.loadFromNib().then {
|
|
$0.title_label.text = "全部报名统计"
|
|
$0.title_label.text = "全部报名统计"
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ //头部 view
|
|
let headerView = StatisticsPageHeaderView.loadFromNib().then {
|
|
let headerView = StatisticsPageHeaderView.loadFromNib().then {
|
|
$0.backgroundColor = .db_theme
|
|
$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: 数据
|
|
// MARK: 数据
|
|
var stuTotalCountDataModel:StuTotalCountDataModel?
|
|
var stuTotalCountDataModel:StuTotalCountDataModel?
|
|
var stuCountDataModel:StuCountDataModel?
|
|
var stuCountDataModel:StuCountDataModel?
|
|
@@ -36,8 +44,6 @@ final class StatisticsPageController: BaseGroupTableViewController {
|
|
var fieldType:Int = 1 //1:时间 2:学员数
|
|
var fieldType:Int = 1 //1:时间 2:学员数
|
|
var sortType:Int = 2 //1:正序 2:倒序
|
|
var sortType:Int = 2 //1:正序 2:倒序
|
|
|
|
|
|
- var datePicCount = 0 //选择器 -日期end 2
|
|
|
|
-
|
|
|
|
override func setupConstraints() {
|
|
override func setupConstraints() {
|
|
|
|
|
|
statusBar.snp.makeConstraints { (make) in
|
|
statusBar.snp.makeConstraints { (make) in
|
|
@@ -56,6 +62,15 @@ final class StatisticsPageController: BaseGroupTableViewController {
|
|
make.left.right.bottom.equalToSuperview()
|
|
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)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
override func viewDidLoad() {
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
super.viewDidLoad()
|
|
@@ -65,9 +80,33 @@ final class StatisticsPageController: BaseGroupTableViewController {
|
|
}
|
|
}
|
|
|
|
|
|
// MARK: 私有方法
|
|
// MARK: 私有方法
|
|
|
|
+ //显示selectDateView
|
|
|
|
+ func showSelectDateView(){
|
|
|
|
+ if(self.selectDateView.isHidden)
|
|
|
|
+ {
|
|
|
|
+ //计算相对坐标
|
|
|
|
+ let headerFrameInSuperview = tableView.convert(CGPoint(x: 0, y: headerView.qmui_bottom), to: tableView.superview)
|
|
|
|
+ selectDateView.snp.remakeConstraints { make in
|
|
|
|
+ make.top.equalTo(headerFrameInSuperview.y-navBar.bottom)
|
|
|
|
+ make.left.right.equalToSuperview()
|
|
|
|
+ make.height.equalTo(172.f)
|
|
|
|
+ }
|
|
|
|
+ self.loadViewIfNeeded()//提醒刷
|
|
|
|
+ //显示
|
|
|
|
+ self.selectDateView.startdate_button.setTitle(startDate, for: .normal)
|
|
|
|
+ self.selectDateView.enddate_button.setTitle(endDate, for: .normal)
|
|
|
|
+ self.selectDateView.setDateType(type: dateType)
|
|
|
|
+ self.selectDateView.isHidden = false
|
|
|
|
+ self.selectDateViewBgBtn.isHidden = false
|
|
|
|
+ }else{
|
|
|
|
+ //隐藏
|
|
|
|
+ self.selectDateView.isHidden = true
|
|
|
|
+ self.selectDateViewBgBtn.isHidden = true
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
//显示时间选择器
|
|
//显示时间选择器
|
|
- func showPGDatePickManager(){
|
|
|
|
- self.datePicCount+=1
|
|
|
|
|
|
+ func showPGDatePickManager(tag:Int){
|
|
switch dateType {
|
|
switch dateType {
|
|
case .day:
|
|
case .day:
|
|
let datePickerManager = PGDatePickManager()
|
|
let datePickerManager = PGDatePickManager()
|
|
@@ -77,6 +116,7 @@ final class StatisticsPageController: BaseGroupTableViewController {
|
|
datePickerManager.cancelButtonTextColor = .db_fontGray
|
|
datePickerManager.cancelButtonTextColor = .db_fontGray
|
|
datePickerManager.confirmButtonTextColor = .db_green
|
|
datePickerManager.confirmButtonTextColor = .db_green
|
|
let datePicker = datePickerManager.datePicker!
|
|
let datePicker = datePickerManager.datePicker!
|
|
|
|
+ datePicker.tag = tag
|
|
datePicker.lineBackgroundColor = .db_green
|
|
datePicker.lineBackgroundColor = .db_green
|
|
datePicker.textColorOfSelectedRow = .db_green
|
|
datePicker.textColorOfSelectedRow = .db_green
|
|
datePicker.backgroundColor = UIColor("#031223")
|
|
datePicker.backgroundColor = UIColor("#031223")
|
|
@@ -93,6 +133,7 @@ final class StatisticsPageController: BaseGroupTableViewController {
|
|
datePickerManager.cancelButtonTextColor = .db_fontGray
|
|
datePickerManager.cancelButtonTextColor = .db_fontGray
|
|
datePickerManager.confirmButtonTextColor = .db_green
|
|
datePickerManager.confirmButtonTextColor = .db_green
|
|
let datePicker = datePickerManager.datePicker!
|
|
let datePicker = datePickerManager.datePicker!
|
|
|
|
+ datePicker.tag = tag
|
|
datePicker.lineBackgroundColor = .db_green
|
|
datePicker.lineBackgroundColor = .db_green
|
|
datePicker.textColorOfSelectedRow = .db_green
|
|
datePicker.textColorOfSelectedRow = .db_green
|
|
datePicker.backgroundColor = UIColor("#031223")
|
|
datePicker.backgroundColor = UIColor("#031223")
|
|
@@ -109,6 +150,7 @@ final class StatisticsPageController: BaseGroupTableViewController {
|
|
datePickerManager.cancelButtonTextColor = .db_fontGray
|
|
datePickerManager.cancelButtonTextColor = .db_fontGray
|
|
datePickerManager.confirmButtonTextColor = .db_green
|
|
datePickerManager.confirmButtonTextColor = .db_green
|
|
let datePicker = datePickerManager.datePicker!
|
|
let datePicker = datePickerManager.datePicker!
|
|
|
|
+ datePicker.tag = tag
|
|
datePicker.lineBackgroundColor = .db_green
|
|
datePicker.lineBackgroundColor = .db_green
|
|
datePicker.textColorOfSelectedRow = .db_green
|
|
datePicker.textColorOfSelectedRow = .db_green
|
|
datePicker.backgroundColor = UIColor("#031223")
|
|
datePicker.backgroundColor = UIColor("#031223")
|
|
@@ -119,9 +161,25 @@ final class StatisticsPageController: BaseGroupTableViewController {
|
|
self.present(datePickerManager, animated: false, completion: nil)
|
|
self.present(datePickerManager, animated: false, completion: nil)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //配置-日期
|
|
|
|
+ func configDefaulthDate(){
|
|
|
|
+ switch dateType {
|
|
|
|
+ case .day:
|
|
|
|
+ let dates = NYDate.getDateMonth()
|
|
|
|
+ self.endDate = dates[1]
|
|
|
|
+ self.startDate = dates[0]
|
|
|
|
+ case .month:
|
|
|
|
+ let dates = NYDate.getDateMonthSectionNum(num: -2)
|
|
|
|
+ self.endDate = String(dates[1].prefix(7))
|
|
|
|
+ self.startDate = String(dates[0].prefix(7))
|
|
|
|
+ case .year:
|
|
|
|
+ let dates = NYDate.getDateYearSectionNum(num: 4)
|
|
|
|
+ self.endDate = String(dates[1].prefix(4))
|
|
|
|
+ self.startDate = String(dates[0].prefix(4))
|
|
|
|
+ }
|
|
|
|
+ }
|
|
//配置显示时间
|
|
//配置显示时间
|
|
func configUIdata(){
|
|
func configUIdata(){
|
|
-
|
|
|
|
// 根据不同的 dateType 进行相应的数据请求
|
|
// 根据不同的 dateType 进行相应的数据请求
|
|
var starttime = ""
|
|
var starttime = ""
|
|
var endtime = ""
|
|
var endtime = ""
|
|
@@ -139,21 +197,51 @@ final class StatisticsPageController: BaseGroupTableViewController {
|
|
headerView.date_section_button.setTitle("\(starttime)~\(endtime)", for: .normal)
|
|
headerView.date_section_button.setTitle("\(starttime)~\(endtime)", for: .normal)
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ //confirm 确定处理
|
|
|
|
+ func confirmHandledo(){
|
|
|
|
+ //刷新数据
|
|
|
|
+ self.startDate = selectDateView.startdate_button.currentTitle!
|
|
|
|
+ self.endDate = selectDateView.enddate_button.currentTitle!
|
|
|
|
+ self.configUIdata()
|
|
|
|
+ self.showSelectDateView()
|
|
|
|
+ self.switchStatisticsStuCount()
|
|
|
|
+ }
|
|
|
|
+ //重置
|
|
|
|
+ func resetHandledo(){
|
|
|
|
+ self.selectDateView.startdate_button.setTitle(getButtonDate(date: self.startDate), for: .normal)
|
|
|
|
+ self.selectDateView.enddate_button.setTitle(getButtonDate(date: self.endDate), for: .normal)
|
|
|
|
+ self.selectDateView.setDateType(type: dateType)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ func getButtonDate(date:String)->String{
|
|
|
|
+ var _date = ""
|
|
|
|
+ switch dateType {
|
|
|
|
+ case .month:
|
|
|
|
+ _date = String(date.prefix(7))
|
|
|
|
+ case .year:
|
|
|
|
+ _date = String(date.prefix(4))
|
|
|
|
+ case .day:
|
|
|
|
+ _date = String(date.prefix(10))
|
|
|
|
+ }
|
|
|
|
+ return _date
|
|
|
|
+ }
|
|
|
|
|
|
func setupUI(){
|
|
func setupUI(){
|
|
self.view.addSubview(navBar)
|
|
self.view.addSubview(navBar)
|
|
self.view.addSubview(statusBar)
|
|
self.view.addSubview(statusBar)
|
|
self.view.backgroundColor = .db_theme
|
|
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.back_button.addTarget(self, action: #selector(actionBackdo), for: .touchUpInside)
|
|
self.navBar.search_button.isHidden = true
|
|
self.navBar.search_button.isHidden = true
|
|
- self.endDate = NYDate.getThisDate()
|
|
|
|
- self.startDate = self.endDate.prefix(7)+"-01"
|
|
|
|
|
|
+ configDefaulthDate()
|
|
configUIdata()
|
|
configUIdata()
|
|
//header - 事件
|
|
//header - 事件
|
|
headerView.items_date_segmented.rx.selectedSegmentIndex
|
|
headerView.items_date_segmented.rx.selectedSegmentIndex
|
|
.map { DateType(rawValue: $0)! }
|
|
.map { DateType(rawValue: $0)! }
|
|
.subscribe(onNext: { [weak self] dateType in
|
|
.subscribe(onNext: { [weak self] dateType in
|
|
self?.dateType = dateType
|
|
self?.dateType = dateType
|
|
|
|
+ self?.configDefaulthDate()
|
|
self?.configUIdata()
|
|
self?.configUIdata()
|
|
self?.switchStatisticsStuCount()
|
|
self?.switchStatisticsStuCount()
|
|
print("datetype = \(dateType)")
|
|
print("datetype = \(dateType)")
|
|
@@ -161,7 +249,7 @@ final class StatisticsPageController: BaseGroupTableViewController {
|
|
.disposed(by: disposeBag)
|
|
.disposed(by: disposeBag)
|
|
//日前选择
|
|
//日前选择
|
|
headerView.date_section_button.rx.tap.subscribe ({ [unowned self] (_) in
|
|
headerView.date_section_button.rx.tap.subscribe ({ [unowned self] (_) in
|
|
- self.showPGDatePickManager()
|
|
|
|
|
|
+ self.showSelectDateView()
|
|
}).disposed(by: disposeBag)
|
|
}).disposed(by: disposeBag)
|
|
//时间排序
|
|
//时间排序
|
|
headerView.time_button.rx.tap
|
|
headerView.time_button.rx.tap
|
|
@@ -178,6 +266,43 @@ final class StatisticsPageController: BaseGroupTableViewController {
|
|
self.sortType = headerView.student_button.isSelected ? 1:2
|
|
self.sortType = headerView.student_button.isSelected ? 1:2
|
|
self.switchStatisticsStuCount()
|
|
self.switchStatisticsStuCount()
|
|
}).disposed(by: disposeBag)
|
|
}).disposed(by: disposeBag)
|
|
|
|
+ //hide showSelectDateView
|
|
|
|
+ selectDateViewBgBtn.rx.tap.subscribe ({ [unowned self] (_) in
|
|
|
|
+ self.showSelectDateView()
|
|
|
|
+ }).disposed(by: disposeBag)
|
|
|
|
+ //开始时间 事件
|
|
|
|
+ selectDateView.startdate_button.rx.tap.subscribe ({ [unowned self] (_) in
|
|
|
|
+ self.showPGDatePickManager(tag: 1)
|
|
|
|
+ }).disposed(by: disposeBag)
|
|
|
|
+ //结束时间 事件
|
|
|
|
+ selectDateView.enddate_button.rx.tap.subscribe ({ [unowned self] (_) in
|
|
|
|
+ self.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.resetHandledo()
|
|
|
|
+ }).disposed(by: disposeBag)
|
|
|
|
+ //确定
|
|
|
|
+ selectDateView.confirm_button.rx.tap.subscribe ({ [unowned self] (_) in
|
|
|
|
+ self.confirmHandledo()
|
|
|
|
+ }).disposed(by: disposeBag)
|
|
|
|
+
|
|
}
|
|
}
|
|
func biandView(){
|
|
func biandView(){
|
|
tableView.delegate = self
|
|
tableView.delegate = self
|
|
@@ -308,20 +433,13 @@ extension StatisticsPageController: PGDatePickerDelegate {
|
|
func datePicker(_ datePicker: PGDatePicker!, didSelectDate dateComponents: DateComponents!) {
|
|
func datePicker(_ datePicker: PGDatePicker!, didSelectDate dateComponents: DateComponents!) {
|
|
|
|
|
|
print("dateComponents = ", dateComponents)
|
|
print("dateComponents = ", dateComponents)
|
|
- if datePicCount>=2 {
|
|
|
|
- self.endDate = String(format: "%02d", dateComponents.year ?? 0)+"-"+String(format: "%02d", dateComponents.month ?? 0)+"-"+String(format: "%02d", dateComponents.day ?? 0)
|
|
|
|
- datePicCount=0
|
|
|
|
- configUIdata()
|
|
|
|
- self.switchStatisticsStuCount()
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- self.startDate = String(format: "%02d", dateComponents.year ?? 0)+"-"+String(format: "%02d", dateComponents.month ?? 0)+"-"+String(format: "%02d", dateComponents.day ?? 0)
|
|
|
|
- configUIdata()
|
|
|
|
- DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
|
|
|
|
- // 在延迟 1 秒后执行的代码
|
|
|
|
- self.showPGDatePickManager()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ var date = String(format: "%02d", dateComponents.year ?? 0)+"-"+String(format: "%02d", dateComponents.month ?? 0)+"-"+String(format: "%02d", dateComponents.day ?? 0)
|
|
|
|
+ date = getButtonDate(date: date)
|
|
|
|
+ if datePicker.tag == 1 {
|
|
|
|
+ self.selectDateView.startdate_button.setTitle(date, for: .normal)
|
|
|
|
+ }else if datePicker.tag == 2 {
|
|
|
|
+ self.selectDateView.enddate_button.setTitle(date, for: .normal)
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|