import 'package:flutter/material.dart'; import '../../core/theme/app_colors_extension.dart'; /// Pencil Component/ListCard — 列表卡片(报销申请列表等) class ListCard extends StatelessWidget { final String cardNo; final String description; final String amount; final Color? amountColor; final String date; final Widget? statusTag; final VoidCallback? onTap; const ListCard({ super.key, required this.cardNo, required this.description, required this.amount, this.amountColor, required this.date, this.statusTag, this.onTap, }); @override Widget build(BuildContext context) { final colors = Theme.of(context).extension()!; return GestureDetector( onTap: onTap, child: Container( padding: const EdgeInsets.all(12), decoration: BoxDecoration( color: colors.bgCard, borderRadius: BorderRadius.circular(8), ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Flexible( child: Text( cardNo, maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 14, fontWeight: FontWeight.w600, color: colors.textPrimary, ), ), ), const SizedBox(width: 12), Text( amount, maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 16, fontWeight: FontWeight.w700, color: amountColor ?? colors.amountPrimary, ), ), ], ), const SizedBox(height: 8), Text( description, maxLines: 2, overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 14, color: colors.textSecondary, ), ), const SizedBox(height: 8), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Flexible( child: Text( date, maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 12, color: colors.textPlaceholder, ), ), ), const SizedBox(width: 8), ?statusTag, ], ), ], ), ), ); } }