//
|
// HomeListenV2VC.swift
|
// DolphinEnglishLearnStudent
|
//
|
// Created by 无故事王国 on 2025/7/27.
|
//
|
|
import UIKit
|
import SPPageMenu
|
import FFPage
|
|
class HomeListenV2VC: BaseVC {
|
|
|
//限制后面的点击:天数(1开始)
|
private var limitDay = 1
|
private var quarter:Int!
|
private var week:Int!
|
private var studyScheduleModel:StudyScheduleModel!
|
|
private lazy var pageVC:FFPageViewController = {
|
let vc = FFPageViewController()
|
vc.scrollview.isScrollEnabled = false
|
return vc
|
}()
|
|
required init(quarter:Int,week:Int,studyScheduleModel:StudyScheduleModel) {
|
super.init(nibName: nil, bundle: nil)
|
self.quarter = quarter
|
self.week = week
|
self.studyScheduleModel = studyScheduleModel
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
|
refreshDay()
|
|
Services.onlineDuration().subscribe(onNext: { data in
|
if let time = data.data{
|
sceneDelegate?.globalTimeval = time
|
}
|
}).disposed(by: disposeBag)
|
}
|
|
private func refreshDay(){
|
self.limitDay = studyScheduleModel.day
|
|
let total = studyScheduleModel.pair + studyScheduleModel.induction + studyScheduleModel.listen + studyScheduleModel.look + studyScheduleModel.answer
|
|
if self.limitDay == 5 && total == 500 {
|
self.limitDay = 6
|
}
|
|
self.pageVC.reloadData()
|
|
#if !DEBUG
|
if limitDay == 6{
|
self.pageVC.scroll(toPage: 4, animation: true)
|
}else{
|
self.pageVC.scroll(toPage: self.limitDay - 1, animation: true)
|
}
|
#endif
|
}
|
|
override func setUI() {
|
super.setUI()
|
|
//解决返回按钮区域过小,点击不灵敏
|
title = " "
|
|
let topMenuView = UIView()
|
topMenuView.backgroundColor = .white
|
topMenuView.jq_cornerRadius = 8
|
view.addSubview(topMenuView)
|
topMenuView.snp.makeConstraints { make in
|
make.top.equalTo(self.view.safeAreaLayoutGuide).offset(9)
|
make.left.equalTo(125)
|
make.right.equalTo(-125)
|
make.height.equalTo(59)
|
}
|
|
|
|
pageVC.delegate = self
|
view.addSubview(pageVC.view)
|
pageVC.view.snp.makeConstraints { make in
|
make.top.equalTo(self.view.safeAreaLayoutGuide).offset(9)
|
make.left.equalTo(topMenuView.snp.left)
|
make.right.equalTo(topMenuView.snp.right)
|
make.bottom.equalTo(self.view.safeAreaLayoutGuide.snp.bottom)
|
}
|
}
|
|
override func setRx() {
|
NotificationCenter.default.rx.notification(StudyCompleteNextLession_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] noti in
|
guard let weakSelf = self else { return }
|
if let type = noti.object as? ListenType{
|
let homelistenSubVC = weakSelf.pageVC.currentController as! HomeListenSubV2VC
|
homelistenSubVC.jumpAt(listenType: type)
|
}
|
|
}).disposed(by: disposeBag)
|
|
NotificationCenter.default.rx.notification(Refresh_ListenSchedule_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] _ in
|
guard let weakSelf = self else { return }
|
Services.studySchedule(week: weakSelf.week).subscribe(onNext: {[weak self] data in
|
guard let weakSelf = self else { return }
|
weakSelf.studyScheduleModel = data.data
|
|
for subVC in weakSelf.pageVC.children as! [HomeListenSubV2VC]{
|
subVC.studyScheduleModel = weakSelf.studyScheduleModel
|
subVC.tableView.reloadData()
|
}
|
|
weakSelf.refreshDay()
|
|
|
}).disposed(by: weakSelf.disposeBag)
|
}).disposed(by: disposeBag)
|
}
|
}
|
|
extension HomeListenV2VC:SPPageMenuDelegate{
|
func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
|
pageVC.scroll(toPage: index, animation: true)
|
}
|
}
|
|
extension HomeListenV2VC:FFPageViewControllerDelegate{
|
func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
|
return 1
|
}
|
|
func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
|
|
}
|
|
func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
|
return HomeListenSubV2VC(quarter: quarter,week: week,studyScheduleModel: studyScheduleModel)
|
}
|
|
}
|