Advance UIKit rewrite with AMap integration and core UI modules.
Integrate高德 SDK with simulator-safe build flags, add map views for operating area and punch points, refactor main tabs and key feature screens to UIKit with Diffable lists, and document Swift concurrency defaults in AGENTS.md. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -12,6 +12,7 @@ final class WalletViewController: ModuleTableViewController {
|
||||
private let viewModel = WalletViewModel()
|
||||
private let summaryLabel = UILabel()
|
||||
|
||||
/// 视图加载完成后的 UI 初始化与数据绑定。
|
||||
override func viewDidLoad() {
|
||||
title = "我的钱包"
|
||||
navigationItem.rightBarButtonItem = UIBarButtonItem(
|
||||
@ -25,6 +26,7 @@ final class WalletViewController: ModuleTableViewController {
|
||||
wireViewModel(viewModel) { [weak self] in self?.updateSummary() }
|
||||
}
|
||||
|
||||
/// 初始化Header相关 UI 或状态。
|
||||
private func setupHeader() {
|
||||
summaryLabel.numberOfLines = 0
|
||||
summaryLabel.font = .systemFont(ofSize: 14)
|
||||
@ -34,6 +36,7 @@ final class WalletViewController: ModuleTableViewController {
|
||||
tableView.tableHeaderView = summaryLabel
|
||||
}
|
||||
|
||||
/// table行Count相关逻辑。
|
||||
override func tableRowCount() -> Int {
|
||||
switch viewModel.selectedTab {
|
||||
case .earnings:
|
||||
@ -43,6 +46,7 @@ final class WalletViewController: ModuleTableViewController {
|
||||
}
|
||||
}
|
||||
|
||||
/// 配置Cell展示内容。
|
||||
override func configureCell(_ cell: TitleSubtitleTableViewCell, at indexPath: IndexPath) {
|
||||
switch viewModel.selectedTab {
|
||||
case .earnings:
|
||||
@ -55,16 +59,19 @@ final class WalletViewController: ModuleTableViewController {
|
||||
}
|
||||
}
|
||||
|
||||
/// 刷新Content。
|
||||
override func reloadContent() async {
|
||||
await viewModel.loadInitial(api: services.walletAPI, staffId: services.staffId)
|
||||
updateSummary()
|
||||
}
|
||||
|
||||
/// 更新Summary状态。
|
||||
private func updateSummary() {
|
||||
summaryLabel.text = "\(viewModel.withdrawableText) · \(viewModel.totalAmountText)"
|
||||
navigationItem.rightBarButtonItem?.title = viewModel.selectedTab == .earnings ? "提现记录" : "收益明细"
|
||||
}
|
||||
|
||||
/// openWithdraw相关逻辑。
|
||||
@objc private func openWithdraw() {
|
||||
navigationController?.pushViewController(WalletWithdrawViewController(), animated: true)
|
||||
}
|
||||
@ -78,6 +85,7 @@ final class WalletWithdrawViewController: ModuleTableViewController {
|
||||
private let amountField = UITextField()
|
||||
private let smsField = UITextField()
|
||||
|
||||
/// 视图加载完成后的 UI 初始化与数据绑定。
|
||||
override func viewDidLoad() {
|
||||
title = "申请提现"
|
||||
navigationItem.rightBarButtonItems = [
|
||||
@ -100,21 +108,26 @@ final class WalletWithdrawViewController: ModuleTableViewController {
|
||||
wireViewModel(viewModel) { }
|
||||
}
|
||||
|
||||
/// table行Count相关逻辑。
|
||||
override func tableRowCount() -> Int { 1 }
|
||||
|
||||
/// 配置Cell展示内容。
|
||||
override func configureCell(_ cell: TitleSubtitleTableViewCell, at indexPath: IndexPath) {
|
||||
let amount = viewModel.info?.amountWithdrawable ?? "0"
|
||||
cell.configure(title: "可提现", subtitle: "¥ \(amount)")
|
||||
}
|
||||
|
||||
/// 刷新Content。
|
||||
override func reloadContent() async {
|
||||
await viewModel.load(api: services.walletAPI)
|
||||
}
|
||||
|
||||
/// sendSms相关逻辑。
|
||||
@objc private func sendSms() {
|
||||
Task { await viewModel.sendSms(api: services.walletAPI) }
|
||||
}
|
||||
|
||||
/// 提交。
|
||||
@objc private func submit() {
|
||||
viewModel.amountText = amountField.text ?? ""
|
||||
viewModel.smsCode = smsField.text ?? ""
|
||||
|
||||
Reference in New Issue
Block a user