fix
younger_times
2023-07-27 19a3cec9bbafe352d67a57ae9a1c4c601c73b6c0
WanPai/Root/Course/VC/CourseInfoVC.swift
@@ -33,12 +33,17 @@
    @IBOutlet weak var btn_record: UIButton!
    @IBOutlet weak var view_schedule: UIView!
    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var cons_tableHei: NSLayoutConstraint!
    @IBOutlet weak var mentalCollectionView: UICollectionView!
    @IBOutlet weak var cons_mentalViewHei: NSLayoutConstraint!
    @IBOutlet weak var exerciseCollectionView: UICollectionView!
    @IBOutlet weak var label_weeklyScope: UILabel!
    @IBOutlet weak var label_totalNums: UILabel!
    @IBOutlet weak var label_deductedNums: UILabel!
    @IBOutlet weak var label_remainingNums: UILabel!
    var startClouseHomeModel:StartClouseHomeModel?
    var weeklyCourseModels = [WeeklyCourseModel]()
    private var currentDate = Date()
    private var mentals = [StudentMedalModel]()
@@ -114,6 +119,11 @@
                pageMenu.setItems(m.courseList.map({$0.courseName}), selectedItemIndex: 0)
            }
            exerciseCollectionView.reloadData()
            label_totalNums.text = "总课时数\( m.courseList.first?.totalNums ?? 0)"
            label_deductedNums.text = "已扣学时数\( m.courseList.first?.deductedNums ?? 0)"
            label_remainingNums.text = "剩余学时数\( m.courseList.first?.remainingNums ?? 0)"
            Services.studMedalList(studentId: m.stuId).subscribe(onNext: {[weak self] data in
                guard let weakSelf = self else { return }
@@ -124,6 +134,8 @@
                    weakSelf.cons_mentalViewHei.constant = he
                }
            }).disposed(by: disposeBag)
            getSelectDayData()
        }
    }
@@ -153,6 +165,11 @@
        tableView.delegate = self
        tableView.dataSource = self
        tableView.isScrollEnabled = false
        if #available(iOS 15.0, *) {
            tableView.sectionHeaderTopPadding = 0
        } else {
        }
        tableView.separatorStyle = .none
        tableView.register(UINib(nibName: "CourseBookingTCell", bundle: nil), forCellReuseIdentifier: "_CourseBookingTCell")
@@ -205,7 +222,11 @@
    @IBAction func detailAction(_ sender: UIButton) {
        guard (startClouseHomeModel?.courseList.count ?? 0) > 0 else {return}
        let vc = StudentCourseDetailVC()
        let index = pageMenu.selectedItemIndex
        let models = startClouseHomeModel!.courseList
        let studentModel = StudentSimpleProfileModel(stuId: startClouseHomeModel!.stuId, stuName: startClouseHomeModel!.stuName, stuImage: startClouseHomeModel!.stuImg)
        let vc = StudentCourseDetailVC(models: models,defaultIndex: index,studentModel: studentModel)
        push(vc: vc)
    }
@@ -217,8 +238,21 @@
    @IBAction func remarkAction(_ sender: UIButton) {
        let vc = StudentRemarkListVC()
        guard startClouseHomeModel != nil else {return}
        let vc = StudentRemarkListVC(stuId: startClouseHomeModel!.stuId)
        push(vc: vc)
    }
    private func getSelectDayData(){
        if let model = startClouseHomeModel{
            Services.weeksOfCourseDetails(stuId: model.stuId, time: currentDate).subscribe(onNext: {[weak self] data in
                if let models = data.data{
                    self?.weeklyCourseModels = models
                    self?.cons_tableHei.constant = Double(models.flatMap({$0.courses}).count) * 70 + 58 * Double(models.count)
                    self?.tableView.reloadData()
                }
            }).disposed(by: disposeBag)
        }
    }
    override var preferredStatusBarStyle: UIStatusBarStyle{
@@ -238,16 +272,90 @@
extension CourseInfoVC:UITableViewDataSource{
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseBookingTCell") as! CourseBookingTCell
        cell.contentView.backgroundColor = UIColor(hexStr: "#F2F6F9")
        if indexPath.row == 0 && weeklyCourseModels[indexPath.section].courses.count == 1{
            cell.contentView.jq_addCorners(corner: [.allCorners], radius: 16,width: JQ_ScreenW - 48,height: 70)
        }else if indexPath.row == 0 && weeklyCourseModels[indexPath.section].courses.count != 1{
            cell.contentView.jq_addCorners(corner: [.topLeft,.topRight], radius: 16,width: JQ_ScreenW - 48,height: 70)
        }else if indexPath.row == weeklyCourseModels[indexPath.section].courses.count - 1{
            cell.contentView.jq_addCorners(corner: [.bottomLeft,.bottomRight], radius: 16,width: JQ_ScreenW - 48,height: 70)
        }else{
            cell.contentView.jq_addCorners(corner: [.allCorners], radius: 0,width: JQ_ScreenW - 48,height: 70)
        }
        cell.weeklyCourseItemModel = weeklyCourseModels[indexPath.section].courses[indexPath.row]
        cell.clickClouse = {m in
            print("--->")
        }
        return cell
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
        return weeklyCourseModels[section].courses.count
}
    func numberOfSections(in tableView: UITableView) -> Int {
        return weeklyCourseModels.count
    }
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 70
    }
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let m = weeklyCourseModels[section]
       var headerView  = tableView.dequeueReusableHeaderFooterView(withIdentifier: "header")
        if headerView == nil{
            headerView = UITableViewHeaderFooterView(reuseIdentifier: "header")
            let contentView = UIView()
            contentView.borderColor = UIColor(hexStr: "#E7E3E3")
            contentView.borderWidth = 1
            contentView.cornerRadius = 11
            headerView?.contentView.addSubview(contentView)
            contentView.snp.makeConstraints { make in
                make.center.equalToSuperview()
                make.left.right.equalToSuperview()
                make.height.equalTo(22)
            }
            let label_address = UILabel()
            label_address.tag = 1000
            label_address.text = "成都非遗玩湃全科体育公园   0.0km"
            label_address.font = UIFont.systemFont(ofSize: 10, weight: .medium)
            label_address.textColor = UIColor(hexStr: "#AFB4BC")
            contentView.addSubview(label_address)
            label_address.snp.makeConstraints { make in
                make.left.equalToSuperview().offset(12)
                make.centerY.equalToSuperview()
                make.right.equalTo(-50)
            }
            let btn_detial = QMUIButton(type: .custom)
            btn_detial.setTitle("位置详情", for: .normal)
            btn_detial.titleLabel?.font = UIFont.systemFont(ofSize: 10)
            btn_detial.setTitleColor(UIColor(hexStr: "#AFB4BC"), for: .normal)
            btn_detial.setImage(UIImage(named: "icon_pop"), for: .normal)
            btn_detial.imagePosition = .left
            btn_detial.spacingBetweenImageAndTitle = 3
            contentView.addSubview(btn_detial)
            btn_detial.snp.makeConstraints { make in
                make.right.equalTo(-10)
                make.centerY.equalToSuperview()
            }
        }
        if let label = headerView?.contentView.viewWithTag(1000) as? UILabel{
            label.text = String(format: "%@ %.1km", m.areaName,m.siteDistance)
        }
        headerView?.contentView.backgroundColor = .white
        return headerView
    }
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 58
    }
}
@@ -268,7 +376,12 @@
extension CourseInfoVC:UICollectionViewDataSource{
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        if collectionView.tag == 1000{
        return mentals.count
        }else{
            return startClouseHomeModel?.exerciseVideoList.count ?? 0
        }
    }
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
@@ -279,7 +392,9 @@
            cell.t2.text = mentals[indexPath.row].medalType.title
            return cell
        } else{
            let model = startClouseHomeModel!.exerciseVideoList[indexPath.row]
            let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_StudentVideoCCell", for: indexPath) as! StudentVideoCCell
            cell.videoListModel = model
            return cell
        }
    }
@@ -315,7 +430,12 @@
extension CourseInfoVC:SPPageMenuDelegate{
    func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
        guard startClouseHomeModel != nil else {return}
        if let m = startClouseHomeModel?.courseList[index]{
            label_totalNums.text = "总课时数\( m.totalNums)"
            label_deductedNums.text = "已扣学时数\( m.deductedNums)"
            label_remainingNums.text = "剩余学时数\( m.remainingNums)"
        }
    }
}
@@ -335,9 +455,9 @@
    }
    func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
        let vc = CourseInfoScheduleVC(index: page) { date in
            self.currentDate = date
        let vc = CourseInfoScheduleVC(index: page) {[weak self] date in
            self?.currentDate = date
            self?.getSelectDayData()
        }
        return vc
    }