refactor: 作答页/结果页纯div行收敛到AppStack
This commit is contained in:
parent
cf3e877347
commit
e4a890d9a1
@ -164,7 +164,7 @@ const finishAccuracy = computed(() => finishResult.value?.accuracy ?? 0)
|
||||
<p>本卷共 {{ finishResult.total }} 题 · 作答 {{ finishResult.answered }} 题</p>
|
||||
</header>
|
||||
|
||||
<div class="result__hero">
|
||||
<AppStack direction="row" gap="space-6" class="result__hero">
|
||||
<div class="result__score">
|
||||
<strong class="num">{{ finishResult.correctCount }}<em>/{{ finishResult.total }}</em></strong>
|
||||
<span>答对题数</span>
|
||||
@ -178,18 +178,18 @@ const finishAccuracy = computed(() => finishResult.value?.accuracy ?? 0)
|
||||
<strong class="num">{{ formatDuration(finishResult.durationSeconds) }}</strong>
|
||||
<span>用时</span>
|
||||
</div>
|
||||
</div>
|
||||
</AppStack>
|
||||
|
||||
<AppCard v-if="wrongItems.length > 0" title="错题回顾" icon="alert">
|
||||
<div class="wrong-list">
|
||||
<div v-for="(q, i) in wrongItems" :key="q.questionId" class="wrong-list__item">
|
||||
<span class="wrong-list__idx">{{ i + 1 }}</span>
|
||||
<div class="wrong-list__body">
|
||||
<div class="wrong-list__ans">
|
||||
<AppStack direction="row" gap="space-2" class="wrong-list__ans">
|
||||
<span>你的答案 <b class="is-wrong">{{ q.userAnswer }}</b></span>
|
||||
<span class="wrong-list__arrow"><AppIcon name="chevron-right" :size="14" /></span>
|
||||
<span>正确答案 <b class="is-right">{{ q.correctAnswer }}</b></span>
|
||||
</div>
|
||||
</AppStack>
|
||||
<p class="wrong-list__analysis">{{ q.analysis }}</p>
|
||||
<AppButton
|
||||
variant="ghost"
|
||||
@ -267,7 +267,7 @@ const finishAccuracy = computed(() => finishResult.value?.accuracy ?? 0)
|
||||
|
||||
<!-- ===== 单题结果态 ===== -->
|
||||
<div v-if="answered && result" class="single-result">
|
||||
<div class="single-result__banner" :class="result.correct ? 'is-correct' : 'is-wrong'">
|
||||
<AppStack direction="row" gap="space-3" class="single-result__banner" :class="result.correct ? 'is-correct' : 'is-wrong'">
|
||||
<span class="single-result__icon">
|
||||
<AppIcon :name="result.correct ? 'check' : 'close'" :size="18" />
|
||||
</span>
|
||||
@ -276,7 +276,7 @@ const finishAccuracy = computed(() => finishResult.value?.accuracy ?? 0)
|
||||
<span v-if="!result.correct">正确答案是 {{ result.correctAnswer }} · 本题已自动收录到错题本</span>
|
||||
<span v-else>回答正确,继续加油</span>
|
||||
</div>
|
||||
</div>
|
||||
</AppStack>
|
||||
|
||||
<AppCard v-if="result.analysis" title="解析" icon="book-open">
|
||||
<p class="single-result__analysis">{{ result.analysis }}</p>
|
||||
@ -465,9 +465,7 @@ const finishAccuracy = computed(() => finishResult.value?.accuracy ?? 0)
|
||||
gap: var(--space-4);
|
||||
}
|
||||
.single-result__banner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-3);
|
||||
--stack-align: center;
|
||||
padding: var(--space-4);
|
||||
border-radius: var(--radius-lg);
|
||||
color: var(--on-accent);
|
||||
@ -553,9 +551,7 @@ const finishAccuracy = computed(() => finishResult.value?.accuracy ?? 0)
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
.result__hero {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-6);
|
||||
--stack-align: center;
|
||||
padding: var(--card-padding-desktop);
|
||||
background: var(--bg-card);
|
||||
border: 1px solid var(--border-subtle);
|
||||
@ -623,9 +619,7 @@ const finishAccuracy = computed(() => finishResult.value?.accuracy ?? 0)
|
||||
flex: 1;
|
||||
}
|
||||
.wrong-list__ans {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-2);
|
||||
--stack-align: center;
|
||||
font-size: var(--fs-subtitle);
|
||||
}
|
||||
.wrong-list__ans .is-wrong {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user