From ee3d997e264479bd73f45d6300d3bc0291188e32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E8=82=96=E7=A3=8A?= <18851179580@163.com> Date: Wed, 22 Oct 2025 17:57:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=BB=E8=BE=91=E5=A4=84?= =?UTF-8?q?=E7=90=861?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/form-input/form-input-base.vue | 27 +++++++------------ .../modules/components-combination.vue | 12 ++------- 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/pages/form-input/components/form-input/form-input-base.vue b/pages/form-input/components/form-input/form-input-base.vue index f08d3e9d..2e3966bf 100644 --- a/pages/form-input/components/form-input/form-input-base.vue +++ b/pages/form-input/components/form-input/form-input-base.vue @@ -874,7 +874,7 @@ export default { const data = JSON.parse(JSON.stringify(this.filteredDiyData)); const filter_data_list = data.filter((item) => ['subform', 'position', 'rich-text', 'upload-attachments', 'upload-img', 'upload-video'].includes(item.key) && item.id === id); if (filter_data_list.length > 0) { - filter_data_list?.forEach((item, index) => { + filter_data_list?.forEach((item) => { let com_data = item.com_data; let message = ''; if (item.key === 'subform') { @@ -888,22 +888,15 @@ export default { message = `${com_data.title}「${com_data.common_config.error_text}」`; } else { // 判断子表单每一行是否有报错提示 - const line_error = com_data.data_list.filter((item) => item.com_data.common_config.is_error === '1') - if (line_error.length > 0) { - const err_list = line_error[0].com_data; - // 如果当前行有错误 - if (err_list && err_list.common_config && err_list.common_config.is_error == '1') { - if (err_list.common_config.error_text == '此项为必填项') { - message = `请填写「${err_list.title}」`; - } else { - message = `请正确填写「${err_list.title}」`; - } - } + const error_data = com_data.data_list.some((item) => item.data_list.some((list_item) => list_item.com_data.common_config.is_error === '1')) + if (error_data) { + // 如果是内部问题,让用户自己检查子表单内的填写 + message = `请检查${com_data.title}内的填写`; } else { message = ''; } } - this.on_item_event({ id: item.id, key: item.key, value: subform_data, is_error: is_error, error_text: message }, 'subform', index); + this.on_item_event({ id: item.id, key: item.key, value: subform_data, is_error: is_error, error_text: message }, 'subform'); } else { // 跳过非必填项 if (com_data.is_required === '1') { @@ -925,12 +918,12 @@ export default { /* * 单个文件更新触发的事件 */ - on_item_event(e, type = '', index = '') { + on_item_event(e, type = '') { // 取出对应id的数据 const data = this.data_list.find((item) => item.id == e.id); // 判断是否为空,为空则不进行处理 if (data) { - const form_value = {}; + let form_value = {}; const com_data = data.com_data; const value = com_data.form_value; const form_name = data.form_name; @@ -973,11 +966,11 @@ export default { form_value[`${ form_name }_other_value`] = com_data?.other_value || ''; } } else if (type == 'subform') { - form_value[`${ form_name }`] = e.value; + form_value = e.value; } else { form_value[`${ form_name }`] = com_data?.form_value || ''; } - this.$emit('onItemEvent', { forminput_id: this.propFormInputId, type: e.is_error == '1' ? 'error' : 'success', message: e.error_text, value: form_value, form_name: data.form_name, subform_index: index, form_title: data.com_data.title }); + this.$emit('onItemEvent', { forminput_id: this.propFormInputId, status: e.is_error == '1' ? 'error' : 'success', message: e.error_text, value: form_value, form_name: data.form_name, form_title: data.com_data.title, key: data.key, type: data.com_data?.type || '' }); } }, /* diff --git a/pages/form-input/components/form-input/modules/components-combination.vue b/pages/form-input/components/form-input/modules/components-combination.vue index 3b7d4425..f5ecbc3d 100644 --- a/pages/form-input/components/form-input/modules/components-combination.vue +++ b/pages/form-input/components/form-input/modules/components-combination.vue @@ -8,20 +8,12 @@ - - - - - - - - - + - +