@alicd/crui-table

0.0.78 • Public • Published

category: Components type: UI Views component: Base chinese: 表格 english: CNTable

表格组件,基于 next 的 Table 组件,封装若干业务需要的功能。

规则

关于 primaryKey 属性的说明

原则上表格组件中显示的每一条数据需要一个唯一标识的 key(类似数据库中的 Primary Key),见 primaryKey 属性,默认为每条数据的 id 字段,如果数据中没有该要求,需要对应更改 primaryKey 属性。primaryKey 用于表格组件内部状态的维护,及在 rowSelectionexpandedRowopenRowKeys 等功能中标识每一条数据等。简单的数据展示一般无需 primaryKey,但是若涉及到更加复杂的功能则需要配置。

API

CNTable

成员 说明 类型 默认值
prefix 样式类名的品牌前缀 string "next-"
className 自定义类名 string N/A
style 自定义内联样式 object N/A
dataSource 表格展示的数据源 any[] [ ]
rowSelection 是否启用选择模式

属性:
getProps: (record: object) => object 获取selection的默认属性(支持禁用隐藏选择框)
onChange: (selectedRowKeys: string[], records: object[]) => void 选择改变的时候触发的事件,注意: 其中 records 参数只会包含当前 dataSource 的数据,很可能会小于 selectedRowKeys 的长度。
onSelect: (selected: boolean, record: object, records: object[]) => void 用户手动选择/取消选择某行的回调
onSelectAll: (selected: boolean, records: object) => void 用户手动选择/取消选择所有行的回调
selectedRowKeys: string[] 设置了此属性,将 rowSelection 变为受控状态,接收值为该行数据的 primaryKey 的值
mode: string 选择selection的模式,可选值为 "single", "multiple",默认为 "multiple"
lock: boolean 是否对选框列启用锁列,默认为 false(如果有其他列设置了锁列,该锁列自动启用)
object null
onRowClick 点击表格每一行触发的事件

参数:
record: object 该行所对应的数据
index: number 该行所对应的序列
e: Event DOM事件对象
(record: object, index: number, e: Event) => void 默认不执行任何操作
onRowMouseEnter 悬浮在表格每一行的时候触发的事件

参数:
record: object 该行所对应的数据
index: number 该行所对应的序列
e: Event DOM事件对象
(record: object, index: number, e: Event) => void 默认不执行任何操作
onRowMouseLeave 离开表格每一行的时候触发的事件

参数:
record: object 该行所对应的数据
index: number 该行所对应的序列
e: Event DOM事件对象
(record: object, index: number, e: Event) => void 默认不执行任何操作
onSort 点击列排序触发的事件

参数:
dataIndex: string 指定的排序的字段
order: string 排序对应的顺序, 有 "desc""asc" 两种
(dataIndex: string, order: string) => void 默认不执行任何操作
onFilter 点击过滤确认按钮触发的事件

参数:
filterParams: object 过滤的字段信息
(filterParams: object) => void 默认不执行任何操作
getRowClassName 设置每一行的样式名称

参数:
record: object 该行所对应的数据
index: number 该行所对应的序列
返回值: string 需要设置的样式名称
(record: object, index: number) => string 默认为空
getRowProps 设置每一行的属性,如果返回值和其他针对行操作的属性冲突则无效。

参数:
record: object 该行所对应的数据
index: number 该行所对应的序列
返回值: object 需要设置的行属性
(record: object, index: number) => object 默认为空
getCellProps 设置单元格的属性,通过该属性可以进行合并单元格

参数:
rowIndex: number 该列所对应的序列
colIndex: number 该行所对应的序列
record: object 该行对应的记录
返回值: object 返回td元素的所支持的属性对象
(rowIndex: number, colIndex: number, record: object) => object 默认为空
fixedHeader 表头是否固定,该属性配合 maxBodyHeight 使用,当内容区域的高度超过 maxBodyHeight 的时候,在内容区域会出现滚动条 boolean false
maxBodyHeight 最大内容区域的高度,在 fixedHeadertrue 的时候,超过这个高度会出现滚动条 number 200
hasBorder 表格是否具有边框 boolean true
hasHeader 表格是否具有头部 boolean true
isZebra 表格是否是斑马线 boolean false
isLoading 表格是否在加载中 boolean false
primaryKey dataSource 中数据的主键,如果给定的数据源中的属性不包含该主键,会造成选择状态全部选中 string id
filterParams 当前过滤的的keys,使用此属性可以控制表格的头部的过滤选项中哪个菜单被选中,格式为 {dataIndex: {selectedKeys:[]}}
示例: 假设要控制dataIndex为id的列的过滤菜单中key为one的菜单项选中<Table filterParams={{id: {selectedKeys: ['one']}}}/>
object N/A
sort 当前排序的字段,使用此属性可以控制表格的字段的排序,格式为 { dataIndex: "asc" } object N/A
expandedRowRender 额外渲染行的渲染逻辑函数

参数:
record: object 该行所对应的数据
index: number 该行所对应的序列
返回值: Element 该行的内容
(record: object, index: number) => Element N/A
expandedRowKeys 默认情况下展开的额外渲染行, 传入此属性为受控状态 string[] N/A
onExpandedChange 在额外渲染行展开或者收齐的时候触发的事件

参数:
expandedRowKeys: string[] 展开的渲染行的key
currentRowKey: string 当前点击的渲染行的key
expanded: boolean 当前点击是展开还是收起
currentRecord: object 当前点击额外渲染行的记录
(expandedRowKeys: string[], currentRowKey: string, expanded: boolean, currentRecord: object) => void 默认不执行任何操作
expandedRowIndent 额外渲染行的缩进 number[] [1, 0]
hasExpandedRowCtrl 是否显示点击展开额外渲染行的+号按钮 boolean true
lockExpandedRowCtrl 是否对额外渲染行的+号按钮启用锁列(如果有其他列设置了锁列,该锁列自动启用) boolean false
onExpandedRowClick 点击额外渲染行触发的事件

参数:
record: object 该行所对应的数据
index: number 该行所对应的序列
e: Event DOM事件对象
(record: object, index: number, e: Event) => void 默认不执行任何操作
getExpandedColProps 设置额外渲染行的属性 () => void 默认为空
isTree 开启Table的tree模式, 接收的数据格式中包含children则渲染成 Tree Table boolean false
openRowKeys 默认情况下展开的树形表格,传入了此属性代表tree的展开为受控操作 any[] N/A
onRowOpen 点击 tree 展开或者关闭的时候触发的事件

参数:
openRowKeys: string[] tree 模式下展开的key
currentRowKey: string 当前点击行的key
opened: boolean 当前点击是展开还是收起
currentRecord: object 当前点击行的记录
(openRowKeys: string[], currentRowKey: string, currentRecord: object) => void 默认不执行任何操作
indentSize 在tree模式下的缩进尺寸,仅在isTree为true时候有效 number 12
treeArrowIndent 设置在 Tree 模式下,树箭头所在的列 number 0
defaultExpandAll 当启用树状表格模式(isTree)时,是否默认展开所有节点(并展开所有可能的新增节点)。仅在 isTreetrue 且展开不受控(不设置 openRowKeys)时有效。 boolean false
optimization 是否开启性能优化,开启了性能优化后,会自动加入 shouldComponentUpdate boolean false
locale 自定义国际化文案对象

属性:
empty: string 没有数据时的提示文案
ok: string 过滤器中确认按钮文案
reset: string 过滤器中重置按钮文案
object {"empty": "没有数据", "ok": "确认", "reset": "重置""}
language 自定义国际化语言

可选值:"en-us", "zh-cn", "zh-tw"
string N/A
fixedScrollbar 设为 true 时,则当表格在页面内可见,且具有横向滚动条时,保证表格的横向滚动条始终在用户可视范围内。由于 CNTable 组件默认为自适应宽度(字段内内容过多时会折行或利用 wrap 属性显示省略号),使用时请确定 CNTable 组件自身的宽度受到有效的限制。 boolean false
getRowHighlighted 设置某一行是否被高亮,如果对某一行的数据返回 true,该行将被显示为高亮状态。被高亮的行将会采用特殊的样式,被高亮的行只有样式的区别,不影响页面逻辑。 (record: object, index: number) => boolean 默认返回 false
useAutomaticLayout 自适应布局,列宽是否自适应单元格内容长度。启用该属性后表格将采用完全不同的布局算法。 boolean false

CNTable.Column

成员 说明 类型 默认值
dataIndex 指定列在 dataSource 每一项中对应的字段,支持 a.b 形式的快速取值 string N/A
cell 该列单元格内容渲染的逻辑。其中参数 record 为该行所对应的 dataSource 中的项,index 为当前行的索引(在 dataSource 中是第几项),valuedataSource[index][dataIndex] 的值,相当于不写 cell 时,单元格将会渲染的内容。 Element(value: any, index: number, record: any) => Element 默认返回 value,即 dataIndex 指定的值
title 该列表头显示的内容 Element() => Element "column"
sortable 是否支持排序 boolean false
width 在锁列的情况下需要配置的宽度 number N/A
align 单元格中内容的对齐方式。可选值:"left", "center", "right" "left""center""right" N/A
filters 生成标题过滤的菜单, 格式为 [{ label: "xxx", value:"xxx" }] object[] N/A
filterMode 过滤的模式是单选还是多选可选值:"single", "multiple" "single""multiple" "multiple"
lock 是否支持锁列,可选值为 "left","right", true true"left""right" N/A
wrap 单元格内容超出列宽时是否自动换行,设为 false 则在一行内展示,并使用省略号代替未显示的部分 string true
titleTooltip 该列表头的提示信息 string N/A
contentTooltip 鼠标悬浮在本列单元格上,是否弹出全部信息的弹层。为 "overflow-only" 时,只在内容较长被省略号省略(wrap={false})时才显示。 boolean"overflow-only" false
copy 鼠标悬浮在本列单元格上,是否弹出复制弹层 boolean false
onBeforeCopy 执行复制操作时获取复制内容的逻辑,返回值将被复制到剪贴板,参数的意义同 cell 相同。 (value: any, index: number, record: any) => string 默认返回 value 参数
onCopy 复制操作完成后的回调,第一个 value 参数是实际复制到剪贴板中的字符串值,其他参数的意义同 cell 属性相同。 (value: string, index: number, record: any) => void false
clickToSelectRow 点击该列中的单元格后是否选中该行,启用后可使得用户的选择操作更加方便 boolean false
onClick 该列中单元格的点击回调函数,参数的意义同 cell 属性相同。 (value: any, index: number, record: any) => void N/A
minWidth (仅在自适应布局下有效)该列的最小列宽,仅支持以 px 为单位的绝对长度 number N/A
greedy (仅在自适应布局下有效)在不 wrap 的情况下是否尽量撑开列宽,设置为 true 则该列会拉伸以使单元格内所有文字能在单行内显示,列宽最大值为 maxWidth,内容超出则折行 boolean false
maxWidth (仅在自适应布局下有效)该列的最大列宽,仅支持以 px 为单位的绝对长度 number N/A
autoMinWidth (仅在自适应布局下有效)为 true 时,根据 title 自适应最小宽度,此时 minWidth 属性无效 boolean false

CNTable.ColumnGroup

成员 说明 类型 默认值
title 表头显示的内容 Element() => Element "column-group"

Readme

Keywords

none

Package Sidebar

Install

npm i @alicd/crui-table

Weekly Downloads

3

Version

0.0.78

License

none

Unpacked Size

8.6 MB

Total Files

70

Last publish

Collaborators

  • snowden_
  • vincent.ljq
  • zhen.hz
  • cismous
  • juntao.wjt
  • xiongqi
  • mingche_286130
  • joshuasui
  • mmpc
  • 0little
  • yf871020
  • zyy7259
  • later_7
  • qijian1990
  • gepik
  • jimmyxuster
  • helloljq
  • rentj1
  • js8zq332
  • xiaobc