.stat-card {
background: #FFFFFF;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
border: none;
padding: 24px;
height: 120px;
position: relative;
overflow: hidden;
}
卡片1 - 当前进行比赛
- 图标: <Calendar />
(Element Plus Icons)
- 图标容器:
- 尺寸: 48px × 48px
- 背景色: #E0E7FF (浅蓝色圆形)
- 图标颜色: #6366F1 (蓝紫色)
- 图标尺寸: 24px
- 位置: 左上角
- 数字显示:
- 字体大小: 32px
- 字重: 700 (bold)
- 颜色: #1F2937 (深灰)
- 位置: 右上角,右对齐
- 标题文字:
- 内容: "当前进行比赛"
- 字体大小: 14px
- 字重: 500 (medium)
- 颜色: #6B7280 (中灰)
- 位置: 左下角
卡片2 - 参赛总人数
- 图标: <User />
(Element Plus Icons)
- 图标容器:
- 背景色: #D1FAE5 (浅绿色圆形)
- 图标颜色: #10B981 (绿色)
- 数字和文字样式: 同卡片1
- 标题: "参赛总人数"
卡片3 - 报名待审核
- 图标: <Document />
(Element Plus Icons)
- 图标容器:
- 背景色: #FEF3C7 (浅黄色圆形)
- 图标颜色: #F59E0B (橙黄色)
- 数字和文字样式: 同卡片1
- 标题: "报名待审核"
卡片4 - 评委总数
- 图标: <UserFilled />
(Element Plus Icons)
- 图标容器:
- 背景色: #FECACA (浅红色圆形)
- 图标颜色: #EF4444 (红色)
- 数字和文字样式: 同卡片1
- 标题: "评委总数"
┌─────────────────────────────┐
│ [🗓️] 32 │
│ │
│ 当前进行比赛 │
└─────────────────────────────┘
.table-card {
background: #FFFFFF;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
border: none;
padding: 24px;
margin-top: 20px;
}
表头样式:css .el-table__header { background-color: #F9FAFB; } .el-table__header th { background-color: #F9FAFB !important; color: #374151; font-size: 14px; font-weight: 500; height: 48px; border-bottom: 1px solid #E5E7EB; }
表格行样式:css .el-table__row { height: 56px; } .el-table__row:nth-child(even) { background-color: #F9FAFB; } .el-table__row:nth-child(odd) { background-color: #FFFFFF; } .el-table td { color: #1F2937; font-size: 14px; font-weight: 400; border-bottom: 1px solid #F3F4F6; }
已发布状态:css .status-published { background-color: #D1FAE5; color: #065F46; border-radius: 16px; padding: 4px 12px; font-size: 12px; font-weight: 500; display: inline-block; }
未发布状态:css .status-unpublished { background-color: #FEF3C7; color: #92400E; border-radius: 16px; padding: 4px 12px; font-size: 12px; font-weight: 500; display: inline-block; }
关闭状态:css .status-closed { background-color: #FEE2E2; color: #991B1B; border-radius: 16px; padding: 4px 12px; font-size: 12px; font-weight: 500; display: inline-block; }
// 将后端返回的日期格式化为: "2025年10月1日 14:00"
const formatDate = (dateString) => {
const date = new Date(dateString);
return date.toLocaleDateString('zh-CN', {
year: 'numeric',
month: 'long',
day: 'numeric',
hour: '2-digit',
minute: '2-digit'
});
}
const statusMap = {
'已发布': 'published',
'未发布': 'unpublished',
'关闭': 'closed'
}
.stat-card:hover {
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
transition: all 0.3s ease;
}
.icon-container {
width: 48px;
height: 48px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 24px;
left: 24px;
}
.el-table__empty-block {
background-color: #F9FAFB;
color: #6B7280;
font-size: 14px;
}
:root {
/* 主题色 */
--primary-color: #6366F1;
--bg-color: #F8F9FA;
--card-bg: #FFFFFF;
/* 统计卡片颜色 */
--blue-light: #E0E7FF;
--blue-primary: #6366F1;
--green-light: #D1FAE5;
--green-primary: #10B981;
--yellow-light: #FEF3C7;
--yellow-primary: #F59E0B;
--red-light: #FECACA;
--red-primary: #EF4444;
/* 文字颜色 */
--text-primary: #1F2937;
--text-secondary: #6B7280;
--text-muted: #374151;
/* 状态颜色 */
--status-published-bg: #D1FAE5;
--status-published-text: #065F46;
--status-unpublished-bg: #FEF3C7;
--status-unpublished-text: #92400E;
--status-closed-bg: #FEE2E2;
--status-closed-text: #991B1B;
}
此计划涵盖了图片设计的所有视觉元素,确保高度还原目标效果