From fe460485972623f9ffcd4d29cb956bfddf9c97e3 Mon Sep 17 00:00:00 2001
From: 无故事王国 <841720330@qq.com>
Date: 星期二, 09 九月 2025 11:28:35 +0800
Subject: [PATCH] 代码补交

---
 DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift |   81 ++++++++++++++++++++++++++++++++++------
 1 files changed, 68 insertions(+), 13 deletions(-)

diff --git a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift
index 9d9c64e..4964bca 100644
--- a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift
+++ b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift
@@ -26,11 +26,11 @@
 
     var rawTitle:String{
         switch self {
-        case .lesson1:return "自主学习1-听音选图"
-        case .lesson2:return "自主学习2-看图选音"
-        case .lesson3:return "自主学习3-归纳排除"
-        case .lesson4:return "自主学习4-有问有答"
-        case .lesson5:return "自主学习5-音图相配"
+        case .lesson1:return "听音选图"
+        case .lesson2:return "看图选音"
+        case .lesson3:return "归纳排除"
+        case .lesson4:return "有问有答"
+        case .lesson5:return "音图相配"
         case .game1:return "游戏类型1-超级听力"
         case .game2:return "游戏类型2-超级记忆"
         case .story1:return "自主故事1-看图配音"
@@ -103,7 +103,13 @@
     var data:Any?
 
     var maxPage = 0 //最大页记录
-    var teamScheduleModel:TeamScheduleModel? //上次中途退出,答题记录
+    //上次中途退出,答题记录
+    var teamScheduleModel:TeamScheduleModel?{
+        didSet{
+            setPages()
+            btn_random.isHidden = (viewModel.listenType.value == .game1 ||  viewModel.listenType.value == .game2)
+        }
+    }
     var pages = [[ListenSubCardModel]]() //分页显示
 
     private var notiObject:Dictionary<String,Any>?
@@ -199,6 +205,19 @@
         return btn
     }()
 
+    private lazy var btn_random:UIButton = {
+        let btn = UIButton(type: .custom)
+        btn.setTitle("随机答题", for: .normal)
+        btn.titleLabel?.font = .systemFont(ofSize: 14, weight: .medium)
+        btn.setTitleColor(Config.ThemeColor, for: .normal)
+        btn.jq_borderColor = Config.ThemeColor
+        btn.backgroundColor = .white
+        btn.jq_borderWidth = 1
+        btn.jq_cornerRadius = 4
+        btn.isHidden = true
+        return btn
+    }()
+
     private lazy var pageVC:FFPageViewController = {
         let vc = FFPageViewController()
         vc.scrollview.isScrollEnabled = false
@@ -244,8 +263,9 @@
         btn_forward_mini.addTarget(self, action: #selector(beforeAction_mini), for: .touchUpInside)
         btn_next.addTarget(self, action: #selector(nextAction), for: .touchUpInside)
         btn_beAgain.addTarget(self, action: #selector(beAgaionAction), for: .touchUpInside)
+        btn_random.addTarget(self, action: #selector(randomAnsterAction), for: .touchUpInside)
 
-        setPages()
+//        setPages()
 //        pageVC.reloadData()
 
         timer = Timer(fire: .distantPast, interval: 1.0, repeats: true, block: {[weak self] _ in
@@ -254,12 +274,16 @@
 
         timer.fire()
         RunLoop.current.add(timer, forMode: .common)
-        setPages()
 
-        if let teamSchedule = teamScheduleModel{
-            viewModel.correctNum = viewModel.correctNum + teamSchedule.correctNumber
-            viewModel.errorNum = teamSchedule.answerNumber - teamSchedule.correctNumber
-            maxPage	= teamSchedule.schedule
+        if let m = data as? ListenNewModel{
+            viewModel.correctNum = viewModel.correctNum + (teamScheduleModel?.correctNumber ?? 0)
+            viewModel.errorNum = (teamScheduleModel?.answerNumber ?? 0) - (teamScheduleModel?.correctNumber ?? 0)
+            maxPage	= teamScheduleModel?.schedule ?? 0
+
+
+            btn_random.isHidden = (viewModel.listenType.value == .game1 ||  viewModel.listenType.value == .game2)
+
+            print("---->>>>>2:\((data as? ListenNewModel)!.list.count)")
 
             switch viewModel.listenType.value{
             case .lesson1:
@@ -412,6 +436,11 @@
             make.width.equalTo(124)
         }
 
+        btn_random.snp.makeConstraints { make in
+            make.width.equalTo(124)
+            make.height.equalTo(40)
+        }
+
 
         let stackView = UIStackView(arrangedSubviews: [btn_beAgain,label_pageNum,btn_exit])
         if viewModel.listenType.value == .story2{
@@ -428,6 +457,12 @@
             make.bottom.equalTo(self.view.safeAreaLayoutGuide.snp.bottom).offset(-5)
             make.centerX.equalToSuperview()
             make.height.equalTo(40)
+        }
+
+        view.addSubview(btn_random)
+        btn_random.snp.makeConstraints { make in
+            make.centerY.equalTo(stackView)
+            make.trailing.equalToSuperview().offset(-18)
         }
 
         switch viewModel.listenType.value{
@@ -604,7 +639,7 @@
 
         timer.invalidate()
 
-        let vc = HomeStudyCompleteVC(viewModel: viewModel,studyScheduleModel: studyScheduleModel!)
+        let vc = HomeStudyCompleteVC(viewModel: viewModel,studyScheduleModel: nil)
         vc.title = viewModel.listenType.value.rawTitle
         vc.viewModel = viewModel
         push(vc: vc)
@@ -763,6 +798,26 @@
         }
     }
 
+    @objc func randomAnsterAction(){
+
+        var count:Int = 0
+        if data is ListenNewModel{
+            if viewModel.listenType.value == .lesson1{
+                count = (data as! ListenNewModel).subjectList.count
+            }
+
+            if viewModel.listenType.value == .lesson2{
+                count = (data as! ListenNewModel).subjectList.count
+            }
+
+            count = pages.count
+        }
+
+        RandromAnsterView.show(count) { index in
+            self.pageVC.scroll(toPage: index, animation: true)
+        }
+    }
+
     @objc func nextAction(){
         listenFightLine = .next
         if viewModel.listenType.value == .story2{

--
Gitblit v1.7.1