update table doc
							parent
							
								
									5d2271a131
								
							
						
					
					
						commit
						5169b62458
					
				|  | @ -36,48 +36,60 @@ const columns = [{ | |||
| | Property | Description | Type | Default | | ||||
| | -------- | ----------- | ---- | ------- | | ||||
| | bordered | Whether to show all table borders | boolean | `false` | | ||||
| | columns | Columns of table | [ColumnProps](https://git.io/vMMXC)\[] | - | | ||||
| | columns | Columns of table | array | - | | ||||
| | components | Override default table elements | object | - | | ||||
| | dataSource | Data record array to be displayed | any\[] | - | | ||||
| | defaultExpandAllRows | Expand all rows initially | boolean | `false` | | ||||
| | defaultExpandedRowKeys | Initial expanded row keys | string\[] | - | | ||||
| | expandedRowKeys | Current expanded row keys | string\[] | - | | ||||
| | expandedRowRender | Expanded container render for each row | Function(record):ReactNode | - | | ||||
| | expandedRowRender | Expanded container render for each row | Function(record):VNode\|slot-scope | - | | ||||
| | expandRowByClick | Whether to expand row by clicking anywhere in the whole row | boolean | `false` | | ||||
| | footer | Table footer renderer | Function(currentPageData) |  | | ||||
| | footer | Table footer renderer | Function(currentPageData)\|slot-scope |  | | ||||
| | indentSize | Indent size in pixels of tree data | number | 15 | | ||||
| | loading | Loading status of table | boolean\|[object](https://ant.design/components/spin-cn/#API) ([more](https://github.com/ant-design/ant-design/issues/4544#issuecomment-271533135)) | `false` | | ||||
| | locale | i18n text including filter, sort, empty text, etc | object | filterConfirm: 'Ok' <br> filterReset: 'Reset' <br> emptyText: 'No Data' <br> [Default](https://github.com/ant-design/ant-design/issues/575#issuecomment-159169511) | | ||||
| | pagination | Pagination [config](/components/pagination/), hide it by setting it to `false` | object |  | | ||||
| | loading | Loading status of table | boolean\|[object](https://vuecomponent.github.io/ant-design/#/us/components/spin) | `false` | | ||||
| | locale | i18n text including filter, sort, empty text, etc | object | filterConfirm: 'Ok' <br> filterReset: 'Reset' <br> emptyText: 'No Data' | | ||||
| | pagination | Pagination [config](https://vuecomponent.github.io/ant-design/#/us/components/pagination), hide it by setting it to `false` | object |  | | ||||
| | rowClassName | Row's className | Function(record, index):string | - | | ||||
| | rowKey | Row's unique key, could be a string or function that returns a string | string\|Function(record):string | `key` | | ||||
| | rowSelection | Row selection [config](#rowSelection) | object | null | | ||||
| | scroll | Whether table can be scrolled in x/y direction, `x` or `y` can be a number that indicates the width and height of table body | object | - | | ||||
| | showHeader | Whether to show table header | boolean | `true` | | ||||
| | size | Size of table | `default` \| `middle` \| `small` | `default` | | ||||
| | title | Table title renderer | Function(currentPageData) |  | | ||||
| | onChange | Callback executed when pagination, filters or sorter is changed | Function(pagination, filters, sorter) |  | | ||||
| | onExpand | Callback executed when the row expand icon is clicked | Function(expanded, record) |  | | ||||
| | onExpandedRowsChange | Callback executed when the expanded rows change | Function(expandedRows) |  | | ||||
| | onHeaderRow | Set props on per header row | Function(column, index) | - | | ||||
| | onRow | Set props on per row | Function(record, index) | - | | ||||
| | title | Table title renderer | Function(currentPageData)\|slot-scope |  | | ||||
| | customHeaderRow | Set props on per header row | Function(column, index) | - | | ||||
| | customRow | Set props on per row | Function(record, index) | - | | ||||
| 
 | ||||
| #### onRow usage | ||||
| ### Events | ||||
| | Events Name | Description | Arguments | | ||||
| | --- | --- | --- | | ||||
| | change | Callback executed when pagination, filters or sorter is changed | Function(pagination, filters, sorter) |  | | ||||
| | expand | Callback executed when the row expand icon is clicked | Function(expanded, record) |  | | ||||
| | expandedRowsChange | Callback executed when the expanded rows change | Function(expandedRows) |  | | ||||
| 
 | ||||
| Same as `onRow` `onHeaderRow` `onCell` `onHeaderCell` | ||||
| #### customRow usage | ||||
| 
 | ||||
| Same as `customRow` `customHeaderRow` `customCell` `customHeaderCell`. | ||||
| Follow [Vue jsx](https://github.com/vuejs/babel-plugin-transform-vue-jsx) syntax。 | ||||
| 
 | ||||
| ```jsx | ||||
| <Table | ||||
|   onRow={(record) => { | ||||
|   customRow={(record) => { | ||||
|     return { | ||||
|       onClick: () => {},       // click row | ||||
|       onMouseEnter: () => {},  // mouse enter row | ||||
|       onXxxx... | ||||
|       props: { | ||||
|         xxx... | ||||
|       }, | ||||
|       on: { | ||||
|         click: () => {},       // click row | ||||
|         mouseenter: () => {},  // mouse enter row | ||||
|         xxxx... | ||||
|       }, | ||||
|     }; | ||||
|   )} | ||||
|   onHeaderRow={(column) => { | ||||
|   customHeaderRow={(column) => { | ||||
|     return { | ||||
|       onClick: () => {},        // click header row | ||||
|       on: { | ||||
|         click: () => {},        // click header row | ||||
|       }, | ||||
|     }; | ||||
|   )} | ||||
| /> | ||||
|  | @ -93,30 +105,34 @@ One of the Table `columns` prop for describing the table's columns, Column has t | |||
| | colSpan | Span of this column's title | number |  | | ||||
| | dataIndex | Display field of the data record, could be set like `a.b.c` | string | - | | ||||
| | defaultSortOrder | Default order of sorted values: `'ascend'` `'descend'` `null` | string | - | | ||||
| | filterDropdown | Customized filter overlay | ReactNode | - | | ||||
| | filterDropdown | Customized filter overlay | slot | - | | ||||
| | filterDropdownVisible | Whether `filterDropdown` is visible | boolean | - | | ||||
| | filtered | Whether the `dataSource` is filtered | boolean | `false` | | ||||
| | filteredValue | Controlled filtered value, filter icon will highlight | string\[] | - | | ||||
| | filterIcon | Customized filter icon | ReactNode | `false` | | ||||
| | filterIcon | Customized filter icon | slot | `false` | | ||||
| | filterMultiple | Whether multiple filters can be selected | boolean | `true` | | ||||
| | filters | Filter menu config | object\[] | - | | ||||
| | fixed | Set column to be fixed: `true`(same as left) `'left'` `'right'` | boolean\|string | `false` | | ||||
| | key | Unique key of this column, you can ignore this prop if you've set a unique `dataIndex` | string | - | | ||||
| | render | Renderer of the table cell. The return value should be a ReactNode, or an object for [colSpan/rowSpan config](#components-table-demo-colspan-rowspan) | Function(text, record, index) {} | - | | ||||
| | customRender | Renderer of the table cell. The return value should be a VNode, or an object for colSpan/rowSpan config | Function(text, record, index) {}\|slot-scope | - | | ||||
| | sorter | Sort function for local sort, see [Array.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)'s compareFunction. If you need sort buttons only, set to `true` | Function\|boolean | - | | ||||
| | sortOrder | Order of sorted values: `'ascend'` `'descend'` `false` | boolean\|string | - | | ||||
| | title | Title of this column | string\|ReactNode | - | | ||||
| | title | Title of this column | string\|slot | - | | ||||
| | width | Width of this column | string\|number | - | | ||||
| | onCell | Set props on per cell | Function(record) | - | | ||||
| | onFilter | Callback executed when the confirm filter button is clicked | Function | - | | ||||
| | onFilterDropdownVisibleChange | Callback executed when `filterDropdownVisible` is changed | function(visible) {} | - | | ||||
| | onHeaderCell | Set props on per header cell | Function(column) | - | | ||||
| | customCell | Set props on per cell | Function(record) | - | | ||||
| | customHeaderCell | Set props on per header cell | Function(column) | - | | ||||
| | onFilter | Callback executed when the confirm filter button is clicked, Use as a `filter` event when using template or jsx | Function | - | | ||||
| | onFilterDropdownVisibleChange | Callback executed when `filterDropdownVisible` is changed, Use as a `filterDropdownVisible` event when using template or jsx | function(visible) {} | - | | ||||
| | slots | When using columns, you can use this property to configure the properties that support the slot, such as `slots: { filterIcon: 'XXX'}` | object | - | | ||||
| | scopedSlots | When using columns, you can use this property to configure the properties that support the slot-scope, such as `scopedSlots: { customRender: 'XXX'}` | object | - | | ||||
| 
 | ||||
| 
 | ||||
| ### ColumnGroup | ||||
| 
 | ||||
| | Property | Description | Type | Default | | ||||
| | -------- | ----------- | ---- | ------- | | ||||
| | title | Title of the column group | string\|ReactNode | - | | ||||
| | title | Title of the column group | string\|slot | - | | ||||
| | slots | When using columns, you can use this property to configure the properties that support the slot, such as `slots: { title: 'XXX'}` | object | - | | ||||
| 
 | ||||
| ### rowSelection | ||||
| 
 | ||||
|  | @ -140,7 +156,7 @@ Properties for row selection. | |||
| | Property | Description | Type | Default | | ||||
| | -------- | ----------- | ---- | ------- | | ||||
| | key | Unique key of this selection | string | - | | ||||
| | text | Display text of this selection | string\|React.ReactNode | - | | ||||
| | text | Display text of this selection | string\|VNode | - | | ||||
| | onSelect | Callback executed when this selection is clicked | Function(changeableRowKeys) | - | | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -35,51 +35,64 @@ const columns = [{ | |||
| 
 | ||||
| | 参数 | 说明 | 类型 | 默认值 | | ||||
| | --- | --- | --- | --- | | ||||
| | className | 列的 className | string | - | | ||||
| | bordered | 是否展示外边框和列边框 | boolean | false | | ||||
| | columns | 表格列的配置描述,具体项见下表 | [ColumnProps](https://git.io/vMMXC)\[] | - | | ||||
| | columns | 表格列的配置描述,具体项见下表 | array | - | | ||||
| | components | 覆盖默认的 table 元素 | object | - | | ||||
| | dataSource | 数据数组 | any\[] |  | | ||||
| | defaultExpandAllRows | 初始时,是否展开所有行 | boolean | false | | ||||
| | defaultExpandedRowKeys | 默认展开的行 | string\[] | - | | ||||
| | expandedRowKeys | 展开的行,控制属性 | string\[] | - | | ||||
| | expandedRowRender | 额外的展开行 | Function(record):ReactNode | - | | ||||
| | expandedRowRender | 额外的展开行 | Function(record):VNode\|slot-scope| - | | ||||
| | expandRowByClick | 通过点击行来展开子行 | boolean | `false` | | ||||
| | footer | 表格尾部 | Function(currentPageData) |  | | ||||
| | footer | 表格尾部 | Function(currentPageData)\|slot-scope |  | | ||||
| | indentSize | 展示树形数据时,每层缩进的宽度,以 px 为单位 | number | 15 | | ||||
| | loading | 页面是否加载中 | boolean\|[object](https://ant.design/components/spin-cn/#API) ([更多](https://github.com/ant-design/ant-design/issues/4544#issuecomment-271533135)) | false | | ||||
| | locale | 默认文案设置,目前包括排序、过滤、空数据文案 | object | filterConfirm: '确定' <br> filterReset: '重置' <br> emptyText: '暂无数据' <br> [默认值](https://github.com/ant-design/ant-design/issues/575#issuecomment-159169511) | | ||||
| | pagination | 分页器,配置项参考 [pagination](/components/pagination/),设为 false 时不展示和进行分页 | object |  | | ||||
| | loading | 页面是否加载中 | boolean\|[object](https://vuecomponent.github.io/ant-design/#/cn/components/spin) | false | | ||||
| | locale | 默认文案设置,目前包括排序、过滤、空数据文案 | object | filterConfirm: '确定' <br> filterReset: '重置' <br> emptyText: '暂无数据' | | ||||
| | pagination | 分页器,配置项参考 [pagination](https://vuecomponent.github.io/ant-design/#/cn/components/pagination),设为 false 时不展示和进行分页 | object |  | | ||||
| | rowClassName | 表格行的类名 | Function(record, index):string | - | | ||||
| | rowKey | 表格行 key 的取值,可以是字符串或一个函数 | string\|Function(record):string | 'key' | | ||||
| | rowSelection | 列表项是否可选择,[配置项](#rowSelection) | object | null | | ||||
| | scroll | 横向或纵向支持滚动,也可用于指定滚动区域的宽高度:`{{ x: true, y: 300 }}` | object | - | | ||||
| | showHeader | 是否显示表头 | boolean | true | | ||||
| | size | 正常或迷你类型,`default` or `small` | string | default | | ||||
| | title | 表格标题 | Function(currentPageData) |  | | ||||
| | onChange | 分页、排序、筛选变化时触发 | Function(pagination, filters, sorter) |  | | ||||
| | onExpand | 点击展开图标时触发 | Function(expanded, record) |  | | ||||
| | onExpandedRowsChange | 展开的行变化时触发 | Function(expandedRows) |  | | ||||
| | onHeaderRow | 设置头部行属性 | Function(column, index) | - | | ||||
| | onRow | 设置行属性 | Function(record, index) | - | | ||||
| | title | 表格标题 | Function(currentPageData)\|slot-scope |  | | ||||
| | customHeaderRow | 设置头部行属性 | Function(column, index) | - | | ||||
| | customRow | 设置行属性 | Function(record, index) | - | | ||||
| 
 | ||||
| ### 事件 | ||||
| | 事件名称 | 说明 | 回调参数 | | ||||
| | --- | --- | --- | | ||||
| | expandedRowsChange | 展开的行变化时触发 | Function(expandedRows) | | ||||
| | change | 分页、排序、筛选变化时触发 | Function(pagination, filters, sorter) | | ||||
| | expand | 点击展开图标时触发 | Function(expanded, record) | | ||||
| 
 | ||||
| 
 | ||||
| #### onRow 用法 | ||||
| #### customRow 用法 | ||||
| 
 | ||||
| 适用于 `onRow` `onHeaderRow` `onCell` `onHeaderCell`。 | ||||
| 遵循Vue [jsx语法](https://github.com/vuejs/babel-plugin-transform-vue-jsx) | ||||
| 适用于 `customRow` `customHeaderRow` `customCell` `customHeaderCell`。 | ||||
| 遵循[Vue jsx](https://github.com/vuejs/babel-plugin-transform-vue-jsx)语法。 | ||||
| 
 | ||||
| ```jsx | ||||
| <Table | ||||
|   onRow={(record) => { | ||||
|   customRow={(record) => { | ||||
|     return { | ||||
|       onClick: () => {},       // 点击行 | ||||
|       onMouseEnter: () => {},  // 鼠标移入行 | ||||
|       onXxxx... | ||||
|       props: { | ||||
|         xxx... //属性 | ||||
|       }, | ||||
|       on: { // 事件 | ||||
|         click: () => {},       // 点击行 | ||||
|         mouseenter: () => {},  // 鼠标移入行 | ||||
|         xxxx... | ||||
|       }, | ||||
| 
 | ||||
|     }; | ||||
|   )} | ||||
|   onHeaderRow={(column) => { | ||||
|   customHeaderRow={(column) => { | ||||
|     return { | ||||
|       onClick: () => {},        // 点击表头行 | ||||
|       on: { | ||||
|         click: () => {},        // 点击表头行 | ||||
|       } | ||||
|     }; | ||||
|   )} | ||||
| /> | ||||
|  | @ -101,23 +114,25 @@ const columns = [{ | |||
| | filterMultiple | 是否多选 | boolean | true | | ||||
| | filters | 表头的筛选菜单项 | object\[] | - | | ||||
| | fixed | 列是否固定,可选 `true`(等效于 left) `'left'` `'right'` | boolean\|string | false | | ||||
| | key | React 需要的 key,如果已经设置了唯一的 `dataIndex`,可以忽略这个属性 | string | - | | ||||
| | customRender | 生成复杂数据的渲染函数,参数分别为当前行的值,当前行数据,行索引,@return里面可以设置表格行/列合并,可参考demo 表格行/列合并 | Function(text, record, index) {} | - | | ||||
| | key | Vue 需要的 key,如果已经设置了唯一的 `dataIndex`,可以忽略这个属性 | string | - | | ||||
| | customRender | 生成复杂数据的渲染函数,参数分别为当前行的值,当前行数据,行索引,@return里面可以设置表格行/列合并,可参考demo 表格行/列合并 | Function(text, record, index) {}\|slot-scope | - | | ||||
| | sorter | 排序函数,本地排序使用一个函数(参考 [Array.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) 的 compareFunction),需要服务端排序可设为 true | Function\|boolean | - | | ||||
| | sortOrder | 排序的受控属性,外界可用此控制列的排序,可设置为 `'ascend'` `'descend'` `false` | boolean\|string | - | | ||||
| | title | 列头显示文字 | string\|slot | - | | ||||
| | width | 列宽度 | string\|number | - | | ||||
| | onCell | 设置单元格属性 | Function(record) | - | | ||||
| | customCell | 设置单元格属性 | Function(record) | - | | ||||
| | customHeaderCell | 设置头部单元格属性 | Function(column) | - | | ||||
| | onFilter | 本地模式下,确定筛选的运行函数, 使用template或jsx时作为`filter`事件使用 | Function | - | | ||||
| | onFilterDropdownVisibleChange | 自定义筛选菜单可见变化时调用,使用template或jsx时作为`filter`事件使用 | function(visible) {} | - | | ||||
| 
 | ||||
| | onFilterDropdownVisibleChange | 自定义筛选菜单可见变化时调用,使用template或jsx时作为`filterDropdownVisibleChange`事件使用 | function(visible) {} | - | | ||||
| | slots | 使用columns时,可以通过该属性配置支持slot的属性,如 `slots: { filterIcon: 'XXX'}` | object | - | | ||||
| | scopedSlots | 使用columns时,可以通过该属性配置支持slot-scope的属性,如 `scopedSlots: { customRender: 'XXX'}` | object | - | | ||||
| 
 | ||||
| ### ColumnGroup | ||||
| 
 | ||||
| | 参数 | 说明 | 类型 | 默认值 | | ||||
| | --- | --- | --- | --- | | ||||
| | title | 列头显示文字 | string\|slot | - | | ||||
| | slots | 使用columns时,可以通过该属性配置支持slot的属性,如 `slots: { title: 'XXX'}` | object | - | | ||||
| 
 | ||||
| ### rowSelection | ||||
| 
 | ||||
|  |  | |||
|  | @ -18,6 +18,8 @@ export const ColumnProps = { | |||
|   // key?: React.Key;
 | ||||
|   dataIndex: PropTypes.string, | ||||
|   customRender: PropTypes.func, | ||||
|   customCell: PropTypes.func, | ||||
|   customHeaderCell: PropTypes.func, | ||||
|   filters: PropTypes.arrayOf(ColumnFilterItem), | ||||
|   // onFilter: (value: any, record: T) => PropTypes.bool,
 | ||||
|   filterMultiple: PropTypes.bool, | ||||
|  |  | |||
|  | @ -14,33 +14,6 @@ const onRowDoubleClick = (record, index, e) => { | |||
|   console.log(`Double click nth(${index}) row of parent, record.name: ${record.name}`, e) | ||||
| } | ||||
| 
 | ||||
| const columns = [{ | ||||
|   title: 'Name', | ||||
|   dataIndex: 'name', | ||||
|   key: 'name', | ||||
|   width: 400, | ||||
| }, { | ||||
|   title: 'Age', | ||||
|   dataIndex: 'age', | ||||
|   key: 'age', | ||||
|   width: 100, | ||||
|   render: (h, text) => ( | ||||
|     <span>{text} (Trigger Cell Click)</span> | ||||
|   ), | ||||
|   onCell: (record) => ({ | ||||
|     on: { | ||||
|       click (e) { | ||||
|         console.log('Click cell', record, e.target) | ||||
|       }, | ||||
|     }, | ||||
|   }), | ||||
| }, { | ||||
|   title: 'Address', | ||||
|   dataIndex: 'address', | ||||
|   key: 'address', | ||||
|   width: 200, | ||||
| }] | ||||
| 
 | ||||
| const data = [{ | ||||
|   key: 1, | ||||
|   name: 'a', | ||||
|  | @ -94,6 +67,32 @@ const data = [{ | |||
| 
 | ||||
| export default { | ||||
|   render () { | ||||
|     const columns = [{ | ||||
|       title: 'Name', | ||||
|       dataIndex: 'name', | ||||
|       key: 'name', | ||||
|       width: 400, | ||||
|     }, { | ||||
|       title: 'Age', | ||||
|       dataIndex: 'age', | ||||
|       key: 'age', | ||||
|       width: 100, | ||||
|       customRender: (text) => ( | ||||
|         <span>{text} (Trigger Cell Click)</span> | ||||
|       ), | ||||
|       customCell: (record) => ({ | ||||
|         on: { | ||||
|           click (e) { | ||||
|             console.log('Click cell', record, e.target) | ||||
|           }, | ||||
|         }, | ||||
|       }), | ||||
|     }, { | ||||
|       title: 'Address', | ||||
|       dataIndex: 'address', | ||||
|       key: 'address', | ||||
|       width: 200, | ||||
|     }] | ||||
|     return ( | ||||
|       <Table | ||||
|         columns={columns} | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ export default { | |||
|     customRender: PropTypes.func, | ||||
|     className: PropTypes.string, | ||||
|     // onCellClick: PropTypes.func, | ||||
|     // onCell: PropTypes.func, | ||||
|     customCell: PropTypes.func, | ||||
|     customHeaderCell: PropTypes.func, | ||||
|   }, | ||||
| } | ||||
|  |  | |||
|  | @ -74,9 +74,9 @@ export default { | |||
|       } | ||||
|     } | ||||
| 
 | ||||
|     if (column.onCell) { | ||||
|       tdProps = mergeProps(tdProps, column.onCell(record)) | ||||
|       //      tdProps.attrs = { ...tdProps.attrs, ...column.onCell(record) } | ||||
|     if (column.customCell) { | ||||
|       tdProps = mergeProps(tdProps, column.customCell(record)) | ||||
|       //      tdProps.attrs = { ...tdProps.attrs, ...column.customCell(record) } | ||||
|     } | ||||
| 
 | ||||
|     // Fix https://github.com/ant-design/ant-design/issues/1202 | ||||
|  |  | |||
|  | @ -204,7 +204,7 @@ const TableRow = { | |||
| 
 | ||||
|       warningOnce( | ||||
|         column.onCellClick === undefined, | ||||
|         'column[onCellClick] is deprecated, please use column[onCell] instead.', | ||||
|         'column[onCellClick] is deprecated, please use column[customCell] instead.', | ||||
|       ) | ||||
| 
 | ||||
|       cells.push( | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ const AsyncComp = () => { | |||
|   const hashs = window.location.hash.split('/') | ||||
|   const d = hashs[hashs.length - 1] | ||||
|   return { | ||||
|     component: import(`../components/table/demo/${d}`), | ||||
|     component: import(`../components/vc-table/demo/${d}`), | ||||
|   } | ||||
| } | ||||
| export default [ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 tangjinzhou
						tangjinzhou