123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- //
- // MeTraineeDetailsPageViewController.swift
- // JiaPeiManage
- //
- // Created by Ning.ge on 2023/6/16.
- //
- import UIKit
- import RxSwift
- import RxCocoa
- final class MeTraineeDetailsPageViewController: BaseViewController {
-
- // MARK: 服务属性
- private let cocahService: CoachServiceType = CoachService(networking: CoachNetworking())
-
- // MARK: 私有属性
- private var menuTitles : [String] = ["基本信息", "理论成绩", "人脸比对记录", "签到记录"]
- // private var menuTitles : [String] = ["", "", "", ""]
- private var idxs: [UInt] = []
- private var menuItemCurrentBtn : UIButton?
- //学员ID
- var stuId:Int = 0
- var traineeInfoModel:TraineeInfoModel?
- // MARK: UI属性
-
- @IBOutlet weak var title_label: UILabel!
-
- @IBOutlet weak var header_view: UIView!
- //头像
- @IBOutlet weak var user_icon_imageview: UIImageView!
- @IBOutlet weak var sex_imageview: UIImageView!
-
- //用户名
- @IBOutlet weak var username_label: UILabel!
- //电话
- @IBOutlet weak var userphone_label: UILabel!
-
- let pageController = VTMagicController().then {
- $0.view.translatesAutoresizingMaskIntoConstraints = false
- $0.magicView.navigationColor = .db_theme
- $0.magicView.sliderColor = .db_sliderColor
- $0.magicView.switchStyle = .default
- $0.magicView.layoutStyle = .divide
- // $0.magicView.sliderStyle = .bubble
- $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
- $0.magicView.isSliderHidden = true
- }
-
-
- override func setupConstraints() {
-
- pageController.view.snp.makeConstraints { (make) in
- make.left.right.bottom.equalToSuperview()
- make.top.equalTo(header_view.snp.bottom)
- }
-
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- setupUI()
- configureMagicController()
- cocahService.studentInfoByIdRequest(city: LocalManager.userInfo.city!, id: stuId)
- .subscribe { traineeInfoModel in
- self.traineeInfoModel = traineeInfoModel
- self.biandView()
- if(self.pageController.currentPage==0){
- let vc:MeTraineeDetails01Controller = self.pageController.currentViewController as! MeTraineeDetails01Controller
- vc.setInfo(info: traineeInfoModel)
- }
-
- } onError: { error in
-
- }.disposed(by: disposeBag)
- }
-
- // MARK: 私有方法
- func setupUI(){
- self.view.backgroundColor = .db_theme
-
- }
-
- func biandView(){
-
- self.title_label.text = (traineeInfoModel?.name)! + "个人信息"
- //头像
- self.user_icon_imageview.sd_setImage(with: traineeInfoModel?.photoPath?.urlValue, placeholderImage: traineeInfoModel?.sex == "1" ? NYImage.Home.usermale:NYImage.Home.userfemale)
- //用户名
- self.username_label.text = traineeInfoModel?.name
- //电话
- self.userphone_label.text = traineeInfoModel?.phone
- self.sex_imageview.image = traineeInfoModel?.sex == "1" ? NYImage.Home.sexmale:NYImage.Home.sexfemale
- }
-
- func configureMagicController(){
-
- self.addChild(pageController)
- self.view.addSubview(pageController.view)
-
- //设置VTMagicController代理,初始页码
- pageController.magicView.delegate = self
- pageController.magicView.dataSource = self
- pageController.magicView.reloadData(toPage: 0)
-
- }
- }
- //VTMagicViewDelegate view代理
- extension MeTraineeDetailsPageViewController : VTMagicViewDelegate {
-
- func magicView(_ magicView: VTMagicView, didSelectItemAt itemIndex: UInt) {
- var menuItem = magicView.menuItem(at: itemIndex)
- if (menuItemCurrentBtn != nil) {
- (menuItemCurrentBtn as?QMUIButton)?.spacingBetweenImageAndTitle = -25
- }
- (menuItem as?QMUIButton)?.spacingBetweenImageAndTitle = -30
- menuItemCurrentBtn = menuItem
- if itemIndex == 0 || itemIndex == 1 {
- guard let currentVc:MeTraineeSubjectPageViewController = pageController.currentViewController as? MeTraineeSubjectPageViewController else { return }
- 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 MeTraineeDetailsPageViewController : 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?.titleLabel?.font = NYFont.SysFont.sys_13
- menuItem?.setTitleColor(.db_fontGray, for: .normal)
- menuItem?.setTitleColor(.db_fontSelColor, for: .selected)
- menuItem?.setImage(NYImage.Home.stuBtnSel, for: .selected)
- menuItem?.setImage(NYImage.Home.stuBtnNor, for: .normal)
- (menuItem as?QMUIButton)?.imagePosition = .top
- (menuItem as?QMUIButton)?.spacingBetweenImageAndTitle = -25
-
- // menuItem?.imageEdgeInsets = UIEdgeInsets(top: -5, left: -5, bottom: 0, right: -5)
-
- // let title_label = UILabel()
- // title_label.font = NYFont.SysFont.sys_13
- // title_label.textColor = .db_fontGray
- // title_label.textAlignment = .center
- // title_label.text = menuTitleArray[Int(itemIndex)]
- // menuItem?.addSubview(title_label)
- // let t_top = (57.f - 18.f)*0.5
- // title_label.snp.makeConstraints { make in
- // make.top.equalTo(t_top)
- // make.left.right.equalTo(menuItem!)
- // make.height.equalTo(18.f)
- // }
-
- if itemIndex==0 {
- (menuItem as?QMUIButton)?.spacingBetweenImageAndTitle = -30
- menuItemCurrentBtn = menuItem
- }
-
- }
-
- return menuItem ?? UIButton()
- }
-
- func magicView(_ magicView: VTMagicView, viewControllerAtPage pageIndex: UInt) -> UIViewController {
-
- if pageIndex == 0 {
- var meTraineeDetails01Controller = magicView.dequeueReusablePage(withIdentifier: "MeTraineeDetails01Controller")
- if meTraineeDetails01Controller == nil {
- meTraineeDetails01Controller = MeTraineeDetails01Controller.init()
- }
- return meTraineeDetails01Controller ?? UIViewController()
- } else if pageIndex == 1 {
- var meTraineeDetails02Controller = magicView.dequeueReusablePage(withIdentifier: "MeTraineeDetails02Controller")
- if meTraineeDetails02Controller == nil {
- meTraineeDetails02Controller = MeTraineeDetails02Controller.init()
- }
- return meTraineeDetails02Controller ?? UIViewController()
- } else if pageIndex == 2 {
- var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController03")
- if meTraineeSubjectPageViewController == nil {
- meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "3")
- }
- return meTraineeSubjectPageViewController ?? UIViewController()
- } else if pageIndex == 3{
- var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController04")
- if meTraineeSubjectPageViewController == nil {
- meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "4")
- }
- return meTraineeSubjectPageViewController ?? UIViewController()
- } else {
- var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController05")
- if meTraineeSubjectPageViewController == nil {
- meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "5")
- }
- return meTraineeSubjectPageViewController ?? UIViewController()
- }
- }
- }
|