-
{{ item.label }}{{ selectedByType(item.value) }}{{ scoreByType(item.value) }} 分
-
总分{{ totalScore }}自动合计
+
+
+
+
+
+
+
{{ item.label }}
+
{{ selectedByType(item.value) }}题
+
{{ scoreByType(item.value) }} 分
+
+
+
+
+
+
总分
+
{{ totalScore }}分
+
{{ form.questions.length }} 道题
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+ {{ selectedByType(item.value) }} 题 · {{ scoreByType(item.value) }} 分
+
+
+
+ {{ index + 1 }}
+
+
{{ question.stem }}
+
+ {{ option.label }} {{ option.content }}
+
+
+ {{ selectedScore(question.id) }} 分
+
+
+
-
-
- {{ item.label }}
-
- {{ index + 1 }}. {{ question.stem }} {{ selectedScore(question.id) }} 分
{{ option.label }}. {{ option.content }}
-
-
-
-
-
+
尚未选择试题
请返回上一步勾选题目
-
+
@@ -99,7 +209,7 @@
import { computed, onMounted, reactive, ref } from "vue";
import { useRoute, useRouter } from "vue-router";
import { ElMessage } from "element-plus";
-import { ArrowLeft, ArrowRight, Check, Download, FolderOpened, Promotion, Upload } from "@element-plus/icons-vue";
+import { ArrowLeft, ArrowRight, Check, Close, Download, FolderOpened, Promotion, Upload } from "@element-plus/icons-vue";
import { saveAs } from "file-saver";
import * as examApi from "@/api/exam";
@@ -140,24 +250,41 @@ function toBoolean(value, fallback) { if (value === undefined || value === null
color: var(--text-strong);
padding-bottom: 92px;
- /* ===== 标题行(轻量标题行:返回 + 标题 + 主操作;卡片外观归 teacher-light.scss 扁平化接管)===== */
+ /* ===== 标题行(左组:返回+标题;右侧:操作按钮;扁平落地画布)===== */
.editor-head {
display: grid;
- grid-template-columns: 1fr auto 1fr;
- align-items: center;
+ gap: var(--sp-2);
margin-bottom: var(--sp-4);
- > :last-child { justify-self: end; }
+ padding-bottom: var(--sp-3);
+ border-bottom: 1px solid var(--border-color);
}
- .title-block {
+ .head-breadcrumb {
display: flex;
align-items: center;
- gap: var(--sp-2);
+ gap: var(--sp-1);
+ font-size: var(--fs-tag);
+ color: var(--text-muted);
+
+ span { cursor: pointer; transition: color 0.14s ease; }
+ span:hover { color: var(--edu-primary); }
+ .bc-sep { cursor: default; color: var(--text-muted); opacity: .5; }
+ .bc-sep:hover { color: var(--text-muted); }
+ .bc-current { cursor: default; color: var(--text-body); font-weight: 500; }
+ .bc-current:hover { color: var(--text-body); }
+ }
+
+ .head-title-row {
+ display: flex;
+ align-items: center;
+ gap: var(--sp-3);
+
h1 {
margin: 0;
color: var(--text-strong);
font-size: var(--fs-page);
font-weight: 700;
+ letter-spacing: -0.01em;
}
}
@@ -177,17 +304,17 @@ function toBoolean(value, fallback) { if (value === undefined || value === null
:deep(.el-step__line-inner) { border-color: var(--edu-primary); }
}
- /* ===== 面板 ===== */
+ /* ===== 面板(左对齐文档流,不居中悬浮)===== */
.editor-panel {
width: 100%;
- max-width: 1180px;
- margin: auto;
+ max-width: 1280px;
+ margin: 0;
box-sizing: border-box;
h2 {
display: flex;
align-items: center;
gap: var(--sp-2);
- margin: 0 0 var(--sp-4);
+ margin: 0;
color: var(--text-strong);
font-size: var(--fs-page);
font-weight: 700;
@@ -195,14 +322,23 @@ function toBoolean(value, fallback) { if (value === undefined || value === null
}
}
- /* ===== 基础设置表单(白卡容器、去彩色边;输入框外观由 teacher-light.scss 全局接管)===== */
- .base-form {
- max-width: 820px;
- padding: var(--sp-4);
+ /* ===== 分组白卡(调研结论:逻辑分组 + 呼吸感)===== */
+ .section-card {
+ padding: var(--sp-5);
border: 1px solid var(--border-color);
border-radius: var(--r-card);
background: #ffffff;
+ }
+
+ .card-head {
+ margin-bottom: var(--sp-4);
+ p { margin: var(--sp-1) 0 0; color: var(--text-body); font-size: var(--fs-body); }
+ }
+
+ /* ===== 基础设置表单(单列 + 成对字段组,呼吸感间距)===== */
+ .base-form {
:deep(.el-form-item) { margin-bottom: var(--sp-4); }
+ :deep(.el-form-item:first-child) { margin-bottom: var(--sp-3); }
:deep(.el-form-item__label) { color: var(--text-body); font-weight: 600; }
:deep(.el-input__count-inner) { color: var(--text-muted); background: transparent; }
:deep(.el-input), :deep(.el-select), :deep(.el-date-editor) { width: 100%; }
@@ -210,8 +346,91 @@ function toBoolean(value, fallback) { if (value === undefined || value === null
:deep(.el-input-number .el-input__wrapper) { padding-right: 58px; }
}
+ .form-row {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: var(--sp-4) var(--sp-5);
+ }
+
.unit { margin-left: var(--sp-2); color: var(--text-body); }
+ /* ===== 分值卡片组(替代旧表格,彩色顶部条)===== */
+ .score-cards {
+ display: grid;
+ grid-template-columns: repeat(5, 1fr);
+ gap: var(--sp-3);
+ margin-top: var(--sp-5);
+ padding-top: var(--sp-4);
+ border-top: 1px solid var(--border-color);
+ }
+
+ .score-card {
+ position: relative;
+ border: 1px solid var(--border-color);
+ border-radius: var(--r-control);
+ background: #ffffff;
+ overflow: hidden;
+ transition: border-color 0.16s ease;
+
+ &:hover { border-color: var(--edu-primary); }
+ }
+
+ .score-card-bar {
+ height: 3px;
+ background: var(--border-color);
+ }
+
+ .score-card-bar,
+ .bar-total { background: var(--edu-primary); }
+
+ .score-card-body {
+ padding: var(--sp-3);
+ display: grid;
+ gap: var(--sp-1);
+ }
+
+ .score-card-label {
+ font-size: var(--fs-tag);
+ color: var(--text-muted);
+ font-weight: 500;
+ }
+
+ .score-card-nums {
+ display: flex;
+ align-items: baseline;
+ gap: var(--sp-1);
+ }
+
+ .num-picked {
+ font-size: var(--fs-num);
+ font-weight: 700;
+ color: var(--text-strong);
+ line-height: 1;
+ }
+
+ .num-sep {
+ color: var(--text-muted);
+ font-size: var(--fs-card);
+ }
+
+ .num-total {
+ font-size: var(--fs-card);
+ color: var(--text-body);
+ }
+
+ .score-card-sub {
+ font-size: var(--fs-tag);
+ color: var(--text-body);
+ }
+
+ .score-card-total {
+ background: var(--edu-primary-soft);
+
+ .score-card-label { color: var(--edu-primary-deep); }
+ .num-picked { color: var(--edu-primary); }
+ .score-card-sub { color: var(--edu-primary-deep); }
+ }
+
.section-head {
display: flex;
align-items: flex-start;
@@ -229,118 +448,350 @@ function toBoolean(value, fallback) { if (value === undefined || value === null
.import-hint { max-width: 420px; color: var(--text-muted); font-size: var(--fs-tag); line-height: 1.45; text-align: right; }
- /* ===== 选择试题 ===== */
- .question-layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: var(--sp-4); }
+ /* ===== 题型 Tab 栏(步骤02选择题型 + 步骤03试卷快速跳转共用)===== */
+ .type-tabs {
+ display: flex;
+ gap: var(--sp-2);
+ margin-bottom: var(--sp-4);
+ padding-bottom: var(--sp-3);
+ border-bottom: 1px solid var(--border-color);
+ overflow-x: auto;
+ }
- .type-nav {
- align-self: start;
- display: grid;
- gap: var(--sp-1);
- padding: var(--sp-2);
+ .type-tab {
+ display: inline-flex;
+ align-items: center;
+ gap: var(--sp-2);
+ padding: 9px var(--sp-4);
border: 1px solid var(--border-color);
- border-radius: var(--r-card);
+ border-radius: var(--r-control);
background: #ffffff;
- button {
- appearance: none;
- -webkit-appearance: none;
- width: 100%;
- border: 1px solid transparent;
- background: transparent;
- padding: var(--sp-3);
- display: flex;
- justify-content: space-between;
- color: var(--text-body);
- cursor: pointer;
- border-radius: var(--r-control);
- font: inherit;
- text-align: left;
- b { font-weight: 600; color: var(--edu-primary); }
- &.active { color: var(--edu-primary-deep); background: var(--edu-primary-soft); }
- &:hover { color: var(--text-strong); background: #f9fafb; }
- }
- }
+ cursor: pointer;
+ font: inherit;
+ font-size: var(--fs-body);
+ font-weight: 500;
+ color: var(--text-body);
+ white-space: nowrap;
+ transition: all 0.16s ease;
+ height: 36px;
- .question-list { min-width: 0; }
+ &:hover { border-color: var(--edu-primary); color: var(--edu-primary); }
- .question-item {
- display: grid;
- grid-template-columns: 28px 1fr auto;
- gap: var(--sp-2);
- padding: var(--sp-4) var(--sp-3);
- border-bottom: 1px solid var(--border-color);
- &.selected { background: var(--edu-primary-soft); }
- h3 { color: var(--text-strong); font-size: var(--fs-card); line-height: 1.6; margin: 0; font-weight: 600; }
+ &.active {
+ background: var(--edu-primary);
+ border-color: var(--edu-primary);
+ color: #ffffff;
+
+ .type-tab-count { background: rgba(255,255,255,0.2); }
+ .type-tab-count b { color: #ffffff; }
+ .type-tab-count em { color: rgba(255,255,255,0.7); }
+ }
}
- .options { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--sp-1) var(--sp-4); color: var(--text-body); margin-top: var(--sp-2); }
+ .type-tab-label { font-weight: 500; }
- .score-input {
- display: flex;
+ .type-tab-count {
+ display: inline-flex;
align-items: center;
gap: var(--sp-1);
+ padding: 2px var(--sp-2);
+ border-radius: var(--r-control);
+ background: var(--border-color);
+ font-size: var(--fs-tag);
+
+ b { font-weight: 600; color: var(--edu-primary); font-style: normal; }
+ em { color: var(--text-muted); font-style: normal; }
+ }
+
+ .type-tab-nav.type-tab {
+ border-color: var(--border-color);
+ background: #ffffff;
color: var(--text-body);
- :deep(.el-input-number) { width: 104px; }
}
- /* ===== 试卷概览 ===== */
- .score-summary {
+ .question-list {
display: grid;
- grid-template-columns: repeat(5, 1fr);
+ gap: var(--sp-3);
+ min-width: 0;
+ }
+
+ /* 题目卡片 */
+ .q-card {
+ position: relative;
+ display: flex;
+ gap: var(--sp-3);
+ padding: var(--sp-4);
border: 1px solid var(--border-color);
- border-radius: var(--r-card);
- overflow: hidden;
- margin-bottom: var(--sp-4);
+ border-radius: var(--r-control);
background: #ffffff;
- > div {
- padding: var(--sp-4);
- border-right: 1px solid var(--border-color);
- display: grid;
- gap: var(--sp-1);
- &:last-child { border-right: 0; }
- span { color: var(--text-body); }
- small { color: var(--text-body); font-size: var(--fs-tag); }
- strong { font-size: var(--fs-num); color: var(--text-strong); }
+ cursor: pointer;
+ transition: all 0.18s ease;
+ overflow: hidden;
+
+ &:hover { border-color: var(--edu-primary); }
+
+ &.is-picked {
+ border-color: var(--edu-primary);
+ background: var(--edu-primary-soft);
}
- .total { background: var(--edu-primary-soft); }
}
- .anchor-nav {
+ .q-card-stripe {
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ width: 3px;
+ background: var(--border-color);
+ transition: background 0.18s ease;
+ }
+
+ .q-card.is-picked .q-card-stripe {
+ background: var(--edu-primary);
+ }
+
+ .q-card-body { flex: 1; min-width: 0; padding-left: var(--sp-2); }
+
+ .q-card-head {
display: flex;
+ align-items: center;
gap: var(--sp-2);
- margin: var(--sp-4) 0;
- button {
- border: 1px solid var(--border-color);
- background: #ffffff;
- color: var(--text-body);
- padding: var(--sp-2) var(--sp-3);
- border-radius: var(--r-control);
- cursor: pointer;
- font-size: var(--fs-body);
- &:hover { border-color: var(--edu-primary); color: var(--edu-primary); }
+ margin-bottom: var(--sp-2);
+ }
+
+ .q-card-no {
+ display: inline-grid;
+ place-items: center;
+ width: 22px;
+ height: 22px;
+ border-radius: 6px;
+ background: var(--border-color);
+ color: var(--text-muted);
+ font-size: var(--fs-tag);
+ font-weight: 600;
+ line-height: 1;
+ }
+
+ .q-card.is-picked .q-card-no {
+ background: var(--edu-primary);
+ color: #ffffff;
+ }
+
+ .q-card-type {
+ font-size: var(--fs-body);
+ color: var(--text-muted);
+ font-weight: 500;
+ }
+
+ .q-score-chip {
+ display: inline-flex;
+ align-items: center;
+ gap: var(--sp-1);
+ margin-left: auto;
+ padding: 2px var(--sp-3);
+ border-radius: var(--r-control);
+ background: #ffffff;
+ border: 1px solid var(--edu-primary);
+ font-size: var(--fs-tag);
+ color: var(--edu-primary-deep);
+
+ span { color: var(--edu-primary-deep); font-weight: 500; }
+
+ :deep(.el-input-number) { width: 88px; }
+ :deep(.el-input-number .el-input__wrapper) {
+ padding: 2px 6px;
+ box-shadow: none !important;
+ background: transparent;
+ }
+ :deep(.el-input-number__decrease),
+ :deep(.el-input-number__increase) {
+ display: none;
}
}
+ .q-card-stem {
+ margin: 0 0 var(--sp-2);
+ color: var(--text-strong);
+ font-size: var(--fs-body);
+ line-height: 1.6;
+ font-weight: 500;
+ }
+
+ .q-options {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: var(--sp-1) var(--sp-3);
+ }
+
+ .q-option {
+ display: flex;
+ gap: 8px;
+ font-size: var(--fs-tag);
+ color: var(--text-body);
+ line-height: 1.5;
+ }
+
+ .q-option-label {
+ font-weight: 600;
+ color: var(--text-muted);
+ flex-shrink: 0;
+ }
+
+ .q-card-check {
+ flex-shrink: 0;
+ align-self: flex-start;
+ margin-top: 2px;
+ }
+
+ .q-check-off {
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ border: 2px solid var(--text-muted);
+ display: grid;
+ place-items: center;
+ color: var(--text-muted);
+ font-size: var(--fs-card);
+ font-weight: 400;
+ transition: all 0.18s ease;
+ }
+
+ .q-card:hover .q-check-off {
+ border-color: var(--edu-primary);
+ color: var(--edu-primary);
+ }
+
+ .q-check-on {
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ background: var(--edu-primary);
+ display: grid;
+ place-items: center;
+ color: #ffffff;
+ transition: all 0.18s ease;
+
+ .el-icon { font-size: var(--fs-card); }
+ }
+
+ /* ===== 试卷概览(复用 score-cards + 新预览结构)===== */
+ .preview-stage { max-width: 1280px; }
+
+ .preview-score-cards { margin-top: var(--sp-4); }
+
+ .score-card-zero {
+ opacity: 0.5;
+ .num-picked { color: var(--text-muted); }
+ .score-card-sub { color: var(--text-muted); }
+ }
+
+ .preview-body { margin-top: var(--sp-5); }
+
.paper-section {
- scroll-margin-top: var(--sp-5);
- border-top: 1px solid var(--border-color);
- padding-top: var(--sp-4);
- margin-top: var(--sp-5);
- h3 { color: var(--text-strong); font-size: var(--fs-page); margin: 0 0 var(--sp-2); }
+ scroll-margin-top: 80px;
+ margin-bottom: var(--sp-5);
+ border: 1px solid var(--border-color);
+ border-radius: var(--r-control);
+ background: #ffffff;
+ overflow: hidden;
+ }
+
+ .paper-section-head {
+ display: flex;
+ align-items: center;
+ gap: var(--sp-3);
+ padding: var(--sp-3) var(--sp-4);
+ background: #ffffff;
+ border-bottom: 1px solid var(--border-color);
+ position: relative;
+ }
+
+ .paper-section-stripe {
+ width: 4px;
+ height: 20px;
+ border-radius: 2px;
+ background: var(--border-color);
+ }
+
+ .paper-section-head h3 {
+ margin: 0;
+ font-size: var(--fs-card);
+ font-weight: 600;
+ color: var(--text-strong);
+ }
+
+ .paper-section-meta {
+ margin-left: auto;
+ font-size: var(--fs-tag);
+ color: var(--text-muted);
+ font-weight: 500;
+ }
+
+ .paper-questions {
+ display: grid;
+ gap: var(--sp-1);
}
- .paper-question {
+ .pq-card {
display: grid;
- grid-template-columns: 26px 1fr;
- padding: var(--sp-3) 0;
+ grid-template-columns: 36px 1fr auto;
+ gap: var(--sp-3);
+ align-items: start;
+ padding: var(--sp-3) var(--sp-4);
border-bottom: 1px solid var(--border-color);
- h4 {
- margin: 0 0 var(--sp-2);
- color: var(--text-strong);
- line-height: 1.6;
- font-weight: 600;
- b { float: right; color: var(--edu-primary-deep); }
- }
- p { margin: var(--sp-1) 0; color: var(--text-body); }
+ transition: background 0.14s ease;
+
+ &:last-child { border-bottom: 0; }
+ &:hover { background: var(--edu-primary-soft); }
+ }
+
+ .pq-no {
+ display: grid;
+ place-items: center;
+ width: 28px;
+ height: 28px;
+ border-radius: var(--r-control);
+ background: var(--border-color);
+ color: var(--text-muted);
+ font-size: var(--fs-card);
+ font-weight: 600;
+ flex-shrink: 0;
+ }
+
+ .pq-body { min-width: 0; }
+
+ .pq-stem {
+ margin: 0 0 var(--sp-2);
+ color: var(--text-strong);
+ font-size: var(--fs-body);
+ line-height: 1.65;
+ font-weight: 500;
+ }
+
+ .pq-options {
+ display: grid;
+ gap: var(--sp-1);
+ }
+
+ .pq-option {
+ font-size: var(--fs-tag);
+ color: var(--text-body);
+ line-height: 1.55;
+
+ b { color: var(--text-muted); font-weight: 600; margin-right: var(--sp-1); }
+ }
+
+ .pq-score {
+ display: inline-flex;
+ align-items: center;
+ padding: 2px var(--sp-3);
+ border-radius: var(--r-control);
+ background: var(--edu-primary-soft);
+ color: var(--edu-primary-deep);
+ font-size: var(--fs-tag);
+ font-weight: 600;
+ flex-shrink: 0;
+ margin-top: var(--sp-1);
}
/* ===== 自定义空状态 ===== */
@@ -388,108 +839,132 @@ function toBoolean(value, fallback) { if (value === undefined || value === null
:deep(.el-button) { min-width: 112px; }
}
- /* ===== master 新版编辑器布局骨架(布局来自 master,配色按教育风令牌重制)===== */
+ /* ===== 编辑器步骤条(极简文字式:数字徽标 + 文字 + 箭头,左对齐跟随内容流)===== */
.prototype-nav {
display: flex;
align-items: center;
- justify-content: center;
+ justify-content: flex-start;
gap: var(--sp-4);
margin-bottom: var(--sp-4);
- :deep(.el-button) { min-width: 150px; }
- }
-
- .prototype-base-panel {
- max-width: 1440px;
- padding: 0 var(--sp-5) var(--sp-4);
-
- > h2 { margin-bottom: var(--sp-3); }
-
- .base-form {
- max-width: none;
- display: grid;
- grid-template-columns: 1.7fr 1.2fr 1.2fr .9fr 1.35fr;
- gap: var(--sp-2) var(--sp-4);
- padding: 0;
+ .step-node {
+ display: inline-flex;
+ align-items: center;
+ gap: var(--sp-2);
+ padding: 6px 2px;
border: 0;
background: transparent;
- box-shadow: none;
+ color: var(--text-body);
+ font-size: var(--fs-body);
+ font-weight: 400;
+ cursor: pointer;
+ transition: color 0.16s ease;
+
+ .step-num {
+ display: inline-grid;
+ place-items: center;
+ width: 22px;
+ height: 22px;
+ border-radius: 50%;
+ background: var(--border-color);
+ color: var(--text-body);
+ font-size: var(--fs-tag);
+ font-weight: 600;
+ transition: all 0.16s ease;
+ }
+
+ &:hover {
+ color: var(--text-strong);
+
+ .step-num {
+ background: var(--edu-primary-soft);
+ color: var(--edu-primary);
+ }
+ }
+
+ &.is-active {
+ color: var(--edu-primary);
+ font-weight: 600;
+
+ .step-num {
+ background: var(--edu-primary);
+ color: #ffffff;
+ }
+ }
+ }
- :deep(.el-form-item) { margin-bottom: var(--sp-2); }
- :deep(.el-form-item:first-child) { grid-column: 1 / -1; }
+ .step-arrow {
+ color: var(--text-muted);
+ font-size: var(--fs-card);
}
}
- .score-matrix {
- margin-top: var(--sp-2);
- border: 1px solid var(--border-color);
- border-radius: 12px;
- background: #ffffff;
- overflow: hidden;
+ .prototype-base-panel {
+ max-width: 1280px;
+ padding: 0 0 var(--sp-4);
}
- .score-matrix-head,
- .score-matrix-row {
- display: grid;
- grid-template-columns: 1.1fr 1.35fr 1.1fr 1.1fr 1.1fr;
- min-height: 42px;
- align-items: center;
- text-align: center;
- }
+ .settings-stage { max-width: 1280px; }
- .score-matrix-head {
- color: var(--text-strong);
- background: var(--edu-primary-soft);
- font-weight: 600;
+ /* ===== 考试设置:独立设置卡片(替代旧 setting-row 列表)===== */
+ .settings-grid {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: var(--sp-3);
}
- .score-matrix-row {
- color: var(--text-body);
+ .setting-card {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: var(--sp-4);
+ padding: var(--sp-4) var(--sp-4);
+ border: 1px solid var(--border-color);
+ border-radius: var(--r-control);
+ background: #f9fafb;
+ transition: all 0.16s ease;
- + .score-matrix-row { border-top: 1px solid var(--border-color); }
+ &:hover {
+ border-color: var(--edu-primary);
+ background: #ffffff;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
+ }
}
- .score-matrix-head span,
- .score-matrix-row span {
- padding: 8px 6px;
- border-right: 1px solid var(--border-color);
-
- &:last-child { border-right: 0; }
+ .setting-card-wide {
+ grid-column: 1 / -1;
}
- .settings-stage { max-width: 1180px; }
-
- .setting-row {
+ .setting-card-body {
display: grid;
- grid-template-columns: 280px minmax(0, 1fr);
- align-items: center;
- min-height: 64px;
- border-bottom: 1px solid var(--border-color);
- gap: var(--sp-4);
-
- &:last-child { border-bottom: 0; }
-
- > span { color: var(--text-strong); font-weight: 600; }
+ gap: 4px;
+ min-width: 0;
+ }
- :deep(.el-radio) { color: var(--text-body); margin-right: 0; }
- :deep(.el-radio__input.is-checked + .el-radio__label) { color: var(--edu-primary-deep); }
+ .setting-card-label {
+ font-size: var(--fs-body);
+ font-weight: 600;
+ color: var(--text-strong);
}
- .multiple-score-row {
- align-items: start;
- padding: var(--sp-4) 0;
+ .setting-card-desc {
+ font-size: var(--fs-tag);
+ color: var(--text-muted);
}
@media (max-width: 760px) {
.editor-head {
- grid-template-columns: 1fr;
- gap: var(--sp-3);
- .title-block { grid-row: 1; }
- > :last-child { justify-self: start; }
+ display: grid;
+ gap: var(--sp-2);
}
- .question-layout { grid-template-columns: 1fr; }
- .type-nav { display: flex; overflow-x: auto; }
- .score-summary { grid-template-columns: 1fr 1fr; }
+ .section-card { padding: var(--sp-4); }
+ .base-form { :deep(.el-form-item) { margin-bottom: var(--sp-3); } }
+ .form-row { grid-template-columns: 1fr; gap: var(--sp-3); }
+ .score-cards { grid-template-columns: repeat(2, 1fr); }
+ .settings-grid { grid-template-columns: 1fr; }
+ .type-tabs { flex-wrap: wrap; }
+ .pq-card { grid-template-columns: 28px 1fr; }
+ .pq-score { grid-column: 1 / -1; justify-self: start; }
.section-head { align-items: flex-start; flex-direction: column; gap: var(--sp-3); }
.import-tools { justify-items: start; width: 100%; }
.import-hint { max-width: none; text-align: left; }
diff --git a/src/views/teacherEnd/exam/index.vue b/src/views/teacherEnd/exam/index.vue
index b2a9990..b97f00a 100644
--- a/src/views/teacherEnd/exam/index.vue
+++ b/src/views/teacherEnd/exam/index.vue
@@ -40,7 +40,7 @@
{{ typeName[row.type] }}
{{ row.sourceType === 'PLATFORM' ? '平台题库' : '教师自建' }}
-
{{ displayAnswer(row.answer) }}
+
{{ displayAnswer(row.answer) }}
{{ formatTime(row.updatedAt) }}
{{ row.sourceType === 'PLATFORM' ? '查看' : '编辑' }}
@@ -60,19 +60,20 @@
{{ row.name }}
起止时间:{{ formatTime(row.startTime) }} - {{ formatTime(row.endTime) }}
考试时长:{{ row.durationMinutes || durationBetween(row) }}分钟
- 状态:{{ statusMeta[row.status]?.label }}
+ {{ statusMeta[row.status]?.label || row.status }}
-
撤回
-
编辑
-
指定人回退
-
评阅分析 handleExport(command, row)">导出空白试卷班级成绩全部答卷删除
+
撤回
+
编辑
+
指定人回退
+
评阅分析 handleExport(command, row)">导出空白试卷班级成绩全部答卷删除
@@ -111,9 +112,9 @@