From b6ae4290527051e53ce6c87c7c58fd9cd7872e8f Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Mon, 3 Apr 2023 13:31:00 +0800 Subject: [PATCH] add website config. --- src/admin/api.ts | 26 ++++ src/admin/contest/detail.vue | 1 - src/admin/problem/list.vue | 6 +- src/admin/setting/config.vue | 232 ++++++++++++++++++++++++++++++++++- src/utils/functions.ts | 1 + src/utils/types.ts | 25 ++++ 6 files changed, 286 insertions(+), 5 deletions(-) diff --git a/src/admin/api.ts b/src/admin/api.ts index b2ba496..06b78a4 100644 --- a/src/admin/api.ts +++ b/src/admin/api.ts @@ -4,8 +4,10 @@ import { BlankContest, BlankProblem, Contest, + Server, TestcaseUploadedReturns, User, + WebsiteConfig, } from "~/utils/types" export function getBaseInfo() { @@ -149,3 +151,27 @@ export function addProblemForContest( display_id: displayID, }) } + +export function getWebsite() { + return http.get("admin/website") +} + +export function editWebsite(data: WebsiteConfig) { + return http.post("admin/website", data) +} + +export function listInvalidTestcases() { + return http.get("admin/prune_test_case") +} + +export function pruneInvalidTestcases(id?: string) { + return http.delete("admin/prune_test_case", { params: { id } }) +} + +export function getJudgeServer() { + return http.get<{ token: string; servers: Server[] }>("admin/judge_server") +} + +export function deleteJudgeServer(hostname: string) { + return http.delete("admin/judge_server", { params: { hostname } }) +} diff --git a/src/admin/contest/detail.vue b/src/admin/contest/detail.vue index 73148cf..1e5f7d3 100644 --- a/src/admin/contest/detail.vue +++ b/src/admin/contest/detail.vue @@ -1,7 +1,6 @@ + - + diff --git a/src/utils/functions.ts b/src/utils/functions.ts index 39b13ba..f42b66e 100644 --- a/src/utils/functions.ts +++ b/src/utils/functions.ts @@ -37,6 +37,7 @@ export function getTagColor( }[tag] } +// 2023-04-03T02:43:28.673156Z export function parseTime(utc: Date | string, format = "YYYY年M月D日") { const time = useDateFormat(utc, format, { locales: "zh-CN" }) return time.value diff --git a/src/utils/types.ts b/src/utils/types.ts index 864190d..e66399b 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -312,3 +312,28 @@ export interface ContestRank { submission_info: { [key: string]: SubmissionInfo } contest: number } + +export interface WebsiteConfig { + website_base_url: string + website_name: string + website_name_shortcut: string + website_footer: string + allow_register: boolean + submission_list_show_all: boolean +} + +export interface Server { + id: number + status: "abnormal" | "normal" + hostname: string + ip: string + judger_version: string + cpu_core: number + memory_usage: number + cpu_usage: number + last_heartbeat: Date + create_time: Date + task_number: number + service_url: string + is_disabled: boolean +}