fix: align AI retouch template rules

This commit is contained in:
2026-08-19 10:06:50 +08:00
parent 1757ba5e36
commit 8cd6c0aac8
8 changed files with 117 additions and 46 deletions
@@ -90,7 +90,8 @@ final class TravelAlbumAIRetouchTemplateViewModel {
case .refined, .atmosphere:
return 1
case .all:
return 1 + (selectedAtmosphereTemplateId == nil ? 0 : 1)
return (selectedRefinedTemplateId == nil ? 0 : 1)
+ (selectedAtmosphereTemplateId == nil ? 0 : 1)
}
}
}
@@ -109,6 +110,11 @@ final class TravelAlbumAIRetouchTemplateViewModel {
return unavailableMessage(for: category)
}
}
if case .reretouch(_, _, .all) = workflow,
selectedRefinedTemplateId == nil,
selectedAtmosphereTemplateId == nil {
return "请至少选择一个修图模板"
}
guard let remainingQuota else {
return "剩余修图次数获取失败,请刷新后重试"
}
@@ -146,7 +152,9 @@ final class TravelAlbumAIRetouchTemplateViewModel {
atmosphereTemplates = response.atmosphereTemplates
coverTemplates = response.coverTemplates
remainingQuota = response.remainingQuota
selectedRefinedTemplateId = visibleCategories.contains(.refined) ? refinedTemplates.first?.id : nil
selectedRefinedTemplateId = visibleCategories.contains(.refined) && !isOptional(.refined)
? refinedTemplates.first?.id
: nil
selectedAtmosphereTemplateId = visibleCategories.contains(.atmosphere) && !isOptional(.atmosphere)
? atmosphereTemplates.first?.id
: nil
@@ -188,14 +196,14 @@ final class TravelAlbumAIRetouchTemplateViewModel {
}
}
/// 选择模板;仅选填分组允许再次点击取消,必选分组保持单选。
/// 选择模板;选填分组允许再次点击取消,必选分组保持单选。
func toggleTemplate(id: Int, category: TravelAlbumAIRetouchTemplateCategory) {
guard visibleCategories.contains(category),
templates(for: category).contains(where: { $0.id == id })
else { return }
switch category {
case .refined:
selectedRefinedTemplateId = id
selectedRefinedTemplateId = isOptional(category) && selectedRefinedTemplateId == id ? nil : id
case .atmosphere:
selectedAtmosphereTemplateId = isOptional(category) && selectedAtmosphereTemplateId == id ? nil : id
case .cover: