/* 简约白灰浅色风格后台管理界面 */ /* 全局样式重置和基础设置 */ * { box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif; line-height: 1.5; color: #2c3e50; background: #f8f9fa; margin: 0; padding: 0; font-size: 14px; letter-spacing: 0.02em; } /* 主容器 */ .menu-index-box { display: flex; min-height: 100vh; background: #ffffff; } /* 左侧导航栏 - 简约白色风格 */ .menu-index-left { width: 240px; min-height: 100vh; background: #ffffff; border-right: 1px solid #e2e8f0; position: relative; transition: all 0.3s ease; box-shadow: 2px 0 8px rgba(0, 0, 0, 0.04); } /* Logo区域 */ .menu-index-left-logo { padding: 24px 20px; text-align: center; border-bottom: 1px solid #e2e8f0; background: #f8fafc; position: relative; } .menu-index-left-logo > img { width: 140px; height: auto; max-height: 50px; object-fit: contain; transition: all 0.3s ease; } .menu-index-left-logo > img:hover { opacity: 0.8; } /* 菜单项简约样式 */ .el-menu { background: #ffffff !important; border: none !important; padding: 8px 0; } .el-menu-item, .el-submenu__title { height: 46px !important; line-height: 46px !important; margin: 3px 12px; border-radius: 8px !important; background: transparent !important; color: #4a5568 !important; font-weight: 500; font-size: 15px; transition: all 0.2s ease !important; position: relative; letter-spacing: 0.01em; } .el-menu-item:hover, .el-submenu__title:hover { background: #f7fafc !important; color: #2d3748 !important; transform: translateX(2px); } .el-menu-item.is-active, .menu-index-active { background: #ebf8ff !important; color: #2b6cb0 !important; font-weight: 600; box-shadow: 0 2px 4px rgba(43, 108, 176, 0.1); } .el-menu-item.is-active::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 3px; height: 20px; background: #1976d2; border-radius: 0 2px 2px 0; } /* 图标样式 */ .menu-index-list-con { display: flex; align-items: center; padding: 0 16px; } .menu-index-list-con i { font-size: 16px !important; margin-right: 12px; width: 18px; text-align: center; color: #718096; transition: all 0.2s ease; } .el-menu-item:hover .menu-index-list-con i, .el-menu-item.is-active .menu-index-list-con i { color: #2b6cb0; } .menu-index-list-con span { font-weight: inherit; } /* 子菜单样式 */ .el-submenu .el-menu-item { height: 38px !important; line-height: 38px !important; margin: 2px 12px 2px 24px; padding-left: 36px !important; font-size: 14px !important; background: transparent !important; border-radius: 6px !important; color: #4a5568 !important; font-weight: 400; letter-spacing: 0.01em; } .el-submenu .el-menu-item:hover { background: #f7fafc !important; color: #2d3748 !important; transform: translateX(4px); } .is-opened .el-menu.el-menu--inline { background: #f7fafc !important; border-radius: 8px; margin: 6px 12px; padding: 6px 0; border: 1px solid #e2e8f0; } /* 右侧内容区域 */ .menu-index-right { flex: 1; background: #f7fafc; display: flex; flex-direction: column; position: relative; } /* 顶部标题栏 */ .menu-index-right-title { height: 72px; background: #ffffff; border-bottom: 1px solid #e2e8f0; display: flex; justify-content: space-between; align-items: center; padding: 0 36px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); position: sticky; top: 0; z-index: 1; gap: 24px; } /* 用户信息区域 */ .menu-index-user-name { color: #1a202c !important; font-size: 20px; font-weight: 700; margin: 0; line-height: 1.2; letter-spacing: 0.02em; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .menu-index-notice { background: #fffbeb; border: 1px solid #f6e05e; border-radius: 8px; padding: 8px 16px; margin-left: 20px; color: #744210; font-size: 13px; line-height: 1.4; letter-spacing: 0.01em; } .menu-index-notice-left span { color: #744210 !important; font-weight: 600; font-size: 13px; letter-spacing: 0.01em; } /* 右侧操作按钮组 */ .menu-index-right-list-box { display: flex; align-items: center; gap: 12px; margin-right: 16px; } .menu-index-right-list { padding: 10px 16px; background: #f7fafc; color: #4a5568 !important; border-radius: 8px; font-size: 14px; font-weight: 500; transition: all 0.2s ease; cursor: pointer; border: 1px solid #e2e8f0; letter-spacing: 0.02em; line-height: 1.4; white-space: nowrap; } .menu-index-right-list:hover { background: #edf2f7; color: #2d3748 !important; border-color: #cbd5e0; transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .menu-index-right-list i { margin-right: 6px; font-size: 13px; vertical-align: middle; } /* 用户头像区域 */ .menu-index-right-title-nickname { display: flex; align-items: center; padding: 8px 16px; background:none; border-radius: 10px; transition: all 0.2s ease; cursor: pointer; border:none; gap: 12px; } .menu-index-right-title-nickname:hover { background: #edf2f7; border-color: #cbd5e0; transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); } .menu-index-right-title-nickname-detail { color: #495057 !important; display: flex; flex-direction: column; gap: 2px; } .menu-index-right-title-nickname-detail span:first-child { font-weight: 600; font-size: 15px; color: #1a202c; letter-spacing: 0.02em; line-height: 1.3; } .menu-index-right-title-nickname-detail span:last-child { color: #718096 !important; font-size: 12px; font-weight: 400; letter-spacing: 0.01em; line-height: 1.2; margin-top: 1px; } /* 退出按钮 */ .menu-index-right-title-quit { width: 44px; height: 44px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; cursor: pointer; margin-left: 8px; } .menu-index-right-title-quit:hover { background: #dc3545; border-color: #dc3545; transform: translateY(-1px); box-shadow: 0 2px 4px rgba(220, 53, 69, 0.2); } .menu-index-right-title-quit img { width: 18px; height: 18px; filter: brightness(0) saturate(100%) invert(42%) sepia(7%) saturate(1166%) hue-rotate(169deg) brightness(99%) contrast(87%); transition: all 0.2s ease; } .menu-index-right-title-quit:hover img { filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7500%) hue-rotate(109deg) brightness(105%) contrast(105%); } /* 面包屑导航 */ .menu-index-right-header { height: 48px; background: #ffffff; border-bottom: 1px solid #f1f3f4; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; } .el-breadcrumb { font-size: 14px !important; color: #718096 !important; margin-bottom: 20px; font-weight: 500; letter-spacing: 0.01em; padding: 12px 0; border-bottom: 1px solid #e2e8f0; } .separator-act { color: #2b6cb0 !important; font-weight: 600; transition: all 0.2s ease; letter-spacing: 0.01em; } .separator-act:hover { color: #2c5282 !important; } .separator-normal { color: #718096; font-weight: 500; letter-spacing: 0.01em; } /* 刷新按钮 */ .menu-index-refresh-child-window { background: #ffffff; border: 1px solid #e2e8f0; color: #4a5568; padding: 10px 18px; border-radius: 8px; font-size: 14px; cursor: pointer; transition: all 0.2s ease; display: inline-flex; align-items: center; gap: 8px; font-weight: 500; letter-spacing: 0.01em; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); } .menu-index-refresh-child-window:hover { background: #f7fafc; border-color: #cbd5e0; color: #2d3748; transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12); } /* 内容区域 */ .menu-index-right-content { background: linear-gradient(135deg, #f7fafc 0%, #edf2f7 100%); flex: 1; overflow-y: auto; padding: 32px; min-height: calc(100vh - 72px); } .include-page { padding: 20px; background: #f8f9fa; } .include-page > div { background: #ffffff; border-radius: 8px; padding: 20px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); border: 1px solid #e9ecef; } /* 滚动条美化 */ .myInclude-content { width: 240px; } .myInclude-content .el-scrollbar__wrap { overflow-x: hidden; } ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 4px; } ::-webkit-scrollbar-thumb { background: #cbd5e0; border-radius: 4px; transition: background 0.2s ease; } ::-webkit-scrollbar-thumb:hover { background: #a0aec0; } /* Element UI 组件样式覆盖 */ .el-dialog { border-radius: 8px !important; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1) !important; border: 1px solid #e9ecef !important; } .el-dialog__header { background: #fafbfc !important; border-bottom: 1px solid #e9ecef !important; padding: 16px 20px !important; } .el-dialog__title { font-size: 17px !important; font-weight: 600 !important; color: #1a202c !important; letter-spacing: 0.01em !important; } .el-dialog__body { padding: 24px !important; background: #ffffff !important; color: #4a5568 !important; line-height: 1.6 !important; letter-spacing: 0.01em !important; } .el-button { border-radius: 8px !important; padding: 10px 18px !important; font-weight: 500 !important; font-size: 14px !important; transition: all 0.2s ease !important; letter-spacing: 0.01em !important; } .el-button--primary { background: #2b6cb0 !important; border-color: #2b6cb0 !important; color: #ffffff !important; font-weight: 600 !important; } .el-button--primary:hover { background: #2c5282 !important; border-color: #2c5282 !important; transform: translateY(-1px) !important; box-shadow: 0 4px 8px rgba(43, 108, 176, 0.2) !important; } .el-button--default { background: #ffffff !important; border: 1px solid #e2e8f0 !important; color: #4a5568 !important; font-weight: 500 !important; } .el-button--default:hover { background: #f7fafc !important; border-color: #cbd5e0 !important; transform: translateY(-1px) !important; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important; } .el-input__inner { border-radius: 8px !important; border: 1px solid #e2e8f0 !important; padding: 12px 14px !important; font-size: 14px !important; transition: all 0.2s ease !important; background: #ffffff !important; letter-spacing: 0.01em !important; line-height: 1.5 !important; } .el-input__inner:focus { border-color: #2b6cb0 !important; box-shadow: 0 0 0 3px rgba(43, 108, 176, 0.1) !important; outline: none !important; } .el-form-item__label { font-weight: 600 !important; color: #2d3748 !important; font-size: 14px !important; letter-spacing: 0.01em !important; line-height: 1.5 !important; } /* 消息提示样式 */ .el-message { border-radius: 8px !important; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important; border: 1px solid #e2e8f0 !important; font-weight: 500 !important; letter-spacing: 0.01em !important; } .el-message--success { background: #f0fff4 !important; border-color: #9ae6b4 !important; color: #22543d !important; } .el-message--warning { background: #fffbeb !important; border-color: #f6e05e !important; color: #744210 !important; } .el-message--error { background: #fed7d7 !important; border-color: #fc8181 !important; color: #742a2a !important; } .el-message--info { background: #ebf8ff !important; border-color: #90cdf4 !important; color: #2c5282 !important; } /* 响应式设计 */ @media (max-width: 1200px) { .menu-index-left { width: 200px; } .myInclude-content { width: 200px; } .menu-index-right-title { padding: 0 16px; } .menu-index-right-header { padding: 0 16px; } } @media (max-width: 1024px) { .menu-index-left { width: 220px; } .menu-index-right-title { padding: 0 24px; height: 64px; } .menu-index-right-content { padding: 24px; min-height: calc(100vh - 64px); } } @media (max-width: 768px) { .menu-index-box { flex-direction: column; } .menu-index-left { width: 100%; min-height: auto; order: 2; transform: translateX(-100%); z-index: 1001; } .menu-index-right { width: 100%; order: 1; margin-left: 0; } .menu-index-right-title { padding: 0 20px; height: 60px; } .menu-index-right-content { padding: 20px; min-height: calc(100vh - 60px); } .myInclude-content { width: 100%; height: auto; } .menu-index-list-con { font-size: 14px !important; padding: 0 16px !important; } .menu-index-list-con i { font-size: 14px !important; margin-right: 8px; } } @media (max-width: 480px) { .menu-index-right-title { padding: 0 16px; height: 56px; } .menu-index-right-content { padding: 16px; min-height: calc(100vh - 56px); } .menu-index-right-list { padding: 6px 12px !important; font-size: 13px !important; } .el-breadcrumb { font-size: 13px !important; margin-bottom: 16px; padding: 8px 0; } .menu-index-refresh-child-window { padding: 8px 14px; font-size: 13px; gap: 6px; } } /* 加载动画 */ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .menu-index-right { animation: fadeIn 0.3s ease-out; } .menu-index-left { animation: fadeIn 0.3s ease-out 0.1s both; } /* 微交互效果 */ .el-menu-item, .el-submenu__title { transform-origin: left center; } .menu-index-right-list, .menu-index-refresh-child-window { transform-origin: center; } /* 打印样式 */ @media print { .menu-index-left { display: none; } .menu-index-right-title, .menu-index-right-header { display: none; } .menu-index-right { width: 100%; margin: 0; box-shadow: none; } }