master
lion 2 months ago
parent 80c385eab6
commit d11f282e4a

@ -20,6 +20,11 @@ type ScheduleCountBlock = {
ended: number ended: number
} }
type ActivityScheduleCountsBlock = ScheduleCountBlock & {
/** 至少有一场已发布(上架且审核通过)活动的去重场馆数 */
published_venues_count: number
}
type TicketGrabScheduleCountBlock = ScheduleCountBlock & { type TicketGrabScheduleCountBlock = ScheduleCountBlock & {
verify_rate_pct: number | null verify_rate_pct: number | null
verified_people: number verified_people: number
@ -40,13 +45,15 @@ const stats = ref({
venues_count: 0, venues_count: 0,
ticket_grab_sessions: 0, ticket_grab_sessions: 0,
user_count: 0, user_count: 0,
reservation_order_count: 0,
}, },
activity_schedule_counts: { activity_schedule_counts: {
total: 0, total: 0,
not_started: 0, not_started: 0,
ongoing: 0, ongoing: 0,
ended: 0, ended: 0,
} as ScheduleCountBlock, published_venues_count: 0,
} as ActivityScheduleCountsBlock,
ticket_grab_schedule_counts: { ticket_grab_schedule_counts: {
total: 0, total: 0,
not_started: 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__value">{{ stats.summary.venues_count ?? 0 }}</div>
<div class="dash-stat-cell__label">现有场馆</div> <div class="dash-stat-cell__label">现有场馆</div>
</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 dash-stat-cell--sky">
<div class="dash-stat-cell__value">{{ stats.summary.user_count }}</div> <div class="dash-stat-cell__value">{{ stats.summary.user_count }}</div>
<div class="dash-stat-cell__label">用户数</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__value">{{ stats.activity_schedule_counts.ended }}</div>
<div class="dash-stat-cell__label">已结束</div> <div class="dash-stat-cell__label">已结束</div>
</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>
</div> </div>
</article> </article>
@ -880,7 +895,13 @@ onMounted(async () => {
@media (min-width: 640px) { @media (min-width: 640px) {
.dash-stat-grid.dash-stat-grid--schedule-act { .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)); 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 { .dash-stat-cell {
border-radius: 10px; border-radius: 10px;
padding: 12px 10px 14px; padding: 12px 10px 14px;
@ -1100,6 +1127,13 @@ onMounted(async () => {
color: #00b42a; 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-sheet {
--dash-todo-row-h: 44px; --dash-todo-row-h: 44px;
flex: 1; flex: 1;

Loading…
Cancel
Save