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 @@
+
+
+
+ 提交次数前 10 题目 · 历年 AC 率趋势
+
+
+ 暂无数据
+
+
+
+
+
+
+
+
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",