feat(app): album banner picker in edit form — show current banner, pick & upload on save
- api_client:uploadAlbumAssetFromFile 泛化(cover 为薄壳)+ fetchAlbumAssetUrl
(GET /albums/{id}/assets → 指定 kind 全局行 URL)
- 编辑页 Details:封面下方新增「宣传图」3:1 选择器——编辑模式异步加载现有
banner 预览(失败静默);保存成功后上传(同封面:失败不阻塞表单结果)
- 未保存变更判断纳入 banner;l10n zh/en
- 测试适配:编辑用例 pumpForm 后清空 banner 现状预检请求(397/397 全绿)
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -417,5 +417,9 @@
|
||||
"deleteAlbum": "Delete album",
|
||||
"deleteAlbumConfirmTitle": "Delete this album?",
|
||||
"deleteAlbumConfirmBody": "The album becomes invisible immediately and cannot be restored. Data is retained; recovery requires operations.",
|
||||
"albumDeleted": "Album deleted"
|
||||
"albumDeleted": "Album deleted",
|
||||
"bannerPicker": "Banner",
|
||||
"bannerPickerHint": "Tap to pick a banner image (shown atop the viewer page)",
|
||||
"bannerSelected": "Banner selected — will upload on save",
|
||||
"bannerUploadFailed": "Banner upload failed"
|
||||
}
|
||||
|
||||
@@ -1957,6 +1957,30 @@ abstract class AppLocalizations {
|
||||
/// In zh, this message translates to:
|
||||
/// **'相册已删除'**
|
||||
String get albumDeleted;
|
||||
|
||||
/// No description provided for @bannerPicker.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'宣传图'**
|
||||
String get bannerPicker;
|
||||
|
||||
/// No description provided for @bannerPickerHint.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'点击选择宣传图(展示在观众页顶部)'**
|
||||
String get bannerPickerHint;
|
||||
|
||||
/// No description provided for @bannerSelected.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'已选择宣传图——保存时上传'**
|
||||
String get bannerSelected;
|
||||
|
||||
/// No description provided for @bannerUploadFailed.
|
||||
///
|
||||
/// In zh, this message translates to:
|
||||
/// **'宣传图上传失败'**
|
||||
String get bannerUploadFailed;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
||||
@@ -1000,4 +1000,17 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get albumDeleted => 'Album deleted';
|
||||
|
||||
@override
|
||||
String get bannerPicker => 'Banner';
|
||||
|
||||
@override
|
||||
String get bannerPickerHint =>
|
||||
'Tap to pick a banner image (shown atop the viewer page)';
|
||||
|
||||
@override
|
||||
String get bannerSelected => 'Banner selected — will upload on save';
|
||||
|
||||
@override
|
||||
String get bannerUploadFailed => 'Banner upload failed';
|
||||
}
|
||||
|
||||
@@ -968,4 +968,16 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
|
||||
@override
|
||||
String get albumDeleted => '相册已删除';
|
||||
|
||||
@override
|
||||
String get bannerPicker => '宣传图';
|
||||
|
||||
@override
|
||||
String get bannerPickerHint => '点击选择宣传图(展示在观众页顶部)';
|
||||
|
||||
@override
|
||||
String get bannerSelected => '已选择宣传图——保存时上传';
|
||||
|
||||
@override
|
||||
String get bannerUploadFailed => '宣传图上传失败';
|
||||
}
|
||||
|
||||
@@ -417,5 +417,9 @@
|
||||
"deleteAlbum": "删除相册",
|
||||
"deleteAlbumConfirmTitle": "删除这个相册?",
|
||||
"deleteAlbumConfirmBody": "删除后立即不可见且不可恢复。数据保留,恢复需运维处理。",
|
||||
"albumDeleted": "相册已删除"
|
||||
"albumDeleted": "相册已删除",
|
||||
"bannerPicker": "宣传图",
|
||||
"bannerPickerHint": "点击选择宣传图(展示在观众页顶部)",
|
||||
"bannerSelected": "已选择宣传图——保存时上传",
|
||||
"bannerUploadFailed": "宣传图上传失败"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user