diff --git a/src/admin/api.ts b/src/admin/api.ts
index e080886..019f7bb 100644
--- a/src/admin/api.ts
+++ b/src/admin/api.ts
@@ -1,29 +1,6 @@
import http from "utils/http"
-import { DIFFICULTY } from "~/utils/constants"
-import { getACRate } from "~/utils/functions"
import { Problem } from "~/utils/types"
-function filterResult(result: Problem) {
- const newResult = {
- id: result.id,
- _id: result._id,
- title: result.title,
- difficulty: DIFFICULTY[result.difficulty],
- tags: result.tags,
- submission: result.submission_number,
- rate: getACRate(result.accepted_number, result.submission_number),
- status: "",
- }
- if (result.my_status === null || result.my_status === undefined) {
- newResult.status = "not_test"
- } else if (result.my_status === 0) {
- newResult.status = "passed"
- } else {
- newResult.status = "failed"
- }
- return newResult
-}
-
export async function getProblemList(
offset = 0,
limit = 10,
@@ -41,7 +18,14 @@ export async function getProblemList(
})
const res = await http.get("admin/problem", { params })
return {
- results: res.data.results.map(filterResult),
+ results: res.data.results.map((result: Problem) => ({
+ id: result.id,
+ _id: result._id,
+ title: result.title,
+ username: result.created_by.username,
+ create_time: result.create_time,
+ visible: result.visible,
+ })),
total: res.data.total,
}
}
diff --git a/src/admin/problem/list.vue b/src/admin/problem/list.vue
index 2f52ccb..f7610c4 100644
--- a/src/admin/problem/list.vue
+++ b/src/admin/problem/list.vue
@@ -1,8 +1,9 @@
-
+
+
+
+
+
+
{
render: (row) =>
h(
NButton,
- { size: "small", onClick: () => rejudge(row.id) },
+ {
+ size: "small",
+ tertiary: true,
+ onClick: () => rejudge(row.id),
+ },
() => "重新判题"
),
})
diff --git a/src/utils/types.ts b/src/utils/types.ts
index 8e6e6a7..64c58cf 100644
--- a/src/utils/types.ts
+++ b/src/utils/types.ts
@@ -102,6 +102,7 @@ export interface Problem {
share_submission: boolean
contest: null
my_status: number
+ visible: boolean
}
export interface ProblemFiltered {
@@ -115,6 +116,15 @@ export interface ProblemFiltered {
status: "not_test" | "passed" | "failed"
}
+export interface AdminProblemFiltered {
+ _id: string
+ id: number
+ title: string
+ visible: boolean
+ username: string
+ create_time: string
+}
+
export interface Code {
language: LANGUAGE
value: string