diff --git a/src/assets/styles/teacher-light.scss b/src/assets/styles/teacher-light.scss index 710e10e..4c6fd7b 100644 --- a/src/assets/styles/teacher-light.scss +++ b/src/assets/styles/teacher-light.scss @@ -1572,7 +1572,9 @@ body.teacher-light-mode { // ===== 弹窗(teacher-dialog / admin-edit-dialog / platform-admin-dialog:扁平纯白 + 教育风令牌)===== .teacher-dialog, .admin-edit-dialog, - .platform-admin-dialog { + .platform-admin-dialog, + .question-editor-dialog, + .question-ai-dialog { // dialog 作用域内重设 EP CSS 变量,防止 html.dark 的 --el-color-primary:#00aaff 污染 --el-color-primary: #3b82f6; --el-color-primary-light-3: #60a5fa; @@ -1853,6 +1855,46 @@ body.teacher-light-mode { } } + // ===== 超管题库管理弹窗(question-editor-dialog / question-ai-dialog)===== + // 继承上方 platform-admin-dialog 的颜色/令牌规则,但覆盖 flex 布局, + // 保持原有弹窗排版(不强制 flex 列布局,避免内部自定义网格被挤压) + .question-editor-dialog, + .question-ai-dialog { + display: block !important; + background: #ffffff !important; + border: 1px solid #e5e7eb !important; + border-radius: 12px !important; + box-shadow: 0 20px 56px rgba(30, 60, 100, 0.12) !important; + overflow: visible !important; + + .el-dialog__header { + background: #ffffff !important; + border-bottom: 1px solid #e5e7eb; + padding: 16px 20px 12px; + + .el-dialog__title { + color: #1f2937 !important; + } + + .el-dialog__close { + color: #9ca3af !important; + } + } + + .el-dialog__body { + background: #ffffff !important; + color: #1f2937; + padding: 20px; + overflow: visible; + } + + .el-dialog__footer { + background: #ffffff !important; + border-top: 1px solid #e5e7eb; + padding: 12px 20px; + } + } + // 弹窗遮罩层:中灰半透明、无 blur、不影响内容清晰度 // 注:遮罩层在 body 下(teleport),用 body.teacher-light-mode 命中 .el-overlay { diff --git a/src/views/components/TrainingMaterialButton.vue b/src/views/components/TrainingMaterialButton.vue index 5c9d780..3e3f86e 100644 --- a/src/views/components/TrainingMaterialButton.vue +++ b/src/views/components/TrainingMaterialButton.vue @@ -11,20 +11,20 @@ 案例资料 - + - 案例视频 + 案例数据 实训指导手册 - + - AI排错指导手册 + AI辅助指导手册 @@ -46,13 +46,13 @@ const props = defineProps({ materialUrl: { type: String, default: "" }, caseMaterialName: { type: String, default: "" }, caseMaterialUrl: { type: String, default: "" }, - // 案例视频(内部字段沿用 trainingData 命名) + // 案例数据(内部字段沿用 trainingData 命名) trainingDataName: { type: String, default: "" }, trainingDataUrl: { type: String, default: "" }, // 实训指导手册 guideManualName: { type: String, default: "" }, guideManualUrl: { type: String, default: "" }, - // AI 排错指导手册(内部字段沿用 aiManual 命名) + // AI 辅助指导手册(内部字段沿用 aiManual 命名) aiManualName: { type: String, default: "" }, aiManualUrl: { type: String, default: "" } }) diff --git a/src/views/components/TrainingTaskToolbar.vue b/src/views/components/TrainingTaskToolbar.vue index 02526a0..9285685 100644 --- a/src/views/components/TrainingTaskToolbar.vue +++ b/src/views/components/TrainingTaskToolbar.vue @@ -10,9 +10,11 @@ :ai-manual-name="resolvedAiManual.name" :ai-manual-url="resolvedAiManual.url" /> + 提交任务 @@ -314,6 +316,7 @@ function exportLegacyTraining() { diff --git a/src/views/student/index.vue b/src/views/student/index.vue index 9724c2a..8e0fa60 100644 --- a/src/views/student/index.vue +++ b/src/views/student/index.vue @@ -1,424 +1,564 @@ @@ -429,10 +569,10 @@ onBeforeUnmount(() => { * 此处仅保留 padding 清零与外层 .index 的 margin 清零,使首页内容贴边。 */ #app .studentLayout section.app-main:has(.student-home) { - padding: 0 !important; + padding: 0 !important; } #app .studentLayout .app-main:has(.student-home) .index { - margin: 0 !important; + margin: 0 !important; }