杨锴
2024-09-14 7dbd89e0e71513a9a800f693220276a540e3a328
XQMuse/Root/TreeGroup/VC/TreeTeskEnergyExchangeVC.swift
@@ -7,14 +7,40 @@
import UIKit
import JQTools
import RxSwift
import RxCocoa
import RxRelay
class TreeTeskExchangeViewModel:RefreshModel<EnergyExchangeGiftModel>{
            var energyValue = BehaviorRelay<Int>(value:0)
            override func api() -> (Observable<BaseResponse<[EnergyExchangeGiftModel]>>)? {
                        return Services.energyExchangeGift(page: page)
            }
}
class TreeTeskEnergyExchangeVC: BaseVC {
            @IBOutlet weak var tableView: UITableView!
            @IBOutlet weak var label_energy: UILabel!
            @IBOutlet weak var image_qrCode: UIImageView!
            var viewModel = TreeTeskExchangeViewModel()
            override func viewDidLoad() {
                        super.viewDidLoad()
                        title = "礼品兑换"
                        viewModel.configure(tableView)
                        viewModel.beginRefresh()
                        Services.getTotalEnergy().subscribe(onNext: {[weak self] data in
                                    self?.viewModel.energyValue.accept(data.data ?? 0)
                                    self?.label_energy.text = "\(data.data ?? 0)"
                        }).disposed(by: disposeBag)
                        Services.getCustomerCode().subscribe(onNext: {[weak self] data in
                                    self?.image_qrCode.sd_setImage(with: URL(string: data.data ?? ""))
                        }).disposed(by: disposeBag)
            }
            override func setUI() {
@@ -43,25 +69,42 @@
            func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
                        let attribute = AttributedStringbuilder.build().add(string: "是否确认使用X能量值兑换当前礼品?\n兑换后系统将自动扣除能量值", withFont: .systemFont(ofSize: 14, weight: .medium), withColor: .black.withAlphaComponent(0.59), indent: 0, lineSpace: 6).mutableAttributedString
                        let m = viewModel.dataSource.value[indexPath.row]
                        guard m.receiveStatus == .no else {
                                    CommonAlertView.show(title: "提示", content: "你已经兑换过了", isSingle: true) { _ in
                                    }
                                    return
                        }
                        guard viewModel.energyValue.value > m.energyValue else {
                                    CommonAlertView.show(title: "提示", content: "兑换能量值不足", isSingle: true) { _ in
                                    }
                                    return
                        }
                        let attribute = AttributedStringbuilder.build().add(string: "是否确认使用\(m.energyValue)能量值兑换当前礼品?\n兑换后系统将自动扣除能量值", withFont: .systemFont(ofSize: 14, weight: .medium), withColor: .black.withAlphaComponent(0.59), indent: 0, lineSpace: 6).mutableAttributedString
                        CommonAlertView.show(title: "提示", attribute: attribute, isSingle: false, cancelStr: "再想想", completeStr: "确认") { state in
                                    if state{
                                                TreeTeskExchangeSuccessView.show()
                                                Services.exchangeGift(prizeId: m.id).subscribe(onNext: {data in
                                                            TreeTeskExchangeSuccessView.show()
                                                }).disposed(by: self.disposeBag)
                                    }
                        }
            }
            func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                        let m = viewModel.dataSource.value[indexPath.row]
                        let cell = tableView.dequeueReusableCell(withIdentifier: "_TreeTeskEnergyTCell") as! TreeTeskEnergyTCell
                        cell.isExchanged(indexPath.row == 0)
                        cell.setEnergyExchangeGiftModel(m)
                        return cell
            }
            func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
                        return 11
                        return viewModel.dataSource.value.count
            }
            func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {