question-details.blade.php 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  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">✏️ 老师评分</h5>
  39. <div class="bg-blue-50 rounded p-3">
  40. <div class="space-y-2">
  41. <div>
  42. <p class="text-xs text-gray-500">评分结果:</p>
  43. <p class="text-sm text-gray-700">
  44. 得分: <span class="font-semibold text-blue-600">{{ $question['score_obtained'] ?? 0 }}</span>
  45. / {{ $question['score_total'] ?? 5 }}
  46. @if(($question['is_correct'] ?? false))
  47. <span class="ml-2 px-2 py-0.5 bg-green-100 text-green-800 text-xs rounded">✓ 正确</span>
  48. @else
  49. <span class="ml-2 px-2 py-0.5 bg-red-100 text-red-800 text-xs rounded">✗ 错误</span>
  50. @endif
  51. </p>
  52. </div>
  53. @if(isset($question['answer_comparison']))
  54. <div class="border-t pt-2">
  55. <p class="text-xs text-gray-500">正确答案(老师校准):</p>
  56. <p class="text-sm text-green-700 font-medium">{{ $question['answer_comparison']['correct'] }}</p>
  57. </div>
  58. @endif
  59. @if(isset($question['reference_answer']))
  60. <div class="border-t pt-2">
  61. <p class="text-xs text-gray-500">参考答案:</p>
  62. <p class="text-sm text-gray-600">{{ $question['reference_answer'] }}</p>
  63. </div>
  64. @endif
  65. </div>
  66. </div>
  67. </div>
  68. </div>
  69. @if(isset($question['ai_analysis']) && !empty($question['ai_analysis']))
  70. <div class="bg-purple-50 border border-purple-200 rounded-lg p-3">
  71. <h5 class="text-sm font-medium text-gray-700 mb-2">🤖 AI 分析</h5>
  72. @if($question['ai_analysis']['analysis'])
  73. <p class="text-sm text-gray-700 mb-2">{{ $question['ai_analysis']['analysis'] }}</p>
  74. @endif
  75. @if($question['is_correct'])
  76. {{-- 正确答题的AI反馈 --}}
  77. @if(isset($question['ai_analysis']['suggestions']) && !empty($question['ai_analysis']['suggestions']))
  78. <div>
  79. <p class="text-xs font-medium text-green-700 mb-1">
  80. @if(isset($question['answer_comparison']))
  81. 校准判断正确:
  82. @else
  83. 继续加油:
  84. @endif
  85. </p>
  86. <ul class="text-xs text-green-600 space-y-1">
  87. @foreach($question['ai_analysis']['suggestions'] as $suggestion)
  88. @if($suggestion)
  89. <li class="flex items-start">
  90. <span class="mr-1">✓</span>
  91. <span>{{ $suggestion }}</span>
  92. </li>
  93. @endif
  94. @endforeach
  95. </ul>
  96. </div>
  97. @endif
  98. @else
  99. {{-- 错误答题的AI反馈(基于老师评分) --}}
  100. @if($question['ai_analysis']['mistake_type'] || $question['ai_analysis']['mistake_category'])
  101. <div class="grid grid-cols-2 gap-2 mb-2">
  102. @if($question['ai_analysis']['mistake_type'])
  103. <div class="text-xs">
  104. <span class="font-medium text-red-700">错误类型: </span>
  105. <span class="text-gray-600">{{ $question['ai_analysis']['mistake_type'] }}</span>
  106. </div>
  107. @endif
  108. @if($question['ai_analysis']['mistake_category'])
  109. <div class="text-xs">
  110. <span class="font-medium text-red-700">错误类别: </span>
  111. <span class="text-gray-600">{{ $question['ai_analysis']['mistake_category'] }}</span>
  112. </div>
  113. @endif
  114. </div>
  115. @endif
  116. @if($question['ai_analysis']['correct_solution'] || isset($question['solution']))
  117. <div class="grid grid-cols-1 md:grid-cols-2 gap-2 mb-2">
  118. @if(isset($question['solution']))
  119. <div>
  120. <p class="text-xs font-medium text-blue-700 mb-1">解题步骤:</p>
  121. <p class="text-xs text-blue-600 bg-blue-50 rounded p-2">{{ $question['solution'] }}</p>
  122. </div>
  123. @endif
  124. @if($question['ai_analysis']['correct_solution'])
  125. <div>
  126. <p class="text-xs font-medium text-green-700 mb-1">正确答案:</p>
  127. <p class="text-xs text-green-600 bg-green-100 rounded p-2">{{ $question['ai_analysis']['correct_solution'] }}</p>
  128. </div>
  129. @endif
  130. </div>
  131. @endif
  132. @if(isset($question['ai_analysis']['suggestions']) && !empty($question['ai_analysis']['suggestions']))
  133. <div>
  134. <p class="text-xs font-medium text-purple-700 mb-1">
  135. @if(isset($question['answer_comparison']))
  136. 校准后学习建议:
  137. @else
  138. 学习建议:
  139. @endif
  140. </p>
  141. <ul class="text-xs text-purple-600 space-y-1">
  142. @foreach($question['ai_analysis']['suggestions'] as $suggestion)
  143. @if($suggestion)
  144. <li class="flex items-start">
  145. <span class="mr-1">•</span>
  146. <span>{{ $suggestion }}</span>
  147. </li>
  148. @endif
  149. @endforeach
  150. </ul>
  151. </div>
  152. @endif
  153. @endif
  154. </div>
  155. @endif
  156. </div>
  157. @endforeach
  158. </div>
  159. </div>
  160. @endif