实现订单 Tab 并接入扫码核销流程
This commit is contained in:
@ -0,0 +1,68 @@
|
||||
//
|
||||
// HistoricalShootingInfoViewController.swift
|
||||
// suixinkan
|
||||
//
|
||||
|
||||
import SnapKit
|
||||
import UIKit
|
||||
|
||||
/// 历史拍摄信息详情页。
|
||||
final class HistoricalShootingInfoViewController: BaseViewController, UITableViewDataSource {
|
||||
|
||||
private let orderNumber: String
|
||||
private let orderAPI: OrderAPI
|
||||
private var response: MultiTravelShootHistoryResponse?
|
||||
private let tableView = UITableView(frame: .zero, style: .insetGrouped)
|
||||
|
||||
init(orderNumber: String, orderAPI: OrderAPI = NetworkServices.shared.orderAPI) {
|
||||
self.orderNumber = orderNumber
|
||||
self.orderAPI = orderAPI
|
||||
super.init(nibName: nil, bundle: nil)
|
||||
}
|
||||
|
||||
@available(*, unavailable)
|
||||
required init?(coder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
override func setupNavigationBar() {
|
||||
title = "历史拍摄"
|
||||
}
|
||||
|
||||
override func setupUI() {
|
||||
tableView.dataSource = self
|
||||
view.addSubview(tableView)
|
||||
tableView.snp.makeConstraints { $0.edges.equalToSuperview() }
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
Task { await loadData() }
|
||||
}
|
||||
|
||||
private func loadData() async {
|
||||
showLoading()
|
||||
defer { hideLoading() }
|
||||
do {
|
||||
response = try await orderAPI.shootHistory(orderNumber: orderNumber)
|
||||
tableView.reloadData()
|
||||
} catch {
|
||||
showToast(error.localizedDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func numberOfSections(in tableView: UITableView) -> Int { 1 }
|
||||
|
||||
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
||||
response?.photogSpotList.count ?? 0
|
||||
}
|
||||
|
||||
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||
let cell = UITableViewCell(style: .subtitle, reuseIdentifier: nil)
|
||||
guard let spot = response?.photogSpotList[indexPath.row] else { return cell }
|
||||
cell.textLabel?.text = spot.scenicSpotName
|
||||
cell.detailTextLabel?.text = "\(spot.photographerDisplayName) · \(spot.files.count)个素材"
|
||||
cell.accessoryType = .disclosureIndicator
|
||||
return cell
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user