1.0.1 • Published 3 years ago

@dawdler/schema-form v1.0.1

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

schema-form

给开发者用的表单工具(基于 Ant Design React)

基于 Ant Design React 而开发的适配组件,尽量使用数据来替代元素标签。

安装

npm install -D @dawdler/schema-form

文档

开发者文档+在线 Demo

基于 Ant Design React 而开发的适配组件,尽量使用数据来替代元素标签。

更新日志

0.0.x: 基础版本 1.0.0: 将各组件独立抽离,type 类型统一为 antd 的小驼峰命名:TimePicker.RangePicker -> timeRangePicker)

使用

SchemaForm:type:row | custom 2 种布局方式
import SchemaForm from '@dawdler/schema-form';

/** row */
<SchemaForm
  type="row"
  gutter={16}
  span={12}
  options={[
    {
      label: '输入框',
      type: 'input',
    },
  ]}
/>

/** custom */
<SchemaForm
  type="custom"
  options={[
    {
      label: '输入框',
      type: 'input',
    },
  ]}
/>

整体结构图

graph TB

    SchemaForm(SchemaForm) --> Element[Element适配层,根据type匹配组件类型]
    SchemaForm --> CustomRender[Custom Render 自定义渲染组件]

默认布局:row

自定义布局: custom

API

SchemaForm 包裹 Form 的组件

参数描述类型默认值
type设置布局样式。row:使用 Row 包裹。custom: 直接渲染。boolean-
disabled是否禁用,如果 item 有,以 item 的为结果boolean-
readOnly是否只读,如果 item 有,以 item 的为结果boolean-
options渲染列表IFormItem[]-
form外部传入的:Form.useForm()FormInstance-
initialValuesform.initialValues 透传Record<string, any>-

SchemaForm.type=row 类型为 row 时的参数

参数描述类型默认值
gutterRow 的 gutternumber16
spanRow 的 spannumber6

options 渲染列表,包裹 Form.Item 的数组

参数描述类型默认值
disabled当前这一条 item 内容是否禁用boolean-
readOnly当前这一条 item 内容是否只读boolean-
render只有 custom 类型 才有的渲染 children 方法(props: ISchemaChildrenProps) => React.ReactNode-
fieldProps透传组件参数。以 type 自动推动组件类型-
coltype:row类型时,col 的占位,如果 item 有。以 item 为结果number-
width铺满 item 宽度。默认:宽度 100%。auto: 使用默认组件宽度string100%
type联合类型,详见:API:options.typeIUnionType-
otherAnt 的 FormItemProps 参数FormItemProps-

options.type SchemaForm 组件的 Item.type 枚举

支持的 type描述类型默认值
Element.type支持所有的 Element.type 类型EnumElementType-
group将 Item 作为一个组包裹string-
custom自定义渲染组件(props: ISchemaChildrenProps) => React.ReactNode-

逐步完善的单元测试

jest-coverage

1.0.1

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago