feat(app): 服务端历史行首缩略图 + 上传中心空态引导至服务端历史

- UploadSessionPhoto 解析可选 preview;历史行首有 thumb 渲染 PhotoThumbnail
 (SizedBox 定寸——Row 内裸 AspectRatio 无界约束),缺省回退中性占位
- 上传中心整体空态加「仅本机存储」说明 + 「查看服务端历史」tonal 按钮
 (与右上 History 同路由);「需关注」空态保持专属文案不加引导
- l10n 增 queueEmptyDeviceHint / queueViewServerHistory

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-29 12:04:06 +08:00
parent f1912998a8
commit 3728eb93d9
10 changed files with 141 additions and 18 deletions
+13 -3
View File
@@ -427,14 +427,24 @@ class _TaskListView extends ConsumerWidget {
),
data: (tasks) {
if (tasks.isEmpty) {
// 页面 15:异常视图空态专用文案(区别于整体队列空态)。
// 页面 15:异常视图空态专用文案(区别于整体队列空态);整体空态
// 附「本机口径说明 + 服务端历史」引导(卸载重装后本机库为空)。
final needsAttentionEmpty =
stateFilter == QueueStateFilter.needsAttention;
return EmptyState(
icon: stateFilter == QueueStateFilter.needsAttention
icon: needsAttentionEmpty
? Icons.task_alt_outlined
: Icons.cloud_upload_outlined,
title: stateFilter == QueueStateFilter.needsAttention
title: needsAttentionEmpty
? l10n.uploadsNoNeedsAttention
: l10n.queueEmpty,
subtitle: needsAttentionEmpty ? null : l10n.queueEmptyDeviceHint,
actionLabel: needsAttentionEmpty
? null
: l10n.queueViewServerHistory,
onAction: needsAttentionEmpty
? null
: () => Navigator.of(context).pushNamed('/server-history'),
);
}
return ListView.builder(