From f098c54afb8a58c586b4dd16b826c0842f1556f2 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Wed, 1 Feb 2023 23:53:27 +0800 Subject: [PATCH] batch update. --- src/oj/api.ts | 18 ++++++++---- src/oj/contest/list.vue | 2 +- src/oj/contest/pages/problems.vue | 4 +-- src/oj/contest/pages/submissions.vue | 5 ---- src/oj/problem/components/Editor.vue | 8 +++-- src/oj/problem/components/ProblemContent.vue | 31 ++++++++++++-------- src/oj/problem/detail.vue | 7 +---- src/oj/store/contest.ts | 4 +-- src/oj/submission/list.vue | 8 ++--- src/routes.ts | 23 +++++++-------- 10 files changed, 55 insertions(+), 55 deletions(-) delete mode 100644 src/oj/contest/pages/submissions.vue diff --git a/src/oj/api.ts b/src/oj/api.ts index c459318..2cf8580 100644 --- a/src/oj/api.ts +++ b/src/oj/api.ts @@ -9,13 +9,14 @@ import { } from "utils/types" function filterResult(result: Problem) { - const newResult: any = { + const newResult = { _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" @@ -59,8 +60,14 @@ export function getRandomProblemID() { return http.get("pickone") } -export function getProblem(id: string) { - return http.get("problem", { params: { problem_id: id } }) +export function getProblem(problemID: string, contestID: string) { + const endpoint = !!contestID ? "contest/problem" : "problem" + return http.get(endpoint, { + params: { + problem_id: problemID, + contest_id: contestID, + }, + }) } export function getSubmission(id: string) { @@ -78,7 +85,8 @@ export function submitCode(data: SubmitCodePayload) { } export function getSubmissions(params: SubmissionListPayload) { - return http.get("submissions", { params }) + const endpoint = !!params.contest_id ? "contest_submissions" : "submissions" + return http.get(endpoint, { params }) } export function adminRejudge(id: string) { @@ -117,7 +125,7 @@ export function checkContestPassword(contestID: string, password: string) { }) } -export async function getContestProblem(contestID: string) { +export async function getContestProblems(contestID: string) { const res = await http.get("contest/problem", { params: { contest_id: contestID }, }) diff --git a/src/oj/contest/list.vue b/src/oj/contest/list.vue index e8b869a..0d8cfcd 100644 --- a/src/oj/contest/list.vue +++ b/src/oj/contest/list.vue @@ -99,7 +99,7 @@ watch( } ) watch( - () => route.path === "/contest" && route.query, + () => route.name === "contests" && route.query, (newVal) => { if (newVal) listContests() } diff --git a/src/oj/contest/pages/problems.vue b/src/oj/contest/pages/problems.vue index d3cd830..7ee0b70 100644 --- a/src/oj/contest/pages/problems.vue +++ b/src/oj/contest/pages/problems.vue @@ -4,9 +4,7 @@ import { ProblemFiltered } from "utils/types" import ProblemStatus from "~/oj/problem/components/ProblemStatus.vue" import { useContestStore } from "~/oj/store/contest" -const props = defineProps<{ - contestID: string -}>() +const props = defineProps<{ contestID: string }>() const router = useRouter() const contestStore = useContestStore() diff --git a/src/oj/contest/pages/submissions.vue b/src/oj/contest/pages/submissions.vue deleted file mode 100644 index b0b0c66..0000000 --- a/src/oj/contest/pages/submissions.vue +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/oj/problem/components/Editor.vue b/src/oj/problem/components/Editor.vue index dab3ffb..2525851 100644 --- a/src/oj/problem/components/Editor.vue +++ b/src/oj/problem/components/Editor.vue @@ -2,17 +2,17 @@ import { SOURCES } from "utils/constants" import { Problem } from "utils/types" import Monaco from "~/shared/Monaco.vue" +import Submit from "./Submit.vue" import { code } from "oj/composables/code" import { isDesktop, isMobile } from "~/shared/composables/breakpoints" import { DropdownOption } from "naive-ui" -const Submit = defineAsyncComponent(() => import("./Submit.vue")) - interface Props { problem: Problem } const props = defineProps() +const route = useRoute() const router = useRouter() code.language = props.problem.languages[0] || "C" @@ -27,8 +27,10 @@ function reset() { function change(value: string) { code.value = value } + function goSubmissions() { - router.push(`/submission?problem=${props.problem._id}`) + const name = !!route.params.contestID ? "contest submissions" : "submissions" + router.push({ name, query: { problem: props.problem._id } }) } const options: DropdownOption[] = props.problem.languages.map((it) => ({ label: () => [ diff --git a/src/oj/problem/components/ProblemContent.vue b/src/oj/problem/components/ProblemContent.vue index f5a5f9c..f303667 100644 --- a/src/oj/problem/components/ProblemContent.vue +++ b/src/oj/problem/components/ProblemContent.vue @@ -1,5 +1,5 @@