Files
feature-next-arch/lib/features/home/presentation/widgets/work_params_card.dart
2026-01-18 20:21:14 +08:00

148 lines
4.2 KiB
Dart

import 'package:flutter/material.dart';
class WorkParamsCard extends StatelessWidget {
const WorkParamsCard({super.key});
@override
Widget build(BuildContext context) {
return Container(
margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(24),
// 极淡的阴影
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.02),
blurRadius: 10,
offset: const Offset(0, 4),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// 标题行
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
// 左侧蓝色装饰条
Container(
width: 4,
height: 16,
decoration: BoxDecoration(
color: Colors.blueAccent,
borderRadius: BorderRadius.circular(2),
),
),
const SizedBox(width: 8),
const Text(
'作业参数',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: Colors.black,
),
),
],
),
// 刷新状态
Row(
children: [
Icon(Icons.refresh, size: 14, color: Colors.grey[400]),
const SizedBox(width: 4),
Text(
'刚刚更新',
style: TextStyle(fontSize: 12, color: Colors.grey[400]),
),
],
),
],
),
const SizedBox(height: 24),
// 数据展示行
IntrinsicHeight(
// 关键:使分割线高度自动充满
child: Row(
children: [
_buildParamItem('作业面积', '0', '亩'),
_buildDivider(),
_buildParamItem('作业里程', '0', 'km'),
_buildDivider(),
_buildParamItem('作业时长', '0', 'h'),
],
),
),
],
),
);
}
// 构建单个参数项
Widget _buildParamItem(String label, String value, String unit) {
return Expanded(
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
label == '作业面积'
? Icons.aspect_ratio
: label == '作业里程'
? Icons.local_shipping_outlined
: Icons.access_time,
size: 14,
color: Colors.black38,
),
const SizedBox(width: 4),
Text(
label,
style: const TextStyle(fontSize: 12, color: Colors.black38),
),
],
),
const SizedBox(height: 12),
RichText(
text: TextSpan(
children: [
TextSpan(
text: value,
style: const TextStyle(
fontSize: 28,
fontWeight: FontWeight.w700,
color: Colors.black,
fontFamily: 'Inter', // 建议使用数字显示更漂亮的字体
),
),
TextSpan(
text: ' $unit',
style: const TextStyle(
fontSize: 12,
fontWeight: FontWeight.normal,
color: Colors.black54,
),
),
],
),
),
],
),
);
}
// 垂直分割线
Widget _buildDivider() {
return VerticalDivider(
color: Colors.black.withOpacity(0.05),
thickness: 1,
indent: 10,
endIndent: 10,
);
}
}