弹窗表单
vue
<template>
<el-button type="primary" @click="visible = true">打开dialog</el-button>
<el-dialog v-model="visible" title="弹窗表单" width="400px">
<FormGenerator type="dialog" ref="RefFormGenerator" v-bind="{ ...formAttrs }" />
</el-dialog>
</template>
<script lang="tsx" setup>
import { FormGenerator, GeneratorUtils } from 'element-plus-generator'
import type { FormAttrs, RefFormGenerator } from 'element-plus-generator/lib/type'
import { ref } from 'vue'
const visible = ref(false)
const RefFormGenerator = ref<RefFormGenerator>()
const formAttrs = ref<FormAttrs>({
model: {},
formOption: [
{
type: 'input',
formItem: {
prop: 'key1',
label: '输入框',
},
},
{
type: 'select',
formItem: {
prop: 'key2',
label: '选择器',
},
control: {
option: [
{
value: 'Option1',
label: 'Option1',
},
{
value: 'Option2',
label: 'Option2',
},
]
},
},
],
onSubmit: () => {
console.log(RefFormGenerator.value());
}
})
GeneratorUtils.setRequired(formAttrs.value.formOption)
</script>