import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:trackoffical_app/pb.dart' as pb; import 'package:trackoffical_app/utils.dart'; class CheckPointRecord extends StatelessWidget{ const CheckPointRecord({ super.key, required this.data }); final pb.GameDetailReply data; @override Widget build(BuildContext context) { final checkedSortedList = data.checkedSortedList; return ListView.builder( itemCount: checkedSortedList.length, itemBuilder: (BuildContext context, int index){ final backColor = index % 2 == 0 ? const Color(0xfff8f8f8) : Colors.white; final data = checkedSortedList[index]; const leadingHeight= 15.24; Widget leading; var checkTimeStr = ''; switch(data.cType){ case pb.CType.BeginType: leading = Image.asset( 'assets/images/ic_point_start.png', height: leadingHeight, fit: BoxFit.fitHeight); checkTimeStr = data.punchTime.toDateTime(toLocal: true).toAppStringNoDate(); break; case pb.CType.EndType: leading = Image.asset( 'assets/images/ic_point_finish.png', height: leadingHeight, fit: BoxFit.fitHeight); checkTimeStr = data.punchTime.toDateTime(toLocal: true).toAppStringNoDate(); break; default: checkTimeStr ='+${data.checkAfterLast .toDuration().toAppString()}'; if(data.isCheckSuccess){ leading =Text(data.orderNo.toString(), style: context.textTheme.bodyLarge?.copyWith( color: const Color(0xff00ae7f), fontSize: 14, ),textAlign: TextAlign.center ) ; }else{ leading = Image.asset( 'assets/images/ic_point_fail.png', height: leadingHeight, fit: BoxFit.fitHeight); } } return Container( width: double.infinity, color: backColor, padding: const EdgeInsets.fromLTRB(13, 5, 26, 5), child: Row( children: [ Container( width: 24, alignment: Alignment.center, child: leading, ), const SizedBox(width: 20,), Expanded(child: Text(data.sn)), Text(checkTimeStr) ], )); }); } }