1.3.1 • Published 2 years ago

@digitalzz/x-render v1.3.1

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

@digitalzz/x-render

Getting Started

Install dependencies,

npm i @digitalzz/x-render -S

or

yarn add @digitalzz/x-render

提示: 此套组件主要用于对接表单系统

Usage

import React from 'react';
import { FormRender, Generator, TableRender } from '@digitalzz/x-render/lib';

Example

Generator

Generator Attributes

参数说明类型默认值必填
creator创建者string-
createUrl创建表单的接口string-
deployUrl发布表单的接口string-
onCancel点击取消按钮function() => viod
onCallback触发 submit 的回调函数function-
showForm是否展示下方的 form 表单booleantrue
showOk是否展示确定按钮booleantrue
showCancel是否展示取消按钮booleantrue
okText确认按钮文字ReactNode确定
cancelText取消按钮文字ReactNode取消
settings配置组件object[]默认配置
widgets自定义组件onject{}
defaultValue默认的配置object{}

Generator Methods

方法名说明参数返回值
ok提交选择的表单到后端的函数,提交之前会进行校验,校验成功之后,如果添加了“create-url,deploy-url”参数且“show-form”为 true 会直接调用创建和发布接口,之后调用 callback 函数,其中的参数为发布后的服务端返回的值,如果上述三项有一项不可用则不调用接口直接执行 callback 函数,其中参数为选择的表单组件的值,其值已处理-promise

CODE

<Generator
  defaultValue={defaultValue}
  ref={ref}
  creator="sui"
  createUrl={`${apiPrefix}/form/meta/create`}
  deployUrl={`${apiPrefix}/form/meta/deploy`}
  onCallback={onCallback}
/>

FormRender

FormRender Attributes

参数说明类型默认值必填
schema表单配置数据(格式参考 form generator 中的查看 json)object-
onOk当触发 form 的 submit 时会先检验 form 的中填写是否合规,检验通过会执行 onOk 函数,入参为填写的值(object) => any-
showReset是否展示重置按钮booleantrue
showOk是否展示提交按钮booleantrue
defaultValue表单中的默认值object{}
refref.current 指向 form,可通过 ref.current.submit 或者 showOk=true 时点击‘提交’来触发 submit,其他内置属性和方法,请参考object-

FormRender Methods

方法名说明参数返回值
ref.current 指向 form请参考中的 form 方法--

CODE

...
const Example = () => {
  const ref = useRef(null);
  // 触发submit

  ...
    ref.current.submit();
  ...

  return (
    <FormRender
      onOk={onOk}
      ref={ref}
      defaultValue={defaultValue}
      schema={schema}
    />
  );
};

TableRender Attributes

参数说明类型默认值必填
hidden是否隐藏搜索栏booleanfalse
rowKey表格行 keystringid
align设置列的对齐方式left | center | rightcenter
headerTitleheaderTitlestring-
metaGetUrl根据 id 获取 meta 的接口地址string-
dataGetUrl获取 meta 中数据的地址string-
metaGetMethod根据 id 获取 meta 的请求方式get | postpost
actionRender列表中操作栏的 render 函数function(text, record, index) {}-
toolbarRender获取表中数据的接口string-
headers获取 meta 中数据的请求头object{}
handleMetaGetParams处理请求列表的入参(result, entityName)=> object-
其他该组件基于 table-render 封装,且参数实现透传,其他可参考--

TableRender Methods

ref.current 中的方法
方法名说明参数返回值
refresh刷新列表--
setTable用于修改全局状态的工具函数,setTable 之于 tableState,等同 setState 之于 state--

CODE

<TableRender
  ref={ref}
  align="center"
  actionRender={(_, record) => {
    return (
      <Space>
        <Popconfirm
          onConfirm={() => deleteItem(record)}
          title="确定要删除吗?"
          okText="是"
          cancelText="否"
        >
          <Button type="primary" danger>
            删除
          </Button>
        </Popconfirm>
        <Button
          type="primary"
          onClick={() => {
            history.push(
              `/components/form-render?formId=${history.location.query.id}&id=${record.id}&type=update`,
            );
          }}
        >
          编辑
        </Button>
      </Space>
    );
  }}
  hidden={false}
  headerTitle={entityName}
  metaGetUrl={`${baseUrl}/form/meta/get/${history.location.query.id}`}
  metaGetMethod="post"
  dataGetUrl={`${baseUrl}/form/data/query`}
  headers={{ token: '123' }}
  handleMetaGetParams={(data, entityName) => {
    setEntityName(entityName);
    return data;
  }}
/>

schema 扩展

{
  "type": "object",
  "properties": {
    "addr": {
      "title": "行政区划",
      "type": "object",
      "canSelect": false,
      "isContainer": true,
      "hideId": true,
      "properties": {
        "quxian": {
          "canSelect": false,
          "title": "区县",
          "type": "string",
          "widget": "MyCheckbox"
        },
        "jiedao": {
          "canSelect": false,
          "title": "街道",
          "type": "string",
          "dependencies": [
            "addr.quxian"
          ],
          "widget": "MyCheckbox"
        },
        "shequ": {
          "canSelect": false,
          "title": "社区",
          "type": "string",
          "widget": "MyCheckbox",
          "dependencies": [
            "addr.jiedao"
          ]
        },
        "san": {
          "canSelect": false,
          "title": "三级网格",
          "type": "string",
          "widget": "MyCheckbox",
          "dependencies": [
            "addr.shequ"
          ]
        }
      }
    }
  },
  "labelWidth": 120,
  "displayType": "row"
}
属性说名类型默认值版本
hideDelete是否隐藏删除按钮()booleanfalse1.3.0
hideCopy是否隐藏复制按钮booleanfalse1.3.0
hideMove是否隐藏拖动按钮booleanfalse1.3.0
hideId是否隐藏 id 展示booleanfalse1.3.0
canSelect是否可以选中booleantrue1.3.0
isContainer是否是容器(只在 type 为 object 中生效),为容器时会将嵌套的字段提出来booleanfalse1.3.0
1.3.1

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.1

3 years ago

1.1.3

2 years ago

1.1.2

3 years ago

1.1.0

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.0

3 years ago