From 41aa6375f4086c3bbabd00c710c0734b25962d78 Mon Sep 17 00:00:00 2001
From: 无故事王国 <841720330@qq.com>
Date: 星期日, 27 七月 2025 22:54:38 +0800
Subject: [PATCH] 修复BUG,修改逻辑

---
 DolphinEnglishLearnStudent/Moudle/Home/HomeListenFight_lesson_1_VC.swift |   36 +++++++++++++++++++-----------------
 1 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/DolphinEnglishLearnStudent/Moudle/Home/HomeListenFight_lesson_1_VC.swift b/DolphinEnglishLearnStudent/Moudle/Home/HomeListenFight_lesson_1_VC.swift
index 1e1371f..797e206 100644
--- a/DolphinEnglishLearnStudent/Moudle/Home/HomeListenFight_lesson_1_VC.swift
+++ b/DolphinEnglishLearnStudent/Moudle/Home/HomeListenFight_lesson_1_VC.swift
@@ -27,9 +27,6 @@
 
     private var isAnsterModel = [Listen1SubModel]()
 
-    //已回答过的题
-    private var answerList = [Listen1SubModel]()
-
     private var menuView:VoiceHandleView?
     private var handleClouse:(()->Void)?
 
@@ -76,7 +73,6 @@
         super.viewDidLoad()
         navigationItem.titleView = UIView()
         collectionView.reloadData()
-        print("加载======DidLoad")
 
         //回传记录,始终保持答题进度
 //        if let team = teamScheduleModel{
@@ -86,15 +82,21 @@
 //            }
 //        }
 
-        //制造随机
-        //        listenNewModel.subjectList[page].shuffle()
         getNextAnswer(isFirst: true)
         menuView?.listenType = .lesson1
 
-        DispatchQueue.main.asyncAfter(deadline: .now()+2) {
-            VoicePlayer.share().playerAt(url: self.randomElement?.correct)
-            self.menuView?.playing()
-        }
+        rootViewModel.currentPage.subscribe(onNext: {[unowned self] cpage in
+            if cpage == self.page{
+                self.restore()
+                self.randomElement = self.listenNewModel.subjectList[self.page].randomElement() //随机抽题
+                DispatchQueue.main.asyncAfter(deadline: .now()+2) {
+                    VoicePlayer.share().playerAt(url: self.randomElement?.correct)
+                    self.menuView?.playing()
+                }
+            }
+        }).disposed(by: disposeBag)
+
+
     }
 
     override func viewDidAppear(_ animated: Bool) {
@@ -112,8 +114,7 @@
     func restore(){
         teamScheduleModel?.topicIds.removeAll()
         teamScheduleModel?.teamIds.removeAll()
-        answerList.removeAll()
-        rootViewModel.currentPage.accept(0)
+//        rootViewModel.currentPage.accept(0)
         rootViewModel.answerCount.accept(1)
         isAnsterDone = false
         isAnsterModel.removeAll()
@@ -165,14 +166,13 @@
         if randomElement != nil{
             //如果已经回答,或标记为已回答(返回上一小题时)
             if isAnsterModel.contains(randomElement!){
-                answerList.append(randomElement!)
                 getNextAnswer();return
             }
 
-            //没有回答
-            if !isAnsterModel.contains(randomElement!){
-                isAnsterModel.append(randomElement!)
-            }
+//            //没有回答
+//            if !isAnsterModel.contains(randomElement!){
+//                isAnsterModel.append(randomElement!)
+//            }
 
         }
         menuView?.playUrl = randomElement?.correct
@@ -284,6 +284,8 @@
                         weakSelf.handleClouse?()
                     }).disposed(by: weakSelf.disposeBag)
 
+                    weakSelf.isAnsterModel.append(weakSelf.listenNewModel.subjectList[weakSelf.page][index.row])
+
                     DispatchQueue.main.asyncAfter(deadline: .now()+2) {
                         VoicePlayer.share().playerAt(url: weakSelf.listenNewModel.subjectList[weakSelf.page][index.row].correct)
                     }

--
Gitblit v1.7.1