完整實現詳細答題結果

This commit is contained in:
2025-09-29 20:53:16 +08:00
parent b56a9d2ab2
commit e5e24d1108
6 changed files with 305 additions and 132 deletions

View File

@@ -803,74 +803,6 @@ function AdminResultsContent() {
</div>
)}
{/* 單一測試類型的題目(邏輯或創意) */}
{detailData.result.type !== 'combined' && detailData.questions.map((question: any, index: number) => (
<div key={index} className="border rounded-lg p-4">
<div className="flex items-start justify-between mb-3">
<h4 className="font-medium"> {index + 1} </h4>
{question.isCorrect !== undefined && (
<Badge variant={question.isCorrect ? "default" : "destructive"}>
{question.isCorrect ? "正確" : "錯誤"}
</Badge>
)}
{question.score !== undefined && (
<Badge variant="outline" className="text-green-600 border-green-600">
{question.score}
</Badge>
)}
</div>
<div className="space-y-3">
<div>
<label className="text-sm font-medium text-muted-foreground"></label>
<p className="text-sm mt-1">{question.question || question.statement}</p>
</div>
{question.type === 'logic' && (
<>
<div className="grid grid-cols-2 gap-4">
<div>
<label className="text-sm font-medium text-muted-foreground"></label>
<div className="space-y-1 mt-1">
{question.option_a && <p className="text-sm">A. {question.option_a}</p>}
{question.option_b && <p className="text-sm">B. {question.option_b}</p>}
{question.option_c && <p className="text-sm">C. {question.option_c}</p>}
{question.option_d && <p className="text-sm">D. {question.option_d}</p>}
{question.option_e && <p className="text-sm">E. {question.option_e}</p>}
</div>
</div>
<div>
<label className="text-sm font-medium text-muted-foreground"></label>
<div className="space-y-1 mt-1">
<p className="text-sm">: <span className="font-bold">{question.userAnswer}</span></p>
<p className="text-sm">: <span className="font-bold text-green-600">{question.correctAnswer}</span></p>
</div>
</div>
</div>
{question.explanation && (
<div>
<label className="text-sm font-medium text-muted-foreground"></label>
<p className="text-sm mt-1">{question.explanation}</p>
</div>
)}
</>
)}
{question.type === 'creative' && (
<div className="grid grid-cols-2 gap-4">
<div>
<label className="text-sm font-medium text-muted-foreground"></label>
<p className="text-sm mt-1">{question.userAnswer}</p>
</div>
<div>
<label className="text-sm font-medium text-muted-foreground"></label>
<p className="text-sm mt-1 font-bold">{question.score} </p>
</div>
</div>
)}
</div>
</div>
))}
</div>
</CardContent>
</Card>