| | |
| | | |
| | | |
| | | var startClouseHomeModel:StartClouseHomeModel? |
| | | var weeklyCourseModels = [WeeklyCourseModel]() |
| | | var weeklyCourseModel:WeeklyCourseModel? |
| | | private var currentDate = Date() |
| | | private var unDispatchNum:Int? |
| | | private var mentals = [StudentMedalModel]() |
| | |
| | | |
| | | 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) |
| | | let currentStoreId = UserDefaults.standard.value(forKey: "Current_StoreID") |
| | | Services.weeksOfCourseDetails(stuId: model.stuId, time: currentDate,storeId: currentStoreId as! Int).subscribe(onNext: {[weak self] data in |
| | | if let model = data.data{ |
| | | self?.weeklyCourseModel = model |
| | | self?.cons_tableHei.constant = 58 + 70 * Double(model.data.count) |
| | | UIView.animate(withDuration: 0.3) { |
| | | self?.view.layoutIfNeeded() |
| | | self?.viewDidLayoutSubviews() |
| | |
| | | |
| | | @objc func localDetailAction(btn:UIButton){ |
| | | let index = btn.tag - 10 |
| | | let model = weeklyCourseModels[index] |
| | | JQ_MapNavigationTool.startNav(CLLocationCoordinate2D(latitude: model.lat, longitude: model.lon), distanceName: model.areaName, scheme: "weparklife") |
| | | if let model = weeklyCourseModel?.data[index]{ |
| | | JQ_MapNavigationTool.startNav(CLLocationCoordinate2D(latitude: weeklyCourseModel!.lat, longitude: weeklyCourseModel!.lon), distanceName: weeklyCourseModel!.name, scheme: "weparklife") |
| | | } |
| | | } |
| | | } |
| | | |
| | | extension CourseInfoVC:UITableViewDelegate{ |
| | | |
| | | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
| | | let m = weeklyCourseModel?.data[indexPath.row] |
| | | let vc = SignUpCourseVC() |
| | | push(vc: vc) |
| | | } |
| | | } |
| | | |
| | | extension CourseInfoVC:UITableViewDataSource{ |
| | |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_CourseBookingTCell") as! CourseBookingTCell |
| | | cell.contentView.backgroundColor = UIColor(hexStr: "#F2F6F9") |
| | | |
| | | if indexPath.row == 0 && weeklyCourseModels[indexPath.section].courses.count == 1{ |
| | | |
| | | |
| | | if indexPath.row == 0 && weeklyCourseModel?.data.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{ |
| | | }else if indexPath.row == 0 && weeklyCourseModel?.data.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{ |
| | | }else if indexPath.row == (weeklyCourseModel?.data.count ?? 0) - 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.weeklyCourseItemModel = weeklyCourseModel?.data[indexPath.row] |
| | | cell.clickClouse = {[weak self] m in |
| | | guard let weakSelf = self else { return } |
| | | if let stuId = weakSelf.startClouseHomeModel?.stuId{ |
| | | Services.startCourceRreverse(courseId: m.courseID, time: weakSelf.currentDate.jq_format("yyyy-MM-dd"), stuId: stuId).subscribe(onNext: { data in |
| | | alertSuccess(msg: "预约成功") |
| | | tableView.beginUpdates() |
| | | weakSelf.weeklyCourseModels[indexPath.section].courses.remove(at: indexPath.row) |
| | | tableView.deleteRows(at: [indexPath], with: .automatic) |
| | | tableView.endUpdates() |
| | | weakSelf.cons_tableHei.constant = Double(weakSelf.weeklyCourseModels.flatMap({$0.courses}).count) * 70 + 58 * Double(weakSelf.weeklyCourseModels.count) |
| | | UIView.animate(withDuration: 0.3) { |
| | | weakSelf.view.layoutIfNeeded() |
| | | weakSelf.viewDidLayoutSubviews() |
| | | } |
| | | }).disposed(by: weakSelf.disposeBag) |
| | | //请假 |
| | | if m.type == 1{ |
| | | Services.startCourceRreverse(courseId: m.id, time: weakSelf.currentDate.jq_format("yyyy-MM-dd"), stuId: stuId).subscribe(onNext: { data in |
| | | alertSuccess(msg: "请假成功") |
| | | tableView.beginUpdates() |
| | | weakSelf.weeklyCourseModel?.data.remove(at: indexPath.row) |
| | | tableView.deleteRows(at: [indexPath], with: .automatic) |
| | | tableView.endUpdates() |
| | | weakSelf.cons_tableHei.constant = 58 + 70 * Double(weakSelf.weeklyCourseModel?.data.count ?? 0) |
| | | UIView.animate(withDuration: 0.3) { |
| | | weakSelf.view.layoutIfNeeded() |
| | | weakSelf.viewDidLayoutSubviews() |
| | | } |
| | | }).disposed(by: weakSelf.disposeBag) |
| | | } |
| | | |
| | | //购课 |
| | | if m.type == 2{ |
| | | let vc = ExperienceCourseVC(courseId: m.id) |
| | | weakSelf.push(vc: vc) |
| | | } |
| | | |
| | | } |
| | | } |
| | | return cell |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | return weeklyCourseModels[section].courses.count |
| | | return weeklyCourseModel?.data.count ?? 0 |
| | | } |
| | | |
| | | func numberOfSections(in tableView: UITableView) -> Int { |
| | | return weeklyCourseModels.count |
| | | return 1 |
| | | } |
| | | |
| | | 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") |
| | | func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { |
| | | if let m = weeklyCourseModel{ |
| | | 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 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 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.tag = 10 + section |
| | | btn_detial.addTarget(self, action: #selector(localDetailAction(btn:)), for: .touchUpInside) |
| | | 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() |
| | | } |
| | | } |
| | | let btn_detial = QMUIButton(type: .custom) |
| | | btn_detial.setTitle("位置详情", for: .normal) |
| | | btn_detial.tag = 10 + section |
| | | btn_detial.addTarget(self, action: #selector(localDetailAction(btn:)), for: .touchUpInside) |
| | | 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: "%@ %.1lfkm", m.areaName,m.siteDistance) |
| | | } |
| | | if let label = headerView?.contentView.viewWithTag(1000) as? UILabel{ |
| | | label.text = String(format: "%@ %.1lfkm", m.name,m.distance) |
| | | } |
| | | |
| | | headerView?.contentView.backgroundColor = .white |
| | | return headerView |
| | | } |
| | | headerView?.contentView.backgroundColor = .white |
| | | return headerView |
| | | } |
| | | return nil |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { |
| | | return 58 |