feat: code-view组件

This commit is contained in:
wf 2024-06-05 20:13:36 +08:00
parent 6f5172a2ac
commit 1689a497d0
2 changed files with 18 additions and 9 deletions

View File

@ -1,10 +1,9 @@
<template> <template>
<code-mirror <code-mirror
basic
v-model="codeValue" v-model="codeValue"
:extensions="extensions" :extensions="extensions"
:tab-size="config.tabSize"
:basic="config.basic" :basic="config.basic"
:tab-size="config.tabSize"
:dark="config.dark" :dark="config.dark"
:readonly="config.readonly" :readonly="config.readonly"
/> />
@ -26,21 +25,25 @@ interface Props {
// withDefaultsdefineProps // withDefaultsdefineProps
// https://cn.vuejs.org/guide/typescript/composition-api.html#typing-component-props // https://cn.vuejs.org/guide/typescript/composition-api.html#typing-component-props
const props = withDefaults(defineProps<Props>(), { const props = withDefaults(defineProps<Props>(), {
type: "javascript", type: "javascript", //
codeJson: "" codeJson: "" //
}); });
//
// \t
const codeValue = computed(() => JSON.stringify(props.codeJson, null, "\t")); const codeValue = computed(() => JSON.stringify(props.codeJson, null, "\t"));
const defaultConfig = { //
const config = ref({
tabSize: 2, tabSize: 2,
basic: true, basic: true,
dark: true, dark: true,
readonly: true readonly: true
}; });
const config = defaultConfig;
// //
//
//
const extensions = computed(() => { const extensions = computed(() => {
const arr = [oneDark]; const arr = [oneDark];
if (props.type === "javascript") { if (props.type === "javascript") {
@ -59,6 +62,12 @@ const extensions = computed(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
// code // code
:deep(.ͼ1 .cm-scroller) { :deep(.ͼ1 .cm-scroller) {
font-family: source-code-pro, Menlo, Monaco, Consolas, Courier New, monospace; font-family:
source-code-pro,
Menlo,
Monaco,
Consolas,
Courier New,
monospace;
} }
</style> </style>

View File

@ -1,5 +1,5 @@
<template> <template>
<div>动态表单</div> <div class="dc-page">动态表单</div>
</template> </template>
<script setup lang="ts"></script> <script setup lang="ts"></script>