From b06278b3fdcc8ff1e4b3fabbf0fe406030836a07 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 22 Nov 2025 22:05:27 +0800 Subject: [PATCH] =?UTF-8?q?834=20fix:bpm=20=E6=B5=81=E7=A8=8B=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E7=BC=96=E8=BE=91=E6=89=93=E5=BC=80=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E4=BF=9D=E5=AD=98js=E4=B8=A2=E5=A4=B1=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/form-create/helpers.ts | 18 ++++++++++++------ .../src/components/form-create/helpers.ts | 18 ++++++++++++------ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/apps/web-antd/src/components/form-create/helpers.ts b/apps/web-antd/src/components/form-create/helpers.ts index def2c81a9..260170b51 100644 --- a/apps/web-antd/src/components/form-create/helpers.ts +++ b/apps/web-antd/src/components/form-create/helpers.ts @@ -21,15 +21,21 @@ import { /** 编码表单 Conf */ export function encodeConf(designerRef: any) { - return JSON.stringify(designerRef.value.getOption()); + // 关联案例:https://gitee.com/yudaocode/yudao-ui-admin-vue3/pulls/834/ + return formCreate.toJson(designerRef.value.getOption()); +} + +/** 解码表单 Conf */ +export function decodeConf(conf: string) { + return formCreate.parseJson(conf); } /** 编码表单 Fields */ export function encodeFields(designerRef: any) { - const rule = JSON.parse(designerRef.value.getJson()); + const rule = designerRef.value.getRule(); const fields: string[] = []; - rule.forEach((item: unknown) => { - fields.push(JSON.stringify(item)); + rule.forEach((item: any) => { + fields.push(formCreate.toJson(item)); }); return fields; } @@ -49,7 +55,7 @@ export function setConfAndFields( conf: string, fields: string | string[], ) { - designerRef.value.setOption(formCreate.parseJson(conf)); + designerRef.value.setOption(decodeConf(conf)); // 处理 fields 参数类型,确保传入 decodeFields 的是 string[] 类型 const fieldsArray = Array.isArray(fields) ? fields : [fields]; designerRef.value.setRule(decodeFields(fieldsArray)); @@ -65,7 +71,7 @@ export function setConfAndFields2( if (isRef(detailPreview)) { detailPreview = detailPreview.value; } - detailPreview.option = formCreate.parseJson(conf); + detailPreview.option = decodeConf(conf); detailPreview.rule = decodeFields(fields); if (value) { detailPreview.value = value; diff --git a/apps/web-ele/src/components/form-create/helpers.ts b/apps/web-ele/src/components/form-create/helpers.ts index 437e7fbdb..5def589cf 100644 --- a/apps/web-ele/src/components/form-create/helpers.ts +++ b/apps/web-ele/src/components/form-create/helpers.ts @@ -21,15 +21,21 @@ import { /** 编码表单 Conf */ export function encodeConf(designerRef: any) { - return JSON.stringify(designerRef.value.getOption()); + // 关联案例:https://gitee.com/yudaocode/yudao-ui-admin-vue3/pulls/834/ + return formCreate.toJson(designerRef.value.getOption()); +} + +/** 解码表单 Conf */ +export function decodeConf(conf: string) { + return formCreate.parseJson(conf); } /** 编码表单 Fields */ export function encodeFields(designerRef: any) { - const rule = JSON.parse(designerRef.value.getJson()); + const rule = designerRef.value.getRule(); const fields: string[] = []; - rule.forEach((item: unknown) => { - fields.push(JSON.stringify(item)); + rule.forEach((item: any) => { + fields.push(formCreate.toJson(item)); }); return fields; } @@ -49,7 +55,7 @@ export function setConfAndFields( conf: string, fields: string | string[], ) { - designerRef.value.setOption(formCreate.parseJson(conf)); + designerRef.value.setOption(decodeConf(conf)); // 处理 fields 参数类型,确保传入 decodeFields 的是 string[] 类型 const fieldsArray = Array.isArray(fields) ? fields : [fields]; designerRef.value.setRule(decodeFields(fieldsArray)); @@ -65,7 +71,7 @@ export function setConfAndFields2( if (isRef(detailPreview)) { detailPreview = detailPreview.value; } - detailPreview.option = formCreate.parseJson(conf); + detailPreview.option = decodeConf(conf); detailPreview.rule = decodeFields(fields); if (value) { detailPreview.value = value;