From 98cda80ad4d2e093b001d739e336871a0df937fd Mon Sep 17 00:00:00 2001 From: liuyuanjin <1107290929@qq.com> Date: Fri, 24 Oct 2025 10:11:42 +0800 Subject: [PATCH] =?UTF-8?q?=20hotFix=EF=BC=9A=E8=A7=A3=E5=86=B3=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E8=A1=A8=E5=8D=95=E5=AD=97=E6=AE=B5=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=EF=BC=8C=E9=A1=B5=E9=9D=A2=E7=99=BD=E5=B1=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Design/config/formRule/builder/index.tsx | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/components/DataStandard/WorkForm/Design/config/formRule/builder/index.tsx b/src/components/DataStandard/WorkForm/Design/config/formRule/builder/index.tsx index 98ed2da88..8db68769e 100644 --- a/src/components/DataStandard/WorkForm/Design/config/formRule/builder/index.tsx +++ b/src/components/DataStandard/WorkForm/Design/config/formRule/builder/index.tsx @@ -58,10 +58,37 @@ const EditorComponent = (props: { ); }; const CustomBuilder: React.FC = (props) => { - const [value, setValue] = useState(); + const [value, setValue] = useState([]); useEffectOnce(() => { - setValue(JSON.parse(props.displayText)); + try { + const parsed = JSON.parse(props.displayText); + const validFields = props.fields.map((f) => f.dataField); + const invalidFields: string[] = []; + const filtered = Array.isArray(parsed) + ? parsed.filter((cond) => { + if (Array.isArray(cond)) { + const fieldName = cond[0]; + const isValid = validFields.includes(fieldName); + if (!isValid && typeof fieldName === 'string') { + invalidFields.push(fieldName); + } + return isValid; + } + return true; + }) + : parsed; + + // 提示不存在的字段 + if (invalidFields.length > 0) { + console.warn(`以下字段在 fields 配置中不存在: ${invalidFields.join(', ')}`); + } + setValue(filtered); + } catch (err) { + console.error('解析 displayText 出错:', err); + setValue([]); + } }); + const onValueChanged = useCallback( (e: FilterBuilderTypes.ValueChangedEvent) => { props.onValueChanged( -- Gitee