添加调试模块
This commit is contained in:
@@ -29,6 +29,7 @@ export const output = ref("")
|
|||||||
export const status = ref(Status.NotStarted)
|
export const status = ref(Status.NotStarted)
|
||||||
export const loading = ref(false)
|
export const loading = ref(false)
|
||||||
export const size = ref(0)
|
export const size = ref(0)
|
||||||
|
export const debug = ref(false)
|
||||||
|
|
||||||
watch(size, (value: number) => {
|
watch(size, (value: number) => {
|
||||||
cache.fontsize.value = value
|
cache.fontsize.value = value
|
||||||
|
|||||||
25
src/desktop/Debug.vue
Normal file
25
src/desktop/Debug.vue
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<template>
|
||||||
|
<iframe width="100%" height="350" frameborder="0" :src="src"> </iframe>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import qs from "query-string"
|
||||||
|
import { onMounted, ref } from "vue"
|
||||||
|
import { code } from "../composables/code"
|
||||||
|
|
||||||
|
const src = ref("")
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
// const url = "http://localhost:8000"
|
||||||
|
const url = "https://pythontutor.xuyue.cc"
|
||||||
|
const base = url + "/iframe-embed.html"
|
||||||
|
|
||||||
|
const part1 = qs.stringify({
|
||||||
|
code: code.value,
|
||||||
|
codeDivWidth: 300,
|
||||||
|
})
|
||||||
|
const part2 =
|
||||||
|
"&cumulative=false&curInstr=0&heapPrimitives=nevernest&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=true"
|
||||||
|
const query = part1 + part2
|
||||||
|
src.value = base + "#" + query
|
||||||
|
})
|
||||||
|
</script>
|
||||||
@@ -3,7 +3,7 @@ import { Icon } from "@iconify/vue"
|
|||||||
import { useMessage } from "naive-ui"
|
import { useMessage } from "naive-ui"
|
||||||
import SelectLanguage from "../components/SelectLanguage.vue"
|
import SelectLanguage from "../components/SelectLanguage.vue"
|
||||||
import ThemeButton from "../components/ThemeButton.vue"
|
import ThemeButton from "../components/ThemeButton.vue"
|
||||||
import { loading, run, share, size } from "../composables/code"
|
import { code, debug, loading, run, share, size } from "../composables/code"
|
||||||
|
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
|
|
||||||
@@ -11,6 +11,10 @@ function handleShare() {
|
|||||||
share()
|
share()
|
||||||
message.success("分享链接已复制")
|
message.success("分享链接已复制")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleDebug() {
|
||||||
|
debug.value = true
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -21,7 +25,10 @@ function handleShare() {
|
|||||||
<div class="title">徐越的自测猫</div>
|
<div class="title">徐越的自测猫</div>
|
||||||
</n-flex>
|
</n-flex>
|
||||||
<n-flex>
|
<n-flex>
|
||||||
<n-button @click="handleShare">分享</n-button>
|
<n-button quaternary type="error" v-if="code.language === 'python'" @click="handleDebug">
|
||||||
|
调试
|
||||||
|
</n-button>
|
||||||
|
<n-button quaternary @click="handleShare">分享</n-button>
|
||||||
<ThemeButton />
|
<ThemeButton />
|
||||||
<n-input-number
|
<n-input-number
|
||||||
v-model:value="size"
|
v-model:value="size"
|
||||||
|
|||||||
@@ -19,12 +19,22 @@
|
|||||||
>
|
>
|
||||||
<Query />
|
<Query />
|
||||||
</n-modal>
|
</n-modal>
|
||||||
|
<n-modal
|
||||||
|
v-model:show="debug"
|
||||||
|
preset="card"
|
||||||
|
style="width: 700px"
|
||||||
|
:mask-closable="false"
|
||||||
|
title="可视化调试(测试版)"
|
||||||
|
>
|
||||||
|
<Debug />
|
||||||
|
</n-modal>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useMagicKeys, whenever } from "@vueuse/core"
|
import { useMagicKeys, whenever } from "@vueuse/core"
|
||||||
import { ref } from "vue"
|
import { ref } from "vue"
|
||||||
import { run } from "../composables/code"
|
import { debug, run } from "../composables/code"
|
||||||
import Content from "./Content.vue"
|
import Content from "./Content.vue"
|
||||||
|
import Debug from "./Debug.vue"
|
||||||
import File from "./File.vue"
|
import File from "./File.vue"
|
||||||
import Header from "./Header.vue"
|
import Header from "./Header.vue"
|
||||||
import Query from "./Query.vue"
|
import Query from "./Query.vue"
|
||||||
|
|||||||
Reference in New Issue
Block a user