task_status_chip.dart 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import 'package:flutter/material.dart';
  2. import 'package:asr_client/models/task.dart';
  3. import 'package:asr_client/theme/app_colors.dart';
  4. class TaskStatusChip extends StatelessWidget {
  5. const TaskStatusChip({super.key, required this.status});
  6. final TaskStatus status;
  7. @override
  8. Widget build(BuildContext context) {
  9. final (label, bg, fg) = switch (status) {
  10. TaskStatus.recording => ('录制中', AppColors.appBg, AppColors.appDark),
  11. TaskStatus.pending => ('待检测', AppColors.warnBg, const Color(0xFF8A6D00)),
  12. TaskStatus.scheduled => ('已排期', AppColors.midBg, const Color(0xFF1C7A6D)),
  13. TaskStatus.completed => ('已完成', AppColors.okBg, AppColors.ok),
  14. TaskStatus.failed => ('异常', AppColors.dangerBg, AppColors.danger),
  15. };
  16. return Container(
  17. padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 3),
  18. decoration: BoxDecoration(
  19. color: bg,
  20. borderRadius: BorderRadius.circular(6),
  21. ),
  22. child: Text(
  23. label,
  24. style: TextStyle(
  25. fontSize: 10.5,
  26. fontWeight: FontWeight.w700,
  27. color: fg,
  28. ),
  29. ),
  30. );
  31. }
  32. }