From ecb07897806a792b88822d778529388f05c20c38 Mon Sep 17 00:00:00 2001 From: jing <1683105490@qq.com> Date: Fri, 28 Aug 2026 11:58:23 +0800 Subject: [PATCH] =?UTF-8?q?chore=EF=BC=9A=E8=A1=A8=E5=8D=95=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components-diy/diy-form.vue | 26 +++- components/ns-form/ns-form.vue | 236 +++++++++++++++++++-------------- pages_tool/form/form.vue | 29 +++- 3 files changed, 186 insertions(+), 105 deletions(-) diff --git a/components-diy/diy-form.vue b/components-diy/diy-form.vue index d648f10..5bdadbc 100644 --- a/components-diy/diy-form.vue +++ b/components-diy/diy-form.vue @@ -237,9 +237,33 @@ export default { delete base[k]; } }); + // 前端视觉默认:强制覆盖后端 formConfig 中可能存在的旧默认(horizontal / 红按钮 / 灰背景等), + // 与 formdata.vue 的 styleDefaults 保持一致,使所有 diy-form(含 diy-group 内的表单)统一呈现新设计稿样式。 + // 后端仍保留行为/文案类配置(behavior / submitText / banner / tip 等),本合并仅覆盖视觉字段。 + const styleDefaults = { + formLayout: 'vertical', + formPaddingX: 28, + rowPaddingY: 24, + labelGap: 20, + labelFontSize: 32, + labelFontWeight: 700, + labelColor: '#1f2937', + inputHeight: 84, + inputRadius: 16, + inputBgColor: '#ffffff', + inputBorderColor: '#e5e7eb', + inputFocusBorderColor: '#3b82f6', + inputFocusBgColor: '#ffffff', + placeholderColor: '#9ca3af', + placeholderFontSize: 28, + checkedColor: '#3b82f6', + showRowDivider: false, + submitColor: '#ffffff', + submitBgColor: '#3b82f6' + }; // 平台差异化配置(terminal 块在 formConfig 子对象内) // 优先级:v.formConfig.terminal > v.form_config_terminal > v.terminal > v.form_config_platform - const result = Object.assign({}, base); + const result = Object.assign({}, base, styleDefaults); const termBlock = (v.formConfig && v.formConfig.terminal) || v.form_config_terminal || v.terminal || v.form_config_platform; if (termBlock && typeof termBlock === 'object') { Object.keys(termBlock).forEach(function(platform) { diff --git a/components/ns-form/ns-form.vue b/components/ns-form/ns-form.vue index a3f1cb4..4aec349 100644 --- a/components/ns-form/ns-form.vue +++ b/components/ns-form/ns-form.vue @@ -4,8 +4,8 @@ - {{ item.value.title }} {{ item.value.required ? '*' : '' }} + {{ item.value.title }} - {{ item.value.title }} {{ item.value.required ? '*' : '' }} + {{ item.value.title }} @@ -55,6 +55,33 @@ }; }, computed: { + // 前端视觉默认:强制覆盖后端 form_config 中可能存在的旧默认(horizontal / 红按钮 / 灰背景等), + // 与 diy-form 路径(formdata.vue 的 styleDefaults)保持一致,使系统表单页也统一呈现新设计稿样式。 + // 后端仍保留行为类配置(behavior / submitText 等),本合并仅覆盖视觉字段。 + mergedFormConfig() { + const styleDefaults = { + formLayout: 'vertical', + formPaddingX: 28, + rowPaddingY: 24, + labelGap: 20, + labelFontSize: 32, + labelFontWeight: 700, + labelColor: '#1f2937', + inputHeight: 84, + inputRadius: 16, + inputBgColor: '#ffffff', + inputBorderColor: '#e5e7eb', + inputFocusBorderColor: '#3b82f6', + inputFocusBgColor: '#ffffff', + placeholderColor: '#9ca3af', + placeholderFontSize: 28, + checkedColor: '#3b82f6', + showRowDivider: false, + submitColor: '#ffffff', + submitBgColor: '#3b82f6' + }; + return Object.assign({}, this.detail ? (this.detail.form_config || {}) : {}, styleDefaults); + }, emptyText() { return this.complete ? this.$lang('form.form.submitSuccess') : (this.formError || this.$lang('form.form.noFormInfo')); }