添加景区选择与合作订单流程并对齐 Android

This commit is contained in:
2026-07-07 10:48:43 +08:00
parent ef1d3b4af5
commit c4057537d2
50 changed files with 5603 additions and 191 deletions

View File

@ -0,0 +1,48 @@
//
// PermissionApplyStatusViewModel.swift
// suixinkan
//
import Foundation
/// ViewModel Android `PermissionApplyStatusViewModel`
final class PermissionApplyStatusViewModel {
private(set) var pendingData: RoleApplyPendingResponse?
private(set) var isLoading = false
private(set) var rolePermissionList: [RolePermissionResponse] = []
var onStateChange: (() -> Void)?
var onNavigateToEdit: ((RoleApplyPendingResponse) -> Void)?
private let applyCode: String
private let appStore: AppStore
init(applyCode: String, appStore: AppStore = .shared) {
self.applyCode = applyCode
self.appStore = appStore
rolePermissionList = appStore.rolePermissionList()
}
func loadPendingData(api: HomeAPI) async {
isLoading = true
notifyStateChange()
do {
let pendingList = try await api.roleApplyPending()
pendingData = pendingList.first { $0.code == applyCode }
} catch {
pendingData = nil
}
isLoading = false
notifyStateChange()
}
func navigateToEditIfRejected() {
guard let pendingData, pendingData.status == PermissionApplyPendingStatus.rejected else { return }
onNavigateToEdit?(pendingData)
}
private func notifyStateChange() {
onStateChange?()
}
}