master
lion 1 month ago
parent 80c385eab6
commit d11f282e4a

@ -20,6 +20,11 @@ type ScheduleCountBlock = {
ended: number
}
type ActivityScheduleCountsBlock = ScheduleCountBlock & {
/** 至少有一场已发布(上架且审核通过)活动的去重场馆数 */
published_venues_count: number
}
type TicketGrabScheduleCountBlock = ScheduleCountBlock & {
verify_rate_pct: number | null
verified_people: number
@ -40,13 +45,15 @@ const stats = ref({
venues_count: 0,
ticket_grab_sessions: 0,
user_count: 0,
reservation_order_count: 0,
},
activity_schedule_counts: {
total: 0,
not_started: 0,
ongoing: 0,
ended: 0,
} as ScheduleCountBlock,
published_venues_count: 0,
} as ActivityScheduleCountsBlock,
ticket_grab_schedule_counts: {
total: 0,
not_started: 0,
@ -343,6 +350,10 @@ onMounted(async () => {
<div class="dash-stat-cell__value">{{ stats.summary.venues_count ?? 0 }}</div>
<div class="dash-stat-cell__label">现有场馆</div>
</div>
<div class="dash-stat-cell dash-stat-cell--mint">
<div class="dash-stat-cell__value">{{ stats.summary.reservation_order_count ?? 0 }}</div>
<div class="dash-stat-cell__label">总预约次数</div>
</div>
<div class="dash-stat-cell dash-stat-cell--sky">
<div class="dash-stat-cell__value">{{ stats.summary.user_count }}</div>
<div class="dash-stat-cell__label">用户数</div>
@ -417,6 +428,10 @@ onMounted(async () => {
<div class="dash-stat-cell__value">{{ stats.activity_schedule_counts.ended }}</div>
<div class="dash-stat-cell__label">已结束</div>
</div>
<div class="dash-stat-cell dash-stat-cell--indigo">
<div class="dash-stat-cell__value">{{ stats.activity_schedule_counts.published_venues_count ?? 0 }}</div>
<div class="dash-stat-cell__label">已发布活动场馆</div>
</div>
</div>
</div>
</article>
@ -880,7 +895,13 @@ onMounted(async () => {
@media (min-width: 640px) {
.dash-stat-grid.dash-stat-grid--schedule-act {
grid-template-columns: repeat(4, minmax(0, 1fr));
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (min-width: 1000px) {
.dash-stat-grid.dash-stat-grid--schedule-act {
grid-template-columns: repeat(5, minmax(0, 1fr));
}
}
@ -1036,6 +1057,12 @@ onMounted(async () => {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 720px) {
.dash-stat-grid.dash-stat-grid--core {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
.dash-stat-cell {
border-radius: 10px;
padding: 12px 10px 14px;
@ -1100,6 +1127,13 @@ onMounted(async () => {
color: #00b42a;
}
.dash-stat-cell--indigo {
background: linear-gradient(180deg, #f0f4ff 0%, #fafcff 100%);
}
.dash-stat-cell--indigo .dash-stat-cell__value {
color: #3c7eef;
}
.dash-todo-sheet {
--dash-todo-row-h: 44px;
flex: 1;

Loading…
Cancel
Save