From 500705df07fd6ec7b0da97d177c6b7ff95485ecd Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 22 Nov 2025 21:54:29 +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/utils/formCreate.ts | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/utils/formCreate.ts b/src/utils/formCreate.ts index b20d50cc..e4e0dc35 100644 --- a/src/utils/formCreate.ts +++ b/src/utils/formCreate.ts @@ -4,24 +4,30 @@ import { isRef } from 'vue' import formCreate from '@form-create/element-ui' -// 编码表单 Conf +/** 编码表单 Conf */ export const encodeConf = (designerRef: object) => { // @ts-ignore + // 关联案例:https://gitee.com/yudaocode/yudao-ui-admin-vue3/pulls/834/ return formCreate.toJson(designerRef.value.getOption()) } -// 编码表单 Fields +/** 解码表单 Conf */ +export const decodeConf = (conf: string) => { + return formCreate.parseJson(conf) +} + +/** 编码表单 Fields */ export const encodeFields = (designerRef: object) => { // @ts-ignore - const rule = JSON.parse(designerRef.value.getJson()) + const rule = designerRef.value.getRule() const fields: string[] = [] - rule.forEach((item) => { - fields.push(JSON.stringify(item)) + rule.forEach((item: any) => { + fields.push(formCreate.toJson(item)) }) return fields } -// 解码表单 Fields +/** 解码表单 Fields */ export const decodeFields = (fields: string[]) => { const rule: object[] = [] fields.forEach((item) => { @@ -30,15 +36,15 @@ export const decodeFields = (fields: string[]) => { return rule } -// 设置表单的 Conf 和 Fields,适用 FcDesigner 场景 -export const setConfAndFields = (designerRef: object, conf: string, fields: string) => { +/** 设置表单的 Conf 和 Fields,适用 FcDesigner 场景 */ +export const setConfAndFields = (designerRef: object, conf: string, fields: string[]) => { // @ts-ignore - designerRef.value.setOption(formCreate.parseJson(conf)) + designerRef.value.setOption(decodeConf(conf)) // @ts-ignore designerRef.value.setRule(decodeFields(fields)) } -// 设置表单的 Conf 和 Fields,适用 form-create 场景 +/** 设置表单的 Conf 和 Fields,适用 form-create 场景 */ export const setConfAndFields2 = ( detailPreview: object, conf: string, @@ -51,7 +57,7 @@ export const setConfAndFields2 = ( } // @ts-ignore - detailPreview.option = formCreate.parseJson(conf) + detailPreview.option = decodeConf(conf) // @ts-ignore detailPreview.rule = decodeFields(fields)