Files
admin-sjzx/src/utils/formCreate.ts

59 lines
1.6 KiB
TypeScript
Raw Normal View History

2024-05-09 14:18:39 +08:00
/**
* https://github.com/xaboy/form-create-designer 封装的工具类
*/
// 编码表单 Conf
export const encodeConf = (designerRef: object) => {
2024-06-27 15:48:43 +08:00
// @ts-ignore
return JSON.stringify(designerRef.value.getOption())
2024-05-09 14:18:39 +08:00
}
// 编码表单 Fields
export const encodeFields = (designerRef: object) => {
2024-06-27 15:48:43 +08:00
// @ts-ignore
const rule = designerRef.value.getRule()
const fields: string[] = []
rule.forEach(item => {
fields.push(JSON.stringify(item))
})
return fields
2024-05-09 14:18:39 +08:00
}
// 解码表单 Fields
export const decodeFields = (fields: string[]) => {
2024-06-27 15:48:43 +08:00
const rule: object[] = []
fields.forEach(item => {
rule.push(JSON.parse(item))
})
return rule
2024-05-09 14:18:39 +08:00
}
// 设置表单的 Conf 和 Fields适用 FcDesigner 场景
export const setConfAndFields = (designerRef: object, conf: string, fields: string) => {
2024-06-27 15:48:43 +08:00
// @ts-ignore
designerRef.value.setOption(JSON.parse(conf))
// @ts-ignore
designerRef.value.setRule(decodeFields(fields))
2024-05-09 14:18:39 +08:00
}
// 设置表单的 Conf 和 Fields适用 form-create 场景
2024-06-27 15:48:43 +08:00
export const setConfAndFields2 = (detailPreview: object, conf: string, fields: string[], value?: object) => {
if (isRef(detailPreview)) {
detailPreview = detailPreview.value
}
// @ts-ignore
detailPreview.option = JSON.parse(conf)
// @ts-ignore
detailPreview.rule = decodeFields(fields)
if (value) {
// @ts-ignore
detailPreview.value = value
}
}
// 清除表单的 Conf 和 Fields适用 form-create 场景
export const resetConfAndFields = (detailPreview: object) => {
2024-05-09 14:18:39 +08:00
// @ts-ignore
2024-06-27 15:48:43 +08:00
detailPreview.value = {}
2024-05-09 14:18:39 +08:00
}