html, body, #app, .layout { margin: 0; padding: 0; height: 100%; } /* ===== 顶部导航栏 ===== */ .layout-header { color: #fff; background: linear-gradient(90deg, #1d2b45 0%, #2c3e60 100%); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); display: flex; align-items: center; position: relative; div.main-title { display: inline-block; font-size: 20px; font-weight: var(--el-font-weight-primary); letter-spacing: 1px; line-height: 60px; } .nav-btns-right { display: inline-block; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); } } /* ===== 侧边栏 ===== */ .el-aside { background: var(--el-fill-color-light); border-right: 1px solid var(--el-border-color-light); .el-menu { // CSS 变量覆盖 --el-menu-bg-color: transparent; --el-menu-border-color: transparent; --el-menu-hover-bg-color: var(--el-fill-color); --el-menu-active-color: var(--el-color-primary); } .el-menu-item { // 圆角/间距/宽度无对应 CSS 变量,保留直接样式 border-radius: var(--el-border-radius-base); margin: 2px 8px; width: calc(100% - 16px); &.is-active { // 激活背景色无对应 CSS 变量,保留直接样式 background-color: var(--el-color-primary-light-9); font-weight: var(--el-font-weight-primary); } } .el-sub-menu__title:hover { // Element Plus 子菜单标题 hover 使用 --el-menu-bg-color 而非 --el-menu-hover-bg-color // 因此无法通过变量覆盖,保留直接样式 background-color: var(--el-fill-color); } } /* ===== 主内容区 ===== */ .layout-main { padding: 0 !important; display: flex !important; flex-direction: column; background: var(--el-fill-color); > .layout-tabs { margin: 12px 16px 0; } > .layout-content { margin: 12px 16px; overflow: auto; background: var(--el-bg-color); border-radius: 10px; border: 1px solid var(--el-border-color-lighter); padding: 20px; flex-grow: 1; flex-basis: 0; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04); } > .layout-copy { text-align: center; padding: 8px 0 12px; color: var(--el-text-color-placeholder); font-size: var(--el-font-size-extra-small); } } /* ===== 页面布局(用于带分页的表格页面)===== */ .page-wrapper { display: flex; flex-direction: column; height: 100%; } /* ===== 表格美化 ===== */ .table-container { position: relative; flex: 1; overflow: hidden; margin-bottom: 12px; display: flex; flex-direction: column; .el-table { // CSS 变量覆盖:表头背景/文字色、行悬停色、边框色、正文色 --el-table-header-bg-color: var(--el-fill-color-light); --el-table-header-text-color: var(--el-text-color-regular); --el-table-row-hover-bg-color: var(--el-color-primary-light-9); --el-table-border-color: var(--el-border-color-lighter); --el-table-text-color: var(--el-text-color-primary); // 固定高度,让表头固定,tbody滚动 flex: 1; border-radius: var(--el-border-radius-base); overflow: hidden; border: 1px solid var(--el-border-color-lighter); &::before { display: none; } th.el-table__cell { font-weight: var(--el-font-weight-primary); font-size: var(--el-font-size-small); } td.el-table__cell { // 行分隔线比表头边框更浅,与 --el-table-border-color 不同,需直接覆盖 border-bottom-color: var(--el-fill-color); font-size: var(--el-font-size-small); } .el-button.is-link { font-size: 16px; padding: 4px 6px; } } } /* ===== 操作栏 ===== */ .btn-container { margin-bottom: 14px; display: flex; align-items: center; .search-btn { margin-left: auto; display: flex; gap: 8px; } } /* ===== 分页 ===== */ .page-container { padding: 16px 0 4px; display: flex; justify-content: center; } /* ===== 表单弹窗 ===== */ .el-dialog { // CSS 变量覆盖:圆角、清除 element-plus 2.x 新增的根元素 padding --el-dialog-border-radius: 12px; --el-dialog-padding-primary: 0; // overflow:hidden 无对应 CSS 变量,保留直接样式(使圆角裁剪生效) overflow: hidden; .el-dialog__header { background: var(--el-fill-color-light); border-bottom: 1px solid var(--el-border-color-lighter); padding: 16px 20px; margin: 0; .el-dialog__title { font-size: var(--el-font-size-base); font-weight: var(--el-font-weight-primary); color: var(--el-text-color-primary); } } .el-dialog__body { padding: 24px 24px 8px; } .el-dialog__footer { border-top: 1px solid var(--el-border-color-lighter); padding: 12px 20px; background: var(--el-fill-color-lighter); } } /* ===== 搜索表单 ===== */ .el-form--inline { margin-bottom: 14px; .el-form-item { margin-bottom: 0; } .el-select { min-width: 160px; } } .search-panel { margin-bottom: 14px; } /* ===== 其他工具类 ===== */ .carsouel-img { position: relative; left: 50%; transform: translateX(-50%); height: 500px; width: auto; } .main-view { position: relative; height: 100%; } .custom-drawer { > .el-drawer__header { margin-bottom: 0; } > .el-drawer__body { overflow: auto; } } .el-tabs--card.nav-tabs { > .el-tabs__header { margin-bottom: 0; border-bottom: none; background: var(--el-bg-color); padding: 0 4px; border-radius: 8px 8px 0 0; .el-tabs__nav-wrap { margin-bottom: 0; } .el-tabs__nav { border: none; } .el-tabs__item { height: 36px; line-height: 36px; padding: 0 16px; font-size: var(--el-font-size-small); color: var(--el-text-color-secondary); border: none; border-radius: 6px 6px 0 0; margin-right: 2px; transition: color 0.2s, background 0.2s; position: relative; &:hover { color: var(--el-color-primary); background: var(--el-color-primary-light-9); } &.is-active { color: var(--el-color-primary); font-weight: var(--el-font-weight-primary); background: var(--el-fill-color); &::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: var(--el-color-primary); border-radius: 2px 2px 0 0; } } .is-icon-close { font-size: 11px; margin-left: 4px; border-radius: 50%; transition: background 0.2s; &:hover { background: var(--el-color-danger-light-7); color: var(--el-color-danger); } } } } }