杨锴
2024-11-06 63f7ed967433acee3ae8764c7a077e15c29c41f2
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,29 @@
                        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
//            let v = UIView()
//            v.backgroundColor = .red
//
//            return
//        }
            }
            func setTitleItem(_ items:[TitleItem],defaultSelectIndex:Int = 0){
                        self.selectIndex = defaultSelectIndex
                        self.titleItems = items
            }
}
@@ -64,6 +78,8 @@
            func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
                        selectIndex = indexPath.row
                        viewModel.cateId.accept(titleItems[selectIndex].id)
                        viewModel.beginRefresh()
                        tableView.reloadData()
            }
@@ -88,23 +104,26 @@
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{
            let vc = CourseDetialVC(courseId: model.id)
            push(vc: vc)
        }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 +140,25 @@
                        return CGSize(width: w, height: w * 1.313)
            }
}
extension CourseMenuVC:EmptyDataSetSource{
    func image(forEmptyDataSet scrollView: UIScrollView) -> UIImage? {
        return UIImage(named: "icon_empty")
    }
    func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
        return AttributedStringbuilder.build().add(string: "暂无数据", withFont: .systemFont(ofSize: 12, weight: .medium), withColor: .gray).mutableAttributedString
    }
    func verticalOffset(forEmptyDataSet scrollView: UIScrollView) -> CGFloat {
        return 300
    }
    func spaceHeight(forEmptyDataSet scrollView: UIScrollView) -> CGFloat {
        return 200
    }
}
extension CourseMenuVC:EmptyDataSetDelegate{
}