移除 MJRefresh 依赖,恢复 SwiftUI 系统下拉刷新。
同时收紧各 ViewModel 内部 isLoading 可见性,避免不必要的视图刷新。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -63,7 +63,7 @@ final class CloudStorageViewModel: ObservableObject {
|
||||
@Published var searchText = ""
|
||||
@Published var selectedFilter: CloudDriveFilter = .all
|
||||
@Published var selectedSort: CloudDriveSort = .updatedDesc
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isLoadingMore = false
|
||||
@Published var isMutating = false
|
||||
@Published var errorMessage: String?
|
||||
@ -267,9 +267,9 @@ final class MediaLibraryViewModel: ObservableObject {
|
||||
@Published var page = 1
|
||||
@Published var keyword = ""
|
||||
@Published var selectedAuditFilter: MediaLibraryAuditFilter = .all
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isLoadingMore = false
|
||||
@Published var isLoadingDetail = false
|
||||
private var isLoadingDetail = false
|
||||
@Published var errorMessage: String?
|
||||
|
||||
private let pageSize = 10
|
||||
@ -614,7 +614,7 @@ final class AlbumListViewModel: ObservableObject {
|
||||
@Published var searchText = ""
|
||||
@Published var startTime = ""
|
||||
@Published var endTime = ""
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isLoadingMore = false
|
||||
@Published var isMutating = false
|
||||
@Published var errorMessage: String?
|
||||
@ -718,7 +718,7 @@ final class AlbumDetailViewModel: ObservableObject {
|
||||
@Published var selectedTab: AlbumFileTab = .image
|
||||
@Published var total = 0
|
||||
@Published var page = 1
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isLoadingMore = false
|
||||
@Published var isMutating = false
|
||||
@Published var errorMessage: String?
|
||||
@ -862,7 +862,7 @@ final class AlbumTrailerViewModel: ObservableObject {
|
||||
@Published var selectedFolderId: Int?
|
||||
@Published var localFiles: [AlbumLocalUploadFile] = []
|
||||
@Published var uploadProgress = 0
|
||||
@Published var isLoadingFolders = false
|
||||
private var isLoadingFolders = false
|
||||
@Published var isSubmitting = false
|
||||
@Published var errorMessage: String?
|
||||
@Published var didUploadSuccessfully = false
|
||||
|
||||
@ -135,7 +135,7 @@ final class LocationReportHistoryViewModel: ObservableObject {
|
||||
@Published var endDate: Date?
|
||||
@Published var items: [LocationReportHistoryItem] = []
|
||||
@Published var errorMessage: String?
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isLoadingMore = false
|
||||
@Published var total = 0
|
||||
|
||||
|
||||
@ -20,8 +20,8 @@ final class PaymentCollectionViewModel: ObservableObject {
|
||||
@Published var remarkText = ""
|
||||
@Published var currentPayUrl = ""
|
||||
@Published var qrImage: UIImage?
|
||||
@Published var isLoading = false
|
||||
@Published var isPolling = false
|
||||
private var isLoading = false
|
||||
private var isPolling = false
|
||||
@Published var errorMessage: String?
|
||||
@Published var status: PaymentCollectionStatus = .idle
|
||||
|
||||
@ -193,7 +193,7 @@ private extension String {
|
||||
/// 收款记录 ViewModel,管理收款记录加载、日期分组和汇总兜底。
|
||||
final class PaymentCollectionRecordViewModel: ObservableObject {
|
||||
@Published var groups: [PaymentCollectionRecordGroup] = []
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var errorMessage: String?
|
||||
|
||||
/// 加载当前景区收款记录,无景区时不请求接口。
|
||||
|
||||
@ -13,7 +13,7 @@ import Combine
|
||||
final class ProfileViewModel: ObservableObject {
|
||||
@Published var userInfo: UserInfoResponse?
|
||||
@Published var realNameInfo: RealNameInfo?
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isSaving = false
|
||||
@Published var isEditingProfile = false
|
||||
@Published var editingNickname = ""
|
||||
|
||||
@ -15,7 +15,7 @@ final class PunchPointListViewModel: ObservableObject {
|
||||
@Published var items: [PunchPointItem] = []
|
||||
@Published var selectedDetail: PunchPointItem?
|
||||
@Published var errorMessage: String?
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isLoadingMore = false
|
||||
@Published var total = 0
|
||||
|
||||
|
||||
@ -179,7 +179,7 @@ enum ScenicSettlementAmountValidation: Equatable {
|
||||
final class ScenicSettlementReviewViewModel: ObservableObject {
|
||||
@Published var scenicApplications: [ScenicApplicationPendingResponse] = []
|
||||
@Published var roleApplications: [RoleApplyPendingResponse] = []
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var message: String?
|
||||
@Published var loadFailedAll = false
|
||||
@Published var scenicLoadFailed = false
|
||||
|
||||
@ -39,7 +39,7 @@ final class TaskCloudFileSelectionViewModel: ObservableObject {
|
||||
@Published var searchText = ""
|
||||
@Published var selectedFilter: TaskCloudFileFilter = .all
|
||||
@Published var selectedFiles: [CloudDriveFile] = []
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isLoadingMore = false
|
||||
@Published var errorMessage: String?
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ final class TaskCreateViewModel: ObservableObject {
|
||||
@Published var availableOrders: [AvailableOrderResponse] = []
|
||||
@Published var selectedCloudFiles: [TaskCloudSelectionItem] = []
|
||||
@Published var selectedLocalFiles: [TaskLocalUploadItem] = []
|
||||
@Published var isLoadingOrders = false
|
||||
private(set) var isLoadingOrders = false
|
||||
@Published var isSubmitting = false
|
||||
@Published var errorMessage: String?
|
||||
@Published var didSubmitSuccessfully = false
|
||||
|
||||
@ -38,7 +38,7 @@ enum TaskStatusFilter: Int, CaseIterable, Identifiable {
|
||||
/// 任务管理 ViewModel,负责任务列表、筛选、分页和错误状态。
|
||||
@MainActor
|
||||
final class TaskManagementViewModel: ObservableObject {
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isLoadingMore = false
|
||||
@Published var tasks: [PhotographerTaskItem] = []
|
||||
@Published var total = 0
|
||||
@ -146,7 +146,7 @@ final class TaskManagementViewModel: ObservableObject {
|
||||
/// 任务详情 ViewModel,负责详情加载和列表摘要兜底展示。
|
||||
@MainActor
|
||||
final class TaskDetailViewModel: ObservableObject {
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var detail: TaskDetailResponse?
|
||||
@Published var errorMessage: String?
|
||||
|
||||
|
||||
@ -229,7 +229,7 @@ final class WithdrawApplyViewModel: ObservableObject {
|
||||
@Published var info: WithdrawInfoResponse?
|
||||
@Published var amountText = ""
|
||||
@Published var smsCode = ""
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isSubmitting = false
|
||||
@Published var smsCountdown = 0
|
||||
@Published var errorMessage: String?
|
||||
@ -309,7 +309,7 @@ final class WithdrawalSettingsViewModel: ObservableObject {
|
||||
@Published var frontImageURL = ""
|
||||
@Published var backImageURL = ""
|
||||
@Published var uploadProgress = 0
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isSubmitting = false
|
||||
@Published var smsCountdown = 0
|
||||
@Published var errorMessage: String?
|
||||
@ -442,7 +442,7 @@ final class PointsRedemptionViewModel: ObservableObject {
|
||||
@Published var overview = PointOverviewResponse()
|
||||
@Published var records: [PointWithdrawItem] = []
|
||||
@Published var pointsText = ""
|
||||
@Published var isLoading = false
|
||||
private var isLoading = false
|
||||
@Published var isSubmitting = false
|
||||
@Published var errorMessage: String?
|
||||
|
||||
|
||||
Reference in New Issue
Block a user