question-details.blade.php 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. @props(['questions'])
  2. @if(isset($questions) && !empty($questions))
  3. <div class="bg-white rounded-lg shadow-sm border border-gray-200">
  4. <div class="p-4 border-b border-gray-200">
  5. <h2 class="text-lg font-semibold text-gray-900">📋 题目详情分析</h2>
  6. </div>
  7. <div class="divide-y divide-gray-200">
  8. @foreach($questions as $index => $question)
  9. <div class="p-4">
  10. <div class="flex items-center justify-between mb-3">
  11. <div class="flex items-center space-x-3">
  12. <h4 class="font-medium text-gray-900">第 {{ $question['question_number'] ?? 'N/A' }} 题</h4>
  13. @if(!empty($question['kp_code']))
  14. <span class="px-2 py-1 bg-blue-100 text-blue-800 text-xs rounded">{{ $question['kp_code'] }}</span>
  15. @endif
  16. </div>
  17. <div class="flex items-center space-x-2">
  18. @if(isset($question['score_total']) && $question['score_total'] !== null)
  19. <span class="text-sm text-gray-600">得分: {{ $question['score_obtained'] ?? 0 }} / {{ $question['score_total'] }}</span>
  20. @endif
  21. @if(($question['is_correct'] ?? false))
  22. <span class="px-2 py-1 bg-green-100 text-green-800 text-xs rounded">✓ 正确</span>
  23. @elseif(!empty($question['student_answer']) && $question['student_answer'] !== '未作答')
  24. <span class="px-2 py-1 bg-red-100 text-red-800 text-xs rounded">✗ 错误</span>
  25. @else
  26. <span class="px-2 py-1 bg-gray-100 text-gray-600 text-xs rounded">未作答</span>
  27. @endif
  28. </div>
  29. </div>
  30. <div class="grid grid-cols-1 md:grid-cols-2 gap-3 mb-3">
  31. <div>
  32. <h5 class="text-sm font-medium text-gray-700 mb-2">📝 题目内容</h5>
  33. <div class="bg-gray-50 rounded p-3">
  34. <p class="text-sm text-gray-600">{{ Str::limit($question['question_text'] ?? 'N/A', 200) }}</p>
  35. </div>
  36. </div>
  37. <div>
  38. <h5 class="text-sm font-medium text-gray-700 mb-2">
  39. @if(isset($question['answer_comparison']))
  40. ✏️ 答案对比
  41. @else
  42. ✏️ 学生答案
  43. @endif
  44. </h5>
  45. <div class="bg-blue-50 rounded p-3">
  46. @if(isset($question['answer_comparison']))
  47. <div class="space-y-2">
  48. <div>
  49. <p class="text-xs text-gray-500">学生答案:</p>
  50. <p class="text-sm text-gray-700">{{ $question['answer_comparison']['student'] }}</p>
  51. </div>
  52. <div class="border-t pt-2">
  53. <p class="text-xs text-gray-500">正确答案(老师校准):</p>
  54. <p class="text-sm text-green-700 font-medium">{{ $question['answer_comparison']['correct'] }}</p>
  55. </div>
  56. </div>
  57. @else
  58. <p class="text-sm text-gray-600">{{ $question['student_answer'] ?? '未作答' }}</p>
  59. @endif
  60. </div>
  61. </div>
  62. </div>
  63. @if(isset($question['ai_analysis']) && !empty($question['ai_analysis']))
  64. <div class="bg-purple-50 border border-purple-200 rounded-lg p-3">
  65. <h5 class="text-sm font-medium text-gray-700 mb-2">🤖 AI 分析</h5>
  66. @if($question['ai_analysis']['analysis'])
  67. <p class="text-sm text-gray-700 mb-2">{{ $question['ai_analysis']['analysis'] }}</p>
  68. @endif
  69. @if($question['is_correct'])
  70. {{-- 正确答题的AI反馈 --}}
  71. @if(isset($question['ai_analysis']['suggestions']) && !empty($question['ai_analysis']['suggestions']))
  72. <div>
  73. <p class="text-xs font-medium text-green-700 mb-1">
  74. @if(isset($question['answer_comparison']))
  75. 校准判断正确:
  76. @else
  77. 继续加油:
  78. @endif
  79. </p>
  80. <ul class="text-xs text-green-600 space-y-1">
  81. @foreach($question['ai_analysis']['suggestions'] as $suggestion)
  82. @if($suggestion)
  83. <li class="flex items-start">
  84. <span class="mr-1">✓</span>
  85. <span>{{ $suggestion }}</span>
  86. </li>
  87. @endif
  88. @endforeach
  89. </ul>
  90. </div>
  91. @endif
  92. @elseif(!empty($question['student_answer']) && $question['student_answer'] !== '未作答')
  93. {{-- 错误答题的AI反馈 --}}
  94. @if($question['ai_analysis']['mistake_type'] || $question['ai_analysis']['mistake_category'])
  95. <div class="grid grid-cols-2 gap-2 mb-2">
  96. @if($question['ai_analysis']['mistake_type'])
  97. <div class="text-xs">
  98. <span class="font-medium text-red-700">错误类型: </span>
  99. <span class="text-gray-600">{{ $question['ai_analysis']['mistake_type'] }}</span>
  100. </div>
  101. @endif
  102. @if($question['ai_analysis']['mistake_category'])
  103. <div class="text-xs">
  104. <span class="font-medium text-red-700">错误类别: </span>
  105. <span class="text-gray-600">{{ $question['ai_analysis']['mistake_category'] }}</span>
  106. </div>
  107. @endif
  108. </div>
  109. @endif
  110. @if($question['ai_analysis']['correct_solution'])
  111. <div class="mb-2">
  112. <p class="text-xs font-medium text-green-700 mb-1">正确答案:</p>
  113. <p class="text-xs text-green-600 bg-green-100 rounded p-2">{{ $question['ai_analysis']['correct_solution'] }}</p>
  114. </div>
  115. @endif
  116. @if(isset($question['ai_analysis']['suggestions']) && !empty($question['ai_analysis']['suggestions']))
  117. <div>
  118. <p class="text-xs font-medium text-purple-700 mb-1">
  119. @if(isset($question['answer_comparison']))
  120. 校准后学习建议:
  121. @else
  122. 学习建议:
  123. @endif
  124. </p>
  125. <ul class="text-xs text-purple-600 space-y-1">
  126. @foreach($question['ai_analysis']['suggestions'] as $suggestion)
  127. @if($suggestion)
  128. <li class="flex items-start">
  129. <span class="mr-1">•</span>
  130. <span>{{ $suggestion }}</span>
  131. </li>
  132. @endif
  133. @endforeach
  134. </ul>
  135. </div>
  136. @endif
  137. @endif
  138. </div>
  139. @endif
  140. </div>
  141. @endforeach
  142. </div>
  143. </div>
  144. @endif