0.0.78 • Published 6 years ago

@alicd/crui-table v0.0.78

Weekly downloads
1
License
-
Repository
gitlab
Last release
6 years ago

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自定义类名stringN/A
style自定义内联样式objectN/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(如果有其他列设置了锁列,该锁列自动启用)objectnull
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 的时候,在内容区域会出现滚动条booleanfalse
maxBodyHeight最大内容区域的高度,在 fixedHeadertrue 的时候,超过这个高度会出现滚动条number200
hasBorder表格是否具有边框booleantrue
hasHeader表格是否具有头部booleantrue
isZebra表格是否是斑马线booleanfalse
isLoading表格是否在加载中booleanfalse
primaryKeydataSource 中数据的主键,如果给定的数据源中的属性不包含该主键,会造成选择状态全部选中stringid
filterParams当前过滤的的keys,使用此属性可以控制表格的头部的过滤选项中哪个菜单被选中,格式为 {dataIndex: {selectedKeys:[]}}示例: 假设要控制dataIndex为id的列的过滤菜单中key为one的菜单项选中<Table filterParams={{id: {selectedKeys: ['one']}}}/>objectN/A
sort当前排序的字段,使用此属性可以控制表格的字段的排序,格式为 { dataIndex: "asc" }objectN/A
expandedRowRender额外渲染行的渲染逻辑函数参数:record: object 该行所对应的数据index: number 该行所对应的序列返回值: Element 该行的内容(record: object, index: number) => ElementN/A
expandedRowKeys默认情况下展开的额外渲染行, 传入此属性为受控状态string[]N/A
onExpandedChange在额外渲染行展开或者收齐的时候触发的事件参数:expandedRowKeys: string[] 展开的渲染行的keycurrentRowKey: string 当前点击的渲染行的keyexpanded: boolean 当前点击是展开还是收起currentRecord: object 当前点击额外渲染行的记录(expandedRowKeys: string[], currentRowKey: string, expanded: boolean, currentRecord: object) => void默认不执行任何操作
expandedRowIndent额外渲染行的缩进number[][1, 0]
hasExpandedRowCtrl是否显示点击展开额外渲染行的+号按钮booleantrue
lockExpandedRowCtrl是否对额外渲染行的+号按钮启用锁列(如果有其他列设置了锁列,该锁列自动启用)booleanfalse
onExpandedRowClick点击额外渲染行触发的事件参数:record: object 该行所对应的数据index: number 该行所对应的序列e: Event DOM事件对象(record: object, index: number, e: Event) => void默认不执行任何操作
getExpandedColProps设置额外渲染行的属性() => void默认为空
isTree开启Table的tree模式, 接收的数据格式中包含children则渲染成 Tree Tablebooleanfalse
openRowKeys默认情况下展开的树形表格,传入了此属性代表tree的展开为受控操作any[]N/A
onRowOpen点击 tree 展开或者关闭的时候触发的事件参数:openRowKeys: string[] tree 模式下展开的keycurrentRowKey: string 当前点击行的keyopened: boolean 当前点击是展开还是收起currentRecord: object 当前点击行的记录(openRowKeys: string[], currentRowKey: string, currentRecord: object) => void默认不执行任何操作
indentSize在tree模式下的缩进尺寸,仅在isTree为true时候有效number12
treeArrowIndent设置在 Tree 模式下,树箭头所在的列number0
defaultExpandAll当启用树状表格模式(isTree)时,是否默认展开所有节点(并展开所有可能的新增节点)。仅在 isTreetrue 且展开不受控(不设置 openRowKeys)时有效。booleanfalse
optimization是否开启性能优化,开启了性能优化后,会自动加入 shouldComponentUpdatebooleanfalse
locale自定义国际化文案对象属性:empty: string 没有数据时的提示文案ok: string 过滤器中确认按钮文案reset: string 过滤器中重置按钮文案object{"empty": "没有数据", "ok": "确认", "reset": "重置""}
language自定义国际化语言可选值:"en-us", "zh-cn", "zh-tw"stringN/A
fixedScrollbar设为 true 时,则当表格在页面内可见,且具有横向滚动条时,保证表格的横向滚动条始终在用户可视范围内。由于 CNTable 组件默认为自适应宽度(字段内内容过多时会折行或利用 wrap 属性显示省略号),使用时请确定 CNTable 组件自身的宽度受到有效的限制。booleanfalse
getRowHighlighted设置某一行是否被高亮,如果对某一行的数据返回 true,该行将被显示为高亮状态。被高亮的行将会采用特殊的样式,被高亮的行只有样式的区别,不影响页面逻辑。(record: object, index: number) => boolean默认返回 false
useAutomaticLayout自适应布局,列宽是否自适应单元格内容长度。启用该属性后表格将采用完全不同的布局算法。booleanfalse

CNTable.Column

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

CNTable.ColumnGroup

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