diff --git a/src/assets/styles/student-training.scss b/src/assets/styles/student-training.scss index 55287f8..55267e9 100644 --- a/src/assets/styles/student-training.scss +++ b/src/assets/styles/student-training.scss @@ -21,19 +21,23 @@ .student-training-shell { --student-step-height: 40px; --student-step-font: 13px; - --student-action-height: 38px; - --student-action-font: 15px; + --student-action-height: 34px; + --student-action-font: 13px; --student-upload-height: 36px; --student-upload-font: 13px; --student-aux-height: 38px; --student-aux-font: 13px; --student-radius-sm: 6px; --student-radius-pill: 999px; - /* 墨黑极简主题令牌 */ - --student-accent: #1f2937; - --student-accent-deep: #111827; - --student-accent-light: #4b5563; - --student-accent-soft: #f3f4f6; + /* 教育蓝主题令牌(复刻 foundation/new-product-survey.vue) */ + --student-accent: #2563eb; + --student-accent-deep: #1d4ed8; + --student-accent-light: #3b82f6; + --student-accent-soft: #eff6ff; + /* 语义色 */ + --student-danger: #ef4444; + --student-success: #2ba471; + /* 结构色 */ --student-panel-border: #e5e7eb; --student-card-bg: #ffffff; --student-panel-bg: #fafbfc; @@ -55,9 +59,9 @@ --el-input-bg-color: #ffffff; --el-input-text-color: #1f2937; --el-input-border-color: #e5e7eb; - --el-input-hover-border-color: #1f2937; - --el-input-focus-border-color: #1f2937; - --el-input-focus-ring-color: rgba(31, 41, 55, 0.15); + --el-input-hover-border-color: #3b82f6; + --el-input-focus-border-color: #2563eb; + --el-input-focus-ring-color: rgba(59, 130, 246, 0.15); --el-input-disabled-bg-color: #f3f4f6; --el-input-disabled-text-color: #9ca3af; --el-input-disabled-border-color: #e5e7eb; @@ -65,20 +69,52 @@ --el-textarea-bg-color: #ffffff; --el-textarea-text-color: #1f2937; --el-textarea-border-color: #e5e7eb; - --el-textarea-hover-border-color: #1f2937; - --el-textarea-focus-border-color: #1f2937; - --el-textarea-focus-ring-color: rgba(31, 41, 55, 0.15); + --el-textarea-hover-border-color: #3b82f6; + --el-textarea-focus-border-color: #2563eb; + --el-textarea-focus-ring-color: rgba(59, 130, 246, 0.15); --el-select-bg-color: #ffffff; --el-select-text-color: #1f2937; - --el-select-border-color-hover: #1f2937; + --el-select-border-color-hover: #3b82f6; + + /* Element Plus 主色:教育蓝(复刻源页,保证 checkbox/radio/switch/分页等激活色全站一致) */ + --el-color-primary: #2563eb; + --el-color-primary-light-3: #60a5fa; + --el-color-primary-light-5: #93c5fd; + --el-color-primary-light-7: #bfdbfe; + --el-color-primary-light-8: #dbeafe; + --el-color-primary-light-9: #eff6ff; + --el-color-primary-dark-2: #1d4ed8; --el-fill-color-blank: #ffffff; --el-border-color: #e5e7eb; - --el-border-color-hover: #1f2937; + --el-border-color-hover: #3b82f6; --el-border-radius-base: 6px; } +/* + * 考试考核 / 实训报告 / BI 可视化页不在 .student-training-shell 内, + * 单独接管 Element Plus 主色,保证勾选框、单选、分页等激活色同为教育蓝。 + */ +.student-exams, +.take-page, +.result-page, +.test-report, +.visual-analysis { + --el-color-primary: #2563eb; + --el-color-primary-light-3: #60a5fa; + --el-color-primary-light-5: #93c5fd; + --el-color-primary-light-7: #bfdbfe; + --el-color-primary-light-8: #dbeafe; + --el-color-primary-light-9: #eff6ff; + --el-color-primary-dark-2: #1d4ed8; + --el-input-hover-border-color: #3b82f6; + --el-input-focus-border-color: #2563eb; + --el-input-focus-ring-color: rgba(59, 130, 246, 0.15); + --el-textarea-hover-border-color: #3b82f6; + --el-textarea-focus-border-color: #2563eb; +} + /* * The app-main padding around a student training page is part of the page * canvas. It must blend into the training canvas instead of exposing the @@ -86,13 +122,18 @@ */ #app .studentLayout .app-main:has(.student-training-shell), #app .teacherLayout .app-main:has(.student-training-shell), -#app .studentLayout .app-main:has(.student-home) { - background: linear-gradient(135deg, #f5f8fc 0%, #eaf2fb 52%, #f3f8ff 100%) !important; +#app .studentLayout .app-main:has(.student-home), +#app .studentLayout .app-main:has(.student-exams), +#app .studentLayout .app-main:has(.take-page), +#app .studentLayout .app-main:has(.result-page), +#app .studentLayout .app-main:has(.test-report), +#app .studentLayout .app-main:has(.visual-analysis) { + background: #ffffff !important; } -/* 教师端亮色主题:实训页背景改为浅色,与学生端统一浅色风格 */ +/* 教师端亮色主题:实训页背景改为纯白,与学生端统一 */ #app .teacherLayout .app-main:has(.student-training-shell) { - background: linear-gradient(135deg, #f5f8fc 0%, #eaf2fb 52%, #f3f8ff 100%) !important; + background: #ffffff !important; } #app .studentLayout .app-main:has(.student-training-shell) .student-training-shell, @@ -108,8 +149,7 @@ min-height: calc(100vh - 90px) !important; margin: 0 !important; /* padding 由架构标签 .app-main 提供(sidebar.scss 中 28px 32px 40px 24px),子页面根标签不再叠加 */ - // padding: 10px 10px 16px !important; - // padding: 10px 10px 16px !important; + padding: 0 !important; background: #ffffff !important; /* 应用实训页专用字体栈 + 数字等宽对齐 */ font-family: var(--student-font-base) !important; @@ -135,26 +175,39 @@ */ .student-training-shell > main { min-width: 0 !important; + /* 复刻 new-product-survey:core 为透明网格层,无独立卡片盒模型 */ padding: 14px !important; + border: 0 !important; border-radius: 20px !important; + background: transparent !important; + box-shadow: none !important; } .student-training-shell > main > .task-card, .student-training-shell > main > .process-workbench, .student-training-shell > main > .factors-workbench, .student-training-shell > main > .workbench { + /* 复刻 new-product-survey .task-card:透明工作区,仅内容内缩,不画卡片 */ + margin: 0 !important; padding: 10px 12px !important; + border: 0 !important; border-radius: 16px !important; + background: transparent !important; + box-shadow: none !important; } #app .studentLayout .app-main:has(.student-training-shell) .student-training-shell.product-process .process-workbench { + margin: 0 !important; padding: 10px 12px !important; + border: 0 !important; border-radius: 16px !important; + background: transparent !important; + box-shadow: none !important; } #app .studentLayout .app-main:has(.student-training-shell) .student-training-shell.product-process .process-step-card { padding: 12px !important; - border-radius: 16px !important; + border-radius: 12px !important; } #app .studentLayout .app-main:has(.student-training-shell) .student-training-shell.product-process .task-header { @@ -178,15 +231,45 @@ .student-training-shell .step-card, .student-training-shell .process-step-card, .student-training-shell .factor-step-card { + /* 复刻 new-product-survey .step-card:白卡 12px 内边距、12px 圆角 */ + margin: 0 !important; padding: 12px !important; - border-radius: 16px !important; - padding: 12px !important; - border-radius: 16px !important; + border: 1px solid var(--student-panel-border) !important; + border-radius: 12px !important; + background: var(--student-card-bg) !important; + box-shadow: none !important; } +/* ============================================================ + * task-header 统一(复刻 new-product-survey: + * padding 18px 20px 18px 24px、12px 圆角、白卡、左侧 4px 教育蓝竖条) + * ============================================================ */ .student-training-shell .task-header { - margin-bottom: 12px !important; - margin-bottom: 12px !important; + position: relative !important; + margin: 0 0 12px !important; + padding: 18px 20px 18px 24px !important; + border: 1px solid var(--student-panel-border) !important; + border-radius: 12px !important; + background: var(--student-card-bg) !important; + box-shadow: none !important; + overflow: hidden !important; + + &::before { + content: "" !important; + position: absolute !important; + top: 0 !important; + bottom: 0 !important; + left: 0 !important; + width: 4px !important; + background: var(--student-accent) !important; + } +} + +/* 步骤眉标统一教育蓝(部分页面遗留灰色) */ +.student-training-shell .section-eyebrow { + color: var(--student-accent) !important; + font-size: var(--student-fs-caption) !important; + font-weight: 700 !important; } .student-training-shell .task-header .task-title { @@ -242,8 +325,8 @@ display: flex !important; flex-wrap: nowrap !important; align-items: stretch !important; - justify-content: flex-start !important; - gap: 10px !important; + justify-content: center !important; + gap: 0 !important; width: 100% !important; max-width: 100% !important; margin: 4px 0 20px !important; @@ -262,22 +345,28 @@ display: none !important; } +/* 胶囊分段不需要连接线 */ +.student-training-shell .step-indicator .step-connector, +.student-training-shell .comprehensive-step-strip .step-connector { + display: none !important; +} + .student-training-shell .flow-pill, .student-training-shell .step-tab { - flex: 0 0 auto !important; - min-width: auto !important; - max-width: none !important; + flex: 1 1 0 !important; + max-width: 240px !important; display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; gap: 8px !important; height: auto !important; - min-height: 42px !important; + min-height: 40px !important; margin: 0 !important; padding: 8px 14px !important; border: 1px solid #e5e7eb !important; - border-radius: 8px !important; + border-right: none !important; + border-radius: 0 !important; background: #ffffff !important; box-shadow: none !important; color: #6b7280 !important; @@ -285,11 +374,19 @@ font-weight: 600 !important; line-height: 1.3 !important; letter-spacing: 0 !important; - white-space: nowrap !important; + white-space: normal !important; text-align: center !important; cursor: pointer; transition: background-color .16s ease, color .16s ease, border-color .16s ease !important; + &:first-child { + border-radius: 8px 0 0 8px !important; + } + &:last-child { + border-radius: 0 8px 8px 0 !important; + border-right: 1px solid #e5e7eb !important; + } + .step-bar { display: none !important; } .step-no, @@ -318,32 +415,33 @@ .student-training-shell .flow-pill:hover:not(.active):not(.complete), .student-training-shell .step-tab:hover:not(.active):not(.complete) { - border-color: #1f2937 !important; - background: #f9fafb !important; - color: #1f2937 !important; + border-color: #2563eb !important; + background: #eff6ff !important; + color: #2563eb !important; + z-index: 1 !important; .step-no, &:has(.step-no) .step-no { - background: #1f2937 !important; + background: #2563eb !important; color: #ffffff !important; } } .student-training-shell .flow-pill.complete:not(.active), .student-training-shell .step-tab.complete:not(.active) { - border-color: #dce9e2 !important; + border-color: #e5e7eb !important; color: #374151 !important; .step-no, &:has(.step-no) .step-no { - background: rgba(74,157,110,.12) !important; - color: #3f8a5f !important; + background: rgba(43, 164, 113, 0.12) !important; + color: #16915f !important; } &:hover { - border-color: #4a9d6e !important; - background: #f9fafb !important; - color: #374151 !important; + border-color: #2ba471 !important; + background: #f0fdf6 !important; + z-index: 1 !important; .step-no, &:has(.step-no) .step-no { - background: #4a9d6e !important; + background: #2ba471 !important; color: #ffffff !important; } } @@ -351,22 +449,29 @@ .student-training-shell .flow-pill.active, .student-training-shell .step-tab.active { - border-color: #1f2937 !important; - background: #1f2937 !important; + border-color: #2563eb !important; + background: #2563eb !important; color: #ffffff !important; font-weight: 700 !important; - box-shadow: 0 2px 6px rgba(31,41,55,.16) !important; + box-shadow: none !important; + z-index: 2 !important; .step-no, &:has(.step-no) .step-no { background: #ffffff !important; - color: #1f2937 !important; + color: #2563eb !important; } &:hover { - background: #111827 !important; - border-color: #111827 !important; + background: #1d4ed8 !important; + border-color: #1d4ed8 !important; } } +/* 综合实训导航(GenericTrainingPage):步骤多、可拖动,tab 固定宽,视觉沿用胶囊 */ +.student-training-shell .comprehensive-step-strip .step-tab { + flex: 0 0 190px !important; + max-width: 190px !important; +} + /* 窄屏步骤导航横向滑动 */ @media (max-width: 900px) { .student-training-shell .step-indicator { @@ -376,8 +481,9 @@ } .student-training-shell .step-tab, .student-training-shell .flow-pill { - flex: 0 0 auto !important; - min-width: 140px !important; + flex: 0 0 140px !important; + min-width: 0 !important; + max-width: none !important; } } @@ -526,10 +632,10 @@ height: 40px !important; min-height: 40px !important; padding: 0 18px !important; - border: 1px solid #1f2937 !important; + border: 1px solid var(--student-accent, #1f2937) !important; border-radius: 10px !important; color: #ffffff !important; - background: #1f2937 !important; + background: var(--student-accent, #1f2937) !important; box-shadow: 0 2px 6px rgba(31,41,55,.16) !important; font-size: var(--student-fs-body) !important; font-weight: 700 !important; @@ -538,8 +644,8 @@ } .training-step-area .el-button:hover { - background: #111827 !important; - border-color: #111827 !important; + background: var(--student-accent-deep, #111827) !important; + border-color: var(--student-accent-deep, #111827) !important; } .training-step-area .el-button span { @@ -565,16 +671,16 @@ justify-content: center !important; min-width: 112px !important; width: auto !important; - height: 40px !important; - min-height: 40px !important; - padding: 0 18px !important; - border: 1px solid #e5e7eb !important; - border-radius: 10px !important; - color: #1f2937 !important; + height: 34px !important; + min-height: 34px !important; + padding: 0 14px !important; + border: 1px solid rgba(37, 99, 235, 0.35) !important; + border-radius: 8px !important; + color: #2563eb !important; background: #ffffff !important; box-shadow: none !important; font-size: var(--student-fs-body) !important; - font-weight: 700 !important; + font-weight: 600 !important; line-height: 1 !important; letter-spacing: 0 !important; cursor: pointer; @@ -589,26 +695,26 @@ .student-training-shell .training-actions .el-button.training-action:hover:not(.is-disabled), .student-training-shell .training-actions button.training-action:hover:not(:disabled) { - border-color: #1f2937 !important; - color: #1f2937 !important; - background: #f9fafb !important; + border-color: #2563eb !important; + color: #2563eb !important; + background: #eff6ff !important; transform: translateY(-1px) !important; - box-shadow: 0 3px 10px rgba(31,41,55,.14) !important; + box-shadow: 0 2px 6px rgba(37, 99, 235, .12) !important; } .student-training-shell .training-actions .el-button.training-action.primary, .student-training-shell .training-actions button.training-action.primary { - border: 1px solid #1f2937 !important; + border: 1px solid #2563eb !important; color: #ffffff !important; - background: #1f2937 !important; - box-shadow: 0 2px 6px rgba(31,41,55,.16) !important; + background: #2563eb !important; + box-shadow: 0 2px 6px rgba(37, 99, 235, .2) !important; } .student-training-shell .training-actions .el-button.training-action.primary:hover:not(.is-disabled), .student-training-shell .training-actions button.training-action.primary:hover:not(:disabled) { - background: #111827 !important; - border-color: #111827 !important; - box-shadow: 0 4px 12px rgba(31,41,55,.24) !important; + background: #1d4ed8 !important; + border-color: #1d4ed8 !important; + box-shadow: 0 4px 12px rgba(29, 78, 216, .24) !important; } .student-training-shell .training-actions .el-button.training-action.is-disabled, @@ -638,7 +744,7 @@ min-height: var(--student-action-height) !important; padding: 0 16px !important; font-size: var(--student-action-font) !important; - font-weight: 800 !important; + font-weight: 600 !important; line-height: 1 !important; } @@ -658,7 +764,7 @@ min-height: var(--student-action-height) !important; padding: 0 16px !important; font-size: var(--student-action-font) !important; - font-weight: 800 !important; + font-weight: 600 !important; line-height: 1 !important; } @@ -674,42 +780,42 @@ .student-training-shell .training-actions button.training-action, .student-training-shell .task-actions > button, .student-training-shell .taskfooter .el-button { - border: 1px solid rgba(31, 41, 55, 0.4) !important; - border-radius: 10px !important; - color: var(--student-text, #1f2937) !important; + border: 1px solid rgba(37, 99, 235, 0.35) !important; + border-radius: 8px !important; + color: #2563eb !important; background: #ffffff !important; - font-weight: 700 !important; + font-weight: 600 !important; } .student-training-shell .training-actions .training-action--submit, .student-training-shell .task-actions > .btn-submit, .student-training-shell .task-actions > .btn-primary, .student-training-shell .taskfooter .el-button:first-child { - border-color: var(--student-accent, #1f2937) !important; + border-color: #2563eb !important; color: #ffffff !important; - background: var(--student-accent, #1f2937) !important; - box-shadow: 0 3px 10px rgba(31, 41, 55, 0.28) !important; + background: #2563eb !important; + box-shadow: 0 3px 10px rgba(37, 99, 235, 0.28) !important; } .student-training-shell .training-actions button.training-action:hover:not(:disabled), .student-training-shell .task-actions > button:hover:not(:disabled), .student-training-shell .taskfooter .el-button:hover:not(.is-disabled) { - border-color: var(--student-accent, #1f2937) !important; - background: var(--student-accent-soft, #f3f4f6) !important; - color: var(--student-accent, #1f2937) !important; + border-color: #2563eb !important; + background: #eff6ff !important; + color: #2563eb !important; transform: translateY(-1px) !important; - box-shadow: 0 3px 10px rgba(31, 41, 55, 0.12) !important; + box-shadow: 0 2px 6px rgba(37, 99, 235, 0.12) !important; } .student-training-shell .training-actions .training-action--submit:hover:not(:disabled), .student-training-shell .task-actions > .btn-primary:hover:not(:disabled), .student-training-shell .task-actions > .btn-submit:hover:not(:disabled), .student-training-shell .taskfooter .el-button:first-child:hover:not(.is-disabled) { - border-color: var(--student-accent-deep, #111827) !important; - background: var(--student-accent-deep, #111827) !important; + border-color: #1d4ed8 !important; + background: #1d4ed8 !important; color: #ffffff !important; transform: translateY(-1px) !important; - box-shadow: 0 5px 14px rgba(17, 24, 39, 0.32) !important; + box-shadow: 0 5px 14px rgba(29, 78, 216, 0.32) !important; } .student-training-shell .task-actions > button .el-icon { @@ -728,16 +834,16 @@ gap: 8px !important; min-width: 0 !important; width: auto !important; - height: 36px !important; - min-height: 36px !important; + height: 34px !important; + min-height: 34px !important; padding: 0 14px !important; - border: 1px solid rgba(31, 41, 55, 0.4) !important; + border: 1px solid rgba(37, 99, 235, 0.35) !important; border-radius: 8px !important; - color: var(--student-accent, #1f2937) !important; + color: #2563eb !important; background: #ffffff !important; box-shadow: none !important; font-size: 13px !important; - font-weight: 700 !important; + font-weight: 600 !important; line-height: 1 !important; letter-spacing: 0 !important; transition: border-color 0.16s ease, background 0.16s ease, color 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease !important; @@ -750,10 +856,10 @@ .student-training-shell button.outline-action:hover:not(:disabled), .student-training-shell .workbench-actions button.material-download:hover:not(:disabled) { transform: translateY(-1px) !important; - border-color: var(--student-accent, #1f2937) !important; - color: var(--student-accent, #1f2937) !important; - background: var(--student-accent-soft, #f3f4f6) !important; - box-shadow: 0 3px 10px rgba(31, 41, 55, 0.12) !important; + border-color: #2563eb !important; + color: #2563eb !important; + background: #eff6ff !important; + box-shadow: 0 2px 6px rgba(37, 99, 235, 0.12) !important; } /* @@ -790,27 +896,27 @@ flex: 0 0 auto !important; min-width: 0 !important; width: auto !important; - height: 36px !important; - min-height: 36px !important; - max-height: 36px !important; + height: 34px !important; + min-height: 34px !important; + max-height: 34px !important; margin: 0 !important; padding: 0 14px !important; - border: 1px solid #e5e7eb !important; + border: 1px solid rgba(37, 99, 235, 0.35) !important; border-radius: 8px !important; - color: #1f2937 !important; + color: #2563eb !important; background: #ffffff !important; font-size: 13px !important; - font-weight: 700 !important; + font-weight: 600 !important; line-height: 1 !important; white-space: nowrap !important; cursor: pointer; transition: background-color .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease !important; &:hover { - border-color: #1f2937 !important; - background: #f9fafb !important; - color: #1f2937 !important; + border-color: #2563eb !important; + background: #eff6ff !important; + color: #2563eb !important; transform: translateY(-1px) !important; - box-shadow: 0 3px 10px rgba(31,41,55,.14) !important; + box-shadow: 0 2px 6px rgba(37, 99, 235, .12) !important; } } @@ -825,22 +931,22 @@ gap: 8px !important; min-width: 0 !important; width: auto !important; - height: 40px !important; - min-height: 40px !important; - padding: 0 18px !important; - border: 1px solid #1f2937 !important; - border-radius: 10px !important; + height: 34px !important; + min-height: 34px !important; + padding: 0 14px !important; + border: 1px solid #2563eb !important; + border-radius: 8px !important; color: #ffffff !important; - background: #1f2937 !important; - box-shadow: 0 2px 6px rgba(31,41,55,.16) !important; + background: #2563eb !important; + box-shadow: 0 2px 6px rgba(37, 99, 235, .2) !important; font-size: var(--student-upload-font) !important; - font-weight: 700 !important; + font-weight: 600 !important; line-height: 1 !important; letter-spacing: 0 !important; white-space: nowrap !important; &:hover { - background: #111827 !important; - border-color: #111827 !important; + background: #1d4ed8 !important; + border-color: #1d4ed8 !important; } } @@ -909,9 +1015,9 @@ .legacy-training-page .top_item .el-button.active, .legacy-training-page .top_item .active { transform: none !important; - border-color: #1f2937 !important; + border-color: var(--student-accent, #1f2937) !important; color: #ffffff !important; - background: #1f2937 !important; + background: var(--student-accent, #1f2937) !important; } // Keep long step names inside the navigation rail. Their complete name remains @@ -1242,3 +1348,138 @@ body.student-light-mode { &:hover, &.is-focus { border-color: #1f2937 !important; box-shadow: 0 0 0 2px rgba(31, 41, 55, 0.1) !important; } } } + +/* ============================================================ + * Legacy 实训页 · 教育蓝主题 + * 适用:根元素带 .legacy-training-page 的旧版式学生实训页 + * (demand/user、test/channel、test/marketing、assessment/index) + * 令牌复刻 foundation/new-product-survey.vue 的教育蓝主题。 + * 页面内写死墨黑的全局规则(training-step-area 按钮、top_item active、 + * training-actions 提交按钮等)均已变量化,读取此处令牌自动转蓝。 + * ============================================================ */ +#app .studentLayout .app-main:has(.legacy-training-page) .legacy-training-page, +#app .teacherLayout .app-main:has(.legacy-training-page) .legacy-training-page { + /* 主色:教育蓝 */ + --student-accent: #2563eb; + --student-accent-deep: #1d4ed8; + --student-accent-light: #3b82f6; + --student-accent-soft: #eff6ff; + --student-accent-border: #bfdbfe; + --student-shadow-color: rgba(15, 23, 42, 0.08); + /* 语义色 */ + --student-danger: #ef4444; + --student-success: #2ba471; + /* 三层次标识色 */ + --student-layer-1: #1d4ed8; + --student-layer-2: #3b82f6; + --student-layer-3: #93c5fd; + /* Element Plus 主色:教育蓝 */ + --el-color-primary: #2563eb; + --el-color-primary-light-3: #60a5fa; + --el-color-primary-light-5: #93c5fd; + --el-color-primary-light-7: #bfdbfe; + --el-color-primary-light-8: #dbeafe; + --el-color-primary-light-9: #eff6ff; + --el-color-primary-dark-2: #1d4ed8; + --el-input-hover-border-color: #3b82f6; + --el-input-focus-border-color: #2563eb; + --el-input-focus-ring-color: rgba(59, 130, 246, 0.15); + --el-textarea-hover-border-color: #3b82f6; + --el-textarea-focus-border-color: #2563eb; + /* 紧凑字号梯度:与 new-product-survey 一致(11→17px) */ + --student-fs-display: 17px; + --student-fs-h1: 15px; + --student-fs-h2: 14px; + --student-fs-h3: 13px; + --student-fs-body: 13px; + --student-fs-body-sm: 12px; + --student-fs-caption: 11px; + --student-fs-button: 13px; + --student-fs-button-lg: 13px; + --student-fs-data: 14px; +} + +/* legacy 页顶部工具栏按钮(TrainingTaskToolbar):教育蓝统一, + 覆盖组件 scoped 的暗色默认样式 */ +#app .studentLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button.el-button, +#app .teacherLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button.el-button { + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; + gap: 6px !important; + min-height: 34px !important; + height: 34px !important; + padding: 0 12px !important; + border: 1px solid rgba(37, 99, 235, 0.35) !important; + border-radius: 8px !important; + color: #2563eb !important; + background: #ffffff !important; + box-shadow: none !important; + text-shadow: none !important; + font-size: 13px !important; + font-weight: 600 !important; + transition: all 0.16s ease !important; +} + +#app .studentLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button.el-button .el-icon, +#app .teacherLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button.el-button .el-icon { + font-size: 14px !important; + color: inherit !important; +} + +#app .studentLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button.el-button:hover, +#app .studentLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button.el-button:focus, +#app .teacherLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button.el-button:hover, +#app .teacherLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button.el-button:focus { + border-color: #2563eb !important; + color: #2563eb !important; + background: #eff6ff !important; + transform: translateY(-1px) !important; + box-shadow: 0 2px 6px rgba(37, 99, 235, 0.12) !important; +} + +#app .studentLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button--submit.el-button, +#app .teacherLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button--submit.el-button { + border-color: #2563eb !important; + color: #ffffff !important; + background: #2563eb !important; + box-shadow: 0 1px 2px rgba(37, 99, 235, 0.2), 0 2px 8px rgba(37, 99, 235, 0.15) !important; +} + +#app .studentLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button--submit.el-button:hover, +#app .studentLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button--submit.el-button:focus, +#app .teacherLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button--submit.el-button:hover, +#app .teacherLayout .app-main:has(.legacy-training-page) .legacy-training-page .task-toolbar-button--submit.el-button:focus { + border-color: #1d4ed8 !important; + color: #ffffff !important; + background: #1d4ed8 !important; + box-shadow: 0 2px 6px rgba(29, 78, 216, 0.3), 0 4px 12px rgba(29, 78, 216, 0.22) !important; +} + +#app .studentLayout .app-main:has(.legacy-training-page) .legacy-training-page .training-task-toolbar .material-button.el-button, +#app .teacherLayout .app-main:has(.legacy-training-page) .legacy-training-page .training-task-toolbar .material-button.el-button { + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; + gap: 6px !important; + min-height: 34px !important; + height: 34px !important; + padding: 0 12px !important; + border: 1px solid rgba(37, 99, 235, 0.35) !important; + border-radius: 8px !important; + color: #2563eb !important; + background: #ffffff !important; + box-shadow: none !important; + font-size: 13px !important; + font-weight: 600 !important; + transition: all 0.16s ease !important; +} + +#app .studentLayout .app-main:has(.legacy-training-page) .legacy-training-page .training-task-toolbar .material-button.el-button:hover, +#app .teacherLayout .app-main:has(.legacy-training-page) .legacy-training-page .training-task-toolbar .material-button.el-button:hover { + border-color: #2563eb !important; + color: #2563eb !important; + background: #eff6ff !important; + transform: translateY(-1px) !important; + box-shadow: 0 2px 6px rgba(37, 99, 235, 0.12) !important; +} diff --git a/src/views/analysis-of-students/analysis.vue b/src/views/analysis-of-students/analysis.vue index 1648d96..847a866 100644 --- a/src/views/analysis-of-students/analysis.vue +++ b/src/views/analysis-of-students/analysis.vue @@ -198,7 +198,7 @@ onMounted(() => { });