|
|
|
|
@ -773,69 +773,7 @@ onMounted(() => {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 教师端下拉面板:亮色玻璃质感(dropdown teleport 到 body,需使用 popper-class 选择器)
|
|
|
|
|
.teacher-dropdown-popper {
|
|
|
|
|
.dropdown-panel {
|
|
|
|
|
background: linear-gradient(160deg, #ffffff 0%, #f3f8ff 50%, #eaf2fb 100%);
|
|
|
|
|
border: 1px solid rgba(30, 136, 229, 0.25);
|
|
|
|
|
box-shadow: 0 15px 40px rgba(30, 60, 100, 0.18), 0 0 20px rgba(30, 136, 229, 0.08);
|
|
|
|
|
|
|
|
|
|
.dropdown-header {
|
|
|
|
|
background: linear-gradient(135deg, rgba(30, 136, 229, 0.1), rgba(66, 165, 245, 0.05));
|
|
|
|
|
border-bottom: 1px solid rgba(30, 136, 229, 0.15);
|
|
|
|
|
|
|
|
|
|
.user-info {
|
|
|
|
|
.user-name {
|
|
|
|
|
color: #1e3a5f;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.user-role {
|
|
|
|
|
color: #1e88e5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.dropdown-divider {
|
|
|
|
|
background: linear-gradient(90deg, transparent, rgba(30, 136, 229, 0.25), transparent);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.dropdown-menu-custom {
|
|
|
|
|
.dropdown-item {
|
|
|
|
|
color: #3a5a7a !important;
|
|
|
|
|
|
|
|
|
|
svg {
|
|
|
|
|
color: rgba(30, 136, 229, 0.8);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
background: linear-gradient(135deg, rgba(30, 136, 229, 0.14), rgba(66, 165, 245, 0.06)) !important;
|
|
|
|
|
color: #1e88e5 !important;
|
|
|
|
|
|
|
|
|
|
svg {
|
|
|
|
|
color: #1e88e5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.logout {
|
|
|
|
|
color: rgba(200, 80, 80, 0.85) !important;
|
|
|
|
|
|
|
|
|
|
svg {
|
|
|
|
|
color: rgba(220, 100, 100, 0.8);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
background: linear-gradient(135deg, rgba(220, 80, 80, 0.14), rgba(200, 60, 60, 0.06)) !important;
|
|
|
|
|
color: #d63030 !important;
|
|
|
|
|
|
|
|
|
|
svg {
|
|
|
|
|
color: #d63030;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 教师端下拉面板、学生端下拉面板已移至文件末尾非 scoped style 块
|
|
|
|
|
|
|
|
|
|
// 学生端下拉面板规则见文件末尾(置于基础块之后,避免被深色默认样式反压)
|
|
|
|
|
|
|
|
|
|
@ -939,9 +877,103 @@ onMounted(() => {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ===== 学生端用户下拉:白底墨黑(置于基础块之后,完整覆盖,避免蓝框/箭头/位移重影) ===== */
|
|
|
|
|
/* ===== 学生端用户下拉已移至文件末尾非 scoped style 块 ===== */
|
|
|
|
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
.navbar {
|
|
|
|
|
.navTitle, .TnavTitle {
|
|
|
|
|
.logo-area {
|
|
|
|
|
.nacber-name {
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
letter-spacing: 1px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-ment {
|
|
|
|
|
display: none !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.search-box {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.divider {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<!-- 以下两个 popper 样式必须放在非 scoped 块中:Element Plus 的 dropdown popper 默认 teleport 到 body,
|
|
|
|
|
scoped 样式编译后附加的 [data-v-xxx] 属性无法命中 body 层的 popper 及其内部动态生成的 .dropdown-item -->
|
|
|
|
|
<style lang="scss">
|
|
|
|
|
/* ===== 教师端用户下拉:亮色玻璃质感 ===== */
|
|
|
|
|
.teacher-dropdown-popper {
|
|
|
|
|
.dropdown-panel {
|
|
|
|
|
background: linear-gradient(160deg, #ffffff 0%, #f3f8ff 50%, #eaf2fb 100%);
|
|
|
|
|
border: 1px solid rgba(30, 136, 229, 0.25);
|
|
|
|
|
box-shadow: 0 15px 40px rgba(30, 60, 100, 0.18), 0 0 20px rgba(30, 136, 229, 0.08);
|
|
|
|
|
|
|
|
|
|
.dropdown-header {
|
|
|
|
|
background: linear-gradient(135deg, rgba(30, 136, 229, 0.1), rgba(66, 165, 245, 0.05));
|
|
|
|
|
border-bottom: 1px solid rgba(30, 136, 229, 0.15);
|
|
|
|
|
|
|
|
|
|
.user-info {
|
|
|
|
|
.user-name {
|
|
|
|
|
color: #1e3a5f;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.user-role {
|
|
|
|
|
color: #1e88e5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.dropdown-divider {
|
|
|
|
|
background: linear-gradient(90deg, transparent, rgba(30, 136, 229, 0.25), transparent);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.dropdown-menu-custom {
|
|
|
|
|
.dropdown-item {
|
|
|
|
|
color: #3a5a7a !important;
|
|
|
|
|
|
|
|
|
|
svg {
|
|
|
|
|
color: rgba(30, 136, 229, 0.8);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
background: linear-gradient(135deg, rgba(30, 136, 229, 0.14), rgba(66, 165, 245, 0.06)) !important;
|
|
|
|
|
color: #1e88e5 !important;
|
|
|
|
|
|
|
|
|
|
svg {
|
|
|
|
|
color: #1e88e5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.logout {
|
|
|
|
|
color: rgba(200, 80, 80, 0.85) !important;
|
|
|
|
|
|
|
|
|
|
svg {
|
|
|
|
|
color: rgba(220, 100, 100, 0.8);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
background: linear-gradient(135deg, rgba(220, 80, 80, 0.14), rgba(200, 60, 60, 0.06)) !important;
|
|
|
|
|
color: #d63030 !important;
|
|
|
|
|
|
|
|
|
|
svg {
|
|
|
|
|
color: #d63030;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ===== 学生端用户下拉:白底墨黑 ===== */
|
|
|
|
|
.student-dropdown-popper {
|
|
|
|
|
/* 隐藏顶部白色菱形箭头 */
|
|
|
|
|
.el-popper__arrow { display: none !important; }
|
|
|
|
|
|
|
|
|
|
.dropdown-panel {
|
|
|
|
|
@ -979,7 +1011,6 @@ onMounted(() => {
|
|
|
|
|
background: #e5e7eb !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Element Plus 菜单容器:去掉默认内边距/底色/圆角 */
|
|
|
|
|
.el-dropdown-menu.dropdown-menu-custom {
|
|
|
|
|
padding: 8px;
|
|
|
|
|
background: transparent !important;
|
|
|
|
|
@ -988,7 +1019,6 @@ onMounted(() => {
|
|
|
|
|
box-shadow: none !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* li 同时是 el-dropdown-menu__item 与 .dropdown-item,全部状态统一 */
|
|
|
|
|
.dropdown-item.el-dropdown-menu__item {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
@ -1019,7 +1049,6 @@ onMounted(() => {
|
|
|
|
|
svg { color: #1f2937; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 退出项:语义红 */
|
|
|
|
|
&.logout,
|
|
|
|
|
&.logout:hover,
|
|
|
|
|
&.logout:focus,
|
|
|
|
|
@ -1037,29 +1066,4 @@ onMounted(() => {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
.navbar {
|
|
|
|
|
.navTitle, .TnavTitle {
|
|
|
|
|
.logo-area {
|
|
|
|
|
.nacber-name {
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
letter-spacing: 1px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-ment {
|
|
|
|
|
display: none !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.search-box {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.divider {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|