From 09a372bc45fde16fd42257ab6f78b8deeecf720b Mon Sep 17 00:00:00 2001
From: 杨锴 <841720330@qq.com>
Date: 星期三, 16 四月 2025 16:38:05 +0800
Subject: [PATCH] fix bug

---
 XQMuse/Root/Course/VC/CourseMenuVC.swift |  105 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 86 insertions(+), 19 deletions(-)

diff --git a/XQMuse/Root/Course/VC/CourseMenuVC.swift b/XQMuse/Root/Course/VC/CourseMenuVC.swift
index c3ad658..3c06e1e 100644
--- a/XQMuse/Root/Course/VC/CourseMenuVC.swift
+++ b/XQMuse/Root/Course/VC/CourseMenuVC.swift
@@ -7,6 +7,7 @@
 
 import UIKit
 import JQTools
+import EmptyDataSet_Swift
 
 class CourseMenuVC: BaseVC {
 
@@ -14,16 +15,14 @@
 				private var collectionView:UICollectionView!
 				private var titleItems = [TitleItem]()
 				private var selectIndex:Int = 0
+				private var viewModel = CourseVCOfficalViewModel()
 
     override func viewDidLoad() {
         super.viewDidLoad()
 								title = "全部课程"
-
-								titleItems.append(TitleItem(title: "会员专区"))
-								titleItems.append(TitleItem(title: "免费专区"))
-								titleItems.append(TitleItem(title: "付费专区"))
-								titleItems.append(TitleItem(title: "线下课程"))
-								titleItems.append(TitleItem(title: "水晶疗愈"))
+								viewModel.cateId.accept(titleItems[selectIndex].id)
+								viewModel.configure(collectionView)
+								viewModel.beginRefresh()
     }
 
 				override func setUI() {
@@ -49,14 +48,52 @@
 								collectionView.delegate = self
 								collectionView.dataSource = self
 								collectionView.showsVerticalScrollIndicator = false
-								collectionView.register(UINib(nibName: "HomeRelaxBanner_2_CCell", bundle: nil), forCellWithReuseIdentifier: "_HomeRelaxBanner_2_CCell")
-								collectionView.contentInset = UIEdgeInsets(top: 34, left: 21, bottom: 0, right: 21)
+								collectionView.register(UINib(nibName: "HomeRelaxBanner_2_1_CCell", bundle: nil), forCellWithReuseIdentifier: "_HomeRelaxBanner_2_1_CCell")
+								collectionView.contentInset = UIEdgeInsets(top: 0, left: 21, bottom: 0, right: 21)
 								view.addSubview(collectionView)
 								collectionView.snp.makeConstraints { make in
 												make.left.equalTo(tableView.snp.right)
 												make.right.equalToSuperview()
-												make.top.bottom.equalTo(tableView)
+												make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top).offset(18)
+												make.bottom.equalTo(tableView)
 								}
+
+        collectionView.emptyDataSetSource = self
+        collectionView.emptyDataSetDelegate = self
+        collectionView.emptyDataSetView { v in
+
+            if let sub = v.viewWithTag(10010){
+
+
+            }else{
+                let v1 = UIView()
+                v1.tag = 10010
+                v1.bounds = CGRect(x: 0, y: 0, width: 100, height: 100)
+                v1.center = CGPoint(x: v.center.x - 20, y: v.center.y - 150)
+                v.addSubview(v1)
+
+                let image = UIImageView(image: UIImage(named: "bg_empty"))
+                image.contentMode = .scaleAspectFill
+                v1.addSubview(image)
+                image.snp.makeConstraints { make in
+                    make.top.left.right.equalToSuperview()
+                }
+
+                let label = UILabel(text: "暂未找到相关内容哦~")
+                label.font = .systemFont(ofSize: 14, weight: .medium)
+                label.textColor = .gray
+                v1.addSubview(label)
+                label.snp.makeConstraints { make in
+                    make.centerX.equalTo(image)
+                    make.top.equalTo(image.snp.bottom).offset(8)
+                }
+            }
+        }
+				}
+
+				func setTitleItem(_ items:[TitleItem],defaultSelectIndex:Int = 0){
+								self.selectIndex = defaultSelectIndex
+								self.titleItems = items
 				}
 }
 
@@ -64,6 +101,8 @@
 
 				func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
 								selectIndex = indexPath.row
+								viewModel.cateId.accept(titleItems[selectIndex].id)
+								viewModel.beginRefresh()
 								tableView.reloadData()
 				}
 
@@ -88,23 +127,43 @@
 extension CourseMenuVC:UICollectionViewDelegate & UICollectionViewDataSource{
 
 				func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
-								if indexPath.row == 0{
-												let vc = CourseDetialVC(courseSytle: .style1)
-												push(vc: vc)
-								}else{
-												let vc = CourseDetialVC(courseSytle: .style2)
-												push(vc: vc)
-								}
+								let model = viewModel.dataSource.value!.list[indexPath.row]
+
+        if model.courseType == .online{
+
+            if model.chargeType == .payment || model.chargeType == .vipFree{
+                guard sceneDelegate!.checkisLoginState() else {return}
+            }
+
+            Services.getCourseDetail(courseId: model.id).subscribe(onNext: {data in
+                if let m = data.data{
+                    if m.isVip == .no && m.chargeType == .vipFree{
+                         let vc = VIPCenterVC()
+                        self.push(vc: vc)
+                    }else if m.courseType == .online{
+                        let vc = CourseDetialVC(courseModel: m)
+                        self.push(vc: vc)
+                    }else{
+                        let vc = CourseDetialOfflineVC(courseId: m.id)
+                        self.push(vc: vc)
+                    }
+                }
+            }).disposed(by: disposeBag)
+        }else{
+            let vc = CourseDetialOfflineVC(courseId: model.id)
+            push(vc: vc)
+        }
 				}
 
 				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
-								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_CCell", for: indexPath) as! HomeRelaxBanner_2_CCell
-								cell.backgroundColor = .jq_randomColor
+								let model = viewModel.dataSource.value!.list[indexPath.row]
+								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_1_CCell", for: indexPath) as! HomeRelaxBanner_2_1_CCell
+								cell.setCourseModel(model)
 								return cell
 				}
 
 				func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
-								return 2
+								return viewModel.dataSource.value?.list.count ?? 0
 				}
 }
 
@@ -121,3 +180,11 @@
 								return CGSize(width: w, height: w * 1.313)
 				}
 }
+
+extension CourseMenuVC:EmptyDataSetSource{
+
+}
+
+extension CourseMenuVC:EmptyDataSetDelegate{
+
+}

--
Gitblit v1.7.1