From 10372524ba161d92fc873f25b21ac9ec85aaca96 Mon Sep 17 00:00:00 2001 From: Zhou Weidong <502333560@qq.com> Date: Fri, 23 Oct 2026 14:58:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E8=BF=90=E8=90=A5=E5=A4=A7?= =?UTF-8?q?=E7=9B=98=E6=8E=A5=E5=85=A5=20ECharts=20=E5=9B=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/admin/dashboard.ts | 30 + src/views/dashboard/BusinessDashboardView.vue | 605 ++++++++++++++---- 2 files changed, 506 insertions(+), 129 deletions(-) diff --git a/src/api/admin/dashboard.ts b/src/api/admin/dashboard.ts index 7d7c075..5c3cce6 100644 --- a/src/api/admin/dashboard.ts +++ b/src/api/admin/dashboard.ts @@ -27,6 +27,28 @@ export interface TranscodeBoard { notes: string[] } +/** 近 7 天每日趋势(给折线图用)。 */ +export interface DashboardTrend { + dates: string[] + newUsers: number[] + playEvents: number[] + newTranscodes: number[] + transcodeSuccess: number[] +} + +/** 分布项(给饼图用)。 */ +export interface DistributionItem { + label: string + value: number +} + +export interface DashboardDistribution { + dramaStatus: Record + transcodeStatus: Record + episodeMedia: Record + pendingModeration: DistributionItem[] +} + export const getDashboardOverviewApi = () => { return request.get({ url: '/admin/dashboard/overview' }) } @@ -34,3 +56,11 @@ export const getDashboardOverviewApi = () => { export const getTranscodeBoardApi = () => { return request.get({ url: '/admin/dashboard/transcode' }) } + +export const getDashboardTrendApi = () => { + return request.get({ url: '/admin/dashboard/trend' }) +} + +export const getDashboardDistributionApi = () => { + return request.get({ url: '/admin/dashboard/distribution' }) +} diff --git a/src/views/dashboard/BusinessDashboardView.vue b/src/views/dashboard/BusinessDashboardView.vue index fc26be9..caa645d 100644 --- a/src/views/dashboard/BusinessDashboardView.vue +++ b/src/views/dashboard/BusinessDashboardView.vue @@ -1,145 +1,385 @@ - + +