// // WithdrawalAuditViewController.swift // suixinkan // // Created by Codex on 2026/6/26. // import UIKit /// 提现审核列表页。 final class WithdrawalAuditViewController: ModuleTableViewController { private let viewModel = WithdrawalAuditViewModel() override func viewDidLoad() { title = "提现审核" navigationItem.rightBarButtonItem = UIBarButtonItem( title: "全部", style: .plain, target: self, action: #selector(cycleFilter) ) super.viewDidLoad() wireViewModel(viewModel) { [weak self] in self?.updateFilterTitle() } } override func tableRowCount() -> Int { viewModel.filteredRecords.count } override func configureCell(_ cell: TitleSubtitleTableViewCell, at indexPath: IndexPath) { let record = viewModel.filteredRecords[indexPath.row] cell.configure(title: "¥\(record.amount)", subtitle: record.statusLabel, detail: record.createdAt) } override func reloadContent() async { await viewModel.reload(api: services.walletAPI) updateFilterTitle() } override func willDisplayTableRow(at indexPath: IndexPath) { guard indexPath.row >= viewModel.filteredRecords.count - 2 else { return } Task { await viewModel.loadMore(api: services.walletAPI) } } @objc private func cycleFilter() { let filters = WithdrawalAuditFilter.allCases guard let index = filters.firstIndex(of: viewModel.selectedFilter) else { return } let next = filters[(index + 1) % filters.count] Task { viewModel.selectFilter(next) reloadTable() } } private func updateFilterTitle() { navigationItem.rightBarButtonItem?.title = viewModel.selectedFilter.title } } extension WithdrawalAuditViewModel: ViewModelBindable {}