.container { padding: 10px 5px; background: #f5f5f5; min-height: 100vh; // KPI卡片区域 .kpiRow { display: flex; gap: 16px; margin-bottom: 20px; .kpiCard { flex: 1; background: #fff; border-radius: 8px; padding: 24px; text-align: center; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); transition: all 0.3s; &:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); transform: translateY(-2px); } .kpiIcon { font-size: 32px; margin-bottom: 12px; } .kpiValue { font-size: 32px; font-weight: 600; color: #1890ff; margin-bottom: 8px; } .kpiTitle { font-size: 14px; color: #666; } } } // 图表和活动区域 .chartRow { display: flex; gap: 16px; margin-bottom: 20px; .chartCard, .activityCard { flex: 1; background: #fff; border-radius: 8px; padding: 20px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); .chartHeader { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #f0f0f0; .chartTitle { font-size: 16px; font-weight: 600; color: #333; } .timeSelect { padding: 4px 8px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 12px; cursor: pointer; &:hover { border-color: #40a9ff; } } } .chartContainer { height: 300px; width: 100%; } } .activityCard { .activityList { .activityItem { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid #f0f0f0; &:last-child { border-bottom: none; } .activityIcon { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: #f5f5f5; border-radius: 8px; font-size: 20px; flex-shrink: 0; } .activityContent { flex: 1; .activityTitle { font-size: 14px; font-weight: 500; color: #333; margin-bottom: 4px; } .activityDesc { font-size: 13px; color: #666; margin-bottom: 4px; } .activityTime { font-size: 12px; color: #999; } } } } } } // 表格区域 .tableCard { background: #fff; border-radius: 8px; padding: 20px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); .tableHeader { margin-bottom: 16px; .tableTitle { font-size: 18px; font-weight: 600; color: #333; } } .filterBar { margin-bottom: 16px; padding: 16px; background: #fafafa; border-radius: 4px; .filterGroup { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; .searchInput { padding: 8px 12px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 14px; width: 200px; &:focus { outline: none; border-color: #40a9ff; } } .filterSelect { padding: 8px 12px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 14px; width: 150px; cursor: pointer; background: #fff; &:hover { border-color: #40a9ff; } } .queryBtn, .resetBtn, .addBtn, .exportBtn { padding: 8px 16px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 14px; cursor: pointer; background: #fff; transition: all 0.3s; &:hover { border-color: #40a9ff; color: #40a9ff; } } .queryBtn, .addBtn { background: #1890ff; color: #fff; border-color: #1890ff; &:hover { background: #40a9ff; border-color: #40a9ff; } } } } .tableWrapper { overflow-x: auto; .dataTable { width: 100%; border-collapse: collapse; thead { background: #fafafa; th { padding: 12px; text-align: left; font-weight: 600; color: #333; border-bottom: 2px solid #f0f0f0; white-space: nowrap; } } tbody { tr { border-bottom: 1px solid #f0f0f0; transition: background 0.3s; &:hover { background: #fafafa; } td { padding: 12px; color: #666; white-space: nowrap; .tag { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 12px; } .tagGold { background: #fffbe6; color: #faad14; border: 1px solid #ffe58f; } .tagBlue { background: #e6f7ff; color: #1890ff; border: 1px solid #91d5ff; } .tagGreen { background: #f6ffed; color: #52c41a; border: 1px solid #b7eb8f; } .tagOrange { background: #fff7e6; color: #fa8c16; border: 1px solid #ffd591; } .stars { display: flex; gap: 2px; .starFull { color: #faad14; font-size: 16px; } .starHalf { color: #faad14; font-size: 16px; opacity: 0.5; } .starEmpty { color: #d9d9d9; font-size: 16px; } } .actionBtns { display: flex; gap: 8px; .actionBtn { padding: 4px 8px; border: none; background: transparent; color: #1890ff; cursor: pointer; font-size: 12px; border-radius: 4px; transition: all 0.3s; &:hover { background: #e6f7ff; } &.deleteBtn { color: #ff4d4f; &:hover { background: #fff1f0; } } } } } } } } } .pagination { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; padding-top: 16px; border-top: 1px solid #f0f0f0; .paginationInfo { display: flex; align-items: center; gap: 8px; color: #666; font-size: 14px; .pageSizeSelect { padding: 4px 8px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 14px; cursor: pointer; margin-left: 8px; } } .paginationControls { display: flex; gap: 4px; align-items: center; .pageBtn { min-width: 32px; height: 32px; padding: 0 8px; border: 1px solid #d9d9d9; border-radius: 4px; background: #fff; cursor: pointer; font-size: 14px; transition: all 0.3s; &:hover:not(:disabled) { border-color: #40a9ff; color: #40a9ff; } &:disabled { opacity: 0.5; cursor: not-allowed; } &.pageBtnActive { background: #1890ff; color: #fff; border-color: #1890ff; } } .pageEllipsis { padding: 0 8px; color: #666; } } } } }