
1. 封装组件DymanicForm.vue
- 使用
component实现动态组件
- 组件不能直接使用字符串传入,所以根据传入的组件名称找到对应的组件
- 校验规则,可使用rule传入自定义规则,也可以使用封装好的基本规则 示例中使用了
checkRequired
- 暴露重置方法和校验方法
<template>
<el-form
:model="currentValue"
ref="dymanicForm"
v-bind="$attrs"
@submit.native.prevent
>
<el-form-item
:prop="index"
:rules="item.rules"
v-for="(item, index) in currentSchema"
:key="index"
v-bind="item.formItem || {}"
>
<component
v-model="currentValue[index]"
:is="item.componentName"
v-bind="item"
v-on="item.methods || {}"
/>
</el-form-item>
<slot />
</el-form>
</template>
<sc