概述

如果用 react 开发前端, 建议基于 antd pro 来开发, antd pro 是 antd 的增强版, antd 是组件库, antd pro 则是前端框架, 基于 antd pro, 创建工程时不用再考虑:

  1. 路由的设置, 以及和菜单的联动
  2. 面包屑和路由的联动
  3. 发布打包的方法
  4. 工程 lint
  5. 后端 API 访问方式
  6. 页面状态的管理
  7. … …

总之, 对于管理类型的应用, 基于 antd pro, 可以更多的关注自己的业务, 而不用在工程的管理上花费多余的时间. 在 antd pro 的官网上, 有它的使用方式, 这里主要介绍 antd pro 中的一个组件 antd pro table 的使用

antd pro table

antd pro 中的大部分组件来自于 antd , 而 antd pro table 则是基于 antd 的 table 组件再封装了一层, 熟练使用 antd pro table, 能够覆盖大部分增删改查业务的需要, 关键是只需要极少的配置, 就能得到一个完善的表格.

antd pro table 的主要部分

如下图:

  1. 绿色框内: 具体表格内容, 包含分页
  2. 红色框内: 检索部分, 通过 column 的配置自动生成的
  3. 黄色框内: 表格的工具栏, 通过配置 toolBarRender 定义其中的按钮
  4. 蓝色框内: 对表格数据进行多选操作时显示的信息

表格显示的配置(绿色框内)

ProTable 组件有个 request 的 props, 这个 prop 就是用来配置表格数据的来源, 一般会关联后端一个 API

  1. 1 <ProTable
  2. 2 headerTitle="查询表格"
  3. 3 columns={columns}
  4. 4 request={(params) => queryTableData(params)}
  5. 5 />

其中 queryTableData 一般会访问后端的 API, 然后返回 json 格式数据, 返回的数据和表格对应是根据表格的 columns 配置

  1. 1 const columns = [
  2. 2 {
  3. 3 title: '规则名称',
  4. 4 dataIndex: 'name',
  5. 5 },
  6. 6 {
  7. 7 title: '描述',
  8. 8 dataIndex: 'desc',
  9. 9 },
  10. 10 {
  11. 11 title: '服务调用次数',
  12. 12 dataIndex: 'callNo',
  13. 13 sorter: true,
  14. 14 renderText: (val) => `${val} 万`,
  15. 15 },
  16. 16 {
  17. 17 title: '状态',
  18. 18 dataIndex: 'status',
  19. 19 valueEnum: {
  20. 20 0: {
  21. 21 text: '关闭',
  22. 22 status: 'Default',
  23. 23 },
  24. 24 1: {
  25. 25 text: '运行中',
  26. 26 status: 'Processing',
  27. 27 },
  28. 28 2: {
  29. 29 text: '已上线',
  30. 30 status: 'Success',
  31. 31 },
  32. 32 3: {
  33. 33 text: '异常',
  34. 34 status: 'Error',
  35. 35 },
  36. 36 },
  37. 37 },
  38. 38 {
  39. 39 title: '上次调度时间',
  40. 40 dataIndex: 'updatedAt',
  41. 41 sorter: true,
  42. 42 valueType: 'dateTime',
  43. 43 },
  44. 44 {
  45. 45 title: '操作',
  46. 46 dataIndex: 'option',
  47. 47 valueType: 'option',
  48. 48 render: (_, record) => (
  49. 49 <>
  50. 50 <a
  51. 51 onClick={() => {
  52. 52 handleUpdateModalVisible(true);
  53. 53 setStepFormValues(record);
  54. 54 }}
  55. 55 >
  56. 56 配置
  57. 57 </a>
  58. 58 <Divider type="vertical" />
  59. 59 <a href="">订阅警报</a>
  60. 60 </>
  61. 61 ),
  62. 62 },
  63. 63 ];

column 的 dataIndex 对应返回 json 数据中的 key

检索的配置(红色框内)

是否显示检索部分

  1. 1 <ProTable
  2. 2 headerTitle="查询表格"
  3. 3 search={false}
  4. 4 />

配置成 false 就不会显示 检索部分, 对于某些数据量不大的表格, 可以直接不显示这部分

检索的内容是如何生效的

ProTable 组件有个 request 的 props, 这个 prop 就是用来配置表格数据的来源, 一般会关联后端一个 API

  1. 1 <ProTable
  2. 2 headerTitle="查询表格"
  3. 3 columns={columns}
  4. 4 request={(params) => queryTableData(params)}
  5. 5 />
  • request 中的 params 参数中就包含了分页的信息, 以及检索条件, 点击 检索按钮, 会通过 request 中的方法再次加载 table 数据
  • column 中的 valueType 配置会改变检索部分中的 DOM, 比如 valueType 是'dateTime', 在检索部分会显示成 日期控件
  • column 也可以通过配置 hideInSearch, 使其不显示在 检索部分

工具栏的配置(黄色框内)

  1. 1 <ProTable
  2. 2 headerTitle="查询表格"
  3. 3 toolBarRender={(action, { selectedRows }) => [
  4. 4 <Button icon={<PlusOutlined />} type="primary" onClick={() => handleModalVisible(true)}>
  5. 5 新建
  6. 6 </Button>,
  7. 7 selectedRows && selectedRows.length > 0 && (
  8. 8 <Dropdown
  9. 9 overlay={
  10. 10 <Menu
  11. 11 onClick={async (e) => {
  12. 12 if (e.key === 'remove') {
  13. 13 await handleRemove(selectedRows);
  14. 14 action.reload();
  15. 15 }
  16. 16 }}
  17. 17 selectedKeys={[]}
  18. 18 >
  19. 19 <Menu.Item key="remove">批量删除</Menu.Item>
  20. 20 <Menu.Item key="approval">批量审批</Menu.Item>
  21. 21 </Menu>
  22. 22 }
  23. 23 >
  24. 24 <Button>
  25. 25 批量操作 <DownOutlined />
  26. 26 </Button>
  27. 27 </Dropdown>
  28. 28 ),
  29. 29 ]}
  30. 30 request={(params) => {
  31. 31 return queryRule(params);
  32. 32 }}
  33. 33 columns={columns}
  34. 34 rowSelection={{}}
  35. 35 />
  • toolBarRender 用来设置工具栏的按钮及其事件
  • 工具栏最右边的 4 个图标(密度, 全屏, 刷新, 列设置), 可以设置 table 的显示方式, 可以通过 options 来配置其是否显示
  • rowSelection 用来控制表格是否可以多选

表格操作信息(蓝色框内)

当表格中的数据可以多选时, 才会有这部分的信息显示

强大的table组件-antd pro table的更多相关文章

  1. antd pro table中的文件上传

    概述 示例代码 列表页面 form 页面 model.js service.js 总结 概述 项目中经常会遇到在表格中展示图片的需求(比如展示用户信息时, 有一列是用户的头像). antd pro t ...

  2. React中使用Ant Table组件

    一.Ant Design of React http://ant.design/docs/react/introduce 二.建立webpack工程 webpack+react demo下载 项目的启 ...

  3. Ant Table组件

    http://www.cnblogs.com/hujunzheng/p/5689650.html React中使用Ant Table组件   v一.Ant Design of React http:/ ...

  4. iview修改table组件实现循环向上滚屏

    前提,最近项目中需要实现table的滚屏效果,并且使用的是iview的table组件,踩坑,填坑如下. 1.首先找到Table组件中的table,就是这个class:ivu-table-body te ...

  5. jasper使用table组件设计复杂的表头

    1.1 设计报表模板 1.1.1 新建模板DemoReport5.jrxml,去掉不需要的Band,保留Title,Page Header,Detail 1 , PageFooter.将组件Table ...

  6. 使用 antd Table组件, 异步获取数据

    使用React.js + Redux + antd 制作CMS 后台内容管理系统,分享一点点积累,欢迎讨论. 在this.state中初始化数据: this.state = { pageNum:1, ...

  7. 解决react使用antd table组件固定表头后,表头和表体列不对齐以及配置fixed固定左右侧后行高度不对齐

    一.固定表头后表体列和表头不对齐 此问题可能在antd3.24.0版本之前都存在,反正3.16.2版本是存在这个问题的,如果是3.24.0之前的版本估计只能通过修改css样式解决. 按照官网说的: 1 ...

  8. 封装react antd的表格table组件

    封装组件是为了能在开发过程中高度复用功能和样式相似的组件,以便我们只关注于业务逻辑层的处理,提高开发效率,提高逼格,降低代码重复率,降低劳动时间,减少加班的可能. 本次组件的封装采用了函数式组件即无状 ...

  9. react中使用antd Table组件滚动加载数据的实现

    废话不多说,直接上代码.一目了然. import React, { Component } from "react"; import { Table } from "an ...

随机推荐

  1. OpenvSwitch系列之六 vlan隔离

    局域网游戏代表:红色警戒 Open vSwitch系列之一 Open vSwitch诞生 Open vSwitch系列之二 安装指定版本ovs Open vSwitch系列之三 ovs-vsctl命令 ...

  2. 「查缺补漏」巩固你的Nginx知识体系

    Nginx篇 基本介绍 Nginx是一款轻量级的 Web服务器 / 反向代理服务器 / 电子邮件(IMAP/POP3)代理服务器,主要的优点是: 支持高并发连接,尤其是静态界面,官方测试Nginx能够 ...

  3. 关于非标准json格式转变为json对象

    eval('(' + tempData + ')') 只需要这一句

  4. Idea没安装几款好用的插件,怎么风骚的写代码???

    ​ 工欲善其事,必先利其器,好的工具可以提升我们的开发效率,越来越多的Java程序员从Eclipse转到了Jetbrains家的Idea.今天给大家介绍的是我常用的十几款Idea必装的插件. ​ Ti ...

  5. get、post请求方式在jmeter中使用步骤

    jmeter:性能测试工具,压测 一.jmeter工具测试接口时使用步骤: 1.测试计划右键--添加--Threads(Users)--线程组(线程数就是并发数) 2.线程组右键--Sampler-- ...

  6. Debian、kali类虚拟机网络设置

    Linux发行版分类 先说一下Linux发行版的分类,因为不同的发行版,各自设置的网络的方式就不相同, - 我常用的Linux发行版 -- Debian --- debian --- ubuntu - ...

  7. 4.Scala语法02 - 函数

  8. Jackson精解第4篇-@JacksonInject与@JsonAlias注解

    Jackson是Spring Boot(SpringBoot)默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的, ...

  9. 使用jpa的注意事项

    @Transactional 事务注解 nativeQuery = true表示使用写的sql,不是HQL@Modifying 注解完成修改操作使用jap时,在实体类的类名上面加上 @Entity@T ...

  10. 简述application.properties和application.yml 以及 @ConfigurationProperties 和@PropertySource @Value 和@ImportResource的用法,区别

    问题: 如何在application.properties和application.yml中配置String,Date,Object,Map,List类型的属性,并且idea能提示 先写一个Perso ...