refactor: move editor components to components/editor/
This commit is contained in:
@@ -83,9 +83,9 @@ import * as babelParser from "prettier/parser-babel"
|
|||||||
import * as estreeParser from "prettier/plugins/estree"
|
import * as estreeParser from "prettier/plugins/estree"
|
||||||
import Editor from "./Editor.vue"
|
import Editor from "./Editor.vue"
|
||||||
import Toolbar from "./Toolbar.vue"
|
import Toolbar from "./Toolbar.vue"
|
||||||
import { html, css, js, tab, size, reset } from "../store/editors"
|
import { html, css, js, tab, size, reset } from "../../store/editors"
|
||||||
import { taskId } from "../store/task"
|
import { taskId } from "../../store/task"
|
||||||
import { Submission } from "../api"
|
import { Submission } from "../../api"
|
||||||
import { NCode, useDialog, useMessage } from "naive-ui"
|
import { NCode, useDialog, useMessage } from "naive-ui"
|
||||||
import { h, ref } from "vue"
|
import { h, ref } from "vue"
|
||||||
|
|
||||||
@@ -36,8 +36,8 @@
|
|||||||
import { watchDebounced } from "@vueuse/core"
|
import { watchDebounced } from "@vueuse/core"
|
||||||
import { computed, onMounted, useTemplateRef } from "vue"
|
import { computed, onMounted, useTemplateRef } from "vue"
|
||||||
import { useRouter } from "vue-router"
|
import { useRouter } from "vue-router"
|
||||||
import { Submission } from "../api"
|
import { Submission } from "../../api"
|
||||||
import { submission } from "../store/submission"
|
import { submission } from "../../store/submission"
|
||||||
import { useMessage } from "naive-ui"
|
import { useMessage } from "naive-ui"
|
||||||
import copy from "copy-text-to-clipboard"
|
import copy from "copy-text-to-clipboard"
|
||||||
|
|
||||||
@@ -29,15 +29,15 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, h } from "vue"
|
import { computed, h } from "vue"
|
||||||
import { Icon } from "@iconify/vue"
|
import { Icon } from "@iconify/vue"
|
||||||
import { authed, roleNormal, roleSuper, user } from "../store/user"
|
import { authed, roleNormal, roleSuper, user } from "../../store/user"
|
||||||
import { loginModal } from "../store/modal"
|
import { loginModal } from "../../store/modal"
|
||||||
import { show, panelSize } from "../store/panel"
|
import { show, panelSize } from "../../store/panel"
|
||||||
import { step } from "../store/tutorial"
|
import { step } from "../../store/tutorial"
|
||||||
import { taskId } from "../store/task"
|
import { taskId } from "../../store/task"
|
||||||
import { Account } from "../api"
|
import { Account } from "../../api"
|
||||||
import { Role } from "../utils/type"
|
import { Role } from "../../utils/type"
|
||||||
import { router } from "../router"
|
import { router } from "../../router"
|
||||||
import { ADMIN_URL } from "../utils/const"
|
import { ADMIN_URL } from "../../utils/const"
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
submitLoading: boolean
|
submitLoading: boolean
|
||||||
@@ -78,11 +78,12 @@ import { Icon } from "@iconify/vue"
|
|||||||
import { marked } from "marked"
|
import { marked } from "marked"
|
||||||
import PromptPanel from "../components/PromptPanel.vue"
|
import PromptPanel from "../components/PromptPanel.vue"
|
||||||
import ExternalAIPanel from "../components/ExternalAIPanel.vue"
|
import ExternalAIPanel from "../components/ExternalAIPanel.vue"
|
||||||
import Preview from "../components/Preview.vue"
|
import Preview from "../components/editor/Preview.vue"
|
||||||
import TaskStatsModal from "../components/TaskStatsModal.vue"
|
import TaskStatsModal from "../components/TaskStatsModal.vue"
|
||||||
import { Challenge, Submission } from "../api"
|
import { Challenge, Submission } from "../api"
|
||||||
import { html, css, js } from "../store/editors"
|
import { html, css, js } from "../store/editors"
|
||||||
import { taskId } from "../store/task"
|
import { taskId, taskTab, challengeDisplay } from "../store/task"
|
||||||
|
import { TASK_TYPE } from "../utils/const"
|
||||||
import { authed, roleAdmin, roleSuper } from "../store/user"
|
import { authed, roleAdmin, roleSuper } from "../store/user"
|
||||||
import {
|
import {
|
||||||
connectPrompt,
|
connectPrompt,
|
||||||
@@ -106,6 +107,8 @@ watch(streaming, (val) => {
|
|||||||
|
|
||||||
async function loadChallenge() {
|
async function loadChallenge() {
|
||||||
const display = Number(route.params.display)
|
const display = Number(route.params.display)
|
||||||
|
taskTab.value = TASK_TYPE.Challenge
|
||||||
|
challengeDisplay.value = display
|
||||||
const data = await Challenge.get(display)
|
const data = await Challenge.get(display)
|
||||||
taskId.value = data.task_ptr
|
taskId.value = data.task_ptr
|
||||||
challengeContent.value = await marked.parse(data.content, { async: true })
|
challengeContent.value = await marked.parse(data.content, { async: true })
|
||||||
|
|||||||
@@ -22,8 +22,8 @@
|
|||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useMagicKeys, whenever } from "@vueuse/core"
|
import { useMagicKeys, whenever } from "@vueuse/core"
|
||||||
import Editors from "../components/Editors.vue"
|
import Editors from "../components/editor/Editors.vue"
|
||||||
import Preview from "../components/Preview.vue"
|
import Preview from "../components/editor/Preview.vue"
|
||||||
import Task from "../components/Task.vue"
|
import Task from "../components/Task.vue"
|
||||||
import { show, panelSize } from "../store/panel"
|
import { show, panelSize } from "../store/panel"
|
||||||
import { html, css, js } from "../store/editors"
|
import { html, css, js } from "../store/editors"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
style="height: 100%; padding-right: 10px; overflow: hidden"
|
style="height: 100%; padding-right: 10px; overflow: hidden"
|
||||||
>
|
>
|
||||||
<n-flex justify="space-between" style="flex-shrink: 0">
|
<n-flex justify="space-between" style="flex-shrink: 0">
|
||||||
<n-button secondary @click="() => goHome($router, taskTab, step)">
|
<n-button secondary @click="() => goHome($router, taskTab, taskTab === TASK_TYPE.Challenge ? challengeDisplay : step)">
|
||||||
首页
|
首页
|
||||||
</n-button>
|
</n-button>
|
||||||
<n-flex align="center">
|
<n-flex align="center">
|
||||||
@@ -112,7 +112,7 @@ import { TASK_TYPE } from "../utils/const"
|
|||||||
import { watchDebounced } from "@vueuse/core"
|
import { watchDebounced } from "@vueuse/core"
|
||||||
import { useRouter, useRoute } from "vue-router"
|
import { useRouter, useRoute } from "vue-router"
|
||||||
|
|
||||||
import Preview from "../components/Preview.vue"
|
import Preview from "../components/editor/Preview.vue"
|
||||||
import TaskTitle from "../components/submissions/TaskTitle.vue"
|
import TaskTitle from "../components/submissions/TaskTitle.vue"
|
||||||
import CodeModal from "../components/submissions/CodeModal.vue"
|
import CodeModal from "../components/submissions/CodeModal.vue"
|
||||||
import ChainModal from "../components/submissions/ChainModal.vue"
|
import ChainModal from "../components/submissions/ChainModal.vue"
|
||||||
@@ -120,7 +120,7 @@ import FlagCell from "../components/submissions/FlagCell.vue"
|
|||||||
import ExpandedSubTable from "../components/submissions/ExpandedSubTable.vue"
|
import ExpandedSubTable from "../components/submissions/ExpandedSubTable.vue"
|
||||||
|
|
||||||
import { submission } from "../store/submission"
|
import { submission } from "../store/submission"
|
||||||
import { taskTab } from "../store/task"
|
import { taskTab, challengeDisplay } from "../store/task"
|
||||||
import { step } from "../store/tutorial"
|
import { step } from "../store/tutorial"
|
||||||
import { html as eHtml, css as eCss, js as eJs } from "../store/editors"
|
import { html as eHtml, css as eCss, js as eJs } from "../store/editors"
|
||||||
import { roleAdmin, roleSuper, user } from "../store/user"
|
import { roleAdmin, roleSuper, user } from "../store/user"
|
||||||
|
|||||||
Reference in New Issue
Block a user