|
|
@@ -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)
|
|
|
|