import 'package:flutter/material.dart'; import 'package:sales_chat/theme/app_theme.dart'; /// 指标卡片组件 —— 微信风格简洁设计 /// 白底无阴影,图标配浅色圆角背景,趋势标签绿色小胶囊 class MetricCard extends StatelessWidget { final String title; final String value; final IconData icon; final Color color; final String? trend; const MetricCard({ super.key, required this.title, required this.value, required this.icon, required this.color, this.trend, }); @override Widget build(BuildContext context) { return Container( // 白底、无阴影、大圆角 decoration: BoxDecoration( color: AppTheme.cardBackground, borderRadius: BorderRadius.circular(12), ), padding: const EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ // 顶部行:图标 + 趋势标签 Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ // 图标:小圆角方块背景,颜色 10% 透明度 Container( padding: const EdgeInsets.all(8), decoration: BoxDecoration( color: color.withValues(alpha: 0.1), borderRadius: BorderRadius.circular(8), ), child: Icon(icon, color: color, size: 20), ), // 趋势标签:绿色文字 + 浅绿背景,胶囊形 if (trend != null) Container( padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 3), decoration: BoxDecoration( color: AppTheme.successColor.withValues(alpha: 0.08), borderRadius: BorderRadius.circular(10), ), child: Text( trend!, style: const TextStyle( fontSize: 11, color: AppTheme.successColor, fontWeight: FontWeight.w500, ), ), ), ], ), // 数值 + 标题 Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( value, style: const TextStyle( fontSize: 24, fontWeight: FontWeight.bold, color: AppTheme.textPrimary, height: 1.2, ), ), const SizedBox(height: 4), Text( title, style: const TextStyle( fontSize: 12, color: AppTheme.textHint, height: 1.2, ), ), ], ), ], ), ); } }