GithubHelp home page GithubHelp logo

ayiaq1 / schema-form Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 9.71 MB

给开发者用的schema form(基于antd-react)

Home Page: https://ayiaq1.github.io/schema-form/

License: MIT License

EJS 0.08% TypeScript 76.17% JavaScript 22.33% CSS 1.41%

schema-form's Introduction

schema-form

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

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

安装


npm install -D @dawdler/schema-form

文档

开发者文档+在线 Demo

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

更新日志

0.0.x: 基础版本
1.0.x: 将各组件独立抽离,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 自定义渲染组件]
Loading

默认布局:row

自定义布局: custom

API

SchemaForm 包裹 Form 的组件

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

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

参数 描述 类型 默认值
gutter Row 的 gutter number 16
span Row 的 span number 6

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

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

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

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

逐步完善的单元测试

jest-coverage

schema-form's People

Contributors

ayiaq1 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

tokage

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.