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:
浅念
2026-09-23 11:07:54 +08:00
parent 3d45350711
commit c2143e1f94
10 changed files with 288 additions and 39 deletions
@@ -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