跟Vue 3项目集成
npm i vform3-builds
import { createApp } from 'vue'
import App from './App.vue'
import axios from 'axios' //如果需要axios,请引入
import ElementPlus from 'element-plus' //引入element-plus库
import VForm3 from 'vform3-builds' //引入VForm3库
import 'element-plus/dist/index.css' //引入element-plus样式
import 'vform3-builds/dist/designer.style.css' //引入VForm3样式
const app = createApp(App)
app.use(ElementPlus) //全局注册element-plus
app.use(VForm3) //全局注册VForm3(同时注册了v-form-designe、v-form-render等组件)
/* 注意:如果你的项目中有使用axios,请用下面一行代码将全局axios复位为你的axios!! */
window.axios = axios
app.mount('#app')
使用文件vue3
<template>
<div>
<v-form-render
:form-json="formJson"
:form-data="formData"
:option-data="optionData"
ref="vFormRef"
>
</v-form-render>
<el-button type="primary" @click="submitForm">Submit</el-button>
</div>
</template>
<script setup>
import { ref, reactive } from "vue";
import { ElMessage } from "element-plus";
const formJson = reactive({
widgetList: [
{
key: 68313,
type: "rich-editor",
icon: "rich-editor-field",
formItemFlag: true,
options: {
name: "richeditor26106",
label: "rich-editor",
labelAlign: "",
placeholder: "",
labelWidth: null,
labelHidden: false,
columnWidth: "200px",
contentHeight: "200px",
disabled: false,
hidden: false,
required: false,
requiredHint: "",
customRule: "",
customRuleHint: "",
customClass: [],
labelIconClass: null,
labelIconPosition: "rear",
labelTooltip: null,
minLength: null,
maxLength: null,
showWordLimit: false,
onCreated: "",
onMounted: "",
onValidate: "",
},
id: "richeditor26106",
},
],
formConfig: {
modelName: "formData",
refName: "vForm",
rulesName: "rules",
labelWidth: 80,
labelPosition: "left",
size: "",
labelAlign: "label-left-align",
cssCode: "",
customClass: [],
functions: "",
layoutType: "PC",
jsonVersion: 3,
onFormCreated: "",
onFormMounted: "",
onFormDataChange: "",
},
});
const formData = reactive({});
const optionData = reactive({});
const vFormRef = ref(null);
const submitForm = () => {
vFormRef.value
.getFormData()
.then((formData) => {
// Form Validation OK
alert(JSON.stringify(formData));
})
.catch((error) => {
// Form Validation failed
ElMessage.error(error);
});
};
</script>
官网参考地址