123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- //
- // MeTraineeListViewController.swift
- // JiaPeiManage
- //
- // Created by Ning.ge on 2023/6/13.
- //
- import UIKit
- import RxSwift
- import RxCocoa
- enum TraineeType {
- case advancet
- case official
- case none
- }
- final class MeTraineeListViewController: BaseViewController {
-
- private struct Metric {
- static let statusBarHeight = isIphoneX ? 44.f : 20.f
- static let navBarHeight = 44.f
- }
-
- // MARK: 私有属性
-
- private var menuTitles : [String] = ["科一", "科二", "科三", "科四", "毕业"]
-
- private var idxs: [UInt] = []
-
- private var menuItemCurrentBtn : UIButton?
-
- var schoolId:Int = 0
-
- var type:TraineeType?
-
- // MARK: UI let
- let statusBar = UIView().then {
- $0.backgroundColor = UIColor.db_theme
- }
-
- let navBar = MeTraineeNavBar.loadFromNib()
-
- let pageController = VTMagicController().then {
- $0.view.translatesAutoresizingMaskIntoConstraints = false
- $0.magicView.navigationColor = .db_theme_L2
- $0.magicView.sliderColor = .db_sliderColor
- $0.magicView.switchStyle = .default
- $0.magicView.layoutStyle = .divide
- $0.magicView.navigationHeight = 57.f
- // $0.magicView.sliderExtension = -10
- $0.magicView.sliderWidth = 22.f
- $0.magicView.sliderOffset = -8
- $0.magicView.sliderHeight = 4
- $0.magicView.isSeparatorHidden = false
- $0.magicView.bubbleRadius = 2
- $0.magicView.needPreloading = true
- $0.magicView.separatorHeight = 0 //下划线h
- }
-
- 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)
- }
-
- pageController.view.snp.makeConstraints { (make) in
- make.left.right.bottom.equalToSuperview()
- make.top.equalTo(navBar.snp.bottom)
- }
-
- }
- func scrollViewDidScroll(_ scrollView: UIScrollView) {
- }
- // MARK: StatusBar
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
-
- self.navigationController?.setNavigationBarHidden(true, animated: true)
- }
-
- init(type:TraineeType) {
- self.type = type
- super.init()
-
- switch type {
- case .advancet:
- self.navBar.title_label.text = "我的学员-预报名"
- self.title = "预报名学员"
- self.tabBarItem.image = NYImage.TabBar.advancet
- self.tabBarItem.selectedImage = NYImage.TabBar.advancet_s?.withRenderingMode(.alwaysOriginal)
- return
- case .official:
- self.navBar.title_label.text = "我的学员-正式"
- self.title = "正式学员"
- self.tabBarItem.image = NYImage.TabBar.official
- self.tabBarItem.selectedImage = NYImage.TabBar.official_s?.withRenderingMode(.alwaysOriginal)
- return
- case .none:
- return
- }
-
- }
-
- required convenience init?(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupUI()
- configureMagicController()
- }
-
- // MARK: 私有方法
- func setupUI(){
- self.view.backgroundColor = .db_theme
- self.navBar.back_button.addTarget(self, action: #selector(actionBackdo), for: .touchUpInside)
- self.navBar.search_button.addTarget(self, action: #selector(jumpSearchdo), for: .touchUpInside)
- // self.navBar.search_button.rx.tap.subscribe ({ [unowned self] (_) in
- // self.jumpSearch()
- // }).disposed(by: self.disposeBag)
- }
-
- func configureMagicController(){
-
- self.view.addSubview(navBar)
- self.view.addSubview(statusBar)
- self.addChild(pageController)
- self.view.addSubview(pageController.view)
-
- //设置VTMagicController代理,初始页码
- pageController.magicView.delegate = self
- pageController.magicView.dataSource = self
- pageController.magicView.reloadData(toPage: 0)
-
- }
-
- @objc func jumpSearchdo(_ sender: Any){
- NYSwRouter.push(NYSwPushType.trainee_search.path)
- }
- }
- //VTMagicViewDelegate view代理
- extension MeTraineeListViewController : VTMagicViewDelegate {
-
- func magicView(_ magicView: VTMagicView, didSelectItemAt itemIndex: UInt) {
- var menuItem = magicView.menuItem(at: itemIndex)
- if (menuItemCurrentBtn != nil) {
- menuItemCurrentBtn?.titleLabel?.font = NYFont.SysFont.sys_15
- menuItemCurrentBtn?.qmui_badgeLabel?.isHidden = true
- }
- menuItemCurrentBtn = menuItem
- menuItem?.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
- menuItem?.qmui_badgeLabel?.isHidden = false
- guard let currentVc:MeTraineeSubjectPageViewController = pageController.currentViewController as? MeTraineeSubjectPageViewController else { return }
- // if (currentVc.traineeDataModel != nil) {
- // menuItem?.qmui_badgeInteger = UInt(currentVc.traineeDataModel?.total ?? 0)
- // }
- if itemIndex == 0 || itemIndex == 1 {
- let currentPage = pageController.currentPage
-
- if currentPage == itemIndex {
- // TogetherDataManager.refreshDataForVTMagic(currentVc,true)
- }
- }
- }
-
- func magicView(_ magicView: VTMagicView, viewDidAppear viewController: UIViewController, atPage pageIndex: UInt) {
-
- if pageIndex == 0 || pageIndex == 1 {
- var canRefresh: Bool = false
-
- if let collectionVc = viewController as? BaseCollectionViewController {
-
- if collectionVc.totalItems() > 0 {
- canRefresh = true
- }
- }
-
- if idxs.contains(pageIndex) || canRefresh {
-
- // TogetherDataManager.refreshDataForVTMagic(viewController, false)
- }
- }
- }
-
- func magicView(_ magicView: VTMagicView, viewDidDisappear viewController: UIViewController, atPage pageIndex: UInt) {
-
- if pageIndex == 0 || pageIndex == 1 {
- if !idxs.contains(pageIndex) {
- idxs.append(pageIndex)
- }
- }
-
- if pageIndex == 1 {
- // TogetherDataManager.referenceDate = Date()
- }
- }
- }
- //VTMagicViewDataSource 数据源代理
- extension MeTraineeListViewController : VTMagicViewDataSource{
- func menuTitles(for magicView: VTMagicView) -> [String] {
- return menuTitles
- }
-
- func magicView(_ magicView: VTMagicView, menuItemAt itemIndex: UInt) -> UIButton {
-
- var menuItem = magicView.dequeueReusableItem(withIdentifier: "homeItemIdentifier")
- if menuItem == nil {
- menuItem = QMUIButton(type: .custom)
- menuItem?.setTitleColor(.db_fontGray, for: .normal)
- menuItem?.setTitleColor(.db_fontSelColor, for: .selected)
- menuItem?.titleLabel?.font = NYFont.SysFont.sys_15
- if itemIndex==0 {
- menuItemCurrentBtn = menuItem
- menuItem?.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
- }
- menuItem?.qmui_badgeBackgroundColor = UIColor("#F84444")
- menuItem?.qmui_badgeTextColor = UIColor.white
- menuItem?.qmui_badgeInteger = 50
- menuItem?.qmui_badgeLabel?.isHidden = true
- menuItem?.qmui_badgeFont = NYFont.SysFont.sys_10
- menuItem?.qmui_badgeOffset = CGPoint(x: -35, y: 26)
- menuItem?.qmui_badgeContentEdgeInsets = UIEdgeInsets(top: 2, left: 2, bottom: 2, right: 2)
- }
-
- return menuItem ?? UIButton()
- }
-
- func magicView(_ magicView: VTMagicView, viewControllerAtPage pageIndex: UInt) -> UIViewController {
-
- if pageIndex == 0 {
- var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController01")
- if meTraineeSubjectPageViewController == nil {
- meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(type: self.type!,state: "1",schoolId: schoolId)
- }
- return meTraineeSubjectPageViewController ?? UIViewController()
- } else if pageIndex == 1 {
- var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController02")
- if meTraineeSubjectPageViewController == nil {
- meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(type: self.type!,state: "2",schoolId: schoolId)
- }
- return meTraineeSubjectPageViewController ?? UIViewController()
- } else if pageIndex == 2 {
- var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController03")
- if meTraineeSubjectPageViewController == nil {
- meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(type: self.type!,state: "3",schoolId: schoolId)
- }
- return meTraineeSubjectPageViewController ?? UIViewController()
- } else if pageIndex == 3{
- var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController04")
- if meTraineeSubjectPageViewController == nil {
- meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(type: self.type!,state: "4",schoolId: schoolId)
- }
- return meTraineeSubjectPageViewController ?? UIViewController()
- } else {
- var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController05")
- if meTraineeSubjectPageViewController == nil {
- meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(type: self.type!,state: "5",schoolId: schoolId)
- }
- return meTraineeSubjectPageViewController ?? UIViewController()
- }
- }
- }
|