0.2.0 • Published 3 years ago

@ohion/form-builder v0.2.0

Weekly downloads
-
License
-
Repository
github
Last release
3 years ago

@ohion/form-builder

Base on Vue3 and Element-plus

基础用法

<template>
  <div>
    <OhionFormBuilder :model="model" :formItems="formItems">
    </OhionFormBuilder>
  </div>
</template>

<script setup lang="tsx">
import OhionFormBuilder from '@ohion/form-builder'

import { ref } from 'vue'

const model = ref({ name: 'john', age: 18 })

const formItems = [
  {
    prop: 'name',
    label: 'name',
    type: 'input' // turn into 'el-input'
  },
  {
    prop: 'age',
    label: 'age',
    type: 'input-number' // turn into 'el-input-number'
  }
]
</script>

组件API

属性(除以下属性,其余属性同Element Plus Form Props
属性说明类型默认值
model表单数据对象Record\<string, any>-
formItems表单项数据Arrayable\-
itemWidth表单项宽度string-
方法
方法名称说明类型
getFormRef表单数据对象
getItemRef表单数据对象
applyFormMethods表单数据对象
validate对整个表单的内容进行验证。 接收一个回调函数,或返回 Promise。(callback?: (isValid: boolean, invalidFields?: ValidateFieldsError) => void) => Promise\
validateField验证具体的某个字段。(props?: Arrayable\, callback?: (isValid: boolean, invalidFields?: ValidateFieldsError) => void) => Promise\
resetFields重置该表单项,将其值重置为初始值,并移除校验结果(props?: Arrayable\) => void
clearValidate清理某个字段的表单验证信息。(props?: Arrayable\) => void
scrollToField滚动到指定的字段(prop: FormItemProp) => void
事件
事件名称说明回调参数
validate任一表单项被校验后触发(prop: FormItemProp, isValid: boolean, message: string) => void
change任一表单项被触发change事件后触发(args: Arrayable\, formItem: FormItemConfig, index: number, model: Record\<string, any>) => any
FormItemConfig属性(除以下属性,其余属性同Element Plus Form Item Props
属性说明类型默认值
type组件类型,element组件名,会自动带上el前缀string-
custom是否自定义组件boolean-
component自定义组件string | DefineComponent-
visible是否显示boolean | function(model, formItem, index)-
style表单项样式object-
disabled是否禁用boolean | function(formItem, model)-
children表单项子项Arrayable\-
required是否必填boolean | function(formItem, model)-
width表单项宽度string-
minWidth表单项最小宽度string-
directives指令Directive-
ref表单组件ref名称,用于获取组件实例string-
slotName表单组件slot名称string-
slots渲染插槽Arrayable\-
renderLabel自定义渲染labelfunction(formItem, model, index)-
renderInner组件默认插槽自定义渲染function(formItem, model, index)-
render自定义渲染function(formItem, model, index)-
formatter数据格式化function(value, formItem, model, index)-
text文本内容string-
events组件事件object-
props表单组件propsobject-