mobile . themes

This commit is contained in:
2026-03-05 12:57:55 +08:00
parent b5b9f7db06
commit c325007897
62 changed files with 835 additions and 150 deletions

View File

@@ -2,43 +2,43 @@
{% block title %}考试结果 - 智联青云{% endblock %}
{% block content %}
<div class="max-w-4xl mx-auto space-y-6">
<div class="flex justify-between items-center">
<h1 class="text-2xl font-bold bg-gradient-to-r from-purple-600 to-blue-600 bg-clip-text text-transparent">考试结果</h1>
<div class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-3">
<h1 class="text-xl sm:text-2xl font-bold bg-gradient-to-r from-purple-600 to-blue-600 bg-clip-text text-transparent">考试结果</h1>
<a href="/exams" class="text-sm text-slate-500 hover:text-slate-700">← 返回列表</a>
</div>
<div class="futuristic-card p-6">
<h2 class="text-xl font-bold bg-gradient-to-r from-purple-600 to-blue-600 bg-clip-text text-transparent">{{ exam.title }}</h2>
<div class="mt-2 flex items-center text-sm text-slate-500 space-x-4">
<div class="futuristic-card p-4 sm:p-6">
<h2 class="text-lg sm:text-xl font-bold bg-gradient-to-r from-purple-600 to-blue-600 bg-clip-text text-transparent break-words">{{ exam.title }}</h2>
<div class="mt-2 flex flex-wrap items-center text-xs sm:text-sm text-slate-500 gap-2 sm:gap-4">
<span>{{ exam.subject }}</span>
<span>满分{{ exam.total_score }}分</span>
<span>提交时间:{{ submission.submitted_at }}</span>
<span class="break-all">提交时间:{{ submission.submitted_at }}</span>
</div>
<div class="mt-4 p-4 rounded-lg {% if score_hidden %}bg-blue-50 border border-blue-200{% elif submission.graded %}bg-green-50 border border-green-200{% else %}bg-yellow-50 border border-yellow-200{% endif %}">
{% if score_hidden %}
<div class="text-lg font-medium text-blue-700">成绩尚未公布</div>
<div class="text-sm text-blue-600 mt-1">成绩将于 {{ exam.score_release_time.strftime('%Y年%m月%d日 %H:%M') }} 公布</div>
<div class="text-base sm:text-lg font-medium text-blue-700">成绩尚未公布</div>
<div class="text-xs sm:text-sm text-blue-600 mt-1 break-words">成绩将于 {{ exam.score_release_time.strftime('%Y年%m月%d日 %H:%M') }} 公布</div>
{% elif submission.graded %}
<div class="text-3xl font-bold text-green-700">{{ submission.score }} <span class="text-lg font-normal text-green-600">/ {{ exam.total_score }}</span></div>
<div class="text-sm text-green-600 mt-1">批改人:{{ submission.graded_by }}</div>
<div class="text-2xl sm:text-3xl font-bold text-green-700">{{ submission.score }} <span class="text-base sm:text-lg font-normal text-green-600">/ {{ exam.total_score }}</span></div>
<div class="text-xs sm:text-sm text-green-600 mt-1">批改人:{{ submission.graded_by }}</div>
{% else %}
<div class="text-lg font-medium text-yellow-700">待批改</div>
<div class="text-sm text-yellow-600">选择题已自动批改得分:{{ submission.score }}分,主观题等待老师批改</div>
<div class="text-base sm:text-lg font-medium text-yellow-700">待批改</div>
<div class="text-xs sm:text-sm text-yellow-600 break-words">选择题已自动批改得分:{{ submission.score }}分,主观题等待老师批改</div>
{% endif %}
</div>
</div>
{% for q in questions %}
<div class="futuristic-card p-6">
<div class="flex items-start space-x-4">
<span class="flex-shrink-0 w-8 h-8 bg-gradient-to-br from-purple-500 to-blue-500 rounded-full flex items-center justify-center text-white font-medium">{{ loop.index }}</span>
<div class="flex-1 space-y-3">
<div class="flex justify-between">
<p class="text-lg text-slate-900">{{ q.content }}</p>
<span class="text-sm text-slate-400 whitespace-nowrap ml-4">{{ q.score }}分)</span>
<div class="futuristic-card p-4 sm:p-6">
<div class="flex items-start space-x-3 sm:space-x-4">
<span class="flex-shrink-0 w-7 h-7 sm:w-8 sm:h-8 bg-gradient-to-br from-purple-500 to-blue-500 rounded-full flex items-center justify-center text-white font-medium text-sm">{{ loop.index }}</span>
<div class="flex-1 space-y-3 min-w-0">
<div class="flex flex-col sm:flex-row sm:justify-between gap-2">
<p class="text-base sm:text-lg text-slate-900 break-words">{{ q.content }}</p>
<span class="text-xs sm:text-sm text-slate-400 whitespace-nowrap">{{ q.score }}分)</span>
</div>
{% if q.get('images') %}
<div class="flex flex-wrap gap-2">
{% for img in q.images %}
<img src="{{ img }}" class="max-h-48 rounded border border-slate-200 cursor-pointer" onclick="window.open(this.src)" alt="题目图片">
<img src="{{ img }}" class="max-h-32 sm:max-h-48 rounded border border-slate-200 cursor-pointer max-w-full" onclick="window.open(this.src)" alt="题目图片">
{% endfor %}
</div>
{% endif %}
@@ -57,7 +57,7 @@
{% else %}
<div class="w-5 h-5"></div>
{% endif %}
<span class="text-slate-700">{{ letter }}. {{ opt }}</span>
<span class="text-slate-700 option-text">{{ letter }}. {{ opt|safe }}</span>
{% if is_answer %}<span class="badge-futuristic text-xs ml-2">✓ 正确答案</span>{% endif %}
</div>
{% endfor %}
@@ -85,4 +85,15 @@
</div>
{% endfor %}
</div>
{% endblock %}
{% block scripts %}
<script>
// 渲染页面中的数学公式
if (typeof renderMathInElement === 'function') {
renderMathInElement(document.body, {
delimiters: [{left:'$$',right:'$$',display:true},{left:'$',right:'$',display:false}],
throwOnError: false
});
}
</script>
{% endblock %}