diff --git a/io.sc.platform.core.frontend/src/platform/components/code-mirror/WCodeMirror.vue b/io.sc.platform.core.frontend/src/platform/components/code-mirror/WCodeMirror.vue index 8f578bc2..fe489abd 100644 --- a/io.sc.platform.core.frontend/src/platform/components/code-mirror/WCodeMirror.vue +++ b/io.sc.platform.core.frontend/src/platform/components/code-mirror/WCodeMirror.vue @@ -254,6 +254,9 @@ onMounted(() => { if (!props.lineBreak) { content = content?.replace(/[\r\n]/g, ''); } + if (content !== modelValue.value) { + fieldMethodsClass.updateValue(content); + } //updateModelValue(content); }), ], @@ -270,7 +273,6 @@ onMounted(() => { content = content.replace(/[\r\n]/g, ''); } editorView.dispatch({ changes: { from: 0, to: editorView.state.doc.length, insert: content } }); - fieldMethodsClass.updateValue(content); } }, ); @@ -288,8 +290,8 @@ const focus = () => { const blur = () => { isFocus = false; let content = editorView.state.doc.toString(); - if (Tools.isUndefinedOrNull(content)) { - modelValue.value = ''; + if (Tools.isUndefinedOrNull(content) || content === modelValue.value) { + return; } const reg = /\$\{(.+?)\}\.\$\{(.+?)\}/g; while (reg.test(content)) { diff --git a/io.sc.platform.core.frontend/src/platform/components/form/WForm.vue b/io.sc.platform.core.frontend/src/platform/components/form/WForm.vue index d1c608aa..92a7bd90 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/WForm.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/WForm.vue @@ -73,6 +73,10 @@ const props = defineProps({ }, }); +const emit = defineEmits<{ + (e: 'updateValue', args: object): void; +}>(); + const localFlag = ref(false); const formRef = ref(); const formStatus = ref(PageStatusEnum.新增); @@ -100,6 +104,8 @@ const defaultValueHandler = (field) => { field.multiple ) { return []; + } else if (field.type === 'w-code-mirror') { + return ''; } return undefined; }; @@ -177,6 +183,12 @@ const updateModelValue = (name, value) => { formFields[name].error = false; formFields[name].errorMessage = undefined; } + emit('updateValue', { + form: instance, + value: toRaw(formData), + fieldName: name, + fieldValue: value, + }); }; const setComponentRef = (el, fieldName) => {