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 @@