diff --git a/score-index-full.png.jpg b/score-index-full.png.jpg new file mode 100644 index 0000000..6e39e08 Binary files /dev/null and b/score-index-full.png.jpg differ diff --git a/score-index-viewport.png.jpg b/score-index-viewport.png.jpg new file mode 100644 index 0000000..de45825 Binary files /dev/null and b/score-index-viewport.png.jpg differ diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index 9679c27..ae45377 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -761,3 +761,6 @@ aside { .el-table .el-table__cell { border-radius: 0 !important; } + +/* 教师端亮色主题适配(最后导入,确保覆盖各业务页暗色 scoped 样式与全局暗色规则) */ +@import "./teacher-light.scss"; diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss index 4661484..11e148d 100644 --- a/src/assets/styles/sidebar.scss +++ b/src/assets/styles/sidebar.scss @@ -586,3 +586,141 @@ } } } + +/* + * 教师端亮色主题覆盖 + * 取代 #app .studentLayout, #app .teacherLayout 共享的暗色背景 + * 仅作用于 .teacherLayout,保留学生端原有暗黑风格 + */ +#app .teacherLayout { + // 整体浅色背景 + 蓝色点缀,营造明亮的科技感 + background: + radial-gradient(circle at 10% 20%, rgba(30, 136, 229, 0.07), transparent 34%), + radial-gradient(circle at 88% 8%, rgba(66, 165, 245, 0.05), transparent 28%), + linear-gradient(135deg, #f5f8fc 0%, #eaf2fb 52%, #f3f8ff 100%) !important; + + .main-container { + background: + radial-gradient(circle at 10% 20%, rgba(30, 136, 229, 0.06), transparent 34%), + radial-gradient(circle at 88% 8%, rgba(66, 165, 245, 0.04), transparent 28%), + linear-gradient(135deg, #f5f8fc 0%, #eaf2fb 52%, #f3f8ff 100%) !important; + } + + .app-main, + .teacher-main { + background: + radial-gradient(circle at 12% 18%, rgba(30, 136, 229, 0.05), transparent 34%), + radial-gradient(circle at 78% 6%, rgba(66, 165, 245, 0.04), transparent 28%), + linear-gradient(135deg, #f7fafd 0%, #eef4fb 48%, #f5f8fc 100%) !important; + + &::-webkit-scrollbar { + width: 6px; + height: 6px; + } + + &::-webkit-scrollbar-track { + background: rgba(30, 60, 100, 0.06); + border-radius: 10px; + } + + &::-webkit-scrollbar-thumb { + background: rgba(30, 136, 229, 0.35); + border-radius: 10px; + + &:hover { + background: rgba(30, 136, 229, 0.55); + } + } + } + + // 侧边栏整体:浅色玻璃质感 + 蓝色描边 + .sidebar-container { + border-right: 1px solid rgba(30, 136, 229, 0.18) !important; + background: linear-gradient(180deg, #ffffff 0%, #f3f8ff 100%) !important; + box-shadow: 4px 0 18px rgba(30, 60, 100, 0.06) !important; + + &::after { + background: linear-gradient(180deg, rgba(30, 136, 229, 0.35), rgba(30, 136, 229, 0.15) 45%, rgba(30, 136, 229, 0.25)) !important; + } + + // 教师端导航容器:浅色玻璃 + 蓝色描边 + .student-course-nav { + background: + radial-gradient(circle at 18% 10%, rgba(30, 136, 229, 0.08), transparent 34%), + rgba(255, 255, 255, 0.7) !important; + box-shadow: inset -1px 0 0 rgba(30, 136, 229, 0.08), 8px 0 24px rgba(30, 60, 100, 0.06) !important; + backdrop-filter: blur(10px); + } + + // 区块标题:深蓝色字 + .student-course-heading { + color: #5a7896 !important; + + &:hover, + &.active { + color: #1e88e5 !important; + } + } + + // 菜单项:浅色背景 + 深色文字 + 蓝色 hover + .student-course-link { + color: #2c4a6a !important; + background: rgba(30, 136, 229, 0.04) !important; + border: 1px solid rgba(30, 136, 229, 0.1) !important; + + &:hover, + &.active { + color: #1e88e5 !important; + border-color: rgba(30, 136, 229, 0.4) !important; + background: linear-gradient(95deg, rgba(30, 136, 229, 0.14), rgba(66, 165, 245, 0.06)) !important; + box-shadow: 0 4px 14px rgba(30, 136, 229, 0.16) !important; + } + + &.active { + border-left: 3px solid #1e88e5 !important; + } + } + + // 图标容器:浅色玻璃 + 蓝色边框 + .student-course-icon { + color: #1e88e5 !important; + border-color: rgba(30, 136, 229, 0.22) !important; + background: + linear-gradient(135deg, rgba(30, 136, 229, 0.16), rgba(66, 165, 245, 0.06)), + rgba(255, 255, 255, 0.6) !important; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), 0 0 8px rgba(30, 136, 229, 0.1) !important; + + &--heading { + color: #1e88e5 !important; + background: rgba(30, 136, 229, 0.12) !important; + } + } + + // 报告按钮(如有):浅色玻璃 + 蓝色高亮 + .student-report-button { + color: #1e88e5 !important; + background: rgba(30, 136, 229, 0.1) !important; + border-color: rgba(30, 136, 229, 0.5) !important; + + &:hover, + &.active { + color: #ffffff !important; + background: linear-gradient(135deg, #1e88e5, #42a5f5) !important; + box-shadow: 0 4px 14px rgba(30, 136, 229, 0.3) !important; + } + } + } +} + +/* + * 教师端实训页背景覆盖 + * student-training.scss 中 #app .teacherLayout .app-main:has(.student-training-shell) 使用了暗色背景 + * 此处覆盖为亮色,确保实训页与教师端整体亮色主题一致 + */ +#app .teacherLayout .app-main:has(.student-training-shell) { + background: linear-gradient(135deg, #f5f8fc 0%, #eaf2fb 52%, #f3f8ff 100%) !important; +} + +#app .teacherLayout .app-main:has(.student-training-shell) .student-training-shell { + background: transparent !important; +} diff --git a/src/assets/styles/student-training.scss b/src/assets/styles/student-training.scss index 94919bb..35d6a5a 100644 --- a/src/assets/styles/student-training.scss +++ b/src/assets/styles/student-training.scss @@ -44,6 +44,11 @@ background: #06111d !important; } +/* 教师端亮色主题:实训页背景改为浅色,与学生端暗黑风格区分 */ +#app .teacherLayout .app-main:has(.student-training-shell) { + background: linear-gradient(135deg, #f5f8fc 0%, #eaf2fb 52%, #f3f8ff 100%) !important; +} + #app .studentLayout .app-main:has(.student-training-shell) .student-training-shell, #app .teacherLayout .app-main:has(.student-training-shell) .student-training-shell { box-sizing: border-box !important; @@ -66,6 +71,11 @@ font-variant-numeric: tabular-nums !important; } +/* 教师端实训页容器背景改为透明,融入亮色主题 */ +#app .teacherLayout .app-main:has(.student-training-shell) .student-training-shell { + background: transparent !important; +} + /* * Student pages use different local names for their main and workbench cards. * Keep the layout density here so a page-specific card cannot reclaim the diff --git a/src/assets/styles/teacher-light.scss b/src/assets/styles/teacher-light.scss new file mode 100644 index 0000000..6226421 --- /dev/null +++ b/src/assets/styles/teacher-light.scss @@ -0,0 +1,1843 @@ +/* ============================================================= + * 教师端亮色主题适配 + * 作用范围: + * 1) 页面内 scoped 暗色样式 -> 用 #app .teacherLayout 前缀提权覆盖 + * 2) teleport 到 body 的弹层 -> 用 body.teacher-light-mode 覆盖 + * 色板:科技蓝亮色系 + * 主蓝 #1e88e5 / 亮蓝 #42a5f5 / 深蓝 #1565c0 + * 标题 #1e3a5f / 正文 #2c4a6a / 次要 #6b85a3 + * 卡片 #ffffff / 描边 rgba(30,136,229,.15) / 行 hover #f0f7ff + * ============================================================= */ + +/* ---------- 1. 页面根容器与基础文字 ---------- */ +#app .teacherLayout { + .teacher-page, + .student-page, + .class-page, + .training-task-page, + .grade-center, + .task, + .default-task-page, + .school-admin-workbench { + color: #2c4a6a; + } + + // 通用文字层级:白色文字在亮色背景下不可见,统一改深色 + h1, + h2, + h3, + h4, + h5 { + color: #1e3a5f; + text-shadow: none !important; + } + + p, + span, + div, + li, + label { + // 仅覆盖原本偏白的文字,避免误伤 Element 组件内部状态色 + } + + /* ---------- 2. 页面头部卡片(两种变体统一) ---------- */ + .page-header { + background: linear-gradient(135deg, #ffffff 0%, #f3f8ff 100%) !important; + border: 1px solid rgba(30, 136, 229, 0.18) !important; + box-shadow: + 0 6px 20px rgba(30, 60, 100, 0.08), + inset 0 1px 0 rgba(255, 255, 255, 0.8) !important; + + &::before { + background: linear-gradient(90deg, transparent, rgba(30, 136, 229, 0.45), transparent) !important; + } + + .header-content h1, + .header-text .page-title, + .header-text .header-title { + color: #1e3a5f !important; + text-shadow: none !important; + } + + .header-content p, + .header-text .page-subtitle, + .header-text .header-subtitle { + color: #5a7896 !important; + } + + // 纯青色图标块:保留蓝色渐变,降低发光 + .header-icon { + color: #ffffff !important; + box-shadow: 0 6px 18px rgba(30, 136, 229, 0.28) !important; + } + + // 玻璃质感图标框 + .header-icon-wrap { + background: linear-gradient(135deg, rgba(30, 136, 229, 0.14), rgba(66, 165, 245, 0.06)) !important; + border-color: rgba(30, 136, 229, 0.3) !important; + + .header-icon-svg { + color: #1e88e5 !important; + } + } + + .decoration-dot { + opacity: 0.7; + } + } + + // 成绩中心 hero 大卡 + .admin-hero { + background: linear-gradient(135deg, #ffffff 0%, #f3f8ff 100%) !important; + border-color: rgba(30, 136, 229, 0.22) !important; + box-shadow: 0 8px 24px rgba(30, 60, 100, 0.08) !important; + + &::after { + background: linear-gradient(90deg, rgba(30, 136, 229, 0.1), transparent 38%), repeating-linear-gradient(90deg, rgba(30, 136, 229, 0.06) 0 1px, transparent 1px 64px) !important; + } + } + + .admin-badge { + color: #1565c0 !important; + background: rgba(30, 136, 229, 0.1) !important; + border-color: rgba(30, 136, 229, 0.4) !important; + } + + .admin-title { + color: #1e3a5f !important; + text-shadow: none !important; + } + + .admin-subtitle { + color: #5a7896 !important; + } + + /* ---------- 3. 搜索栏 / 工具条 ---------- */ + .query-bar, + .task-toolbar, + .toolbar, + .filter-section { + background: #ffffff !important; + border: 1px solid rgba(30, 136, 229, 0.15) !important; + box-shadow: 0 4px 14px rgba(30, 60, 100, 0.06) !important; + } + + .query-item .query-label, + .class-picker, + .toolbar .query-label { + color: #2c4a6a !important; + } + + .task-tip { + color: #5a7896 !important; + } + + /* ---------- 4. 卡片容器 ---------- */ + .card, + .admin-panel, + .score-card, + .stats-card, + .trend-card { + background: #ffffff !important; + border: 1px solid rgba(30, 136, 229, 0.15) !important; + box-shadow: 0 6px 20px rgba(30, 60, 100, 0.06) !important; + backdrop-filter: none; + } + + .admin-panel-title { + color: #1e3a5f !important; + } + + .admin-panel-subtitle { + color: #5a7896 !important; + } + + // 卡片内部标题/正文 + .card-header, + .card-body, + .card-footer { + color: #2c4a6a; + + h2, + h3, + h4, + .card-title { + color: #1e3a5f !important; + } + } + + // app-container 全局蓝色发光阴影柔化 + .app-container { + background: #ffffff; + box-shadow: 0 6px 20px rgba(30, 60, 100, 0.08) !important; + min-height: auto !important; + padding: 18px 20px 28px !important; + } + + // 滚动容器统一底部留白,避免表格/列表滚到底部紧贴边缘 + .teacher-main { + padding-bottom: 32px !important; + } + + /* ---------- 5. 表格 ---------- */ + .el-table { + background-color: #ffffff !important; + border: 1px solid rgba(30, 136, 229, 0.15) !important; + box-shadow: 0 6px 20px rgba(30, 60, 100, 0.06) !important; + color: #2c4a6a; + + // 表头:浅蓝渐变 + 深蓝字(!important 同时覆盖页面 :header-cell-style 内联样式) + .el-table__header-wrapper th.el-table__cell, + .el-table__fixed-header-wrapper th.el-table__cell { + background: linear-gradient(135deg, #e8f3fe 0%, #d8ebfb 100%) !important; + background-color: #e3effb !important; + color: #1e3a5f !important; + font-weight: 600 !important; + text-shadow: none !important; + border-bottom: 1px solid rgba(30, 136, 229, 0.2) !important; + } + + // 单元格 + .el-table__cell, + td.el-table__cell .cell { + color: #2c4a6a !important; + } + + tr, + td.el-table__cell { + background-color: #ffffff !important; + border-bottom: 1px solid #edf2f7 !important; + } + + // 斑马纹(若开启) + .el-table__row--striped td.el-table__cell { + background-color: #f8fbff !important; + } + + // hover 行 + .el-table__body tr:hover > td.el-table__cell { + background-color: #f0f7ff !important; + } + + // 空数据/汇总行文字 + .el-table__empty-text, + .el-table__summary .cell { + color: #6b85a3 !important; + } + + // 表尾合计 + tfoot td.el-table__cell { + background-color: #f3f8fd !important; + color: #1e3a5f !important; + } + + // 排序/筛选图标 + .caret-wrapper { + color: #8aa8c4; + } + } + + /* ---------- 6. 按钮 ---------- + * 页面 scoped 样式把所有按钮强制成青色透明描边,需按类型重置三件套 + * (background-color / border-color / color)及 hover/disabled 状态 + */ + .el-button { + border-radius: 8px; + font-weight: 500; + box-shadow: none; + transform: none; + + // 默认按钮 + &:not(.el-button--primary):not(.el-button--success):not(.el-button--warning):not(.el-button--danger):not(.el-button--info):not(.is-text):not(.is-link) { + background-color: #ffffff !important; + border-color: #c9d8e8 !important; + color: #2c4a6a !important; + + &:hover, + &:focus { + background-color: #f0f7ff !important; + border-color: #1e88e5 !important; + color: #1e88e5 !important; + box-shadow: none !important; + transform: none !important; + } + } + + // 主按钮 + &.el-button--primary { + background-color: #1e88e5 !important; + border-color: #1e88e5 !important; + color: #ffffff !important; + + &:hover, + &:focus { + background-color: #42a5f5 !important; + border-color: #42a5f5 !important; + color: #ffffff !important; + box-shadow: 0 4px 12px rgba(30, 136, 229, 0.25) !important; + transform: none !important; + } + + &.is-plain { + background-color: #e8f3fe !important; + border-color: #9cc8ef !important; + color: #1565c0 !important; + + &:hover, + &:focus { + background-color: #1e88e5 !important; + border-color: #1e88e5 !important; + color: #ffffff !important; + } + } + } + + // 成功 + &.el-button--success { + background-color: #2ba471 !important; + border-color: #2ba471 !important; + color: #ffffff !important; + + &:hover, + &:focus { + background-color: #3cbb85 !important; + border-color: #3cbb85 !important; + color: #ffffff !important; + box-shadow: 0 4px 12px rgba(43, 164, 113, 0.22) !important; + transform: none !important; + } + + &.is-plain { + background-color: #e6f6ee !important; + border-color: #9fd8bd !important; + color: #1e7a4f !important; + + &:hover, + &:focus { + background-color: #2ba471 !important; + color: #ffffff !important; + } + } + } + + // 警告 + &.el-button--warning { + background-color: #e8a33d !important; + border-color: #e8a33d !important; + color: #ffffff !important; + + &:hover, + &:focus { + background-color: #f2b45a !important; + border-color: #f2b45a !important; + color: #ffffff !important; + box-shadow: 0 4px 12px rgba(232, 163, 61, 0.22) !important; + transform: none !important; + } + + &.is-plain { + background-color: #fdf3e2 !important; + border-color: #f3d3a0 !important; + color: #b36a14 !important; + + &:hover, + &:focus { + background-color: #e8a33d !important; + color: #ffffff !important; + } + } + } + + // 危险 + &.el-button--danger { + background-color: #e05a5a !important; + border-color: #e05a5a !important; + color: #ffffff !important; + + &:hover, + &:focus { + background-color: #ec7272 !important; + border-color: #ec7272 !important; + color: #ffffff !important; + box-shadow: 0 4px 12px rgba(224, 90, 90, 0.22) !important; + transform: none !important; + } + + &.is-plain { + background-color: #fdecec !important; + border-color: #f3b0b0 !important; + color: #c0392b !important; + + &:hover, + &:focus { + background-color: #e05a5a !important; + color: #ffffff !important; + } + } + } + + // text/link 文字按钮(表格操作列):加深以满足白底对比度 + &.is-text, + &.is-link { + background: transparent !important; + border-color: transparent !important; + + &.el-button--primary { + color: #1565c0 !important; + &:hover, + &:focus { + color: #0d4f9e !important; + background: rgba(30, 136, 229, 0.08) !important; + } + } + &.el-button--danger { + color: #d04545 !important; + &:hover, + &:focus { + color: #c0392b !important; + background: rgba(224, 90, 90, 0.08) !important; + } + } + } + + // 禁用 + &.is-disabled, + &.is-disabled:hover, + &.is-disabled:focus { + opacity: 0.55; + transform: none !important; + box-shadow: none !important; + } + } + + /* ---------- 7. 表单与输入组件 ---------- */ + .el-form-item__label { + color: #2c4a6a !important; + } + + .el-input__wrapper, + .el-select .el-input__wrapper, + .el-date-editor.el-input__wrapper, + .el-input-number .el-input__wrapper { + background-color: #ffffff !important; + box-shadow: 0 0 0 1px #c9d8e8 inset !important; + border-radius: 8px; + + &:hover { + box-shadow: 0 0 0 1px #9cc0e0 inset !important; + } + + &.is-focus, + &.is-focused { + box-shadow: 0 0 0 1px #1e88e5 inset !important; + } + } + + .el-textarea__inner { + background-color: #ffffff !important; + border-color: #c9d8e8 !important; + color: #2c4a6a !important; + border-radius: 8px; + + &::placeholder { + color: #a0b4c8 !important; + } + + &:focus { + border-color: #1e88e5 !important; + } + } + + .el-input__inner { + color: #2c4a6a !important; + + &::placeholder { + color: #a0b4c8 !important; + } + } + + .el-input__prefix, + .el-input__suffix { + color: #8aa8c4; + } + + .el-select .el-input.is-disabled .el-input__wrapper, + .el-input.is-disabled .el-input__wrapper { + background-color: #f4f7fa !important; + box-shadow: 0 0 0 1px #e0e8f0 inset !important; + + .el-input__inner { + color: #8aa8c4 !important; + -webkit-text-fill-color: #8aa8c4; + } + } + + // 单选/复选/开关文字 + .el-radio, + .el-checkbox { + color: #2c4a6a; + + &.is-disabled { + color: #a0b4c8; + } + } + + .el-radio__label, + .el-checkbox__label { + color: #2c4a6a; + } + + // 表单校验错误 + .el-form-item__error { + color: #e05a5a; + } + + // 字数统计 + .el-input__count, + .el-input__count-inner { + color: #8aa8c4 !important; + background: transparent !important; + } + + /* ---------- 8. 分页(覆盖全局 index.scss 强制暗色) ---------- */ + .el-pagination, + .pager .el-pagination { + --el-pagination-bg-color: transparent; + --el-pagination-button-bg-color: #ffffff; + --el-pagination-hover-color: #1e88e5; + color: #2c4a6a; + font-weight: 500; + + .el-pagination__total, + .el-pagination__jump { + color: #2c4a6a !important; + } + + button, + .el-pager li { + background-color: #ffffff !important; + color: #2c4a6a !important; + border: 1px solid #d5e1ee; + border-radius: 6px; + font-weight: 500; + + &:hover { + color: #1e88e5 !important; + border-color: #1e88e5; + background-color: #f0f7ff !important; + } + } + + .el-pager li.is-active { + background-color: #1e88e5 !important; + color: #ffffff !important; + border-color: #1e88e5; + } + + .btn-prev, + .btn-next { + background-color: #ffffff !important; + color: #2c4a6a !important; + + &:disabled, + &.is-disabled { + background-color: #f4f7fa !important; + color: #b0c0d0 !important; + } + } + + .el-select .el-input__wrapper { + background-color: #ffffff !important; + box-shadow: 0 0 0 1px #d5e1ee inset !important; + + .el-input__inner { + color: #2c4a6a !important; + } + } + } + + /* ---------- 9. 其他组件 ---------- */ + // 标签 el-tag:浅底标签文字加深,保证在白底上可读 + .el-tag { + &.el-tag--primary { + &.is-plain, + &.is-light { + color: #1565c0 !important; + background-color: #e8f3fe !important; + border-color: #9cc8ef !important; + } + } + + &.el-tag--success { + &.is-plain, + &.is-light { + color: #1e7a4f !important; + background-color: #e6f6ee !important; + border-color: #9fd8bd !important; + } + } + + &.el-tag--warning { + &.is-plain, + &.is-light { + color: #b36a14 !important; + background-color: #fdf3e2 !important; + border-color: #f3d3a0 !important; + } + } + + &.el-tag--danger { + &.is-plain, + &.is-light { + color: #c0392b !important; + background-color: #fdecec !important; + border-color: #f3b0b0 !important; + } + } + + &.el-tag--info { + &.is-plain, + &.is-light { + color: #5e6b7c !important; + background-color: #f4f6f9 !important; + border-color: #d3dae3 !important; + } + } + } + + // 标签页 + .el-tabs__item { + color: #5a7896; + + &.is-active { + color: #1565c0; + } + } + + .el-tabs__active-bar { + background-color: #1e88e5; + } + + .el-tabs__nav-wrap::after { + background-color: #e3eaf2; + } + + // 描述列表 + .el-descriptions__label { + color: #5a7896 !important; + background: #f6f9fc !important; + } + + .el-descriptions__content { + color: #2c4a6a !important; + } + + // 卡片组件 + .el-card { + border-color: rgba(30, 136, 229, 0.15); + box-shadow: 0 4px 14px rgba(30, 60, 100, 0.05); + } + + // 空状态 + .el-empty__description p { + color: #6b85a3; + } + + // 加载遮罩(覆盖全局 element-ui.scss 暗色遮罩) + .el-loading-mask { + background-color: rgba(245, 248, 252, 0.78) !important; + backdrop-filter: blur(2px); + } + + .el-loading-spinner .path { + stroke: #1e88e5 !important; + } + + .el-loading-text { + color: #1e88e5 !important; + } + + // 开关 + .el-switch__label { + color: #2c4a6a; + } + + // 下拉菜单(页面内) + .el-dropdown-menu { + color: #2c4a6a; + } + + // 警告/提示条 + .el-alert__title, + .el-alert__description { + color: inherit; + } + + /* ---------- 16. 按钮/表头/密度统一规范(仅样式层,不改模板) ---------- */ + + // 16.1 工具栏按钮语义纠偏 + // 语义约定:查询/搜索/保存=蓝,新增=绿,导入=蓝,导出/下载=橙,重置/刷新/配置=白底 + // 学生管理:btn-group 首个 primary 是“新增” -> 绿;末个 primary 是“刷新” -> 白底 + .student-page .query-bar .btn-group { + > .el-button--primary:first-child { + background-color: #2ba471 !important; + border-color: #2ba471 !important; + color: #ffffff !important; + box-shadow: none !important; + + &:hover, + &:focus { + background-color: #3cbb85 !important; + border-color: #3cbb85 !important; + color: #ffffff !important; + } + } + + > .el-button--primary:last-child { + background-color: #ffffff !important; + border-color: #c9d8e8 !important; + color: #2c4a6a !important; + box-shadow: none !important; + + &:hover, + &:focus { + background-color: #f0f7ff !important; + border-color: #1e88e5 !important; + color: #1e88e5 !important; + } + } + } + + // 成绩管理:toolbar-right 内三个 success 依次为 导出 / 权重设置 / 成绩更新 + .school-admin-workbench .toolbar .toolbar-right { + // 导出 -> 橙(与其他页面导出统一) + > .el-button--success { + background: #e8a33d !important; + border-color: #e8a33d !important; + color: #ffffff !important; + box-shadow: none !important; + + &:hover { + background: #f2b45a !important; + border-color: #f2b45a !important; + color: #ffffff !important; + } + } + + // 权重设置(第二个 success)-> 白底次要 + > .el-button--success ~ .el-button--success { + background: #ffffff !important; + border-color: #c9d8e8 !important; + color: #2c4a6a !important; + box-shadow: none !important; + + &:hover { + background: #f0f7ff !important; + border-color: #1e88e5 !important; + color: #1e88e5 !important; + } + } + + // 成绩更新(第三个 success)-> 蓝(主要操作) + > .el-button--success ~ .el-button--success ~ .el-button--success { + background: #1e88e5 !important; + border-color: #1e88e5 !important; + color: #ffffff !important; + box-shadow: 0 4px 12px rgba(30, 136, 229, 0.2) !important; + + &:hover { + background: #42a5f5 !important; + border-color: #42a5f5 !important; + color: #ffffff !important; + } + } + } + + // 16.2 表格操作列:text/link/默认按钮统一为小号实心按钮 + .el-table { + .action-group { + gap: 6px !important; + } + + .cell .el-button + .el-button { + margin-left: 6px !important; + } + + .el-button { + height: 26px !important; + min-height: 26px !important; + padding: 0 10px !important; + font-size: 12px !important; + font-weight: 500 !important; + line-height: 24px !important; + border-radius: 6px !important; + box-shadow: none !important; + + .el-icon { + font-size: 12px !important; + margin-right: 2px; + } + + // 把文字按钮(is-text / is-link)重置为实心 + &.is-text, + &.is-link { + &.el-button--primary { + background-color: #1e88e5 !important; + border-color: #1e88e5 !important; + color: #ffffff !important; + + &:hover, + &:focus { + background-color: #42a5f5 !important; + border-color: #42a5f5 !important; + color: #ffffff !important; + } + } + + &.el-button--success { + background-color: #2ba471 !important; + border-color: #2ba471 !important; + color: #ffffff !important; + + &:hover, + &:focus { + background-color: #3cbb85 !important; + border-color: #3cbb85 !important; + color: #ffffff !important; + } + } + + &.el-button--warning { + background-color: #e8a33d !important; + border-color: #e8a33d !important; + color: #ffffff !important; + + &:hover, + &:focus { + background-color: #f2b45a !important; + border-color: #f2b45a !important; + color: #ffffff !important; + } + } + + &.el-button--danger { + background-color: #e05a5a !important; + border-color: #e05a5a !important; + color: #ffffff !important; + + &:hover, + &:focus { + background-color: #ec7272 !important; + border-color: #ec7272 !important; + color: #ffffff !important; + } + } + + // 无类型的文字按钮 -> 白底描边 + &:not(.el-button--primary):not(.el-button--success):not(.el-button--warning):not(.el-button--danger):not(.el-button--info) { + background-color: #ffffff !important; + border-color: #c9d8e8 !important; + color: #2c4a6a !important; + + &:hover, + &:focus { + background-color: #f0f7ff !important; + border-color: #1e88e5 !important; + color: #1e88e5 !important; + } + } + } + + // 实心按钮尺寸对齐(学生页原 default 尺寸较大) + &.el-button--primary, + &.el-button--success, + &.el-button--warning, + &.el-button--danger { + font-weight: 500 !important; + } + + // 禁用态保持可见但弱化 + &.is-disabled, + &.is-disabled:hover { + opacity: 0.55 !important; + cursor: not-allowed !important; + } + } + } + + // 16.3 表头统一:浅蓝底 + 深蓝字(同步修复成绩页 .cell 白字) + .el-table { + --el-table-header-bg-color: #e3effb; + --el-table-header-text-color: #1e3a5f; + + .el-table__header-wrapper th.el-table__cell, + .el-table__fixed-header-wrapper th.el-table__cell { + height: 38px; + padding: 5px 0 !important; + background: linear-gradient(180deg, #eef6fe 0%, #dcebfb 100%) !important; + color: #1e3a5f !important; + font-size: 13px !important; + font-weight: 600 !important; + text-shadow: none !important; + border-bottom: 1px solid rgba(30, 136, 229, 0.2) !important; + + .cell { + color: #1e3a5f !important; + font-size: 13px !important; + font-weight: 600 !important; + text-shadow: none !important; + } + } + } + + // 16.4 整体布局紧凑化 + .page-header { + padding: 14px 20px !important; + margin-bottom: 12px !important; + } + + .query-bar, + .toolbar, + .task-toolbar, + .filter-section { + padding: 10px 14px !important; + margin-bottom: 12px !important; + gap: 10px !important; + } + + .school-admin-workbench { + .admin-hero { + padding: 16px 20px !important; + margin-bottom: 12px !important; + } + + .admin-panel { + padding: 14px !important; + } + } + + .el-table { + font-size: 13px !important; + + .el-table__cell { + padding: 7px 0 !important; + } + + td.el-table__cell .cell { + font-size: 13px !important; + line-height: 1.5 !important; + } + } + + .el-pagination, + .pagination-container { + margin-top: 12px !important; + } +} + +/* ============================================================= + * 10. teleport 弹层(body.teacher-light-mode 命中) + * ============================================================= */ +body.teacher-light-mode { + // 全局无条件暗色规则的重置(index.scss / element-ui.scss) + .el-input__inner { + color: #2c4a6a !important; + + &::placeholder { + color: #a0b4c8 !important; + } + } + + .el-input__count, + .el-input__count-inner { + color: #8aa8c4 !important; + background: transparent !important; + } + + // 下拉选择弹层 + .el-select__popper.el-popper, + .el-select-dropdown { + background: #ffffff !important; + border: 1px solid #d5e1ee !important; + box-shadow: 0 8px 24px rgba(30, 60, 100, 0.12) !important; + + .el-select-dropdown__item { + color: #2c4a6a !important; + + &.is-hovering, + &:hover { + background-color: #f0f7ff !important; + color: #1e88e5 !important; + } + + &.is-selected { + color: #1e88e5 !important; + background-color: #e8f3fe !important; + font-weight: 600; + } + + &.is-disabled { + color: #b0c0d0 !important; + } + } + + .el-select-dropdown__empty { + color: #6b85a3 !important; + } + + .el-popper__arrow::before { + background: #ffffff !important; + border-color: #d5e1ee !important; + } + } + + // 分页每页条数下拉里的输入框 + .el-pagination .el-input__inner { + color: #2c4a6a !important; + } + + // 日期/时间选择器面板 + .el-picker-panel, + .el-date-picker, + .el-time-panel { + background: #ffffff !important; + border: 1px solid #d5e1ee !important; + box-shadow: 0 8px 24px rgba(30, 60, 100, 0.12) !important; + color: #2c4a6a !important; + + .el-picker-panel__icon-btn, + .el-picker-panel__header-label, + .el-date-picker__header-label, + .el-date-table th { + color: #5a7896 !important; + } + + .el-date-table td .el-date-table-cell__text { + color: #2c4a6a !important; + + &:hover { + background-color: #e8f3fe !important; + color: #1e88e5 !important; + } + } + + .el-date-table td.today .el-date-table-cell__text { + color: #1e88e5 !important; + font-weight: 700; + } + + .el-date-table td.current:not(.disabled) .el-date-table-cell__text { + background-color: #1e88e5 !important; + color: #ffffff !important; + } + + .el-date-table td.prev-month .el-date-table-cell__text, + .el-date-table td.next-month .el-date-table-cell__text { + color: #b0c0d0 !important; + } + + .el-time-spinner__item { + color: #2c4a6a !important; + + &.is-active { + color: #1e88e5 !important; + } + + &:hover:not(.is-disabled) { + background: #f0f7ff !important; + color: #1e88e5 !important; + } + } + + .el-picker-panel__footer { + background: #f6f9fc !important; + border-top-color: #e3eaf2 !important; + } + + .el-picker-panel__sidebar { + border-right-color: #e3eaf2 !important; + } + + .el-time-panel__btn.confirm { + color: #1e88e5 !important; + } + } + + // 弹窗(教师端各页面 teacher-dialog / admin-edit-dialog) + .teacher-dialog, + .admin-edit-dialog { + background: #ffffff !important; + border: 1px solid #d5e1ee !important; + border-radius: 16px !important; + box-shadow: 0 20px 56px rgba(30, 60, 100, 0.18) !important; + overflow: hidden; + + .el-dialog__header { + background: linear-gradient(135deg, #e8f3fe 0%, #d8ebfb 100%) !important; + padding: 18px 24px; + margin: 0; + border-bottom: 1px solid rgba(30, 136, 229, 0.15); + + .el-dialog__title { + color: #1e3a5f !important; + font-weight: 700; + font-size: 17px; + text-shadow: none !important; + } + + .el-dialog__headerbtn .el-dialog__close { + color: #5a7896 !important; + + &:hover { + color: #1e88e5 !important; + } + } + } + + .el-dialog__body { + background: #ffffff !important; + color: #2c4a6a; + padding: 24px 28px; + } + + .el-dialog__footer { + background: #f8fbfe !important; + border-top: 1px solid #edf2f7 !important; + padding: 14px 24px; + } + + .el-form-item__label, + label { + color: #2c4a6a !important; + } + + .el-input__wrapper, + .el-select .el-input__wrapper, + .el-textarea__inner { + background-color: #ffffff !important; + } + + .el-input__inner, + .el-textarea__inner { + color: #2c4a6a !important; + } + + .el-radio__label, + .el-checkbox__label { + color: #2c4a6a !important; + } + + // 班级成员管理弹窗内的搜索工具条 + .member-toolbar { + background: #f8fbfe !important; + border: 1px solid rgba(30, 136, 229, 0.12) !important; + } + } + + // 确认消息框(退出登录等 ElMessageBox) + .el-overlay { + .el-message-box { + background: #ffffff !important; + border: 1px solid #d5e1ee !important; + box-shadow: 0 20px 56px rgba(30, 60, 100, 0.2) !important; + border-radius: 14px; + + .el-message-box__title, + .el-message-box__content, + .el-message-box__message p { + color: #2c4a6a !important; + } + + .el-message-box__headerbtn .el-message-box__close { + color: #5a7896 !important; + } + } + } + + // 轻提示 + .el-message { + background: #ffffff !important; + border: 1px solid #d5e1ee !important; + box-shadow: 0 8px 24px rgba(30, 60, 100, 0.12) !important; + color: #2c4a6a !important; + + .el-message__content { + color: #2c4a6a !important; + } + } + + // 通知 + .el-notification { + background: #ffffff !important; + border: 1px solid #d5e1ee !important; + box-shadow: 0 8px 24px rgba(30, 60, 100, 0.12) !important; + + .el-notification__title { + color: #1e3a5f !important; + } + + .el-notification__content { + color: #2c4a6a !important; + } + } + + // tooltip 保持 Element 默认深色(设计语义为浮层提示,不调整) + + // 全屏加载遮罩 + .el-loading-mask { + background-color: rgba(245, 248, 252, 0.78) !important; + } + + .el-loading-spinner .path { + stroke: #1e88e5 !important; + } + + .el-loading-text { + color: #1e88e5 !important; + } + + /* ---------- 11. 表格 CSS 变量层兜底(admin-theme 通过变量注入暗色) ---------- */ + .el-table { + --el-table-bg-color: #ffffff; + --el-table-tr-bg-color: #ffffff; + --el-table-header-bg-color: #e3effb; + --el-table-header-text-color: #1e3a5f; + --el-table-text-color: #2c4a6a; + --el-table-border-color: #edf2f7; + --el-table-row-hover-bg-color: #f0f7ff; + } + + /* ---------- 12. 成绩中心(school-admin-workbench)补充 ---------- */ + .school-admin-workbench { + .toolbar { + background: #ffffff !important; + border-color: rgba(30, 136, 229, 0.18) !important; + } + + // 工具栏按钮:覆盖 admin-theme.scss 的深色渐变,统一为亮色系统色 + .toolbar .el-button { + &::before, + &::after { + display: none !important; + } + + // Primary(查询等主要操作)— 科技蓝 + &[type="primary"], + &.el-button--primary { + background: #1e88e5 !important; + border-color: #1e88e5 !important; + color: #ffffff !important; + box-shadow: 0 4px 12px rgba(30, 136, 229, 0.2) !important; + backdrop-filter: none !important; + + &:hover { + background: #42a5f5 !important; + border-color: #42a5f5 !important; + color: #ffffff !important; + box-shadow: 0 6px 16px rgba(30, 136, 229, 0.3) !important; + transform: none !important; + } + } + + // Success(导出/新增等)— 绿色 + &[type="success"], + &.el-button--success { + background: #2ba471 !important; + border-color: #2ba471 !important; + color: #ffffff !important; + box-shadow: 0 4px 12px rgba(43, 164, 113, 0.2) !important; + backdrop-filter: none !important; + + &:hover { + background: #3cbb85 !important; + border-color: #3cbb85 !important; + color: #ffffff !important; + transform: none !important; + } + } + + // Danger(删除等)— 红色 + &[type="danger"], + &.el-button--danger { + background: #e05a5a !important; + border-color: #e05a5a !important; + color: #ffffff !important; + + &:hover { + background: #ec7272 !important; + border-color: #ec7272 !important; + } + } + + // Warning — 橙色 + &[type="warning"], + &.el-button--warning { + background: #e8a33d !important; + border-color: #e8a33d !important; + color: #ffffff !important; + + &:hover { + background: #f2b45a !important; + border-color: #f2b45a !important; + } + } + + // 默认按钮(重置等)— 白底深字 + &:not([type="primary"]):not([type="success"]):not([type="danger"]):not([type="warning"]):not(.el-button--primary):not(.el-button--success):not(.el-button--danger):not(.el-button--warning) { + background: #ffffff !important; + border-color: #c9d8e8 !important; + color: #2c4a6a !important; + backdrop-filter: none !important; + + &:hover { + background: #f0f7ff !important; + border-color: #1e88e5 !important; + color: #1e88e5 !important; + transform: none !important; + } + } + } + + .admin-form { + background: #ffffff !important; + border-color: rgba(30, 136, 229, 0.18) !important; + } + + .el-table .el-loading-mask { + background: rgba(245, 248, 252, 0.78) !important; + } + + .el-table .el-loading-spinner .path { + stroke: #1e88e5 !important; + } + + .el-table .el-loading-text { + color: #1e88e5 !important; + } + + // 表格操作按钮 + .action-btn { + color: #1565c0 !important; + } + + .action-btn.el-button--danger { + color: #d04545 !important; + } + } + + /* ---------- 13. 教师首页仪表盘补充 ---------- */ + .grade-center { + .card-badge { + color: #1565c0 !important; + background: rgba(30, 136, 229, 0.1) !important; + border-color: rgba(30, 136, 229, 0.25) !important; + } + + .legend-dots, + .legend-item, + .filter-label, + .insight-text { + color: #46607d !important; + } + + // 卡片右上角图标:荧光青/绿 -> 科技蓝/绿 + .trend-icon { + background: linear-gradient(135deg, rgba(30, 136, 229, 0.12), rgba(30, 136, 229, 0.04)) !important; + border-color: rgba(30, 136, 229, 0.3) !important; + color: #1565c0 !important; + } + + .stats-icon { + background: linear-gradient(135deg, rgba(43, 164, 113, 0.12), rgba(43, 164, 113, 0.04)) !important; + border-color: rgba(43, 164, 113, 0.3) !important; + color: #1e7a4f !important; + } + + .card-badge.success { + color: #1e7a4f !important; + background: rgba(43, 164, 113, 0.1) !important; + border-color: rgba(43, 164, 113, 0.25) !important; + } + + .el-select__caret { + color: #8aa8c4 !important; + } + + .card-footer { + border-top-color: rgba(30, 136, 229, 0.12) !important; + } + + .card-glow { + background: radial-gradient(circle at 30% 30%, rgba(30, 136, 229, 0.06), transparent 50%) !important; + } + + // 成绩卡片:白底 + 淡彩色顶边 + .score-card { + background: #ffffff !important; + border-color: rgba(30, 136, 229, 0.15) !important; + + &:hover { + box-shadow: 0 10px 26px rgba(30, 60, 100, 0.1) !important; + } + + &.card-max { + background: linear-gradient(135deg, rgba(255, 107, 157, 0.07), #ffffff 60%) !important; + border-color: rgba(255, 107, 157, 0.28) !important; + } + + &.card-min { + background: linear-gradient(135deg, rgba(75, 207, 250, 0.07), #ffffff 60%) !important; + border-color: rgba(45, 184, 232, 0.28) !important; + } + + &.card-avg { + background: linear-gradient(135deg, rgba(245, 200, 0, 0.08), #ffffff 60%) !important; + border-color: rgba(245, 200, 0, 0.3) !important; + } + } + + .score-name { + color: #46607d !important; + } + + .score-number { + background: linear-gradient(135deg, #1565c0, #1e88e5) !important; + -webkit-background-clip: text !important; + background-clip: text !important; + -webkit-text-fill-color: transparent !important; + } + + .score-unit { + color: #6b85a3 !important; + } + } + + /* ---------- 14. 实训任务管理页 ---------- */ + .teacher-main.training-task-main-theme { + background: linear-gradient(135deg, #f5f8fc 0%, #eaf2fb 48%, #f3f8ff 100%) !important; + } + + .training-task-page { + // 头部统计小块:荧光绿/浅蓝白字在白底上不可见,改为实色浅蓝底 + 深蓝字 + .header-stats { + .stat-item, + .header-stat { + color: #2c4a6a !important; + background: #e8f3fe !important; + border-color: rgba(30, 136, 229, 0.25) !important; + } + + .stat-label { + color: #5a7896 !important; + } + + .stat-value { + color: #1565c0 !important; + text-shadow: none !important; + } + } + + // 页面副标题加深 + .page-header .page-subtitle { + color: #5a7896 !important; + } + + .class-filter .filter-label { + color: #2c4a6a !important; + } + + // 搜索框 + .search-box { + background: #ffffff !important; + border-color: rgba(30, 136, 229, 0.2) !important; + box-shadow: none !important; + + .el-input__inner { + color: #2c4a6a !important; + + &::placeholder { + color: #a0b4c8 !important; + } + } + } + + // 工具栏主按钮(原深蓝渐变)改为亮蓝 + .toolbar-btn { + border-radius: 10px; + + &.el-button--primary, + &.el-button--success { + background: #1e88e5 !important; + border-color: #1e88e5 !important; + color: #ffffff !important; + box-shadow: 0 4px 12px rgba(30, 136, 229, 0.2) !important; + + &:hover { + background: #42a5f5 !important; + border-color: #42a5f5 !important; + } + } + + // “恢复默认”:原深暗红渐变改为浅红 plain 风格(hover 转红实心) + &.el-button--danger, + &.toolbar-btn-danger { + background: #fdecec !important; + border-color: #f3b0b0 !important; + color: #c0392b !important; + box-shadow: none !important; + text-shadow: none !important; + transform: none !important; + + &:hover, + &:focus { + background: #e05a5a !important; + border-color: #e05a5a !important; + color: #ffffff !important; + box-shadow: none !important; + transform: none !important; + } + } + + &::before, + &::after { + display: none !important; + } + } + + // 项目筛选容器 + .project-filter { + background: #ffffff !important; + border-color: rgba(30, 136, 229, 0.15) !important; + box-shadow: 0 4px 14px rgba(30, 60, 100, 0.06) !important; + + .filter-label { + color: #2c4a6a !important; + + svg { + color: #1e88e5 !important; + } + } + } + + // 项目页签 + .project-tabs { + .project-tab { + background: #ffffff !important; + border-color: rgba(30, 136, 229, 0.15) !important; + color: #2c4a6a !important; + + .tab-name { + color: #2c4a6a !important; + } + + .tab-count { + background: rgba(30, 136, 229, 0.1) !important; + color: #1565c0 !important; + } + + &:hover { + border-color: rgba(30, 136, 229, 0.4) !important; + } + + &.active { + background: linear-gradient(135deg, rgba(30, 136, 229, 0.14), rgba(66, 165, 245, 0.06)) !important; + border-color: rgba(30, 136, 229, 0.5) !important; + + .tab-name { + color: #1565c0 !important; + } + + .tab-count { + background: #1e88e5 !important; + color: #ffffff !important; + } + } + } + } + + // “显示 x/x 条”:原浅绿字在白底偏淡,改为深绿 + .filter-result { + color: #1e7a4f !important; + background: rgba(43, 164, 113, 0.08) !important; + border-color: rgba(43, 164, 113, 0.25) !important; + } + + // 任务卡片网格:一行五个,整体更紧凑 + .task-grid { + grid-template-columns: repeat(5, minmax(0, 1fr)) !important; + gap: 14px !important; + min-height: auto !important; + } + + // 任务卡片 + .task-card { + padding: 14px !important; + border-radius: 12px !important; + background: #ffffff !important; + border-color: rgba(30, 136, 229, 0.15) !important; + box-shadow: 0 6px 18px rgba(30, 60, 100, 0.06) !important; + + &:hover { + transform: none !important; + border-color: rgba(30, 136, 229, 0.4) !important; + box-shadow: 0 10px 28px rgba(30, 60, 100, 0.1) !important; + } + + // 装饰编号与右上角“启用/停用”状态标签位置重叠,亮色下隐藏避免干扰 + .card-index { + display: none !important; + } + + .card-header { + margin-bottom: 8px !important; + } + + .task-project { + font-size: 11px !important; + padding: 2px 8px !important; + color: #1565c0 !important; + background: rgba(30, 136, 229, 0.1) !important; + border-color: rgba(30, 136, 229, 0.25) !important; + } + + // 启用状态:荧光绿在白底不可见,改为深绿实色标签 + .task-status { + font-size: 10px !important; + padding: 2px 8px !important; + color: #b04545 !important; + background: rgba(224, 90, 90, 0.1) !important; + border-color: rgba(224, 90, 90, 0.3) !important; + + &.enabled { + color: #1e7a4f !important; + background: rgba(43, 164, 113, 0.1) !important; + border-color: rgba(43, 164, 113, 0.3) !important; + } + } + + // 目标/步骤数量文字加深 + .task-meta .meta-item { + color: #46607d !important; + } + + .task-name { + margin: 0 0 8px !important; + font-size: 14px !important; + color: #1e3a5f !important; + } + + .task-meta { + margin-bottom: 10px !important; + gap: 10px !important; + } + + .meta-item { + font-size: 11px !important; + color: #5a7896 !important; + } + + .edit-btn { + width: 100% !important; + height: 30px !important; + padding: 0 10px !important; + font-size: 12px !important; + border-radius: 8px !important; + background: linear-gradient(135deg, #1e88e5, #1565c0) !important; + color: #ffffff !important; + box-shadow: 0 4px 12px rgba(30, 136, 229, 0.22) !important; + + &:hover { + background: linear-gradient(135deg, #42a5f5, #1e88e5) !important; + } + } + } + + // 卡片上的扫描线/辉光特效在亮色下隐藏 + .scanline, + .card-glow { + display: none !important; + } + + .corner-decoration { + opacity: 0.5; + } + + .task-empty { + color: #6b85a3 !important; + } + + // 表单内白色 label(scoped 中带 !important) + .task-form .el-form-item__label, + .drawer-shell .el-form-item__label { + color: #2c4a6a !important; + } + + // 窄屏下列数收敛 + @media (max-width: 1500px) { + .task-grid { + grid-template-columns: repeat(4, minmax(0, 1fr)) !important; + } + } + + @media (max-width: 1100px) { + .task-grid { + grid-template-columns: repeat(3, minmax(0, 1fr)) !important; + } + } + } +} + +/* ============================================================= + * 15. 实训任务抽屉(el-drawer teleport 到 body) + * ============================================================= */ +body.teacher-light-mode { + .training-task-drawer.el-drawer { + background: #f5f8fc !important; + box-shadow: -10px 0 36px rgba(30, 60, 100, 0.14) !important; + + .el-drawer__body { + background: #f5f8fc; + } + } + + .training-task-drawer { + .drawer-shell { + background: #f5f8fc !important; + color: #2c4a6a; + } + + .drawer-header { + background: linear-gradient(90deg, rgba(30, 136, 229, 0.1), rgba(66, 165, 245, 0.04)) !important; + border-bottom: 1px solid rgba(30, 136, 229, 0.12) !important; + } + + .drawer-kicker { + color: #1565c0 !important; + background: rgba(30, 136, 229, 0.1) !important; + } + + .drawer-close-button { + color: #5a7896 !important; + background: rgba(30, 136, 229, 0.08) !important; + + &:hover { + color: #ffffff !important; + background: #1e88e5 !important; + } + } + + .identity-item { + background: #ffffff !important; + border-color: rgba(30, 136, 229, 0.12) !important; + + .identity-label { + color: #5a7896 !important; + } + + .status-value { + color: #1e3a5f !important; + } + } + + .drawer-section { + background: #ffffff !important; + border-color: rgba(30, 136, 229, 0.12) !important; + } + + .section-title { + color: #1e3a5f !important; + + .section-number { + background: rgba(30, 136, 229, 0.12) !important; + color: #1e88e5 !important; + } + } + + .section-info { + color: #5a7896 !important; + } + + .objective-row, + .step-item, + .material-row { + background: #f8fbfe !important; + border-color: rgba(30, 136, 229, 0.12) !important; + color: #2c4a6a !important; + + .objective-number { + background: rgba(30, 136, 229, 0.1) !important; + color: #1e88e5 !important; + } + } + + .material-placeholder { + color: #8aa8c4 !important; + } + + .material-link { + color: #1e88e5 !important; + } + + .add-step-button, + .upload-btn { + background: rgba(30, 136, 229, 0.08) !important; + border-color: rgba(30, 136, 229, 0.3) !important; + color: #1e88e5 !important; + + &:hover { + background: #1e88e5 !important; + color: #ffffff !important; + } + } + + .remove-btn { + color: #e05a5a !important; + border-color: rgba(224, 90, 90, 0.3) !important; + + &:hover { + background: rgba(224, 90, 90, 0.08) !important; + } + } + + // 抽屉内表单 label/输入框 + .el-form-item__label { + color: #2c4a6a !important; + } + + .el-input__wrapper, + .el-select .el-input__wrapper, + .el-textarea__inner { + background-color: #ffffff !important; + box-shadow: 0 0 0 1px #c9d8e8 inset !important; + border-color: #c9d8e8 !important; + } + + .el-input__inner, + .el-textarea__inner { + color: #2c4a6a !important; + + &::placeholder { + color: #a0b4c8 !important; + } + } + } + + // 教师端其他 el-drawer 默认亮色兜底 + .el-drawer { + .el-drawer__header { + color: #1e3a5f; + margin-bottom: 0; + padding: 18px 24px; + border-bottom: 1px solid #edf2f7; + } + + .el-drawer__title { + color: #1e3a5f; + font-weight: 700; + } + + .el-drawer__close-btn .el-icon { + color: #5a7896; + } + } +} diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 0bd49a1..7a8192f 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -1,7 +1,7 @@