UNPKG

@aliretail/react-materials-components

Version:
135 lines (114 loc) 7.23 kB
--- title: Tablex-API order: 3 category: UI description: 表格解决方案 screenshot: https://gw.alicdn.com/imgextra/i2/O1CN01yW3hCD1M8CnqeKFlq_!!6000000001389-2-tps-90-90.png --- # API > API 规范:遵循 《中后台物料规范》,仅 Table 的所有 props 可在 API 一级传入,其他组装组件的 props 皆以 '真实组件名+props' 的命名形式传入,例: paginationProps > 真实组件名规则为所有调用的组件名去除 AliretailTable 前缀后的名字,例如 AliretailTableActionBar 的 props 为 actionBarProps > 可通过组件直接传入 props 的方式来覆盖 Provider 传入的属性,不过此 props 无法在其他组件调用到 ## 额外实现 AliretailTable > 完全拓展 Table,可使用 Table 的所有 props | 参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|--------|--------------|--------|-----------------------------------| | columns | 列配置 | 否 | columnItem[] | [] | | | stickyLock | 启用后使用 Table.StickyLock | 否 | boolean | false | | | resizable | 列宽拖拽功能 | 否 | boolean | false | 不可使用 fusion 的 onResizeChange | | rowSelection | 属性: getProps: {Function} Function(record, index)=>Object 获取selection的默认属性 、onChange: {Function} Function(selectedRowKeys:Array, records:Array) 选择改变的时候触发的事件,注意: 其中records只会包含当前dataSource的数据,很可能会小于selectedRowKeys的长度。 、 onSelect: {Function} Function(selected:Boolean, record:Object, records:Array) 用户手动选择/取消选择某行的回调 、onSelectAll: {Function} Function(selected:Boolean, records:Array) 用户手动选择/取消选择所有行的回调 、 selectedRowKeys: {Array} 设置了此属性,将rowSelection变为受控状态,接收值为该行数据的primaryKey的值 、mode: {String} 选择selection的模式, 可选值为single, multiple,默认为multiple 、 columnProps: {Function} Function()=>Object 选择列 的props,例如锁列、对齐等,可使用Table.Column 的所有参数 、titleProps: {Function} Function()=>Object 选择列 表头的props,仅在 multiple 模式下生效 、titleAddons: {Function} Function()=>Node 选择列 表头添加的元素,在single multiple 下都生效 、selectedTooltip: {boolean} 默认在rowSelection 存在出现用于展示已选择x项,设置为false不生效 | 否 | object | | | | AliretailTableSetting > 用于“自定义列”、“列排序”等功能,自定义参数名 settingProps | 参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 | |-----------------|--------------------------|------|--------------------|--------|------| | setting | 当前设置值,用于受控模式 | 否 | array | | | | onSettingChange | 当设置改变时触发 | 否 | (newSetting) => {} | | | AliretailTableZebra > 用于切换表格是否为斑马线模式,暂无 API AliretailTableCompact > 用于切换表格是否为紧凑模式,暂无 API AliretailTableFullscreen > 用于切换当前 Table 是否全屏, 暂无 API types ``` type columnItem = { /** * 指定列对应的字段,支持a.b形式的快速取值 */ dataIndex?: string; /** * 行渲染的逻辑 */ cell?: (value: any, index: number, record: any) => void | React.ReactNode; /** * 表头显示的内容 */ title?: React.ReactNode; /** * 当设定 group,表明此为父子表头的父表头,值会作为父表头标题存在 */ group?: React.ReactNode; /** * 设定 group 后,children作为子表头的值存在 */ children?: columnItem[]; /** * 写到 header 单元格上的title属性 */ htmlTitle?: string; /** * 列宽,注意在锁列的情况下一定需要配置宽度 */ width?: number | string; /** * header cell 横跨的格数,设置为0表示不出现此 th */ colSpan?: number; /** * 单元格的对齐方式 */ align?: 'left' | 'center' | 'right'; /** * 单元格标题的对齐方式, 不配置默认读取align值 */ alignHeader?: 'left' | 'center' | 'right'; /** * 生成标题过滤的菜单, 格式为`[{label:'xxx', value:'xxx'}]` */ filters?: Array<any>; /** * 过滤的模式是单选还是多选 */ filterMode?: 'single' | 'multiple'; /** * 是否支持锁列,可选值为`left`,`right`, `true` */ lock?: boolean | string; /** * 是否支持排序 */ sortable?: boolean; /** * 预制的一些常见配置 */ type?: 'id' | 'money' | 'currency' | 'datetime' | 'date' | 'phone' | 'ou' | 'bankCard'; /** * 预置配置的特殊设置 */ formatConfig?: Record<string, any>; }; ``` 预制配置 > 使用请参考demo的"列情况枚举",部分预置配置存在可设置的部分, 配置统一在 formatConfig 传入 money > 配合对应行数据里的 currency 字段来格式化金钱为形如 123,456.78 (CNY) 的形式,格式化使用的工具是 @alife/whale-util 里提供的 formatAmount(value, currency, config)。 | 参数名 | 说明 | 默认值 | |-----------------|--------------|--------| | currencyVisible | 是否显示币种 | true | date/datetime > type 为 date 或 datetime 会将传入的时间字段自动格式化,区别是默认的时间格式化方式,date 是 YYYY-MM-DD,datetime 是 YYYY-MM-DD HH:mm:ss,都可通过 format 属性来取代默认的格式化方式。 | 参数名 | 说明 | 默认值 | |--------|----------------|----------------------------------| | format | 时间格式化格式 | YYYY-MM-DD / YYYY-MM-DD HH:mm:ss |