// KPI穿透组件公共样式 .billing-wrapper { width: 100%; overflow: hidden; // background: red; // height: 50vh; // overflow-y: scroll; border-radius: 32px; .billing-layout { display: flex; align-items: stretch; justify-content: space-between; gap: 16px; width: 100%; } .billing-left { flex: 0 0 75%; max-width: 75%; display: flex; flex-direction: column; gap: 12px; min-width: 0; } .billing-right { flex: 0 0 25%; max-width: 23.5%; display: flex; flex-direction: column; gap: 12px; min-width: 0; } .chart-card { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 10px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); flex-shrink: 0; .chart-title { font-size: 13px; color: #606266; margin-bottom: 6px; display: flex; align-items: center; gap: 6px; i { color: #409EFF; } } .chart-mini { height: 220px; width: 100%; } } .table-card { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 10px 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); flex: 1; // min-height: 700px; display: flex; flex-direction: column; .table-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; flex-shrink: 0; } .table-title { font-size: 14px; font-weight: 600; color: #303133; display: flex; align-items: center; gap: 6px; i { color: #409EFF; } } .el-table { flex: 1; min-height: 0; } .pagination-bar { flex-shrink: 0; margin-top: 8px; } } .stat-card { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 10px 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); flex-shrink: 0; position: relative; overflow: hidden; &.compact { display: flex; align-items: center; gap: 10px; min-height: 70px; } .stat-icon-circle { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; flex-shrink: 0; i { font-size: 16px; } } &.neon-green { border-left: 4px solid #67C23A; border-color: #e1f3d8; border-left-color: #67C23A; .stat-icon-circle { background: #67C23A; } } &.neon-orange { border-left: 4px solid #E6A23C; border-color: #fde3c9; border-left-color: #E6A23C; .stat-icon-circle { background: #E6A23C; } } &.neon-red { border-left: 4px solid #F56C6C; border-color: #fde2e2; border-left-color: #F56C6C; .stat-icon-circle { background: #F56C6C; } } &.neon-blue { border-left: 4px solid #409EFF; border-left-color: #409EFF; .stat-icon-circle { background: #409EFF; } } &.neon-purple { border-left: 4px solid #9C27B0; border-left-color: #9C27B0; .stat-icon-circle { background: #9C27B0; } } &.neon-cyan { border-left: 4px solid #17A2B8; border-color: #d1ecf1; border-left-color: #17A2B8; .stat-icon-circle { background: #17A2B8; } } .stat-content { flex: 1; min-width: 0; } .stat-title { font-size: 13px; color: #606266; margin-bottom: 4px; line-height: 1.3; } .stat-body { color: #303133; .value-lg { font-size: 18px; font-weight: 700; margin-top: 4px; } .highlight { font-size: 14px; font-weight: 600; line-height: 1.3; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; .value-inline { font-size: 16px; font-weight: 700; color: #409EFF; white-space: nowrap; } } } } } .pagination-bar { display: flex; justify-content: flex-end; padding: 10px 0 4px 0; } .list-filters { display: flex; align-items: center; justify-content: flex-start; margin: 8px 0; &.inline { margin: 0; } } .text-ellipsis-2 { display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }