无故事王国
2024-07-06 607c74dfcfb5e52e56604f635d1d6a081cddcace
DolphinEnglishLearnStudent/Moudle/Home/HomeListenFight_lesson_1_VC.swift
@@ -21,11 +21,11 @@
            private var listenNewModel:ListenNewModel!
            private var randomElement:Listen1SubModel?
            private var page:Int!
            private var isListen:Bool = false
            private(set) var isListen:Bool = false
            private var isAnsterComplete:Bool = false //是否已经回答完成[小题]
            private var isAnsterDone:Bool = false //是否已经回答完成[大题]
            private var isAnsterModel = Set<Listen1SubModel>()
            private var isAnsterModel = [Listen1SubModel]()
            private var menuView:VoiceHandleView?
            private lazy var collectionView:UICollectionView = {
@@ -45,12 +45,21 @@
            var teamScheduleModel:TeamScheduleModel?{
                        didSet{
                                    if let m = teamScheduleModel{
                                                var temp = [Listen1SubModel]()
                                                for v in listenNewModel.subjectList[page]{
                                                            //已回答
                                                            if m.topicIds.contains(v.id){
                                                                        isAnsterModel.insert(v) //记录
                                                                        temp.append(v)
                                                            }
                                                }
                                                isAnsterModel.insert(contentsOf: temp, at: 0)
                                                //todo
//                                                let teamId = weakSelf.listenNewModel.data?.id.components(separatedBy: ",")[weakSelf.page]
//                                                weakSelf.rootViewModel.insertCorrectAnswer(teamId: teamId, answerId: weakSelf.listenNewModel.subjectList[weakSelf.page][index.row].id)
                                    }
                        }
            }
@@ -71,6 +80,14 @@
                        collectionView.reloadData()
                        print("加载======DidLoad")
                        //回传记录,始终保持答题进度
                        if let team = teamScheduleModel{
                                    let v = team.schedule - 1
                                    for i in 0..<v{
                                                isAnsterModel.append(listenNewModel.subjectList[page][i])
                                    }
                        }
                        //制造随机
                        listenNewModel.subjectList[page].shuffle()
                        getNextAnswer(isFirst: true)
@@ -80,6 +97,9 @@
                                    VoicePlayer.share().playerAt(url: self.randomElement?.correct)
                                    self.menuView?.playing()
                        }
            }
@@ -106,7 +126,23 @@
                        collectionView.reloadData()
                        getNextAnswer(isFirst: true)
            }
            func tobefore(){
                        if isAnsterModel.count == 1{return}
                        isAnsterModel.removeLast()
                        rootViewModel.answerCount.accept(page + isAnsterModel.count)
                        randomElement = isAnsterModel.last
                        menuView?.playUrl = randomElement?.correct
                        VoicePlayer.share().playerAt(url: self.randomElement?.correct)
                        menuView?.playing()
                        listenNewModel.subjectList[page].shuffle()
                        collectionView.reloadData()
            }
            /// 下一题
            /// - Parameter isFirst: 是否首次进入,首次页码不+1
            private func getNextAnswer(isFirst:Bool = false){
@@ -125,12 +161,18 @@
                                    return
                        }
                        randomElement = listenNewModel.subjectList[page].randomElement()
                        randomElement = listenNewModel.subjectList[page].randomElement() //随机抽题
                        if randomElement != nil{
                                    //如果已经回答,或标记为已回答(返回上一小题时)
                                    if isAnsterModel.contains(randomElement!){
                                                getNextAnswer();return
                                    }
                                    isAnsterModel.insert(randomElement!)
                                    //没有回答
                                    if !isAnsterModel.contains(randomElement!){
                                                isAnsterModel.append(randomElement!)
                                    }
                        }
                        menuView?.playUrl = randomElement?.correct
@@ -211,6 +253,7 @@
                                                var answer:Fight_lessonType = .none
                                                if self?.randomElement?.id == weakSelf.listenNewModel.subjectList[weakSelf.page][index.row].id{
                                                            answer = .success
                                                            self?.randomElement?.isAnster = true
                                                            self?.isListen = false
                                                            if self?.isAnsterComplete == false{
                                                                        self?.rootViewModel.correctNum += 1
@@ -251,6 +294,7 @@
            private func answerSuccess(_ cell:ListenFight_lesson_1_CCell){
                        menuView?.snp.removeConstraints()
                        menuView?.playing()
                        menuView?.jq_cornerRadius = 0
                        let v = cell.view_topHandle.convert(cell.bounds, to: self.view)
                        UIView.animate(withDuration: 0.3) {
                                    self.menuView?.snp.updateConstraints { make in