2.0.2 • Published 3 years ago

@darrenjoe/antdv-simple-form v2.0.2

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

@darrenjoe/antdv-simple-form

根据不同的配置完成表单的渲染和操作。可自定义拖拽

Github 源码地址

何时使用

当表单元素很多,内容不那么复杂的时候使用

引用方式:

import DJoeSimpleForm from '@darrenjoe/antdv-simple-form'

export default {
  components: {
    DJoeSimpleForm
  }
}

代码演示

<DJoeSimpleForm
  :myForm.sync="formData"
  :formRenderList="formRenderList"
  :formRules="formRules"
  :autoCompleteSource="autoCompleteSource"
  @on-auto-select="handleAutoSelect"
  @on-auto-search="handleAutoSearch"
  @on-button-click="handleAutoCompleteClick"
  @on-change="handleFormItemChange"
  @on-blur="handleFormItemBlur"
  @on-focus="handleFormItemFocus"
>
</DJoeSimpleForm>

API

参数说明类型默认值
myForm表单对象Object{key: value}
formRenderList列表的渲染配置Array-
formRules列表的规则Object-
formLayout列表的自适应删栏Object{ xs: 24, sm: 24, md: 12, lg: 12, xl: 12, xxl: 8, labelCol: { span: 8 }, wrapperCol: {span: 16 }
autoCompleteSource自动完成列表的渲染配置Object以 name 为单个 list 的键值,值为 Array(请用\$set 方法插值,否则监听不到)
gridLayout拖拽布局配置该项存在时 formLayout 失效Array参考 vue-grid-layout 的 item 配置
gridConfigs拖拽布局 propsObject参考 vue-grid-layout 配置 - { 'col-num': 12, 'row-height': 30, 'is-draggable': true, 'is-resizable': false, 'is-mirrored': false, 'vertical-compact': false, margin: 10, 10, 'use-css-transforms': true }

gridLayout, gridConfigs 使用时请自行安装 vue-grid-layout


formRenderList

参数说明类型默认值
namekey:需要提交的参数String-
label要显示的 labelString-
typedefault 默认、custom 自定义Stringdefault
component组件类型Stringinput
defaultValue默认值String-
props用于接组件属性Object-
config用于接收一些单独配置项,比如特别的值处理(大部分基于 antdV)Object-
events组件绑定的事件String(见事件表)/Function(e, configs, vm)-
customRender当 component=='baseInputGroup'Array见 customRender 表
isShow是否显示Boolean/ Functiontrue

formRenderList - component

组件以 Config 结尾表示遵循原生有部分修改、组件以 Base 开头表示本表单组件自定义组件

参数说明类型默认值
AInput、ASelect、ARadio、ARadioGroup、ACheckbox、ACheckboxGroup、AInputNumber、ADatePicker、ARangePicker、ACascaderAntdV 组件,详细配置请参考 AntdV 官网StringAInput
ACheckboxConfig可配置选项栅格的 checkBoxString-
AButtonConfig按钮String-
AAutocompleteConfig自动完成组件String-
BaseInputGroup组合输入框(配置见 BaseInputGroup 表)String-

formRenderList - props

  1. 具体参照 antdV 的组件 props 和一些原生属性
  2. options、dataSource 可以传入 String 或者 Object, String 的值会绑定到 autoCompleteSource 中
  3. 自动完成组件的 optionLabelProp 请传入'value'

formRenderList - Config

下面两项是基础配置,具体见自定义组件输入

参数说明类型默认值
layout该组件的自定义栅格Object-
decorator该组件 key 的表单初始化配置项Object-

formRenderList - events

对子项的数据监听事件绑定,可传入 String(为本表单组件内置方法,见下内置方法 Methods 表),可传入 Function(e, configs, vm)


formRenderList - customRender

包含 name,component,props,config, events(个属性与上面相同),数组第一项与最外层的同属性继承,但 name 和 component 必须指定


回调方法

参数说明类型默认值
on-change自动完成值改变时触发Function( name, value )-
on-blur输入框失焦时的触发Function( configs )-
on-blur输入框失焦时的触发Function( configs )-
on-focus输入框获取焦点时触发Function( configs )-
on-custom自定义事件、配合 events 使用Function( configs )-
on-auto-search自动完成输入搜索时触发Function( { value, name } )-
on-auto-select自动完成选中时触发Function( { value, option, name } )-
on-button-click输入框按钮点击时触发Function( configs )-

组件方法 - Methods

参数说明类型默认值
submit验证表单并返回 myform(没有做双向绑定,需手动操作)Function(form, myform)-
reset重置表单Function()-
clear清空表单Function()-
_getFieldsValue获取表单所有字段Function()-
handleFormItemBlur失焦事件Function()-
handleFormItemFocus获取焦点Function()-
handleAutoSelect自动完成选中事件Function()-
handleAutoSearch自动完成查询Function()-
handleAutoCompleteClick按钮点击Function()-
handleCustomEvents自定义事件Function()-

注释

在父组件操作 myform 数据的时候,如果有多个参数请用对象的方法一次性赋值,避免出现本组件在同步数据时关闭同步通道




自定义组件


AAutoCompleteConfig

props

  1. 参照 antdV 自动完成组件
  2. dataSource - String(name)/Object
  3. optionLabelProp: 'value'

config

参数说明类型默认值
autocompleteSlotType默认显示和 table 显示String' ' (table 可选)
autocompleteSlotTableConfig为 table 下拉时的数据配置Array-
autocompleteSlotNameslot 的具名插槽配置String-
buttonConfig关于按钮的配置项Object-

events

以 button-开头的事件将绑定到按钮上

config - autocompleteSlotTableConfig

参数说明类型默认值
title表头所显示 labelString-
key该列对应的 value 值String-
span栅格配置Number-

config - buttonConfig

text 为按钮显示值,其余 props 与官方组件一致


AButtonConfig

props

  1. text 为按钮显示值,其余 props 与官方组件一致
  2. 其他属性配置同基本组件

ACheckboxConfig

props

  1. config 中 layout 已说明

BaseInputGroup

该组件包含多项配置, customRender 作为渲染基础