//
|
// HomeStudyCompleteVC.swift
|
// DolphinEnglishLearnStudent
|
//
|
// Created by 无故事王国 on 2024/5/24.
|
//
|
|
import UIKit
|
|
let StudyCompleteNextLession_Noti = Notification.Name.init("StudyCompleteNextLession_Noti")
|
|
class HomeStudyCompleteVC: BaseVC {
|
@IBOutlet weak var label_coin: UILabel!
|
@IBOutlet weak var label_correctNum: UILabel!
|
@IBOutlet weak var label_title_correctNum: UILabel!
|
@IBOutlet weak var label_totalNum: UILabel!
|
@IBOutlet weak var label_title_totalNum: UILabel!
|
@IBOutlet weak var label_errorNum: UILabel!
|
@IBOutlet weak var label_title_errorNum: UILabel!
|
@IBOutlet weak var label_ratioNum: UILabel!
|
@IBOutlet weak var btn_next: UIButton!
|
@IBOutlet weak var stackView: UIStackView!
|
@IBOutlet weak var btn_back: UIButton!
|
|
private var totalCoin:Int = 0
|
private var totalNum:Int? //总题目数量
|
|
var viewModel:HomeListenFightViewModel!
|
var studyScheduleModel:StudyScheduleModel!
|
|
required init(totalCoin:Int,totalNum:Int? = nil,viewModel:HomeListenFightViewModel,studyScheduleModel:StudyScheduleModel){
|
super.init(nibName: nil, bundle: nil)
|
self.totalCoin = totalCoin
|
self.totalNum = totalNum
|
self.viewModel = viewModel
|
self.studyScheduleModel = studyScheduleModel
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
|
yy_popBlock = {[weak self] () in
|
self?.backAction()
|
}
|
|
label_coin.text = "恭喜您,已完成全部答题!获得\(totalCoin)积分!"
|
label_correctNum.text = "\(viewModel.correctNum)次"
|
label_errorNum.text = "\(viewModel.errorNum)次"
|
label_totalNum.text = "\(viewModel.correctNum + viewModel.errorNum)次"
|
label_ratioNum.text = String(format: "正确率:%.0lf%%", Double(viewModel.correctNum) / Double(viewModel.correctNum + viewModel.errorNum) * 100)
|
|
if totalNum != nil && viewModel.listenType.value == .game2{
|
label_title_totalNum.text = "总题目:"
|
label_title_correctNum.text = "正确题目:"
|
label_title_errorNum.text = "错误题目:"
|
label_coin.text = "恭喜您,已完成游戏!获得\(totalCoin)积分!"
|
|
label_totalNum.text = "\(totalNum!)"
|
label_correctNum.text = "\(viewModel.correctNum)"
|
label_errorNum.text = "\(viewModel.errorNum)"
|
}
|
|
|
btn_next.isHidden = viewModel.listenType.value == .lesson5
|
|
|
stackView.isHidden = viewModel.listenType.value == .story2
|
label_ratioNum.isHidden = viewModel.listenType.value == .story2
|
|
NotificationCenter.default.post(name: MeUserInfoUpdate_Noti, object: nil)
|
}
|
|
override func setUI() {
|
super.setUI()
|
}
|
|
@IBAction func backHomeAction(_ sender: UIButton) {
|
backAction()
|
}
|
|
@IBAction func nextAction(_ sender: UIButton) {
|
|
|
var toVC:UIViewController?
|
for subv in self.navigationController?.viewControllers ?? []{
|
if subv is HomeListenVC{
|
toVC = subv;break
|
}
|
}
|
|
if toVC == nil{
|
self.navigationController?.popToRootViewController(animated: true)
|
}else{
|
let nextType = ListenType(rawValue: viewModel.listenType.value.rawValue + 1)!
|
|
switch nextType {
|
case .lesson2:
|
Services.pictureSelectVoice(day:viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in
|
guard let weakSelf = self else { return }
|
if let data = result.data{
|
let fightVC = HomeListenFightVC(listenType: .lesson2,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!)
|
fightVC.title = ListenType.lesson2.rawTitle
|
fightVC.data = data
|
fightVC.studyScheduleModel = weakSelf.studyScheduleModel
|
weakSelf.push(vc: fightVC)
|
}
|
}).disposed(by: disposeBag)
|
|
|
case .lesson3:
|
Services.induceExclude(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in
|
guard let weakSelf = self else { return }
|
if let data = result.data{
|
let fightVC = HomeListenFightVC(listenType: .lesson3,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!)
|
fightVC.title = ListenType.lesson3.rawTitle
|
fightVC.data = data
|
fightVC.studyScheduleModel = weakSelf.studyScheduleModel
|
weakSelf.push(vc: fightVC)
|
}
|
}).disposed(by: disposeBag)
|
|
case .lesson4:
|
Services.questionsAndAnswers(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in
|
guard let weakSelf = self else { return }
|
if let data = result.data{
|
let fightVC = HomeListenFightVC(listenType: .lesson4,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!)
|
fightVC.title = ListenType.lesson4.rawTitle
|
fightVC.data = data
|
fightVC.studyScheduleModel = weakSelf.studyScheduleModel
|
weakSelf.push(vc: fightVC)
|
}
|
}).disposed(by: disposeBag)
|
|
case .lesson5:
|
Services.pictureMateVoice(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in
|
guard let weakSelf = self else { return }
|
if let data = result.data{
|
let fightVC = HomeListenFightVC(listenType: .lesson4,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!)
|
fightVC.title = ListenType.lesson5.rawTitle
|
fightVC.data = data
|
fightVC.studyScheduleModel = weakSelf.studyScheduleModel
|
weakSelf.push(vc: fightVC)
|
}
|
}).disposed(by: disposeBag)
|
|
default:break
|
}
|
}
|
}
|
|
private func backAction(){
|
for vc in navigationController?.viewControllers ?? []{
|
if vc.isKind(of: HomeListenMenuVC.self){
|
navigationController?.popToViewController(vc, animated: true);break
|
}
|
|
if vc.isKind(of: HomeListenVC.self){
|
navigationController?.popToViewController(vc, animated: true);break
|
}
|
}
|
}
|
}
|