From 3e3bfd1ad307ec2ea42f66e298ccb24cec26955f Mon Sep 17 00:00:00 2001
From: younger_times <841720330@qq.com>
Date: 星期三, 26 七月 2023 18:13:33 +0800
Subject: [PATCH] 新增

---
 WanPai/Root/Course/VC/CourseExerciseSubListVC.swift |   72 +++++++++++++++++++++++++++++++++---
 1 files changed, 66 insertions(+), 6 deletions(-)

diff --git a/WanPai/Root/Course/VC/CourseExerciseSubListVC.swift b/WanPai/Root/Course/VC/CourseExerciseSubListVC.swift
index fb5cc63..5545b98 100644
--- a/WanPai/Root/Course/VC/CourseExerciseSubListVC.swift
+++ b/WanPai/Root/Course/VC/CourseExerciseSubListVC.swift
@@ -7,35 +7,84 @@
 
 import UIKit
 import QMUIKit
+import RxSwift
+import RxRelay
+
+class CourseExerciseViewModel:RefreshModel<ExerciseVideoModel>{
+    let courseTypeId = BehaviorRelay<Int?>(value: nil)
+    let search = BehaviorRelay<String>(value: "")
+    override func api() -> (Observable<BaseResponse<[ExerciseVideoModel]>>)? {
+        return Services.exerciseCourseList(courseTypeId: courseTypeId.value, search: search.value)
+    }
+}
 
 class CourseExerciseSubListVC: BaseVC {
 
     @IBOutlet weak var view_topView: UIView!
     @IBOutlet weak var btn_assign: QMUIButton!
-    @IBOutlet weak var tableView: UITableView!
+    @IBOutlet weak var tableView: BaseTableView!
+    @IBOutlet weak var tf_search: QMUITextField!
+    private var types = [CityProfileModel]()
+    private var selectType:NormalSimpleModel?
+    let viewModel = CourseExerciseViewModel()
+
     override func viewDidLoad() {
         super.viewDidLoad()
         title = "课后练习"
+        getType()
+        viewModel.beginRefresh()
+    }
+
+    private func getType(){
+        Services.queryArrangeCourseList().subscribe(onNext: { data in
+            if let models = data.data{
+                self.types = models
+            }
+        }).disposed(by: disposeBag)
     }
 
     override func setUI() {
         btn_assign.imagePosition = .right
         btn_assign.spacingBetweenImageAndTitle = 5
+        tf_search.delegate = self
 
         tableView.register(UINib(nibName: "CourseExerciseTCell", bundle: nil), forCellReuseIdentifier: "_CourseExerciseTCell")
         tableView.delegate = self
         tableView.dataSource = self
         tableView.separatorStyle = .none
+        viewModel.configure(tableView)
+        tableView.jq_setEmptyView()
     }
 
 
+    @IBAction func searchAction(_ sender: UIButton) {
+        tf_search.resignFirstResponder()
+        viewModel.search.accept(tf_search.text!)
+        viewModel.beginRefresh()
+    }
+
     @IBAction func assignAction(_ sender: QMUIButton) {
         guard !sender.isSelected else {return}
-        sender.isSelected = true
-        let items = Array<NormalSimpleModel>()
-        CourseSubTypeView.show(inView: self.view, afterView: view_topView, items: items) { m in
-            sender.isSelected = false
+        guard types.count != 0 else {return}
 
+        sender.isSelected = true
+        var items = Array<NormalSimpleModel>()
+        items.append(NormalSimpleModel(id: 0, name: "全部课程"))
+        for type in types {
+            items.append(NormalSimpleModel(id: type.id, name: type.name))
+        }
+
+        CourseSubTypeView.show(inView: self.view, afterView: view_topView, items: items, selectModel: selectType) {[weak self] m in
+            sender.isSelected = false
+            self?.selectType = m
+            if m.id == 0{
+                sender.setTitle("布置课程", for: .normal)
+                self?.viewModel.courseTypeId.accept(nil)
+            }else{
+                sender.setTitle(m.name, for: .normal)
+                self?.viewModel.courseTypeId.accept(m.id)
+            }
+            self?.viewModel.beginRefresh()
         } closeClouse: {
             sender.isSelected = false
         }
@@ -48,11 +97,22 @@
 
 extension CourseExerciseSubListVC:UITableViewDataSource{
     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let model = viewModel.dataSource.value[indexPath.row]
         let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseExerciseTCell") as! CourseExerciseTCell
+        cell.exerciseVideoModel = model
         return cell
     }
 
     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        return 5
+        return viewModel.dataSource.value.count
+    }
+}
+
+extension CourseExerciseSubListVC:QMUITextFieldDelegate{
+    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
+        textField.resignFirstResponder()
+        viewModel.search.accept(textField.text!)
+        viewModel.beginRefresh()
+        return true
     }
 }

--
Gitblit v1.7.1