import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../providers/watermark_provider.dart'; /// 首页仪表盘上「水印相机」卡片的摘要:已上传张数 + 最近一张的日期。 /// /// 卡片高度由 [AppModule.summary] 那段固定高度占位决定(见 dashboard_page), /// 所以这里只负责填内容,布局和「笔记」卡片保持一致 —— /// 每格都是「标签 + 加粗数值」两行,少一个卡片就会比别的矮一截。 /// /// 数据来自 [photoOverviewProvider](只取 1 条),不碰列表页那套状态。 class WatermarkModuleSummary extends ConsumerWidget { const WatermarkModuleSummary({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final page = ref.watch(photoOverviewProvider).value; final latest = (page == null || page.items.isEmpty) ? null : page.items.first.takenAt; return Row( children: [ Expanded(child: _item('已存', page == null ? null : '${page.total} 张')), Expanded(child: _item('最近拍摄', latest == null ? null : _shortDate(latest))), ], ); } /// 后端给的是 `yyyy-MM-dd HH:mm`,卡片上只要 `MM-dd` String _shortDate(String value) => value.length >= 10 ? value.substring(5, 10) : value; Widget _item(String label, String? value) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(label, style: const TextStyle(fontSize: 11, color: Color(0xFF8D6E63))), const SizedBox(height: 3), Text( value ?? '--', maxLines: 1, overflow: TextOverflow.ellipsis, style: const TextStyle( fontSize: 14.5, fontWeight: FontWeight.bold, color: Color(0xFF5D4037), ), ), ], ); } }