From 8ef731678ff7cf2c7c5f5bc46afdd37a60538558 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E8=82=96=E7=A3=8A?= <18851179580@163.com> Date: Thu, 17 Jul 2025 11:22:25 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BF=85=E5=A1=AB?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/form-input/components/form-input/form-input-base.vue | 2 +- .../components/form-input/modules/subform-component-show.vue | 2 +- 2 files changed, 2 insertions(+), 2 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 3b1834e2..c7517660 100644 --- a/pages/form-input/components/form-input/form-input-base.vue +++ b/pages/form-input/components/form-input/form-input-base.vue @@ -3,7 +3,7 @@ - {{ item.com_data.title }}* + {{ item.com_data.title }}* diff --git a/pages/form-input/components/form-input/modules/subform-component-show.vue b/pages/form-input/components/form-input/modules/subform-component-show.vue index 42adfe5c..16e577e3 100644 --- a/pages/form-input/components/form-input/modules/subform-component-show.vue +++ b/pages/form-input/components/form-input/modules/subform-component-show.vue @@ -3,7 +3,7 @@ - {{ item.com_data.title }}* + {{ item.com_data.title }}* From 6842ce0bc0e55af4b483c007b5d6116fe51fb94e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E8=82=96=E7=A3=8A?= <18851179580@163.com> Date: Fri, 18 Jul 2025 18:02:15 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/js/common/common.js | 2 +- .../components/form-input/form-input-base.vue | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/common/js/common/common.js b/common/js/common/common.js index 2cca9eb6..48d1431d 100644 --- a/common/js/common/common.js +++ b/common/js/common/common.js @@ -829,7 +829,7 @@ export const get_format_checks_v2 = (common_config, value) => { // 根据通用配置中的格式,从类型配置映射中获取对应的格式检查项 const item = typeConfigMap.get(common_config.format); // 如果找不到对应的格式检查项,则不进行后续操作 - if (!item) return; + if (!item) return [{ is_error, error_text }]; // 初始化验证状态为不通过 let isValid = false; 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 c7517660..d4182a2e 100644 --- a/pages/form-input/components/form-input/form-input-base.vue +++ b/pages/form-input/components/form-input/form-input-base.vue @@ -557,7 +557,7 @@ export default { 'select-multi': { is_format: true, type: 'checkbox' }, 'date': { is_format: false, type: 'time' }, 'date-group': { is_format: false, type: 'time' }, - 'single-text': { is_format: false, type: '' }, + 'single-text': { is_format: true, type: '' }, 'multi-text': { is_format: false, type: '' }, 'rich-text': { is_format: false, type: '' }, 'radio-btns': { is_format: false, type: 'radio' }, @@ -582,7 +582,11 @@ export default { } // 其他字段的格式验证 else if (fieldCheckMap[item.key]) { - const { is_format, type } = fieldCheckMap[item.key]; + let field_data = fieldCheckMap[data_item.key]; + if (['single-text', 'select', 'radio-btns'].includes(data_item.key)) { + field_data = fieldCheckMap[data_item.com_data.type]; + } + const { is_format, type } = field_data; const { is_error = '0', error_text = '' } = get_format_checks(com_data, com_data.form_value, is_format, type); com_data.common_config.is_error = is_error; com_data.common_config.error_text = error_text; @@ -623,7 +627,11 @@ export default { } // 其他字段的格式验证 else if (fieldCheckMap[data_item.key]) { - const { is_format, type } = fieldCheckMap[data_item.key]; + let field_data = fieldCheckMap[data_item.key]; + if (['single-text', 'select', 'radio-btns'].includes(data_item.key)) { + field_data = fieldCheckMap[data_item.com_data.type]; + } + const { is_format, type } = field_data; const { is_error = '0', error_text = '' } = get_format_checks(data_item.com_data, data_item.com_data.form_value, is_format, type); data_item.com_data.common_config.is_error = is_error; data_item.com_data.common_config.error_text = error_text; From f7375d4421ebf977970dcd647ca35b72ae08bf22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E8=82=96=E7=A3=8A?= <18851179580@163.com> Date: Fri, 18 Jul 2025 18:21:57 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E9=80=BB=E8=BE=91=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/form-input/form-input-base.vue | 6 ------ .../components/form-input/number.vue | 18 ++++++++---------- 2 files changed, 8 insertions(+), 16 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 d4182a2e..d315697f 100644 --- a/pages/form-input/components/form-input/form-input-base.vue +++ b/pages/form-input/components/form-input/form-input-base.vue @@ -247,12 +247,6 @@ export default { } }, watch: { - propValue: { - handler(newVal) { - this.init(); - }, - deep: true - }, propKey(val) { this.init(); } diff --git a/pages/form-input/components/form-input/number.vue b/pages/form-input/components/form-input/number.vue index 531e29e4..de11b418 100644 --- a/pages/form-input/components/form-input/number.vue +++ b/pages/form-input/components/form-input/number.vue @@ -82,10 +82,11 @@ }); }, blur_input(e){ + let num = ''; if (!isEmpty(e.detail.value)) { let all_list = e.detail.value.replace(/[^0-9.]/g, ''); // 去除不是数字和.的值 - let num = Number(formatNumber(all_list, false)).toFixed(this.decimal_num); + num = Number(formatNumber(all_list, false)).toFixed(this.decimal_num); // 为数字并且时千分位的是你 if (this.format == 'num' && this.is_thousandths_symbol == '1') { // 如果有多个.的话,去除多个. @@ -96,16 +97,13 @@ } num = formatNumber(Number(formatNumber(all_list, false)).toFixed(this.decimal_num).toString(), true) } - this.data_check(num); - this.setData({ - form_value: num, - }); - } else { - this.setData({ - form_value: '', - }); - this.data_check(''); + } + this.data_check(num); + this.setData({ + form_value: num, + }); + this.$emit('dataChange', { value: num, id: this.propDataId }); }, data_check(val) { const { is_error = '0', error_text = '' } = get_format_checks(this.com_data, val, true, 'number'); From 8b41aca29925022df49667f731f1fc19f8f489bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E8=82=96=E7=A3=8A?= <18851179580@163.com> Date: Fri, 18 Jul 2025 18:58:28 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/js/common/common.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/common/js/common/common.js b/common/js/common/common.js index 48d1431d..2663dd88 100644 --- a/common/js/common/common.js +++ b/common/js/common/common.js @@ -918,9 +918,10 @@ export const color_change = (length) => { * @returns 格式化后的数字字符串 */ export const formatNumber = (num, is_convert) => { + let new_num = num.replace(/[^0-9.,]/g, ''); if (is_convert) { // 将输入转换为字符串形式以便处理 - const number = num.toString(); + const number = new_num.toString(); // 使用正则表达式将整数部分每三位用逗号分隔 const integerPart = number.split('.')[0].replace(/\B(?=(\d{3})+(?!\d))/g, ','); // 避免小数为空的时候也处理 @@ -929,7 +930,7 @@ export const formatNumber = (num, is_convert) => { return integerPart + decimalPart; } else { // 如果不需要转换,移除所有逗号并返回 - return num.toString().replace(/,/g, ''); + return new_num.toString().replace(/,/g, ''); } }; From ecb1dee0ed6183ca512029000a25f17a2afb93cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E8=82=96=E7=A3=8A?= <18851179580@163.com> Date: Tue, 22 Jul 2025 11:10:52 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B7=9Fpc=E4=B8=8D?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/form-input/components/form-input/address.vue | 2 +- pages/form-input/components/form-input/checkbox.vue | 2 +- pages/form-input/components/form-input/form-input-base.vue | 5 ++++- pages/form-input/components/form-input/radio.vue | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pages/form-input/components/form-input/address.vue b/pages/form-input/components/form-input/address.vue index 499cd8be..effb2e93 100644 --- a/pages/form-input/components/form-input/address.vue +++ b/pages/form-input/components/form-input/address.vue @@ -165,7 +165,7 @@ if (e == '') { setTimeout(() => { this.$emit('zIndexChange', e); - }, 200) + }, 400) } else { this.$emit('zIndexChange', e); } diff --git a/pages/form-input/components/form-input/checkbox.vue b/pages/form-input/components/form-input/checkbox.vue index 859b54a5..f928deaf 100644 --- a/pages/form-input/components/form-input/checkbox.vue +++ b/pages/form-input/components/form-input/checkbox.vue @@ -1,6 +1,6 @@