1.1.2 • Published 3 years ago

@aligov/components-gov-table v1.1.2

Weekly downloads
14
License
MIT
Repository
github
Last release
3 years ago

govtable

@aligov/components-gov-table

数政业务table


扩展 @alifd/next 的 table,增加如自定义列和 action bar 等功能

Install

tnpm i @aligov/components-gov-table -S

普通使用

可以使用 fusion table 的写法来实现其原支持的所有功能,如:

<Table hasBorder dataSource={dataSource}>
  <Table.Column title="Id" dataIndex="id"/>
  <Table.Column title="Time" dataIndex="time" cell={renderTime}/>
</Table>

扩展用法

扩展用法不能直接使用 <Table.Column /> 的方式来生命列,需要使用 columns prop 来配置列,这个属性实际就是列属性的数组, 更多配置参考 Table.Column 的 prop。

属性说明类型默认值
columns配置表格列,数组中的每一项的基本和 Table.Column 的一致Array
showColumnPicker是否展示自定义列booleanfalse
columnPickerStorageKey设定 key 来支持保存到 localStorage 中,建议使用 'page.module' 的形式string''
actionBar表格上方的操作栏内容,填写任何合法的 react 元素ReactNodenull
supportFullscreenTODO: 表格支持全屏展示booleanfalse
verticalAlign单元格垂直方向的对其方式,支持 baseline、top、middle 和 bottomstring'top'
style给最外层元素添加样式object{}
className给最外层元素添加 class 属性string''

columns

columns 用来配置表格列。

columns: Array<ColumnConfig>

ColumnConfig 是每一列的属性配置,基本上和 <Table.Column /> 上的 prop 一致,所以下面只列出比较特殊的属性。

属性说明类型默认值
keycolumn 的 key 属性,供 react 区分使用string
group表明是 Table.ColumnGroup 元素,同时作为 group 的 titlestring
groupHeader表明是 Table.GroupHeader 元素boolean
groupFooter表明是 Table.GroupFooter 元素boolean
type用来简化常用的类型的字段的渲染,如日期、时间、金钱可选值'id', 'money', 'date', 'datetime'Enum
children主要是配合 group 来达到多表头 的目的Array

获取 key 的优先级是 key > title > dataIndex > group

不同 type 下的渲染

如果有 dataIndex 属性,有 type 属性,切无 cell 属性,那么会根据 type 来做渲染。如果 type 不在枚举里,那么不做任何变更。

id

渲染结果包在 span.cell-nowrap 里,不折行。

money

配合对应行数据里的 currency 字段来格式化金钱为形如 123,456.78 (CNY) 的形式,格式化使用的工具是 @alife/whale-util 里提供的 formatAmount(value, currency, config)

渲染结果包在 span.cell-money 元素里,不折行。

额外配合属性:

  • appendCurrency: {boolean},用来控制展示结果是否添加形如 (CNY) 的后缀。默认情况下,不是空字符串且有 currency 字段值,将自动添加后缀。如果需要禁用,显示地设置 appendCurrency: false
date / datetime

typedatedatetime 的区别是默认的时间格式化方式,前者是 YYYY-MM-DD,后者是 YYYY-MM-DD HH:mm:ss,都可通过 format 属性来取代默认的格式化方式。

渲染结果包在 span.cell-datetime 元素里,不折行。

额外配合属性:

  • format: {string},取代默认的格式化方式,合法的格式化字符串参考 momentjs#format

enum

适用于对于一系列选择类型的枚举值,接口返回的是值,但需要展示为可读文案,这个方法用于简化这种情况的渲染。

额外配合属性:

  • enums: {Array},数据源,默认要求数组元素的格式至少包含 { label, value },其中 label 是文案,value 是模型的值。如果不是这种命名,那么需要配置 labelKeyvalueKey
  • labelKey: 数据源中表示文案的 key
  • valueKey: 数据源中表示值的 key