无故事王国
4 天以前 510991a68acc59e22602d95582e3b1cabdd093c2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
//
//  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)
    }
 
}