| | |
| | | |
| | | import UIKit |
| | | import JQTools |
| | | import EmptyDataSet_Swift |
| | | |
| | | class CourseMenuVC: BaseVC { |
| | | |
| | |
| | | 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() { |
| | |
| | | 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 |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
| | | selectIndex = indexPath.row |
| | | viewModel.cateId.accept(titleItems[selectIndex].id) |
| | | viewModel.beginRefresh() |
| | | tableView.reloadData() |
| | | } |
| | | |
| | |
| | | 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 |
| | | } |
| | | } |
| | | |
| | |
| | | return CGSize(width: w, height: w * 1.313) |
| | | } |
| | | } |
| | | |
| | | extension CourseMenuVC:EmptyDataSetSource{ |
| | | |
| | | } |
| | | |
| | | extension CourseMenuVC:EmptyDataSetDelegate{ |
| | | |
| | | } |