From 532a9991d2715a8c4e4c97ae720d3c90929e1a08 Mon Sep 17 00:00:00 2001 From: xuyue <517252939@qq.com> Date: Thu, 9 Feb 2023 12:23:47 +0800 Subject: [PATCH] split editor. --- src/oj/problem/components/Editor.vue | 89 ++---------------------- src/oj/problem/components/Form.vue | 100 +++++++++++++++++++++++++++ src/oj/problem/detail.vue | 19 +++-- src/shared/Monaco.vue | 2 +- 4 files changed, 121 insertions(+), 89 deletions(-) create mode 100644 src/oj/problem/components/Form.vue diff --git a/src/oj/problem/components/Editor.vue b/src/oj/problem/components/Editor.vue index 2525851..2656c7a 100644 --- a/src/oj/problem/components/Editor.vue +++ b/src/oj/problem/components/Editor.vue @@ -2,115 +2,40 @@ 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" +import { isDesktop } from "~/shared/composables/breakpoints" +import Form from "./Form.vue" interface Props { problem: Problem } const props = defineProps() -const route = useRoute() -const router = useRouter() code.language = props.problem.languages[0] || "C" code.value = props.problem.template[code.language] || SOURCES[code.language] -watch(() => code.language, reset) - -function reset() { - code.value = props.problem.template[code.language] || SOURCES[code.language] -} - function change(value: string) { code.value = value } -function goSubmissions() { - 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: () => [ - h("img", { - src: `/${it}.svg`, - style: { - width: "16px", - height: "16px", - marginRight: "8px", - transform: "translateY(3px)", - }, - }), - it, - ], - value: it, -})) - -const menu: DropdownOption[] = [ - { label: "重置", key: "reset" }, - { label: "提交信息", key: "submissions" }, -] - -function select(key: string) { - switch (key) { - case "reset": - reset() - break - case "submissions": - goSubmissions() - break - } -} +const editorHeight = computed(() => + isDesktop.value ? "calc(100vh - 150px)" : "calc(100vh - 200px)" +) diff --git a/src/oj/problem/detail.vue b/src/oj/problem/detail.vue index 0206e7f..059e184 100644 --- a/src/oj/problem/detail.vue +++ b/src/oj/problem/detail.vue @@ -32,14 +32,21 @@ provide("problem", readonly(problem))