From e2c245035a515bb7f623706b66f05e8dfc2c2fef Mon Sep 17 00:00:00 2001
From: 无故事王国 <841720330@qq.com>
Date: 星期五, 14 六月 2024 17:39:07 +0800
Subject: [PATCH] fix

---
 DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift |   45 ++++++++++++++++++++++++++++++---------------
 1 files changed, 30 insertions(+), 15 deletions(-)

diff --git a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift
index e5200f8..1f988ac 100644
--- a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift
+++ b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift
@@ -11,12 +11,13 @@
 
 				private var viewModel = FightAnswerViewModel()
 
-				private var listen4Model:Listen4Model!
+				private var listenNewModel:ListenNewModel!
 				private var page:Int!
 				var rootViewModel:HomeListenFightViewModel!
 
 				private var answerIndex:IndexPath? //答案的Index
 				private var answerCount:Int = 0 //回答计数
+				private var filterItems = [[Listen1SubModel]]() //此类型特殊,需要数据清理
 
 				private lazy var stackView:UIStackView = {
 								let sta = UIStackView()
@@ -41,11 +42,15 @@
 
 				private var voicePlayer = VoicePlayer.share()
 
-				required init(page:Int,listen4Model:Listen4Model){
+				required init(page:Int,listenNewModel:ListenNewModel){
 								super.init(nibName: nil, bundle: nil)
 								self.page = page
-								self.listen4Model = listen4Model
-								self.listen4Model.data.shuffle()
+								self.listenNewModel = listenNewModel
+								let temp1 = Array(listenNewModel.subjectList[page][0...1])
+								let temp2 = Array(listenNewModel.subjectList[page][2...3])
+
+								filterItems.append(temp1)
+								filterItems.append(temp2)
 				}
 
 				required init?(coder: NSCoder) {
@@ -102,7 +107,7 @@
 
 				private func setAnswerStackView(){
 
-								guard viewModel.selectIndex.value != nil else{
+								guard let selectIndex = viewModel.selectIndex.value else{
 												alertError(msg: "请先听题");return
 								}
 
@@ -118,10 +123,11 @@
 												}
 								}
 
+								let answerModel = filterItems[selectIndex.section].filter({$0.isQuestion == 0}).first!
+								let answerId = answerModel.id
 
-								let answerId = listen4Model.data[viewModel.selectIndex.value!.section].subject
 								var tempVoiceArray = [String]()
-								for v in listen4Model.data[viewModel.selectIndex.value!.section].subjectList{
+								for v in filterItems[selectIndex.section]{
 												if v.id == answerId{
 																tempVoiceArray.append(v.correct)
 																tempVoiceArray.append(v.error.components(separatedBy: ",").first ?? "")
@@ -152,6 +158,11 @@
 				}
 
 				@objc func answerAction(btn:UIButton){
+
+								guard let selectIndex = viewModel.selectIndex.value else{
+												alertError(msg: "请先听题");return
+								}
+
 								var tempSubV:Lesson_4_AnswerView?
 
 								for subV in stackView.arrangedSubviews{
@@ -162,8 +173,9 @@
 								}
 
 								var answerModel:Listen1SubModel?
-								for (index,v) in (listen4Model.data[viewModel.selectIndex.value!.section].subjectList).enumerated(){
-												if v.id == listen4Model.data[viewModel.selectIndex.value!.section].subject{
+								for (index,v) in filterItems[selectIndex.section].enumerated(){
+												let m = filterItems[selectIndex.section].filter({$0.isQuestion == 0}).first
+												if v.id == m?.id{
 																answerModel = v
 																answerIndex = IndexPath(row: index, section: viewModel.selectIndex.value!.section)
 												}
@@ -174,6 +186,8 @@
 												answerType = .success
 												answerCount += 1
 												rootViewModel.correctNum += 1
+												let v = rootViewModel.answerCount.value + 1
+												rootViewModel.answerCount.accept(v)
 								}else{
 												answerType = .fail
 												rootViewModel.errorNum += 1
@@ -209,7 +223,9 @@
 
 																																//回答完成,下一答题
 																																if self.answerCount == 2{
-																																				self.rootViewModel.answerItems[self.page] = self.listen4Model
+																																				let v = self.rootViewModel.answerCount.value + 1
+																																				self.rootViewModel.answerCount.accept(v)
+																																				self.rootViewModel.answerItems[self.page] = self.listenNewModel.subjectList[self.page]
 																																				self.voicePlayer.playerEnd()
 																																				NotificationCenter.default.post(name: NextLession_Noti, object: nil)
 																																				self.voicePlayer.playerEnd()
@@ -267,8 +283,7 @@
 																weakSelf.setAnswerStackView()
 												}
 								}
-
-								let m = listen4Model.data[indexPath.section].subjectList[indexPath.row]
+								let m = filterItems[indexPath.section][indexPath.row]
 								if indexPath == answerIndex{
 												UIView.animate(withDuration: 0.4, delay: 0, usingSpringWithDamping: 0.4, initialSpringVelocity: 0.4,options: .layoutSubviews) {
 																cell.img_state.alpha = 1
@@ -279,7 +294,7 @@
 												cell.img_state.transform = .init(scaleX: 0.1, y: 0.1)
 								}
 								//问题
-								if listen4Model.data[indexPath.section].subject == m.id{
+								if filterItems[indexPath.section][indexPath.row].isQuestion == 0{
 												cell.btn_handle.setImage(UIImage(named: "icon_question"), for: .normal)
 												cell.view_handle.isHidden = true
 								}else{
@@ -296,11 +311,11 @@
 				}
 
 				func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
-								return listen4Model.data[section].subjectList.count
+								return filterItems[section].count
 				}
 
 				func numberOfSections(in collectionView: UICollectionView) -> Int {
-								return listen4Model.data.count
+								return filterItems.count
 				}
 }
 

--
Gitblit v1.7.1