Migrate from iOS 17 Observation to iOS 16-compatible Combine architecture.
Lower deployment target to iOS 16, replace @Observable with ObservableObject, add navigation and UI compatibility shims, and include login smoke UI tests. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -6,7 +6,7 @@
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Observation
|
||||
import Combine
|
||||
|
||||
/// 任务云盘选择项实体,表示发布任务表单中的云盘附件。
|
||||
struct TaskCloudSelectionItem: Identifiable, Hashable {
|
||||
@ -43,19 +43,18 @@ struct TaskLocalUploadItem: Identifiable, Hashable {
|
||||
|
||||
/// 发布任务 ViewModel,负责表单、附件上传和提交任务。
|
||||
@MainActor
|
||||
@Observable
|
||||
final class TaskCreateViewModel {
|
||||
var taskName = ""
|
||||
var remark = ""
|
||||
var urgentHourText = "0"
|
||||
var selectedOrder: AvailableOrderResponse?
|
||||
var availableOrders: [AvailableOrderResponse] = []
|
||||
var selectedCloudFiles: [TaskCloudSelectionItem] = []
|
||||
var selectedLocalFiles: [TaskLocalUploadItem] = []
|
||||
var isLoadingOrders = false
|
||||
var isSubmitting = false
|
||||
var errorMessage: String?
|
||||
var didSubmitSuccessfully = false
|
||||
final class TaskCreateViewModel: ObservableObject {
|
||||
@Published var taskName = ""
|
||||
@Published var remark = ""
|
||||
@Published var urgentHourText = "0"
|
||||
@Published var selectedOrder: AvailableOrderResponse?
|
||||
@Published var availableOrders: [AvailableOrderResponse] = []
|
||||
@Published var selectedCloudFiles: [TaskCloudSelectionItem] = []
|
||||
@Published var selectedLocalFiles: [TaskLocalUploadItem] = []
|
||||
@Published var isLoadingOrders = false
|
||||
@Published var isSubmitting = false
|
||||
@Published var errorMessage: String?
|
||||
@Published var didSubmitSuccessfully = false
|
||||
|
||||
/// 判断当前表单是否满足提交按钮启用条件。
|
||||
var canSubmit: Bool {
|
||||
|
||||
Reference in New Issue
Block a user