diff --git a/client/src/components/base/AppStack.vue b/client/src/components/base/AppStack.vue index bf0621d..13d1a39 100644 --- a/client/src/components/base/AppStack.vue +++ b/client/src/components/base/AppStack.vue @@ -38,8 +38,9 @@ const gapStyle = computed(() => { .app-stack { display: flex; flex-direction: column; - align-items: stretch; - justify-content: flex-start; + /* 默认 stretch/start;特殊行由使用页 class 设 --stack-align / --stack-justify 覆写 */ + align-items: var(--stack-align, stretch); + justify-content: var(--stack-justify, flex-start); gap: var(--stack-gap, var(--space-5)); min-width: 0; } diff --git a/client/src/views/practice/AiExplainView.vue b/client/src/views/practice/AiExplainView.vue index b0e9cbe..8c25895 100644 --- a/client/src/views/practice/AiExplainView.vue +++ b/client/src/views/practice/AiExplainView.vue @@ -110,10 +110,10 @@ const mistakeText = computed(() => { - + {{ explain.answer }} 本题答案为 {{ explain.answer }} - + @@ -201,9 +201,7 @@ const mistakeText = computed(() => { background: var(--warning); } .ai-explain__answer { - display: flex; - align-items: center; - gap: var(--space-3); + --stack-align: center; } .ai-explain__answer-key { display: grid; diff --git a/client/src/views/practice/WrongDetailView.vue b/client/src/views/practice/WrongDetailView.vue index e52f5b6..9c65b8e 100644 --- a/client/src/views/practice/WrongDetailView.vue +++ b/client/src/views/practice/WrongDetailView.vue @@ -188,11 +188,11 @@ function goAiExplain() { - + {{ assessResult.correct ? '已标记为记对' : '已标记为记错' }} - - + + 已复习 {{ assessResult.reviewCount }} 次 下次复习 @@ -201,7 +201,7 @@ function goAiExplain() { {{ assessResult.status === 'mastered' ? '已掌握' : assessResult.nextReviewAt }} {{ assessResult.status === 'mastered' ? '状态' : '下次复习' }} - + 返回错题本 @@ -216,20 +216,20 @@ function goAiExplain() { 作答历史 - + - + {{ formatDateWeekday(h.date) }} {{ h.correct ? '答对' : `答错(选了 ${h.userAnswer})` }} - + 错因:{{ h.wrongReason }} - + @@ -407,9 +407,7 @@ function goAiExplain() { padding: var(--card-padding-desktop); } .wd__result-banner { - display: flex; - align-items: center; - gap: var(--space-2); + --stack-align: center; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); color: var(--on-accent); @@ -421,10 +419,6 @@ function goAiExplain() { .wd__result-banner.is-wrong { background: var(--danger); } -.wd__result-meta { - display: flex; - gap: var(--space-4); -} .wd__result-stat { display: flex; flex-direction: column; @@ -464,9 +458,7 @@ function goAiExplain() { gap: var(--space-3); } .wd__history-item { - display: flex; - align-items: flex-start; - gap: var(--space-3); + --stack-align: flex-start; } .wd__history-icon { display: grid; @@ -488,9 +480,7 @@ function goAiExplain() { flex: 1; } .wd__history-main { - display: flex; - align-items: center; - gap: var(--space-2); + --stack-align: center; font-size: var(--fs-subtitle); color: var(--text-primary); }