feat(worker-hall): 抢单大厅UI视觉与布局全面优化升级

1. 桌面端顶部整合:将标题、实时派单呼吸标签、居中搜索栏与操作按钮整合在同一行,消除右侧大面积空白。
2. 4栏KPI仪表盘:重构大厅顶部数据指标为账户资金、接单配额进度条、在办工单状态(支持直达工单)、实时资源池4张高质感卡片,消除原横条留白与空洞感。
3. 游戏分类卡片视觉升级:无图标时根据分类自动生成多色高质感渐变背景与白色微拟物首字,优化选中与悬浮阴影态。
4. 工单卡片与保证金排版升级:优化卡片头部标签、订单号排版,金额与保证金突出展示(0保证金呈现绿色'免保证金'微标),强化立即抢单按钮渐变。
This commit is contained in:
yml2213
2026-09-12 18:59:27 +08:00
parent d1e06f362e
commit 9979011ac2
2 changed files with 732 additions and 101 deletions
+472 -9
View File
@@ -645,6 +645,354 @@
width: min(460px, 100%);
}
/* ===== 桌面端抢单大厅全新整合头部 ===== */
.worker-hall-desktop-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
margin-bottom: 16px;
background: #ffffff;
padding: 14px 20px;
border-radius: 12px;
border: 1px solid #e2e8f0;
box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}
.worker-hall-header-left {
display: flex;
align-items: center;
gap: 10px;
flex-shrink: 0;
}
.worker-hall-heading.ant-typography {
margin: 0 !important;
font-size: 20px !important;
font-weight: 700 !important;
color: #0f172a !important;
letter-spacing: -0.02em;
}
.worker-hall-live-badge {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 12px;
font-weight: 500;
color: #059669;
background: #ecfdf5;
border: 1px solid #a7f3d0;
padding: 2px 10px;
border-radius: 9999px;
}
.worker-hall-pulse-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: #10b981;
box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
animation: worker-hall-pulse 2s infinite cubic-bezier(0.4, 0, 0.6, 1);
}
@keyframes worker-hall-pulse {
0% {
transform: scale(0.95);
box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
}
70% {
transform: scale(1);
box-shadow: 0 0 0 6px rgba(16, 185, 129, 0);
}
100% {
transform: scale(0.95);
box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
}
}
.worker-hall-header-center {
flex: 1;
max-width: 520px;
min-width: 260px;
}
.worker-hall-desktop-search {
width: 100%;
}
.worker-hall-desktop-search .ant-input {
border-radius: 8px 0 0 8px;
padding: 6px 14px;
border-color: #cbd5e1;
}
.worker-hall-desktop-search .ant-input:hover,
.worker-hall-desktop-search .ant-input:focus {
border-color: var(--theme-primary);
}
.worker-hall-desktop-search .ant-btn {
border-radius: 0 8px 8px 0;
padding: 6px 18px;
height: auto;
font-weight: 500;
}
.worker-hall-header-right {
display: flex;
align-items: center;
gap: 10px;
flex-shrink: 0;
}
.worker-hall-header-switch-wrap {
display: flex;
align-items: center;
gap: 6px;
font-size: 13px;
color: #475569;
background: #f8fafc;
border: 1px solid #e2e8f0;
padding: 5px 12px;
border-radius: 8px;
cursor: pointer;
user-select: none;
}
/* ===== 抢单大厅 4 栏 KPI 仪表盘 ===== */
.worker-hall-kpi-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 14px;
margin-bottom: 16px;
}
@media (max-width: 1200px) {
.worker-hall-kpi-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 640px) {
.worker-hall-kpi-grid {
grid-template-columns: 1fr;
}
}
.worker-hall-kpi-card {
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 12px;
padding: 14px 16px;
display: flex;
flex-direction: column;
justify-content: space-between;
gap: 12px;
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
}
.worker-hall-kpi-card:hover {
border-color: #cbd5e1;
box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06);
transform: translateY(-2px);
}
.worker-hall-kpi-top {
display: flex;
align-items: center;
gap: 12px;
}
.worker-hall-kpi-icon-wrap {
width: 42px;
height: 42px;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
font-size: 19px;
flex-shrink: 0;
}
.worker-hall-kpi-icon-wrap.kpi-wallet {
background: #fff7ed;
color: #ea580c;
}
.worker-hall-kpi-icon-wrap.kpi-quota {
background: #eff6ff;
color: #2563eb;
}
.worker-hall-kpi-icon-wrap.kpi-tasks {
background: #faf5ff;
color: #9333ea;
}
.worker-hall-kpi-icon-wrap.kpi-pool {
background: #ecfdf5;
color: #059669;
}
.worker-hall-kpi-info {
display: flex;
flex-direction: column;
gap: 1px;
min-width: 0;
}
.worker-hall-kpi-title {
font-size: 12px;
color: #64748b;
font-weight: 500;
}
.worker-hall-kpi-val {
font-size: 20px;
font-weight: 700;
color: #0f172a;
line-height: 1.2;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.worker-hall-kpi-unit {
font-size: 13px;
font-weight: 400;
color: #64748b;
margin-left: 2px;
}
.worker-hall-kpi-bottom {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
padding-top: 8px;
border-top: 1px solid #f1f5f9;
font-size: 12px;
}
.worker-hall-kpi-sub-item {
display: flex;
align-items: center;
gap: 5px;
color: #64748b;
}
.worker-hall-kpi-sub-item .kpi-sub-val {
color: #334155;
font-weight: 500;
}
.worker-hall-kpi-level-badge {
font-size: 11px;
padding: 1px 7px;
border-radius: 9999px;
background: #fff7ed;
color: #c2410c;
border: 1px solid #fed7aa;
font-weight: 600;
}
.worker-hall-kpi-progress-track {
flex: 1;
height: 6px;
background: #f1f5f9;
border-radius: 9999px;
overflow: hidden;
}
.worker-hall-kpi-progress-bar {
height: 100%;
border-radius: 9999px;
transition: width 0.3s ease;
}
.worker-hall-kpi-progress-bar.safe {
background: linear-gradient(90deg, #10b981, #059669);
}
.worker-hall-kpi-progress-bar.warning {
background: linear-gradient(90deg, #f59e0b, #d97706);
}
.worker-hall-kpi-progress-bar.danger {
background: linear-gradient(90deg, #ef4444, #dc2626);
}
.worker-hall-kpi-sub-text {
color: #64748b;
font-weight: 500;
flex-shrink: 0;
}
.worker-hall-kpi-stat-tags {
display: flex;
align-items: center;
gap: 5px;
}
.worker-hall-kpi-tag {
font-size: 11px;
padding: 1px 6px;
border-radius: 4px;
font-weight: 500;
}
.worker-hall-kpi-tag.blue {
background: #eff6ff;
color: #1d4ed8;
}
.worker-hall-kpi-tag.red {
background: #fef2f2;
color: #dc2626;
font-weight: 600;
}
.worker-hall-kpi-tag.neutral {
background: #f8fafc;
color: #64748b;
}
.worker-hall-kpi-link {
display: inline-flex;
align-items: center;
gap: 3px;
color: var(--theme-primary);
font-weight: 500;
font-size: 12px;
transition: opacity 0.2s ease;
}
.worker-hall-kpi-link:hover {
opacity: 0.8;
}
.worker-hall-kpi-pool-hint {
display: inline-flex;
align-items: center;
gap: 5px;
color: #059669;
font-weight: 500;
}
.worker-hall-kpi-dot-online {
width: 6px;
height: 6px;
border-radius: 50%;
background: #10b981;
}
.worker-hall-kpi-pool-sub {
color: #94a3b8;
font-size: 11px;
}
.worker-hall-board-card .ant-card-body {
display: grid;
gap: 16px;
@@ -732,13 +1080,130 @@
.worker-hall-card {
min-width: 0;
padding: 12px 14px;
padding: 14px 16px;
border-radius: 12px;
background: #ffffff;
border: 1px solid #e5e7eb;
box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
display: grid;
border: 1px solid #e2e8f0;
box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
display: flex;
flex-direction: column;
justify-content: space-between;
gap: 10px;
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.worker-hall-card:hover {
border-color: #cbd5e1;
box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
transform: translateY(-2px);
}
.worker-hall-card-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 8px;
}
.worker-hall-card-tags {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 4px;
}
.worker-hall-category-tag {
background: #f1f5f9 !important;
color: #334155 !important;
border: 1px solid #e2e8f0 !important;
font-weight: 500;
font-size: 12px;
border-radius: 4px;
margin: 0 !important;
}
.worker-hall-card-orderno {
font-size: 11px;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
color: #94a3b8;
white-space: nowrap;
flex-shrink: 0;
}
.worker-hall-card-body {
min-width: 0;
}
.worker-hall-card-title-text {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
font-weight: 600;
color: #0f172a;
font-size: 14px;
line-height: 1.4;
min-height: 38px;
}
.worker-hall-card-amount-row {
display: flex;
align-items: flex-end;
justify-content: space-between;
padding: 8px 10px;
background: #f8fafc;
border-radius: 8px;
border: 1px solid #f1f5f9;
gap: 8px;
}
.worker-hall-card-amount-group {
display: flex;
flex-direction: column;
gap: 1px;
}
.worker-hall-card-amount-label {
font-size: 11px;
color: #94a3b8;
}
.worker-hall-card-amount {
color: #ea580c;
font-size: 24px;
line-height: 1;
font-weight: 800;
}
.worker-hall-card-deposit-group {
flex-shrink: 0;
}
.worker-hall-deposit-free-badge {
display: inline-flex;
align-items: center;
gap: 3px;
font-size: 11px;
font-weight: 600;
color: #059669;
background: #ecfdf5;
border: 1px solid #a7f3d0;
padding: 2px 7px;
border-radius: 6px;
}
.worker-hall-deposit-badge {
font-size: 11px;
color: #64748b;
background: #f1f5f9;
border: 1px solid #e2e8f0;
padding: 2px 7px;
border-radius: 6px;
font-weight: 500;
}
.worker-hall-card-grab-btn {
font-weight: 600;
}
.worker-hall-card-title {
@@ -1896,11 +2361,9 @@ body {
.worker-hall-game-initial {
font-size: 18px;
font-weight: 700;
color: #64748b;
}
.worker-hall-game-card.active .worker-hall-game-initial {
color: var(--theme-primary);
color: #ffffff;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
letter-spacing: 0.5px;
}
.worker-hall-game-title {