// // SPWalletViewController.swift // MoviaBox // // Created by 佳尔 on 2025/4/28. // import UIKit class SPWalletViewController: SPViewController { private lazy var dataArr: [SPMineItem] = { let arr = [ SPMineItem(type: .consumptionRecords, iconImage: UIImage(named: "records_icon_01"), title: "Consumption records".localized), SPMineItem(type: .orderRecord, iconImage: UIImage(named: "records_icon_02"), title: "Purchase records".localized), SPMineItem(type: .rewardCoins, iconImage: UIImage(named: "coin_icon_03"), title: "Reward Coins".localized), SPMineItem(type: .feedBack, iconImage: UIImage(named: "feed_back_icon_03"), title: "FeedBack".localized), ] return arr }() //MARK: UI属性 private lazy var tableView: SPTableView = { let tableView = SPTableView(frame: .zero, style: .plain) tableView.delegate = self tableView.dataSource = self tableView.rowHeight = 48 SPWalletCell.registerCell(tableView: tableView) return tableView }() private lazy var headerView: SPWalletHeaderView = { let view = SPWalletHeaderView(frame: .init(x: 0, y: 0, width: kSPScreenWidth, height: 115)) view.userInfo = SPLoginManager.manager.userInfo return view }() override func viewDidLoad() { super.viewDidLoad() self.edgesForExtendedLayout = .top self.title = "Details".localized _setupUI() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.setNavigationBarHidden(false, animated: true) self.setNavigationNormalStyle(backgroundColor: .clear, isTranslucent: true) } } extension SPWalletViewController { private func _setupUI() { self.tableView.tableHeaderView = self.headerView view.addSubview(tableView) tableView.snp.makeConstraints { make in make.top.equalToSuperview().offset(kSPNavBarHeight) make.left.right.bottom.equalToSuperview() } } } //MARK: -------------- UITableViewDelegate & UITableViewDataSource -------------- extension SPWalletViewController: UITableViewDelegate, UITableViewDataSource { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = SPWalletCell.dequeueReusableCell(tableView: tableView, indexPath: indexPath) cell.item = dataArr[indexPath.row] return cell } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return dataArr.count } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let item = dataArr[indexPath.row] switch item.type { case .feedBack: let vc = SPFeedbackViewController() self.navigationController?.pushViewController(vc, animated: true) case .rewardCoins: let vc = SPRewardCoinsViewController() self.navigationController?.pushViewController(vc, animated: true) case .consumptionRecords: let vc = SPConsumptionRecordsViewController() self.navigationController?.pushViewController(vc, animated: true) case .orderRecord: let vc = SPOrderRecordsPageViewController() self.navigationController?.pushViewController(vc, animated: true) default: break } } }