update:整体样式

This commit is contained in:
ltx 2026-07-03 17:14:10 +08:00
parent d257673173
commit c8ffd7d3b1
5 changed files with 652 additions and 239 deletions

View File

@ -1,14 +1,16 @@
<template>
<div class="router-loading" style="background: #eeeeee5c;">
<div class="spanner">
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<div class="router-loading">
<div class="loading-panel" aria-label="页面加载中">
<div class="loader-mark">
<span></span>
</div>
<div class="loading-copy">
<p>加载中</p>
<span>请稍候</span>
</div>
<div class="loading-bar">
<span></span>
</div>
</div>
</div>
</template>
@ -27,79 +29,129 @@ export default {
left: 0;
width: 100%;
height: 100%;
font-size: 100px;
text-align: center;
padding-top: 200px;
color: #808080;
display: flex;
align-items: center;
justify-content: center;
color: #17233d;
background: rgba(247, 250, 255, 0.88);
z-index: 9999;
animation: loading-fade-in 0.16s ease both;
}
.spanner {
width: 100px;
height: 100px;
.loading-panel {
width: 160px;
min-height: 142px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 20px 22px 18px;
box-sizing: border-box;
border: 1px solid #e6eef8;
border-radius: 12px;
background: #ffffff;
box-shadow: 0 12px 28px rgba(29, 68, 130, 0.1);
animation: panel-in 0.24s ease-out both;
}
.loader-mark {
width: 46px;
height: 46px;
position: relative;
margin: 0 auto;
}
.router-loading span {
display: inline-block;
width: 20px;
height: 20px;
border-radius: 50%;
background: #66b1ff;
position: absolute;
animation: r_load 1.04s ease infinite;
border: 3px solid #dce9fb;
border-top-color: #2487f0;
animation: loader-spin 0.78s linear infinite;
}
@keyframes r_load {
0% {
transform: scale(1.2);
.loader-mark span {
position: absolute;
inset: 8px;
border-radius: inherit;
border: 2px solid #eef5ff;
border-bottom-color: #7db5f5;
}
.loading-copy {
margin-top: 14px;
text-align: center;
}
.loading-copy p {
margin: 0;
color: #17233d;
font-size: 14px;
font-weight: 600;
line-height: 20px;
}
.loading-copy span {
display: block;
margin-top: 3px;
color: #8a96a8;
font-size: 12px;
line-height: 17px;
}
.loading-bar {
width: 96px;
height: 3px;
margin-top: 14px;
overflow: hidden;
border-radius: 999px;
background: #edf3fb;
}
.loading-bar span {
display: block;
width: 38%;
height: 100%;
border-radius: inherit;
background: #2487f0;
animation: loading-sweep 1.05s ease-in-out infinite;
}
@keyframes loading-fade-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
100% {
transform: scale(0.3);
opacity: 0.5;
}
@keyframes panel-in {
from {
opacity: 0;
transform: translate3d(0, 6px, 0);
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
.router-loading span:nth-child(1) {
left: 0;
top: 50%;
margin-top: -10px;
animation-delay: 0.13s;
@keyframes loader-spin {
to {
transform: rotate(360deg);
}
}
.router-loading span:nth-child(2) {
left: 14px;
top: 14px;
animation-delay: 0.26s;
@keyframes loading-sweep {
0% {
transform: translateX(-105%);
}
100% {
transform: translateX(270%);
}
}
.router-loading span:nth-child(3) {
left: 50%;
top: 0;
margin-left: -10px;
animation-delay: 0.39s;
}
.router-loading span:nth-child(4) {
top: 14px;
right: 14px;
animation-delay: 0.52s;
}
.router-loading span:nth-child(5) {
right: 0;
top: 50%;
margin-top: -10px;
animation-delay: 0.65s;
}
.router-loading span:nth-child(6) {
right: 14px;
bottom: 14px;
animation-delay: 0.78s;
}
.router-loading span:nth-child(7) {
bottom: 0;
left: 50%;
margin-left: -10px;
animation-delay: 0.91s;
}
.router-loading span:nth-child(8) {
bottom: 14px;
left: 14px;
animation-delay: 1.04s;
@media (prefers-reduced-motion: reduce) {
.router-loading,
.loading-panel,
.loader-mark,
.loading-bar span {
animation: none;
}
}
</style>

View File

@ -7,13 +7,248 @@
</script>
<style lang="less" scoped>
.commonManage{
width: calc(100% - 34px);
height: calc(100vh - 130px) !important;
background-color: #fff;
border-radius: 8px;
.commonManage {
width: calc(100% - 32px);
min-height: calc(100vh - 136px) !important;
background: rgba(255, 255, 255, 0.96);
border: 1px solid rgba(222, 230, 242, 0.9);
border-radius: 12px;
margin: 16px;
box-sizing: border-box;
overflow: hidden;
box-shadow: 0 12px 30px rgba(31, 52, 88, 0.08);
}
.commonManage :deep(.head) {
width: 100% !important;
min-height: 76px;
height: auto !important;
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 12px 16px;
padding: 16px 18px 14px;
box-sizing: border-box;
background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
border-bottom: 1px solid #edf1f7;
}
.commonManage :deep(.head .left) {
width: auto !important;
height: 36px !important;
display: inline-flex;
align-items: center;
margin: 0 !important;
}
.commonManage :deep(.head .desctipt) {
width: auto !important;
min-width: max-content;
margin: 0 8px 0 0 !important;
color: #344054 !important;
font-size: 14px !important;
font-weight: 600 !important;
letter-spacing: 0 !important;
}
.commonManage :deep(.head .m-2),
.commonManage :deep(.head .el-select),
.commonManage :deep(.head .el-input),
.commonManage :deep(.head .el-cascader) {
width: 190px !important;
}
.commonManage :deep(.right),
.commonManage :deep(.rightBtn) {
width: auto !important;
min-height: 48px;
display: flex !important;
align-items: center;
justify-content: flex-end !important;
flex-wrap: wrap;
gap: 10px;
padding: 0 18px 14px;
box-sizing: border-box;
}
</style>
.commonManage :deep(.head .right) {
margin-left: auto;
padding: 0;
}
.commonManage :deep(.Search),
.commonManage :deep(.Add),
.commonManage :deep(.addTeacher),
.commonManage :deep(.Import),
.commonManage :deep(.Export),
.commonManage :deep(.Audit),
.commonManage :deep(.Upload) {
min-width: 82px !important;
width: auto !important;
height: 34px !important;
margin: 0 !important;
padding: 0 16px !important;
display: inline-flex !important;
align-items: center;
justify-content: center;
border-radius: 8px !important;
border: 1px solid transparent !important;
font-size: 14px !important;
font-weight: 500 !important;
line-height: 34px !important;
cursor: pointer;
user-select: none;
transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, color 0.18s ease;
}
.commonManage :deep(.Search),
.commonManage :deep(.Add),
.commonManage :deep(.addTeacher),
.commonManage :deep(.Import),
.commonManage :deep(.Export) {
color: #fff !important;
background: linear-gradient(135deg, #2f8dff 0%, #176be7 100%) !important;
box-shadow: 0 6px 14px rgba(47, 141, 255, 0.2);
}
.commonManage :deep(.Audit),
.commonManage :deep(.Upload) {
color: #475467 !important;
background: #fff !important;
border-color: #d9e1ee !important;
box-shadow: 0 4px 10px rgba(31, 52, 88, 0.05);
}
.commonManage :deep(.Search:hover),
.commonManage :deep(.Add:hover),
.commonManage :deep(.addTeacher:hover),
.commonManage :deep(.Import:hover),
.commonManage :deep(.Export:hover),
.commonManage :deep(.Audit:hover),
.commonManage :deep(.Upload:hover) {
transform: translateY(-1px);
box-shadow: 0 8px 18px rgba(47, 141, 255, 0.24);
}
.commonManage :deep(.cont) {
padding: 0 0 16px;
box-sizing: border-box;
}
.commonManage :deep(.el-input__wrapper),
.commonManage :deep(.el-select__wrapper) {
min-height: 34px;
border-radius: 8px;
box-shadow: 0 0 0 1px #dce4f0 inset;
transition: box-shadow 0.18s ease, background 0.18s ease;
}
.commonManage :deep(.el-input__wrapper:hover),
.commonManage :deep(.el-select__wrapper:hover),
.commonManage :deep(.el-input__wrapper.is-focus),
.commonManage :deep(.el-select__wrapper.is-focused) {
box-shadow: 0 0 0 1px #2f8dff inset, 0 0 0 3px rgba(47, 141, 255, 0.1);
}
.commonManage :deep(.el-table) {
width: calc(100% - 36px) !important;
margin: 16px 18px 0 !important;
border-radius: 10px;
border: 1px solid #edf1f7;
box-shadow: 0 8px 20px rgba(31, 52, 88, 0.05);
overflow: hidden;
}
.commonManage :deep(.el-table::before),
.commonManage :deep(.el-table__inner-wrapper::before) {
display: none;
}
.commonManage :deep(.el-table th.el-table__cell) {
height: 46px !important;
padding: 0 !important;
background: #f6f9fd !important;
color: #344054 !important;
font-size: 13px !important;
font-weight: 600 !important;
}
.commonManage :deep(.el-table td.el-table__cell) {
height: 46px !important;
padding: 6px 0 !important;
color: #475467 !important;
border-bottom-color: #edf1f7 !important;
}
.commonManage :deep(.el-table__row:hover > td.el-table__cell) {
background: #f4f8ff !important;
}
.commonManage :deep(.el-pagination) {
margin: 14px 18px 0 !important;
}
.commonManage :deep(.operate) {
min-height: 24px !important;
display: flex !important;
align-items: center;
justify-content: center;
gap: 8px;
flex-wrap: wrap;
}
.commonManage :deep(.operate .edit),
.commonManage :deep(.operate .view),
.commonManage :deep(.operate .delete),
.commonManage :deep(.operate .toView),
.commonManage :deep(.operate .editPassWord) {
width: auto !important;
min-width: 42px !important;
height: 24px !important;
padding: 0 8px !important;
margin: 0 !important;
border-radius: 6px;
font-size: 14px !important;
font-weight: 500 !important;
line-height: 24px !important;
transition: background 0.18s ease, color 0.18s ease;
}
.commonManage :deep(.operate .edit),
.commonManage :deep(.operate .view),
.commonManage :deep(.operate .toView) {
color: #176be7 !important;
}
.commonManage :deep(.operate .delete) {
color: #f04438 !important;
}
.commonManage :deep(.operate .editPassWord) {
color: #12a87f !important;
}
.commonManage :deep(.operate .edit:hover),
.commonManage :deep(.operate .view:hover),
.commonManage :deep(.operate .toView:hover) {
background: #eaf3ff;
}
.commonManage :deep(.operate .delete:hover) {
background: #fff1f0;
}
.commonManage :deep(.addTeacherDrawer .title) {
color: #1d2939 !important;
font-size: 16px !important;
font-weight: 600 !important;
}
.commonManage :deep(.footer .cancle),
.commonManage :deep(.footer .confirm) {
height: 38px !important;
border-radius: 8px !important;
line-height: 38px !important;
font-weight: 500 !important;
}
</style>

View File

@ -1,6 +1,6 @@
<template>
<div class="commonTable">
<el-table :data="propsChannel" highlight-current-row
<el-table :data="propsChannel" highlight-current-row stripe
style="width: calc(100% - 40px) ;height: calc(100vh - 250px); margin:0 20px ;" fit="true"
@selection-change="handleSelectionChange"
:header-cell-style="{ 'text-align': 'center', 'font-size': '12px', 'color': '#3F404A', padding: '3px', background: '#F8F8FA', height: '50px' }"
@ -92,16 +92,47 @@ function goUp(row) {
.commonTable {
width: 100%;
padding-bottom: 16px;
box-sizing: border-box;
}
:deep(.el-table) {
border-top-left-radius: 8px;
border-top-right-radius: 8px;
width: calc(100% - 36px) !important;
height: calc(100vh - 270px) !important;
margin: 16px 18px 0 !important;
overflow: hidden;
border-radius: 10px;
border: 1px solid #edf1f7;
box-shadow: 0 8px 20px rgba(31, 52, 88, 0.05);
}
:deep(.el-table::before),
:deep(.el-table__inner-wrapper::before) {
display: none;
}
:deep(.el-table th.el-table__cell) {
height: 46px !important;
padding: 0 !important;
background: #f6f9fd !important;
color: #344054 !important;
font-size: 13px !important;
font-weight: 600 !important;
}
:deep(.el-table td.el-table__cell) {
height: 46px !important;
padding: 6px 0 !important;
color: #475467;
border-bottom-color: #edf1f7;
}
:deep(.el-table__row:hover > td.el-table__cell) {
background: #f4f8ff !important;
}
:deep(.el-table__body .el-table__row) {
// height: 36.55px;
/* 设置行高 */
transition: background 0.18s ease;
}
:deep(.el-tabs__item) {
@ -122,63 +153,69 @@ function goUp(row) {
}
:deep(.el-pagination) {
height: 20px;
margin-top: 15px;
margin-left: 20px;
min-height: 32px;
margin: 14px 18px 0 !important;
display: flex;
align-items: center;
justify-content: flex-end;
}
:deep(.el-pagination .btn-prev),
:deep(.el-pagination .btn-next),
:deep(.el-pagination .el-pager li) {
border-radius: 7px;
}
.operate {
height: 20px;
min-height: 24px;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
flex-wrap: wrap;
}
.edit {
width: 50px;
height: 20px;
.edit,
.delete,
.toView,
.editPassWord {
width: auto;
min-width: 42px;
height: 24px;
padding: 0 8px;
font-size: 14px;
font-family: PingFangSC;
font-weight: 400;
color: #1890FF;
font-weight: 500;
text-align: center;
line-height: 20px;
line-height: 24px;
cursor: pointer;
border-radius: 6px;
transition: background 0.18s ease, color 0.18s ease;
}
.edit,
.toView {
color: #176be7;
}
.delete {
width: 50px;
height: 20px;
font-size: 14px;
font-family: PingFangSC;
font-weight: 400;
color: #FE4C04;
text-align: center;
line-height: 20px;
cursor: pointer;
}
.toView {
width: 80px;
height: 20px;
font-size: 14px;
font-family: PingFangSC;
font-weight: 400;
color: #1890FF;
text-align: center;
line-height: 20px;
cursor: pointer;
color: #f04438;
}
.editPassWord {
width: 80px;
height: 20px;
font-size: 14px;
font-family: PingFangSC;
font-weight: 400;
color: #28CC96;
text-align: center;
line-height: 20px;
cursor: pointer;
color: #12a87f;
}
</style>
.edit:hover,
.toView:hover {
background: #eaf3ff;
}
.delete:hover {
background: #fff1f0;
}
.editPassWord:hover {
background: #eafaf5;
}
</style>

View File

@ -82,15 +82,11 @@
</div>
</div>
<div class="vol-main" id="vol-main">
<el-scrollbar style="height: 100%" v-if="permissionInited">
<el-scrollbar :key="$route.fullPath" class="page-glide-shell" style="height: 100%" v-if="permissionInited">
<loading v-show="$store.getters.isLoading()"></loading>
<router-view v-if="!$route.meta ||
($route.meta && !$route.meta.hasOwnProperty('keepAlive'))
" v-slot="{ Component }">
<transition name="page-fade" mode="out-in">
<component :is="Component" :key="$route.path" />
</transition>
</router-view>
"></router-view>
<router-view v-if="$route.meta && $route.meta.hasOwnProperty('keepAlive')"></router-view>
</el-scrollbar>
</div>
@ -120,23 +116,36 @@
<!-- 页面切换动画:必须非 scoped,否则无法作用于子路由组件根元素 -->
<style lang="less">
/* ====== 页面切换动画 ====== */
.page-fade-enter-active {
transition: opacity 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94),
transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
will-change: opacity, transform;
.page-glide-shell {
min-height: 100%;
animation: page-glide-in 0.38s cubic-bezier(0.16, 1, 0.3, 1) both;
will-change: opacity, transform, filter;
transform-origin: 50% 28px;
backface-visibility: hidden;
}
.page-fade-leave-active {
transition: opacity 0.15s cubic-bezier(0.55, 0, 0.55, 0.2),
transform 0.15s cubic-bezier(0.55, 0, 0.55, 0.2);
will-change: opacity, transform;
@keyframes page-glide-in {
0% {
opacity: 0;
filter: blur(8px) saturate(1.08);
transform: translate3d(0, 18px, 0) scale(0.985);
}
55% {
opacity: 1;
}
100% {
opacity: 1;
filter: blur(0) saturate(1);
transform: translate3d(0, 0, 0) scale(1);
}
}
.page-fade-enter-from {
opacity: 0;
transform: translateY(12px);
}
.page-fade-leave-to {
opacity: 0;
transform: translateY(-6px);
@media (prefers-reduced-motion: reduce) {
.page-glide-shell {
animation: none;
}
}
/* ====== 页面切换动画 END ====== */
</style>
@ -1106,12 +1115,12 @@ function showTime() {
}
.top-nav-overflow-item:hover {
background: #f0f7ff;
color: #2d8cf0;
color: #176be7;
}
.top-nav-overflow-item.is-active {
color: #2d8cf0;
color: #176be7;
font-weight: 600;
background: #e8f4ff;
background: #eef6ff;
}
.top-nav-more-fade-enter-active,
.top-nav-more-fade-leave-active {
@ -1125,34 +1134,87 @@ function showTime() {
.header-navigation.el-tabs--border-card > .el-tabs__header .el-tabs__item .is-icon-close{
margin-left: 8px;
color: #000;
color: #98a2b3;
}
.header-navigation.el-tabs--border-card > .el-tabs__header .el-tabs__item .is-icon-close:hover{
color: #fff;
color: #176be7;
}
/* ── 标签栏 Chrome 风格激活色(全局高优先级,压过 EP border-card 内置样式) ── */
.header-navigation.el-tabs--border-card > .el-tabs__header .el-tabs__item {
color: #5f6368;
color: #667085;
background: transparent;
border: none !important;
border-radius: 8px 8px 0 0 !important;
border-radius: 9px !important;
overflow: visible !important;
}
.header-navigation.el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
color: #2d8cf0 !important;
background: linear-gradient(90deg, #dbeeff 0%, #f0f8ff 100%) !important;
font-weight: normal;
color: #176be7 !important;
background: #eef6ff !important;
font-weight: 600;
border: none !important;
}
.header-navigation.el-tabs--border-card > .el-tabs__header .el-tabs__item:not(.is-active):hover {
color: #2d8cf0 !important;
background: #ebf4ff !important;
border-radius: 8px !important;
color: #176be7 !important;
background: #f4f8ff !important;
border-radius: 9px !important;
}
.header-navigation.el-tabs--border-card > .el-tabs__header {
background: #fff;
border-bottom: none;
}
.addTeacherDrawer .el-drawer {
border-radius: 14px 0 0 14px;
overflow: hidden;
}
.addTeacherDrawer .el-drawer__header {
padding: 18px 22px 14px;
margin-bottom: 0;
border-bottom: 1px solid #edf1f7;
}
.addTeacherDrawer .el-drawer__body {
padding: 22px;
background: #fbfdff;
}
.addTeacherDrawer .el-drawer__footer {
padding: 14px 22px 18px;
border-top: 1px solid #edf1f7;
background: #fff;
}
.addTeacherDrawer .title {
color: #1d2939 !important;
font-size: 16px !important;
font-weight: 600 !important;
}
.addTeacherDrawer .footer .cancle,
.addTeacherDrawer .footer .confirm {
height: 38px !important;
border-radius: 8px !important;
line-height: 38px !important;
font-weight: 500 !important;
transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.addTeacherDrawer .footer .confirm {
background: linear-gradient(135deg, #2f8dff 0%, #176be7 100%) !important;
box-shadow: 0 6px 14px rgba(47, 141, 255, 0.2);
}
.addTeacherDrawer .footer .cancle {
background: #fff !important;
border-color: #d9e1ee !important;
color: #475467 !important;
}
.addTeacherDrawer .footer .cancle:hover,
.addTeacherDrawer .footer .confirm:hover {
transform: translateY(-1px);
}
</style>

View File

@ -4,7 +4,8 @@
overflow: hidden;
top: 54px;
bottom: 0;
border-right: 1px solid #e4e4e7;
border-right: 1px solid #e7edf6;
background: #fff;
}
.vol-menu{
border: 0 !important;
@ -19,31 +20,32 @@
display: flex;
align-items: center;
z-index: 200;
background-color: #2d8cf0;
// box-shadow: 0 2px 12px rgba(0, 0, 0, 0.18);
background: linear-gradient(135deg, #176be7 0%, #2f8dff 52%, #28b4ff 100%);
box-shadow: 0 8px 24px rgba(23, 107, 231, 0.22);
}
.top-logo {
display: flex;
align-items: center;
padding: 0 10px;
padding: 0 18px 0 16px;
min-width: 200px;
height: 100%;
flex-shrink: 0;
border-radius: 10px;
// border-right: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 0;
border-right: 1px solid rgba(255, 255, 255, 0.18);
img {
height: 30px;
height: 32px;
margin-right: 10px;
border-radius: 10px;
border: 2px solid rgba(255, 255, 255, 0.3);
border-radius: 9px;
border: 1px solid rgba(255, 255, 255, 0.35);
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}
span {
color: #fff;
font-size: 20px;
font-size: 18px;
font-weight: 700;
white-space: nowrap;
letter-spacing: 1px;
letter-spacing: 0;
text-shadow: 0 1px 3px rgba(58, 40, 40, 0.15);
font-family: "PingFangSC", sans-serif;
}
@ -54,8 +56,8 @@
display: flex;
align-items: center;
height: 100%;
padding: 0 8px 0 16px;
gap: 6px;
padding: 0 10px 0 18px;
gap: 8px;
overflow-x: auto;
overflow-y: hidden;
min-width: 0;
@ -113,36 +115,37 @@
display: inline-flex;
align-items: center;
flex-shrink: 0;
height: 32px;
padding: 0 16px;
color: rgba(255, 255, 255, 0.88);
height: 34px;
padding: 0 15px;
color: rgba(255, 255, 255, 0.9);
font-size: 14px;
cursor: pointer;
position: relative;
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
transition: color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
white-space: nowrap;
user-select: none;
border-radius: 6px;
letter-spacing: 0.3px;
border-radius: 9px;
letter-spacing: 0;
&:hover {
color: #fff;
background: rgba(255, 255, 255, 0.15);
transform: translateY(-1px);
}
&.is-active {
color: #2d8cf0;
color: #176be7;
font-weight: 600;
background: #fff;
border-radius: 6px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
background: rgba(255, 255, 255, 0.95);
border-radius: 9px;
box-shadow: 0 8px 18px rgba(12, 64, 145, 0.22);
}
}
.vol-top-header .header-info {
display: flex;
align-items: center;
padding-right: 20px;
padding-right: 18px;
height: 100%;
gap: 2px;
flex-shrink: 0;
@ -159,7 +162,7 @@
padding: 4px 10px;
line-height: 18px;
cursor: pointer;
border-radius: 8px;
border-radius: 9px;
transition: background 0.2s;
&:hover {
background: rgba(255, 255, 255, 0.12);
@ -183,7 +186,7 @@
height: 36px;
display: inline-flex;
align-items: center;
border-radius: 8px;
border-radius: 9px;
transition: all 0.2s;
text-decoration: none;
&:hover {
@ -200,7 +203,7 @@
position: relative;
border-radius: 50%;
border: 2px solid rgba(255, 255, 255, 0.55);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
box-shadow: 0 5px 14px rgba(0, 0, 0, 0.16);
}
// ====== 顶部一级导航栏 END ======
@ -208,39 +211,41 @@
.vol-aside ::v-deep(.el-menu) {
border-right: none !important;
background: transparent;
padding: 6px 0;
padding: 10px 0;
}
.vol-aside ::v-deep(.el-menu-item) {
height: 40px;
line-height: 40px;
margin: 2px 8px 2px 0;
border-radius: 0 20px 20px 0;
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
height: 42px;
line-height: 42px;
margin: 3px 10px;
border-radius: 10px;
transition: color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
font-size: 13.5px;
// color: #4a5568;
color: #475467;
overflow: hidden;
}
.vol-aside ::v-deep(.el-sub-menu__title) {
height: 40px;
line-height: 40px;
height: 42px;
line-height: 42px;
margin: 3px 10px;
border-radius: 10px;
font-size: 13.5px;
color: #1a202c;
// font-weight: 600;
color: #344054;
transition: background 0.2s;
letter-spacing: 0.3px;
letter-spacing: 0;
}
.vol-aside ::v-deep(.el-menu-item:not(.is-active):hover) {
background-color: #ebf4ff !important;
color: #2d8cf0 !important;
background-color: #f2f7ff !important;
color: #176be7 !important;
transform: translateX(2px);
}
.vol-aside ::v-deep(.el-sub-menu__title:hover) {
background-color: #f5f7fa !important;
background-color: #f6f9fd !important;
}
.vol-aside ::v-deep(.el-menu-item.is-active) {
background: linear-gradient(90deg, #dbeeff 0%, #f0f8ff 100%) !important;
color: #2d8cf0 !important;
// font-weight: 600;
box-shadow: inset 3px 0 0 #2d8cf0;
background: linear-gradient(135deg, #eaf3ff 0%, #f6fbff 100%) !important;
color: #176be7 !important;
font-weight: 600;
box-shadow: inset 3px 0 0 #2f8dff, 0 6px 14px rgba(47, 141, 255, 0.1);
}
// ====== 侧边栏菜单美化 END ======
@ -267,8 +272,8 @@
top: 0;
bottom: 0;
background: #fff;
border-right: 1px solid #e4e4e7 !important;
box-shadow: none;
border-right: 1px solid #e7edf6 !important;
box-shadow: 8px 0 20px rgba(31, 52, 88, 0.04);
}
.vol-aside .vol-menu ::v-deep(.ivu-menu) {
@ -300,7 +305,8 @@
width: 100%;
display: inline-block;
background: #fff;
border-bottom: 1px solid #e4e4e7;
border-bottom: 1px solid #e7edf6;
box-shadow: 0 2px 10px rgba(31, 52, 88, 0.04);
}
.vol-container .vol-path span {
position: relative;
@ -318,7 +324,8 @@
.vol-main {
position: absolute;
width: 100%;
background-color: #f1f3f6;
background:
linear-gradient(180deg, rgba(244, 248, 255, 0.92) 0%, rgba(239, 244, 250, 0.96) 100%);
bottom: 0;
top: 38px;
margin: 0;
@ -397,10 +404,10 @@
cursor: pointer;
box-shadow: none;
border-bottom: none;
height: 38px;
height: 40px;
display: block;
margin: 0;
padding: 0px 8px 0;
padding: 0 10px;
outline: 0;
list-style: none;
position: relative;
@ -410,7 +417,7 @@
}
.el-tabs--border-card {
border: none;
border-bottom: 1px solid #e4e4e7;
border-bottom: 1px solid #e7edf6;
}
.header-navigation ::v-deep(.el-tabs__nav-wrap) {
margin-bottom: 0;
@ -428,55 +435,47 @@
overflow: visible;
}
.header-navigation ::v-deep(.el-tabs__item) {
height: 37px;
height: 36px;
font-size: 14px;
line-height: 30px;
line-height: 36px;
padding: 0 14px !important;
color: #000 !important;
color: #667085 !important;
position: relative;
margin: 0 1px;
border: none !important;
border-radius: 8px 8px 0 0 !important;
border-radius: 9px !important;
background: transparent;
transition: background 0.15s ease;
transition: color 0.18s ease, background 0.18s ease;
box-shadow: none;
overflow: visible !important;
z-index: 1;
margin-right: 3px;
}
.header-navigation ::v-deep(.el-tabs__item.is-active) {
color: #2d8cf0 !important;
background: linear-gradient(90deg, #dbeeff 0%, #f0f8ff 100%) !important;
color: #176be7 !important;
background: #eef6ff !important;
font-weight: 600;
box-shadow: none;
z-index: 2;
}
.header-navigation ::v-deep(.el-tabs__item.is-active::before) {
content: '';
position: absolute;
bottom: 0;
left: -8px;
width: 8px;
height: 8px;
background: transparent;
border-bottom-right-radius: 8px;
box-shadow: 3px 0 0 0 #dbeeff;
display: none;
}
.header-navigation ::v-deep(.el-tabs__item.is-active::after) {
content: '';
content: "";
position: absolute;
bottom: 0;
right: -8px;
width: 8px;
height: 8px;
background: transparent;
border-bottom-left-radius: 8px;
box-shadow: -3px 0 0 0 #f0f8ff;
left: 12px;
right: 12px;
bottom: 3px;
height: 2px;
border-radius: 2px;
background: #2f8dff;
box-shadow: none;
}
.header-navigation ::v-deep(.el-tabs__item:not(.is-active):hover) {
color: #2d8cf0 !important;
background: #ebf4ff !important;
border-radius: 8px !important;
color: #176be7 !important;
background: #f4f8ff !important;
border-radius: 9px !important;
}
.header-navigation ::v-deep(.el-tabs__nav-prev),
.header-navigation ::v-deep(.el-tabs__nav-next) {
@ -910,6 +909,34 @@ color: #bababa;
.vol-theme-dark .top-nav-item.is-active { color: #272929; }
.vol-theme-white .top-nav-item.is-active { color: #333; }
.vol-theme-blue .vol-top-header,
.vol-theme-blue2 .vol-top-header {
background: linear-gradient(135deg, #176be7 0%, #2f8dff 52%, #28b4ff 100%);
}
.vol-theme-red .vol-top-header,
.vol-theme-red2 .vol-top-header {
background: linear-gradient(135deg, #c92a2a 0%, #ed4014 58%, #ff7a45 100%);
}
.vol-theme-orange .vol-top-header,
.vol-theme-orange2 .vol-top-header {
background: linear-gradient(135deg, #d46b08 0%, #ff9900 58%, #ffc069 100%);
}
.vol-theme-green .vol-top-header,
.vol-theme-green2 .vol-top-header {
background: linear-gradient(135deg, #099268 0%, #19be6b 58%, #63e6be 100%);
}
.vol-theme-dark .vol-top-header {
background: linear-gradient(135deg, #111827 0%, #272929 62%, #475467 100%);
}
.vol-theme-white .vol-top-header {
background: linear-gradient(135deg, #353941 0%, #434956 62%, #667085 100%);
}
.theme-selector {
.item {
cursor: pointer;