4.5.3 • Published 13 days ago

@hi-ui/table v4.5.3

Weekly downloads
-
License
MIT
Repository
github
Last release
13 days ago

Table 表格

可容纳多种数据类型的大型数据容器,并可支持多种数据相关和表格属性设置相关的操作,具有强大的统计功能

何时使用

当需要管理一定量级的统一结构的数据记录时

当需要对一部分全部数据进行编辑、筛选过滤时

特别说明

  • 按照 React 的规范,所有的数组组件必须绑定 key。Table 组件的 data 属性的每一列也需要指定一个 key 值来表明每一行数据的唯一性。同时基于综合考虑(性能、维护性、功能间的组合性等),当没有 key 传入的时候,组件内部并不会帮您生成 key。当 key 不存在时可能会引起一系列的问题,还请注意。
  • 在进行列冻结时,一定要传入列宽(width)

Props

属性名描述类型可选值默认值
data表格数据object[]--
fieldKey指定 data 表格数据中某一属性为 keystring-'key'
columns表格列配置信息ColumnItem[]--
bordered是否显示边框(表头分组模式下,表格自带边框)booleantrue | falsefalse
sticky是否支持表头吸顶booleantrue | falsefalse
stickyTop表头吸顶距离视口顶部距离number-0
highlightedColKeys高亮列(受控)string[]-[]
expandedRender表格展开项(record: dataItem, index: number) => ReactNode | Promise--
rowExpandable设置是否允许行展开(record: dataItem ) => ReactNode | Boolean-true
onExpand表格展开时的回调函数(expanded, row: object) => void--
expandedRowKeys内嵌式表格以及树形表格展开的行number[]--
maxHeight表格最大高度,当穿过该高度时,展示滚动条且表头固定number--
fixedToColumn表格列冻结设置,为 string 时仅支持从左侧冻结至某一列string | FixedOptioncolumns 中对应的 dataKeynull
size配置表格尺寸string'lg' | 'md' | 'sm''md'
pagination表格分页配置项Pagination-null
errorRowKeys错误列(受控)string[]-[]
highlightedRowKeys高亮行(受控)string[]-[]
rowSelection行可选(受控)RowSelection-null
dataSource异步数据源(current: number) => DataSource-null
showColMenu是否支持列操作boolean-false
striped是否展示为斑马纹效果boolean-false
setting是否集成控制面板功能boolean-false
emptyContent数据为空时的展示内容string | () => ReactNode-'暂无数据'
resizable是否能够动态控制列宽booleantrue | falsefalse
standard标准模式,默认集成 showColMenu = true, sticky = true, bordered = true, setting = true, striped = truebooleantrue | falsefalse
loading加载中状态booleantrue | falsefalse
scrollWidth表格滚动的宽度(当表格总设置宽度(含自适应列)大于表格父级容器宽度时需要设置)3.7.0 版本以后,该属性不建议使用number--
showColHighlight表格某一列hover时,该列高亮booleantrue | falsefalse
draggable表格行可拖拽booleantrue | falsefalse
hiddenColKeys隐藏列(受控) (v3.9.0 新增)string[]--
onHiddenColKeysChange列隐藏设置时回调 (v3.9.0 新增)(hiddenColKeys: string[]) => void--
cellRender全局控制单元格自定义渲染,优先级低于 column 的 render 方法(text: DataItem[ColumnItemdataKey]) => ReactNode--

Event

属性名描述类型可选值默认值
onHeaderRow行标题事件处理函数(item: ColumnItem[], index: number) => object--
onLoadChildren点击异步加载子项(row: DataItem) => object[] | Promise--
onDragStart开始拖拽时触发(rowData: object) => voidrowData: 当前行的数据-
onDrop拖拽行放开时触发(dragRowData: object, dropRowData: object, data: object, level: Level) => booleanPromisedragRowData: 拖拽的行数据 dropRowData: 目标行数据 data:当前结构数据 level:当前级别数据-
onDropEnd拖拽成功时触发(dragRowData: object, dropRowData: object, data: object) => voiddragRowData: 拖拽的行数据 dropRowData: 目标行数据 data: 拖拽完成后的结构数据-

在 onLoadChildren 方法中,返回的数据中会根据 isLeaf 字符控制左侧展开按钮的显示状态

onHeaderRow 使用方法

// demo 见【行操作-标题事件处理】

<Table
  onHeaderRow={(columns, index) => {
    return {
      onClick: (event) => {}, // 点击行
      onDoubleClick: (event) => {},
      onContextMenu: (event) => {},
      onMouseEnter: (event) => {}, // 鼠标移入行
      onMouseLeave: (event) => {},
    };
  }}
/>

Type

ColumnItem

参数说明类型可选值默认值
title列标题string | () => ReactNode--
dataKey列对应数据项的唯一标识string | number--
align列对齐方式string'left' | 'right' |'center''left'
selectFilters表头的筛选菜单, 更多配置请参考 Select 组件 (v3.7.1 新增)object-null
sorter列排序函数 (v3.7.1 新增)() => boolean-null
defaultSortOrder默认排序顺序 (v3.7.1 新增)ascend | descend-null
filterIcon自定义 filter 图标 (v3.7.1 新增)ReactNode-null
filterDropdown自定义筛选菜单,此函数只负责渲染图层,需要自行编写各种交互 (v3.7.1 新增)(props: {ColumnItem, setFilterDropdownVisible}) => ReactNode-null
filterDropdownWidth自定义筛选菜单宽度 (v3.7.1 新增)number-150
filterDropdownClassName自定义筛选菜单 className (v3.7.1 新增)string--
onFilterDropdownVisibleChange自定义筛选下拉选项显示状态改变时的回调方法 (v3.7.1 新增)(filterDropdownVisible, ColumnItem) => voidtrue | falsefalse
avg该列是否支持平均值boolean-false
total该列是否支持合计boolean--
width该列宽度number--
children多级表头ColumnItem[]--
render控制单元格自定义渲染(text: DataItem[ColumnItemdataKey], row: DataItem, index: number, dataKey: string) => ReactNode--

DataSource

参数说明类型可选值默认值
url请求的 urlstring--
type请求方法stringget | postget
datapost 请求时请求体参数object--
paramsurl 查询参数object--
headers请求头object--
mode请求模式string'same-origin' | 'cors' | 'no-cors' | 'navigate''same-origin'
transformResponse成功时的回调,需要返回注入 table 的配置项(response: object) => TableConfig--

Pagination

参数说明类型可选值默认值
type分页的类型string'default' | 'simple' | 'shrink''default'
defaultCurrent默认的当前页数number-1
current当前页数number--
max最大显示的页数number-2
pageSize每页条数number-10
pageSizeOptions指定每页可以显示多少条number[]-[]
total数据总数number--
autoHide只有一页时是否隐藏分页器booleantrue | falsefalse
showJumper是否显示跳转booleantrue | falsefalse
onJump快速跳转时触发,回调值为当前页数(current: number) => void--
onChange页码改变时的回调,回调值为当前页数、之前的页数和每页条数(current: number, prev: number, pageSize: number) => void---
onPageSizeChange每页显示条数改变的回调函数,返回改变后的每页条数及当前页数(pageSize: number, current: number) => void---

FixedOption

参数说明类型可选值默认值
left表格从左侧冻结至某列stringcolumns 中对应的 dataKey-
right表格从右侧冻结至某列stringcolumns 中对应的 dataKey-

RowSelection

参数说明类型可选值默认值
selectedRowKeys选中的行(受控)string[]row 中对应的 key-
getCheckboxConfig行选择的配置项rowData => object--
onChange选中项发生变化时的回调,如果是全选操作,targetRow 将是数组结构(selectedRowKeys: string[], targetRow?: object | object[], shouldChecked?: boolean) => void--
checkboxColWidth列选择 checkbox 所在列宽度number--
checkAllOptions全选操作的配置项{ filterIcon?: React.ReactNode }--

CHANGELOG

参数变更类型变更内容解决的问题
selectFiltersdeprecated取消内嵌 Select-使用 filterDropdown 能替代满足场景
onLoadChildrenfeature必须返回数据 -> 返回 undefined 不做任何处理-强化功能:支持自定义控制更新
expandedEmbedRowKeysfeature-字段:expandRowKeys -> expandedEmbedRowKeys强化功能:支持内嵌面板独立控制
onEmbedExpandfeature字段:onExpand -> onEmbedExpand强化功能:支持内嵌面板独立控制
stickyFooterfeatureboolean强化功能:支持底部吸底
stickyFooterBottomfeature底部吸底距离视口底部距离强化功能
defaultFixedToColumnfeature1. 定义:非受控;2. 类型:对象强化功能持久化
fixedToColumnfeature1. 定义:受控;2. 类型:对象强化功能持久化
onFixedToColumnfeature1. 定义:冻结列回调;2. 类型:对象强化功能持久化
showRowHighlightfeature-强化功能受控化
sortedColKeysfeature列排序受控强化功能持久化
onSortedColKeysChangefeature列排序设置回调强化功能持久化
4.5.3

13 days ago

4.5.2

27 days ago

4.5.2-alpha.0

1 month ago

4.5.1

2 months ago

4.5.1-alpha.0

2 months ago

4.5.0

2 months ago

4.5.0-alpha.2

3 months ago

4.5.0-alpha.1

3 months ago

4.5.0-alpha.0

3 months ago

4.4.2-alpha.0

3 months ago

4.4.1

4 months ago

4.4.0

4 months ago

4.4.0-alpha.9

4 months ago

4.4.0-alpha.8

4 months ago

4.4.0-alpha.7

4 months ago

4.4.0-alpha.6

5 months ago

4.4.0-alpha.5

5 months ago

4.4.0-alpha.4

5 months ago

4.4.0-alpha.3

5 months ago

4.4.0-alpha.2

5 months ago

4.4.0-alpha.1

5 months ago

4.4.0-alpha.0

5 months ago

4.3.2

6 months ago

4.3.1

6 months ago

4.3.4

6 months ago

4.3.3

6 months ago

4.3.0

6 months ago

4.3.2-alpha.0

6 months ago

4.1.3-alpha.0

8 months ago

4.1.3-alpha.1

8 months ago

4.2.0

8 months ago

4.1.2

8 months ago

4.1.1

10 months ago

4.1.1-beta.0

12 months ago

4.1.0

1 year ago

4.1.0-beta.4

1 year ago

4.1.0-beta.5

1 year ago

4.1.0-beta.3

1 year ago

4.0.13

1 year ago

4.1.0-beta.0

1 year ago

4.1.0-beta.1

1 year ago

4.1.0-beta.2

1 year ago

4.0.12

2 years ago

4.0.11

2 years ago

4.0.5

2 years ago

4.0.7

2 years ago

4.0.6

2 years ago

4.0.9

2 years ago

4.0.8

2 years ago

4.0.10

2 years ago

4.0.0-beta.69

2 years ago

4.0.0-beta.66

2 years ago

4.0.0-beta.65

2 years ago

4.0.0-beta.68

2 years ago

4.0.0-beta.67

2 years ago

4.0.0-beta.62

2 years ago

4.0.0-beta.61

2 years ago

4.0.0-beta.64

2 years ago

4.0.0-beta.63

2 years ago

4.0.0-beta.60

2 years ago

4.0.0-beta.59

2 years ago

4.0.4

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

4.0.3

2 years ago

4.0.2

2 years ago

4.0.0-beta.58

2 years ago

4.0.0-beta.55

2 years ago

4.0.0-beta.54

2 years ago

4.0.0-beta.57

2 years ago

4.0.0-beta.56

2 years ago

4.0.0-beta.51

2 years ago

4.0.0-beta.50

2 years ago

4.0.0-beta.53

2 years ago

4.0.0-beta.52

2 years ago

4.0.0-beta.48

2 years ago

4.0.0-beta.47

2 years ago

4.0.0-beta.49

2 years ago

4.0.0-beta.44

2 years ago

4.0.0-beta.46

2 years ago

4.0.0-beta.45

2 years ago

4.0.0-beta.29

2 years ago

4.0.0-beta.43

2 years ago

4.0.0-beta.40

2 years ago

4.0.0-beta.42

2 years ago

4.0.0-beta.41

2 years ago

4.0.0-beta.37

2 years ago

4.0.0-beta.36

2 years ago

4.0.0-beta.39

2 years ago

4.0.0-beta.38

2 years ago

4.0.0-beta.33

2 years ago

4.0.0-beta.32

2 years ago

4.0.0-beta.35

2 years ago

4.0.0-beta.34

2 years ago

4.0.0-beta.31

2 years ago

4.0.0-beta.30

2 years ago

4.0.0-beta.26

2 years ago

4.0.0-beta.25

2 years ago

4.0.0-beta.28

2 years ago

4.0.0-beta.27

2 years ago

4.0.0-beta.22

2 years ago

4.0.0-beta.21

2 years ago

4.0.0-beta.24

2 years ago

4.0.0-beta.23

2 years ago

4.0.0-beta.20

2 years ago

4.0.0-beta.17

2 years ago

4.0.0-beta.19

2 years ago

4.0.0-beta.18

2 years ago

4.0.0-alpha.9

2 years ago

4.0.0-alpha.17

2 years ago

4.0.0-alpha.16

2 years ago

4.0.0-alpha.15

2 years ago

4.0.0-alpha.14

2 years ago

4.0.0-alpha.19

2 years ago

4.0.0-alpha.18

2 years ago

4.0.0-alpha.12

2 years ago

4.0.0-alpha.11

2 years ago

4.0.0-alpha.10

2 years ago

4.0.0-beta.15

2 years ago

4.0.0-beta.14

2 years ago

4.0.0-beta.16

2 years ago

4.0.0-beta.11

2 years ago

4.0.0-beta.10

2 years ago

4.0.0-beta.13

2 years ago

4.0.0-beta.12

2 years ago

4.0.0-alpha.41

2 years ago

4.0.0-alpha.40

2 years ago

4.0.0-alpha.39

2 years ago

4.0.0-alpha.38

2 years ago

4.0.0-alpha.37

2 years ago

4.0.0-alpha.36

2 years ago

4.0.0-alpha.31

2 years ago

4.0.0-alpha.30

2 years ago

4.0.0-alpha.35

2 years ago

4.0.0-alpha.34

2 years ago

4.0.0-alpha.33

2 years ago

4.0.0-alpha.32

2 years ago

4.0.0-beta.8

2 years ago

4.0.0-beta.7

2 years ago

4.0.0-beta.6

2 years ago

4.0.0-beta.5

2 years ago

4.0.0-beta.4

2 years ago

4.0.0-beta.3

2 years ago

4.0.0-beta.2

2 years ago

4.0.0-beta.1

2 years ago

4.0.0-beta.0

2 years ago

4.0.0-alpha.28

2 years ago

4.0.0-alpha.27

2 years ago

4.0.0-alpha.26

2 years ago

4.0.0-alpha.25

2 years ago

4.0.0-alpha.29

2 years ago

4.0.0-alpha.20

2 years ago

4.0.0-alpha.24

2 years ago

4.0.0-alpha.23

2 years ago

4.0.0-alpha.22

2 years ago

4.0.0-beta.9

2 years ago

4.0.0-alpha.21

2 years ago

4.0.0-alpha.7

2 years ago

4.0.0-alpha.6

2 years ago

4.0.0-alpha.5

2 years ago

4.0.0-alpha.3

2 years ago

4.0.0-alpha.4

2 years ago

4.0.0-alpha.2

2 years ago

4.0.0-alpha.1

3 years ago