From 1c3565035c854bf6259077840a5557b9bae8b70d Mon Sep 17 00:00:00 2001 From: roymondchen Date: Fri, 23 Sep 2022 19:54:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(editor):=20code=E7=BB=84=E4=BB=B6=E6=96=B0?= =?UTF-8?q?=E5=A2=9Eoptions=20props?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/src/fields/Code.vue | 2 + packages/editor/src/fields/CodeLink.vue | 30 ++- packages/editor/src/index.ts | 2 +- packages/editor/src/layouts/CodeEditor.vue | 258 ++++++++++----------- 4 files changed, 144 insertions(+), 148 deletions(-) diff --git a/packages/editor/src/fields/Code.vue b/packages/editor/src/fields/Code.vue index a7f9ea4f..107661da 100644 --- a/packages/editor/src/fields/Code.vue +++ b/packages/editor/src/fields/Code.vue @@ -3,6 +3,7 @@ :style="`height: ${height}`" :init-values="model[name]" :language="language" + :options="config.options" @save="save" > @@ -17,6 +18,7 @@ const props = defineProps<{ name: string; config: { language?: string; + options?: Object; }; prop: string; }>(); diff --git a/packages/editor/src/fields/CodeLink.vue b/packages/editor/src/fields/CodeLink.vue index c7865307..42e0a703 100644 --- a/packages/editor/src/fields/CodeLink.vue +++ b/packages/editor/src/fields/CodeLink.vue @@ -12,6 +12,7 @@ const props = defineProps<{ name: string; text?: string; formTitle?: string; + codeOptions?: Object; }; model: any; name: string; @@ -20,17 +21,24 @@ const props = defineProps<{ const emit = defineEmits(['change']); -const formConfig = computed(() => ({ - ...props.config, - text: '', - type: 'link', - form: [ - { - name: props.name, - type: 'vs-code', - }, - ], -})); +const formConfig = computed(() => { + const { codeOptions, ...config } = props.config; + return { + ...config, + text: '', + type: 'link', + form: [ + { + name: props.name, + type: 'vs-code', + options: { + tabSize: 2, + ...(codeOptions || {}), + }, + }, + ], + }; +}); const modelValue = reactive<{ form: Record }>({ form: { diff --git a/packages/editor/src/index.ts b/packages/editor/src/index.ts index 9c8fd2d7..5cc64b39 100644 --- a/packages/editor/src/index.ts +++ b/packages/editor/src/index.ts @@ -63,7 +63,7 @@ export default { app.component('m-fields-ui-select', uiSelect); app.component('m-fields-code-link', CodeLink); app.component('m-fields-vs-code', Code); - app.component(CodeEditor.name, CodeEditor); + app.component('magic-code-editor', CodeEditor); app.component('m-fields-code-select', CodeSelect); }, }; diff --git a/packages/editor/src/layouts/CodeEditor.vue b/packages/editor/src/layouts/CodeEditor.vue index 12b36399..2ba25406 100644 --- a/packages/editor/src/layouts/CodeEditor.vue +++ b/packages/editor/src/layouts/CodeEditor.vue @@ -2,12 +2,35 @@
-