Antd-Crud v1.0.0 发布,一个基于 Antd 的增删改查高级组件

Antd-Crud

一个基于 React + Ant.Design 的增删改查组件。

特征

  • 1、极轻量,只依赖于 Ant.Design 再无其他任何依赖
  • 2、支持基本的【增删改查】和【批量删除】功能
  • 3、支持搜索、自定义分页和自定义排序等功能
  • 4、支持刷新、导出 Excel、数据打印、行高设置等功能
  • 5、更多的 DIY 配置

已完成功能

  •  基本增删改查
  •  分页加载
  •  搜索面板
  •  搜索面板自动收缩
  •  批量删除
  •  数据刷新
  •  EXCEL 导出
  •  行高设置
  •  打印功能

开始使用

安装:

npm i @codeflex/antd-crud
 
代码:
function App() {

    const columns: ColumnsConfig<Account> = [
        {
            title: '姓名',
            dataIndex: 'name',
            key: 'name',
            placeholder:"请输入姓名",
            supportSearch:true,
            render: (text) => <a>{text}</a>,
        },
        {
            title: '年龄',
            dataIndex: 'age',
            key: 'age',
            supportSearch:true,
        },
        {
            title: '地址',
            dataIndex: 'address',
            key: 'address',
            supportSearch:true,
        },
        {
            title: '标签',
            key: 'tags',
            dataIndex: 'tags',
            supportSearch:true,
            render: (_, { tags }) => (
                <>
                    {tags.map((tag) => {
                        let color = tag.length > 5 ? 'geekblue' : 'green';
                        if (tag === 'loser') {
                            color = 'volcano';
                        }
                        return (
                            <Tag color={color} key={tag}>
                                {tag.toUpperCase()}
                            </Tag>
                        );
                    })}
                </>
            ),
        }
    ];


    const data: Account[] = [
        {
            key: '1',
            name: 'John Brown',
            age: 32,
            address: 'New York No. 1 Lake Park',
            tags: ['nice', 'developer'],
        },
        {
            key: '2',
            name: 'Jim Green',
            age: 42,
            address: 'London No. 1 Lake Park',
            tags: ['loser'],
        },
        {
            key: '3',
            name: 'Joe Black',
            age: 32,
            address: 'Sydney No. 1 Lake Park',
            tags: ['cool', 'teacher'],
        },
    ];

    const actions:Actions<Account> = {
        onCreate:(account)=>{
            console.log("onCreate", account);
        }
    };


    return (
        <div style={{width:"960px"}}>
            <AntdCrud columns={columns}
                      dataSource={data}
                      actions={actions}
                      pageNumber={1}
                      pageSize={10}
                      totalRow={2342}/>
        </div>
    )
}
 

ColumnConfig 类型说明:

ColumnConfig 继承了 Antd 的 Table 的 Column 的所有配置,参考:https://ant-design.antgroup.com/components/table-cn#column

在此基础上,增加了自己的配置:

  • placeholder: 搜索框和编辑页面的占位内容
  • supportSearch: 是否支持搜素
  • form: 编辑表单的 form 设置,类型为 FormConfig

FormConfig 类型说明:

type FormConfig = {
    
    // 表单类型,默认为 Input,
    // 支持:Input、InputNumber、Hidden、Radio、Checkbox、Rate、
    // Switch、DatePicker、Select、Slider、Upload
    type: string,
    
    //自定义属性,支持 antd 控件的所有属性配置
    attrs?: any,

    //验证规则,只在编辑页面起作用
    rules?: any[],
}
 

Actions 类型说明:

Actions 是用于定义 AntdCrud 组件的监听方法

Actions 定义的类型如下:

type Actions<T> = {
    //获取数据列表
    onFetchList?: (currentPage: number
        , pageSize: number
        , totalPage: number
        , searchParams: any
        , sortKey: string
        , sortType: "asc" | "desc") => void,

    //获取数据详情
    onFetchDetail?: (row: T) => T,

    //删除单条数据
    onDelete?: (row: T) => void,

    //批量删除数据
    onDeleteBatch?: (rows: T[]) => void,

    //数据更新
    onUpdate?: (row: T) => void,

    //数据创建
    onCreate?: (row: T) => void,

    //初始化搜索框的值
    onFormItemValueInit?:(key:string) => any
}
 

需要用户在 Actions 定义以上方法,用于对数据进行操作或查询。

运行演示

git clone https://gitee.com/antdadmin/antd-crud.git
cd antd-crud/example

npm install
npm run dev
 

AntdAdmin 简介

AntdAdmin 是一个以 React + Ant.Design 为基础的开源技术社群,其开源(或计划开源)的高级组件有:

  • antd-crud:一个基于 React + Ant.Design 的增删改查高级组件(已开源)。
  • antd-bpmn:一个基于 React + Ant.Design 的工作流设计组件(准备中...)。
  • antd-builder:一个基于 React + Ant.Design 的拖拽设计组件(准备中...)。

猜你喜欢

转载自www.oschina.net/news/261711/antd-crud-1-0-0-released