diff --git a/packages/nc-gui/components/monaco/MonacoJsonObjectEditor.js b/packages/nc-gui/components/monaco/MonacoJsonObjectEditor.js index f4131a477b..7011a19168 100644 --- a/packages/nc-gui/components/monaco/MonacoJsonObjectEditor.js +++ b/packages/nc-gui/components/monaco/MonacoJsonObjectEditor.js @@ -31,7 +31,7 @@ export default { default: true } }, - + emits: ['validate'], model: { event: "change" }, @@ -109,7 +109,9 @@ export default { if (!this.deepcompare(this.value, JSON.parse(value))) { this.$emit("change", JSON.parse(value), event); } + this.$emit("validate", true); } catch (e) { + this.$emit("validate", false, e); // console.log('monaco', e) } }); diff --git a/packages/nc-gui/components/project/spreadsheet/components/editableCell/jsonEditableCell.vue b/packages/nc-gui/components/project/spreadsheet/components/editableCell/jsonEditableCell.vue index b641020052..f779ddcd11 100644 --- a/packages/nc-gui/components/project/spreadsheet/components/editableCell/jsonEditableCell.vue +++ b/packages/nc-gui/components/project/spreadsheet/components/editableCell/jsonEditableCell.vue @@ -10,7 +10,7 @@ {{ $t('general.cancel') }} - + {{ $t('general.save') }} @@ -25,13 +25,18 @@ v-model="localState" class="text-left caption" style="width: 300px;min-height:min(600px,80vh);min-width:100%; " + @validate="validate" /> +
+ {{ error }} +
@@ -47,7 +52,9 @@ export default { }, data: () => ({ localState: '', - expand: false + expand: false, + isValid: true, + error: undefined }), computed: { @@ -91,6 +98,10 @@ export default { save() { this.expand = false this.$emit('input', JSON.stringify(this.localState)) + }, + validate(n, e) { + this.isValid = n + this.error = e } } }