diff --git a/src/admin/api.ts b/src/admin/api.ts index 9cec296..b0f6614 100644 --- a/src/admin/api.ts +++ b/src/admin/api.ts @@ -473,3 +473,7 @@ export function removeUserFromProblemSet(problemSetId: number, userId: number) { export function getStuckProblems() { return http.get("admin/problem/stuck") } + +export function getTopACTrend() { + return http.get("admin/problem/top_ac_trend") +} diff --git a/src/admin/problem/TopACTrend.vue b/src/admin/problem/TopACTrend.vue new file mode 100644 index 0000000..db863a5 --- /dev/null +++ b/src/admin/problem/TopACTrend.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/admin/problem/list.vue b/src/admin/problem/list.vue index 433802b..3668b4d 100644 --- a/src/admin/problem/list.vue +++ b/src/admin/problem/list.vue @@ -146,6 +146,12 @@ watch(() => [query.page, query.limit, query.author], listProblems) > 卡点分析 + + 年度趋势 + diff --git a/src/routes.ts b/src/routes.ts index 59f3ca9..f2fc182 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -282,6 +282,12 @@ export const admins: RouteRecordRaw = { component: () => import("admin/problem/Stuck.vue"), meta: { requiresSuperAdmin: true }, }, + { + path: "problem/top_ac_trend", + name: "admin top ac trend", + component: () => import("admin/problem/TopACTrend.vue"), + meta: { requiresSuperAdmin: true }, + }, // 题单管理路由 { path: "problemset/list",