从 iOS 17 Observation 迁移至 iOS 16 兼容的 Combine 架构
将最低部署版本降至 iOS 16,以 ObservableObject 替换 @Observable,新增导航与 UI 兼容层,并补充登录冒烟 UI 测试。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -6,24 +6,23 @@
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Observation
|
||||
import Combine
|
||||
import SwiftUI
|
||||
|
||||
@MainActor
|
||||
@Observable
|
||||
/// 景区结算申请 ViewModel,管理可申请景区、多选、金额备注和提交。
|
||||
final class ScenicSettlementViewModel {
|
||||
var existingScenics: [BusinessScope] = []
|
||||
var options: [ScenicSettlementOption] = []
|
||||
var amountText = ""
|
||||
var remarkText = ""
|
||||
var isLoading = false
|
||||
var isSubmitting = false
|
||||
var loadFailed = false
|
||||
var loadFailureReason: String?
|
||||
var message: String?
|
||||
final class ScenicSettlementViewModel: ObservableObject {
|
||||
@Published var existingScenics: [BusinessScope] = []
|
||||
@Published var options: [ScenicSettlementOption] = []
|
||||
@Published var amountText = ""
|
||||
@Published var remarkText = ""
|
||||
@Published var isLoading = false
|
||||
@Published var isSubmitting = false
|
||||
@Published var loadFailed = false
|
||||
@Published var loadFailureReason: String?
|
||||
@Published var message: String?
|
||||
|
||||
private var selectedIds = Set<Int>()
|
||||
@Published private var selectedIds = Set<Int>()
|
||||
|
||||
/// 已选择景区数量。
|
||||
var selectedCount: Int {
|
||||
@ -176,16 +175,15 @@ enum ScenicSettlementAmountValidation: Equatable {
|
||||
}
|
||||
|
||||
@MainActor
|
||||
@Observable
|
||||
/// 景区结算审核 ViewModel,聚合景区申请和权限申请审核记录。
|
||||
final class ScenicSettlementReviewViewModel {
|
||||
var scenicApplications: [ScenicApplicationPendingResponse] = []
|
||||
var roleApplications: [RoleApplyPendingResponse] = []
|
||||
var isLoading = false
|
||||
var message: String?
|
||||
var loadFailedAll = false
|
||||
var scenicLoadFailed = false
|
||||
var roleLoadFailed = false
|
||||
final class ScenicSettlementReviewViewModel: ObservableObject {
|
||||
@Published var scenicApplications: [ScenicApplicationPendingResponse] = []
|
||||
@Published var roleApplications: [RoleApplyPendingResponse] = []
|
||||
@Published var isLoading = false
|
||||
@Published var message: String?
|
||||
@Published var loadFailedAll = false
|
||||
@Published var scenicLoadFailed = false
|
||||
@Published var roleLoadFailed = false
|
||||
|
||||
/// 待审核记录数量。
|
||||
var pendingCount: Int {
|
||||
|
||||
Reference in New Issue
Block a user