1.2.0 • Published 3 years ago

visual-form-render v1.2.0

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

visual-form-render

NPM JavaScript Style Guide

可视化表单生成工具:通过结构化 json 生成渲染表单工具,可选择配套 visual-form-builder 使用(目前构造器还需要完善)。

visual-form-builder 可使用可视化的方式生成结构化 json,供本工具使用。

安装

yarn add visual-form-render

or

npm install --save visual-form-render

使用

  • 更详细的使用可参考 /example/src/app.tsx

  • 运行示例代码

cd example && yarn && yarn start
import React, { Component } from 'react'

import { FormRender } from 'visual-form-render'
import 'visual-form-render/dist/index.css'

const formItemData = [
  {
    type: 'input',
    name: 'idcard',
    label: '单行文本',
    tooltip: '输入唯一身份ID',
    placeholder: '输入16位身份id',
    value: '110120119',
    description: '',
    prefix: '+86',
    suffix: '',
    errorLabel: 'ID为必填项,且不可为空',
    required: true,
  },
  {
    type: 'radio',
    name: 'memberRole',
    label: '单选',
    tooltip: '',
    value: '0',
    options: [
      {
        label: '管理员',
        value: '0',
      },
      {
        label: '普通用户',
        value: '1',
      },
      {
        label: '审核人员',
        value: '2',
      },
    ],
    errorLabel: '',
    required: false,
  },
  {
    type: 'button',
    name: 'submitBtn',
    btnType: 'submit',
    label: '提交',
  },
]

const formGlobalConfigData = {
  formLayout: 'vertical',
  labelColSpan: 6,
  wrapperColSpan: 16,
  btnColSpan: 20,
  showLabel: true,
  fontSize: '14px',
  fontColor: '#000000',
  gridLayoutCols: 2,
  disableDragGridLayout: true,
}

class Example extends Component {
  render() {
    return (
      <FormRender
        key={'FormRender'}
        formItemConfig={formData}
        formGlobalConfigData={config}
        autoSubmit
        isEdit
        outputCB={(outputJson: any) => {
          console.log('-example output:', outputJson)
          setResult(JSON.stringify(outputJson, null, 2))
        }}
      />
    )
  }
}

export default Example

API

FormRender 表单渲染器

属性类型默认值必填项描述
keystring-false表单 key
formItemConfigFormItemSchemaType[]-true渲染表单结构数据,支持传入单个对象或数组
formGlobalConfigDataGlobalFormConfigType-true渲染表单全局配置数据
formItemInitialValuesany-false表单数据初始值(可选)
isEditbooleantruefalse是否编辑状态
autoSubmitbooleanfalsefalse是否触发自动提交表单
outputCB(outputJson: string) => any-false提交表单回调

FormItemSchemaType

表单项:属性配置结构

属性类型默认值必填项描述
keystring-false表单项唯一 uuid
namestring-true表单项 name 不可重复
typeItemTypeEnum-false表单项 类型:枚举
labelstring-false表单项 标题
tooltipstring-false表单项 标题说明
placeholderstring-false表单项 placeholder
prefixstring-false表单项 前缀
suffixstring-false表单项 后缀
valueany-false表单项 value
optionsItemOptions[]-false表单项 options
hiddenboolean-false表单项 是否隐藏
disabledboolean-false表单项 是否禁用
showLabelboolean-false表单项 是否显示标题 |
errorLabelstring-false表单项 错误提示文案 |
requiredboolean-false表单项是否必填
beforeConditionalBeforeConditionalType-false表单项 前置条件
afterConditionalAfterConditionalType-false⛔️ 表单项 后置条件

ItemTypeEnum

支持表单类型枚举,现已支持以下类型表单。

'input' | 'textarea' | 'radio' | 'select' | 'checkbox' | 'date' | 'span' | 'button' | 'array'

ItemOptions

表单项 options。用于 select.options、radio.options

属性类型默认值必填项描述
labelstring-true表单项选项标题
valueany-true表单项选项值

BeforeConditionalType

目前仅支持计算关联表单项等于某个值的时候控制当前表单项显示隐藏。

属性类型默认值必填项描述
fromItemNamestring-true关联计算表单 item name
conditionstring-true算式:现在只支持 “=”
valuestring-true关联表单项 计算 值

⛔️ AfterConditionalType

* 🚫 此部分功能近期正在开发中,API 可能有大的改动,暂时不要使用

属性类型默认值必填项描述
fromItemNamestring-true关联计算表单 item name
conditionstring-true算式:现在只支持 “=”
valuestring-true关联表单项 计算 值

GlobalFormConfigType

表单整体全局配置属性

属性类型默认值必填项描述
formLayout'horizontal' | 'vertical'-false表单排版布局
labelColSpannumber-falselabel 所占列数
wrapperColSpannumber-falsewrapper 输入框所占列数
btnColSpannumber-falsebtnColSpan
showLabelboolean-false是否显示 label
fontSizestring-false字体大小
fontColorstring-false字体颜色
gridLayoutColsnumber-false表单整体栅格化布局,列数
disableDragGridLayoutboolean-false是否开启表单可拖拽列数开关

待办列表

  • 渲染表单类型
    • input
    • textarea
    • radio
    • select
    • checkbox
    • date
    • span
    • button
    • array
    • object
    • file
    • number
    • url
    • color
    • switch
    • sider
    • autocomplate
  • 增加前置条件
  • 增加后置条件
  • 支持表单栅格化布局

License

MIT © dahui4dev