From 88aa17550b228f53f4e21f95539f8a86f78dffc7 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 18 Mar 2021 11:39:53 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=20nested=20field=20e?= =?UTF-8?q?rror?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AutoDataForm/components/NestedField.vue | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/components/AutoDataForm/components/NestedField.vue b/src/components/AutoDataForm/components/NestedField.vue index bf79223e5..b86227e2a 100644 --- a/src/components/AutoDataForm/components/NestedField.vue +++ b/src/components/AutoDataForm/components/NestedField.vue @@ -43,12 +43,16 @@ export default { iFields() { const fields = this.fields if (this.errors && typeof this.errors === 'object') { - for (const [name, error] of Object.entries(this.errors)) { + // eslint-disable-next-line prefer-const + for (let [name, error] of Object.entries(this.errors)) { const field = fields.find((v) => v.prop === name) if (!field) { continue } this.$log.debug(`${name}: ${error}`) + if (typeof error === 'object' && !Array.isArray(error)) { + error = this.objectToString(error) + } field.attrs.error = error.toString() } } @@ -57,15 +61,16 @@ export default { } }, methods: { - setFieldError(name, error) { - const field = this.totalFields.find((v) => v.prop === name) - if (!field) { - return + objectToString(obj) { + let data = '' + // eslint-disable-next-line prefer-const + for (let [key, value] of Object.entries(obj)) { + if (typeof value === 'object') { + value = this.objectToString(value) + } + data += ` ${key}: ${value} ` } - if (field.attrs.error === error) { - error += '.' - } - field.attrs.error = error + return data } } }