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 { border-right: none; background: transparent; } .el-menu-item { border-radius: var(--el-border-radius-base); margin: 2px 8px; width: calc(100% - 16px); &.is-active { background-color: var(--el-color-primary-light-9); color: var(--el-color-primary); font-weight: var(--el-font-weight-primary); } &:hover { background-color: var(--el-fill-color); } } .el-sub-menu__title:hover { 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); } } /* ===== 表格美化 ===== */ .table-container { position: relative; .el-table { border-radius: var(--el-border-radius-base); overflow: hidden; border: 1px solid var(--el-border-color-lighter); &::before { display: none; } th.el-table__cell { background: var(--el-fill-color-light); color: var(--el-text-color-regular); font-weight: var(--el-font-weight-primary); font-size: var(--el-font-size-small); border-bottom: 1px solid var(--el-border-color-lighter); } td.el-table__cell { border-bottom: 1px solid var(--el-fill-color); color: var(--el-text-color-primary); font-size: var(--el-font-size-small); } .el-table__row:hover > td { background: var(--el-color-primary-light-9) !important; } .el-table__row--striped > td { background: var(--el-fill-color-lighter); } .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 { border-radius: 12px; 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; } } .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); } } } } }