From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/utils/formCreate.ts | 68 ++++++++++++++++++++++++++++++++++
1 files changed, 68 insertions(+), 0 deletions(-)
diff --git a/src/utils/formCreate.ts b/src/utils/formCreate.ts
new file mode 100644
index 0000000..e4e0dc3
--- /dev/null
+++ b/src/utils/formCreate.ts
@@ -0,0 +1,68 @@
+/**
+ * 閽堝 https://github.com/xaboy/form-create-designer 灏佽鐨勫伐鍏风被
+ */
+import { isRef } from 'vue'
+import formCreate from '@form-create/element-ui'
+
+/** 缂栫爜琛ㄥ崟 Conf */
+export const encodeConf = (designerRef: object) => {
+ // @ts-ignore
+ // 鍏宠仈妗堜緥锛歨ttps://gitee.com/yudaocode/yudao-ui-admin-vue3/pulls/834/
+ return formCreate.toJson(designerRef.value.getOption())
+}
+
+/** 瑙g爜琛ㄥ崟 Conf */
+export const decodeConf = (conf: string) => {
+ return formCreate.parseJson(conf)
+}
+
+/** 缂栫爜琛ㄥ崟 Fields */
+export const encodeFields = (designerRef: object) => {
+ // @ts-ignore
+ const rule = designerRef.value.getRule()
+ const fields: string[] = []
+ rule.forEach((item: any) => {
+ fields.push(formCreate.toJson(item))
+ })
+ return fields
+}
+
+/** 瑙g爜琛ㄥ崟 Fields */
+export const decodeFields = (fields: string[]) => {
+ const rule: object[] = []
+ fields.forEach((item) => {
+ rule.push(formCreate.parseJson(item))
+ })
+ return rule
+}
+
+/** 璁剧疆琛ㄥ崟鐨� Conf 鍜� Fields锛岄�傜敤 FcDesigner 鍦烘櫙 */
+export const setConfAndFields = (designerRef: object, conf: string, fields: string[]) => {
+ // @ts-ignore
+ designerRef.value.setOption(decodeConf(conf))
+ // @ts-ignore
+ designerRef.value.setRule(decodeFields(fields))
+}
+
+/** 璁剧疆琛ㄥ崟鐨� Conf 鍜� Fields锛岄�傜敤 form-create 鍦烘櫙 */
+export const setConfAndFields2 = (
+ detailPreview: object,
+ conf: string,
+ fields: string[],
+ value?: object
+) => {
+ if (isRef(detailPreview)) {
+ // @ts-ignore
+ detailPreview = detailPreview.value
+ }
+
+ // @ts-ignore
+ detailPreview.option = decodeConf(conf)
+ // @ts-ignore
+ detailPreview.rule = decodeFields(fields)
+
+ if (value) {
+ // @ts-ignore
+ detailPreview.value = value
+ }
+}
--
Gitblit v1.8.0