表单渲染
在使用设计好的规则进行表单设计和回显时,正确地处理 JSON 数据格式是至关重要的。以下文档详细介绍了如何渲染表单,并包含了动态加载和保存表单配置的高级用法示例。
注意
必须使用 formCreate.parseJson
代替 JSON.stringify
方法,使用 formCreate.toJson
代替 JSON.parse
方法来转换 JSON 数据,以确保数据格式正确。
表单渲染
要渲染表单,您需要挂载 form-create 到 Vue 应用中,并加载表单规则和配置。
挂载 formCreate 示例
js
//从设计器中导入 formCreate
import {formCreate} from 'path/to/fcDesignerPro';
//挂载 formCreate
app.use(formCreate);
表单渲染示例
以下示例演示如何获取后端存储的表单规则,并通过 formCreate 渲染表单。
vue
<template>
<div id="app">
<form-create v-if="rule.length" v-model="formData" v-model:api="fApi" @sumbit="handleSubmit" :rule="rule"
:option="option"></form-create>
</div>
</template>
<script setup>
import {formCreate} from 'path/to/fcDesignerPro';
const rule = ref([]);
const options = ref({});
const fApi = ref(null);
//表单数据
const formData = ref({});
function handleSubmit(formData) {
// 模拟提交表单数据到后端
axios.post('/api/submitFormData', formData)
.then(response => {
console.log('提交成功:', response.data);
})
.catch(error => {
console.error('提交失败:', error);
});
}
onMounted(() => {
// 模拟从后端加载表单JSON规则
axios.get('/api/getFormRules')
.then(response => {
const {ruleJson, optionsJson, formData} = response.data;
rule.value = formCreate.parseJson(ruleJson);
options.value = formCreate.parseJson(optionsJson);
formData.value = formData;
})
.catch(error => {
console.error('加载表单规则失败:', error);
});
});
</script>
表单阅读模式
通过设置 options.preview
配置项,您可以让表单进入阅读模式,以便在无需编辑时展示表单内容。
阅读模式示例
以下示例展示如何设置表单为阅读模式:
vue
<template>
<div id="app">
<form-create v-if="rule.length" v-model="formData" v-model:api="fApi" @sumbit="handleSubmit" :rule="rule" :option="option"></form-create>
</div>
</template>
<script setup>
import {formCreate} from 'path/to/fcDesignerPro';
const rule = ref([]);
const options = ref({});
//表单数据
const formData = ref({});
const fApi = ref(null);
onMounted(() => {
// 加载之前存储的表单规则和配置
axios.get('/api/getFormRules')
.then(response => {
const { ruleJson, optionsJson, formData } = response.data;
rule.value = formCreate.parseJson(ruleJson);
options.value = formCreate.parseJson(optionsJson);
formData.value = formData;
options.value.preview = true; // 设置为阅读模式
})
.catch(error => {
console.error('加载表单规则失败:', error);
});
});
</script>
注意事项
- 确保从后端返回的 JSON 数据格式正确,以保证
formCreate.parseJson
的正常工作。 - 在实际实现时,根据你的 API 结构调整请求URL和数据字段名称。
通过这些示例和说明,开发者可以在 Vue 应用中实现动态表单渲染与数据持久化提交,高效管理表单的设计和使用。