Initial commit: suixinkan_ios UIKit rewrite project.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -0,0 +1,60 @@
|
||||
//
|
||||
// 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 {}
|
||||
Reference in New Issue
Block a user