processing-timeline.blade.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. {{-- 处理进度时间线组件 --}}
  2. <div class="card bg-base-100 shadow-xl">
  3. <div class="card-body">
  4. <h2 class="card-title">
  5. <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  6. <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path>
  7. </svg>
  8. 处理进度
  9. </h2>
  10. <div class="divider my-2"></div>
  11. <ul class="steps steps-vertical w-full">
  12. <li class="step step-primary">
  13. <div class="text-left w-full">
  14. <div class="font-semibold">上传完成</div>
  15. <div class="text-xs opacity-70">{{ \Carbon\Carbon::parse($recordData['created_at'])->format('m-d H:i') }}</div>
  16. <div class="text-sm mt-1">{{ $recordType === 'ocr' ? '图片已上传' : '试卷已创建' }}</div>
  17. </div>
  18. </li>
  19. @if($recordData['status'] === 'completed')
  20. <li class="step step-primary">
  21. <div class="text-left w-full">
  22. <div class="font-semibold">{{ $recordType === 'ocr' ? 'OCR识别完成' : '试卷已完成' }}</div>
  23. <div class="text-xs opacity-70">
  24. @if(isset($recordData['processed_at']) && $recordData['processed_at'])
  25. {{ \Carbon\Carbon::parse($recordData['processed_at'])->format('m-d H:i') }}
  26. @else
  27. {{ \Carbon\Carbon::parse($recordData['created_at'])->format('m-d H:i') }}
  28. @endif
  29. </div>
  30. <div class="text-sm mt-1">
  31. @if($recordType === 'ocr')
  32. 识别出 {{ $recordData['total_questions'] ?? 0 }} 道题目
  33. @if(isset($recordData['confidence_avg']) && $recordData['confidence_avg'])
  34. <span class="badge badge-success badge-sm ml-2">
  35. 准确率: {{ number_format(($recordData['confidence_avg'] ?? 0) * 100, 1) }}%
  36. </span>
  37. @endif
  38. @else
  39. 包含 {{ $recordData['total_questions'] ?? 0 }} 道题目
  40. @endif
  41. </div>
  42. </div>
  43. </li>
  44. @elseif($recordData['status'] === 'processing')
  45. <li class="step step-info">
  46. <div class="text-left w-full">
  47. <div class="font-semibold flex items-center gap-2">
  48. <span class="loading loading-spinner loading-sm"></span>
  49. 处理中...
  50. </div>
  51. <div class="text-sm mt-1 opacity-70">正在识别题目和答案</div>
  52. </div>
  53. </li>
  54. @endif
  55. </ul>
  56. </div>
  57. </div>