Skip to content

React 中后台系统的最佳伴侣. 快速构建高质量表单和表格的 React 组件库.

License

Notifications You must be signed in to change notification settings

jaykou25/react-admin-kit

Repository files navigation

react-admin-kit

react admin kit logo

快速构建表单表格的 React 组件库

文档 (github pages)

简介

React Admin Kit (简称 RAK) 是一个基于 React 和 Ant Design 的组件库, 用于在中后台系统中快速的构建表单表格. RAK 的使用不仅能极大的提升开发效率, 而且由于其约定式的 api 还能降低后期不同开发人员的维护成本. 另外由于表单和表格都是由配置式数组生成, 使得不同页面间的表单和表格的复用变得非常简单.

为什么要有这套组件库

或者说已经有了 ProComponent 为什么还需要 RAK?

对于中后台业务系统(简称 admin 系统), ProComponent 的ProLayout, ProTable等组件已经成为了一个典范, 它们极大的方便了我们前端开发者.

然而, ProComponent 还是存在着一些问题, 或者说它总是达不到像 Antd 一样的使用体验. 究其原因, 对我而言, 是在文档的阅读和组件的选择上需要花费较多的时间成本...

我们只想把视角聚焦在两个点上, 表格(Table)和表单(Form), 也是 admin 系统中使用最多的页面结构, 以 schema 为核心把 Table 和 Form 串联起来. 并以此衍生出一些其它的组件.

如果你是 ProComponent 用户, 那大部分的 api 都可以透传给 RAK. 如果你之前未使用过 ProComponent, 那也完全可以直接通过 RAK 的用例和文档来开始使用, 渐近式的使用其它的 api.

如何使用

RAK 依赖 Antd, 所以在使用前需要先安装 Antd.

yarn add antd

安装 RAK

$ yarn add react-admin-kit

查看 组件文档 并开始使用✨.

如果要使用 antd v4 版本请看下面的注意事项👇

使用 antd v4 版本需要引入样式文件.

import 'antd/dist/antd.min.css';

由于 ProComponent 引入了 antd v5的一些组件, 比如 ColorPicker. 如果你使用 vite 打包器会在本地开发时启动报错, 可以改用 webpack 打包器来开发.

请使用 RAK < v0.4的版本, v0.4 以后只支持 antd v5.

生成表单

常规的表单是由 Form.Item 组成.

import { Form, Input, DatePicker, Select } from 'antd';

<Form onFinish={handleFinish}>
  <Form.Item label="客户名称" name="name">
    <Input />
  </Form.Item>

  <Form.Item label="合同日期" name="contractDate">
    <DatePicker />
  </Form.Item>

  <Form.Item label="支付方式" name="payType">
    <Select
      options={[
        { label: '支付宝', value: '1' },
        { label: '微信', value: '2' },
      ]}
    />
    ;
  </Form.Item>
</Form>;

RAK 通过 schemas 生成表单, 一个 schema 对应一个 Form.Item.

import { SchemaForm } from 'react-admin-kit';

const columns = [
  {
    title: '客户名称',
    dataIndex: 'name',
  },
  {
    title: '合同日期',
    dataIndex: 'contractDate',
    valueType: 'date',
  },
  {
    title: '支付方式',
    dataIndex: 'payType',
    valueType: 'select',
    fieldProps: {
      options: [
        { label: '支付宝', value: '1' },
        { label: '微信', value: '2' },
      ],
    },
  },
];

// 具体请参考各组件文档
const Demo = () => {
  return <SchemaForm columns={columns} onFinish={handleFinish} />;
};

生成表格

import { ProTable } from 'react-admin-kit';

// 具体请参考各组件文档
const Demo = () => {
  return <ProTable columns={columns} />;
};

核心组件介绍

RAK 只有 3 个核心组件, 并且它们是组合的关系:

  • SchemaForm - JSON表单: SchemaForm
  • ModalForm - 弹窗表单: Modal + SchemaForm
  • ProTable - 高级表格: ProTable + ModalForm

所以组件间的属性是可以透传的. 比如在ModalForm组件中就可以透传SchemaForm的属性. 在ProTable组件中可以透传ModalSchemaForm的属性. 具体可以参见各组件的文档说明.

项目依赖

{
  "@ant-design/pro-form": "~2.25.0",
  "@ant-design/pro-table": "~3.15.0",
  "@ant-design/pro-utils": "~2.15.0",
}

// peerDependency
{
  "antd": ">=4.23.4",
}

推荐使用 antd v5.