From ae621b7dd2118f529bc000a9148b65f1216a1ed1 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Mon, 3 Apr 2023 20:52:38 +0800 Subject: [PATCH] fix. --- src/oj/problem/components/ProblemInfo.vue | 2 +- src/oj/problem/components/Submit.vue | 15 ++++++- src/oj/problem/detail.vue | 4 +- src/oj/problem/list.vue | 48 +++++++++++++---------- src/shared/layout/default.vue | 2 +- 5 files changed, 45 insertions(+), 26 deletions(-) diff --git a/src/oj/problem/components/ProblemInfo.vue b/src/oj/problem/components/ProblemInfo.vue index 441041c..aac8b1f 100644 --- a/src/oj/problem/components/ProblemInfo.vue +++ b/src/oj/problem/components/ProblemInfo.vue @@ -71,7 +71,7 @@ const options = { -
+
diff --git a/src/oj/problem/components/Submit.vue b/src/oj/problem/components/Submit.vue index 4046051..3e95dda 100644 --- a/src/oj/problem/components/Submit.vue +++ b/src/oj/problem/components/Submit.vue @@ -8,10 +8,12 @@ import { Problem, Submission, SubmitCodePayload } from "utils/types" import { getSubmission, submitCode } from "oj/api" import SubmissionResultTag from "~/shared/SubmissionResultTag.vue" import type { DataTableColumn } from "naive-ui" +import { useUserStore } from "~/shared/store/user" + +const userStore = useUserStore() +const route = useRoute() const problem = inject>("problem") - -const route = useRoute() const contestID = route.params.contestID ?? "" const submissionId = ref("") @@ -60,6 +62,9 @@ const submitting = computed( ) const submitDisabled = computed(() => { + if (!userStore.isAuthed) { + return true + } const value = code.value if ( value.trim() === "" || @@ -81,6 +86,9 @@ const submitDisabled = computed(() => { }) const submitLabel = computed(() => { + if (!userStore.isAuthed) { + return "请先登录" + } if (submitting.value) { return "正在提交" } @@ -154,6 +162,9 @@ const columns: DataTableColumn[] = [ ] async function submit() { + if (!userStore.isAuthed) { + return + } const data: SubmitCodePayload = { problem_id: problem!.value.id, language: code.language, diff --git a/src/oj/problem/detail.vue b/src/oj/problem/detail.vue index 20ff63c..bdfa5b7 100644 --- a/src/oj/problem/detail.vue +++ b/src/oj/problem/detail.vue @@ -41,7 +41,7 @@ provide("problem", readonly(problem)) - + @@ -50,7 +50,7 @@ provide("problem", readonly(problem)) - + diff --git a/src/oj/problem/list.vue b/src/oj/problem/list.vue index 825648d..6e24c9a 100644 --- a/src/oj/problem/list.vue +++ b/src/oj/problem/list.vue @@ -2,7 +2,7 @@ import { useUserStore } from "~/shared/store/user" import { filterEmptyValue, getTagColor } from "utils/functions" import { ProblemFiltered } from "utils/types" -import { isDesktop } from "~/shared/composables/breakpoints" +import { isMobile } from "~/shared/composables/breakpoints" import { getProblemList, getRandomProblemID } from "oj/api" import Pagination from "~/shared/Pagination.vue" import { DataTableColumn, NSpace, NTag } from "naive-ui" @@ -169,25 +169,33 @@ function rowProps(row: ProblemFiltered) {