import 'package:flutter/material.dart'; import 'package:trackoffical_app/model/m_control_point.dart'; import 'package:trackoffical_app/utils.dart'; class CheckedCPRecord extends StatelessWidget{ const CheckedCPRecord({ super.key, required this.data }); final List data; @override Widget build(BuildContext context) { return ListView.builder( itemCount: data.length, itemBuilder: (context, index){ return _elem(context, data[index]); } ); } } Widget _elem(BuildContext context, MControlPoint data){ const disableColor = Color(0xffaaaaaa); const enableColor = Color(0xff333333); var result = '已完成'; Color resultColor = Colors.green; final color = data.isUnchecked? disableColor: enableColor; Color? iconColor; var textTime = data.checkAfterPrev.toMinSecondString(); var imageSrc = 'assets/images/ic_cp.png'; if(data.isStart){ imageSrc = 'assets/images/ic_cp_start.png'; textTime = ''; } if(data.isFinish){ imageSrc = 'assets/images/ic_cp_finish_uncheck.png'; textTime = ''; } if(!data.isSuccess){ result = '错误'; resultColor = const Color(0xffff6203); } if(data.isUnchecked){ iconColor = disableColor; result = '未打点'; resultColor = disableColor; textTime=''; } var text = data.snString.isNotEmpty? '${data.snString}点': ''; if(data.areaId.isNotEmpty){ text += '(${data.areaId})'; } final style = TextStyle( fontSize: 15.24, fontWeight: FontWeight.w500, color: color); return Padding(padding: const EdgeInsets.only(bottom: 12), child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ Image.asset(imageSrc, color: iconColor, height: 21.19, width: 21.19), const SizedBox(width: 6), Expanded(flex:4, child: Text(text, style: style, textAlign: TextAlign.start, maxLines: 1)), Expanded(flex:3, child: Text(textTime, style: style, textAlign: TextAlign.start, maxLines: 1)), SizedBox( width: 60, child: Text(result, style: style.copyWith(fontSize: 17.42, color: resultColor)) ), ], )) ; }