diff --git a/components/table/Table.jsx b/components/table/Table.jsx index 5fed3809ae..c26cf5f423 100755 --- a/components/table/Table.jsx +++ b/components/table/Table.jsx @@ -115,6 +115,7 @@ export default { props: initDefaultProps(TableProps, { dataSource: [], useFixedHeader: false, + tableDefaultText: '无', // rowSelection: null, size: 'default', loading: false, @@ -1199,6 +1200,11 @@ export default { }).map((column, i) => { const newColumn = { ...column }; newColumn.key = getColumnKey(newColumn, i); + if (!newColumn.columnDefaultText) { + if (restProps.tableDefaultText) { + newColumn.columnDefaultText = restProps.tableDefaultText; + } + } return newColumn; }); diff --git a/components/table/interface.js b/components/table/interface.js index b8c3e0ea8c..9c534ce7a6 100644 --- a/components/table/interface.js +++ b/components/table/interface.js @@ -19,6 +19,7 @@ export const ColumnProps = { dataIndex: PropTypes.string, customRender: PropTypes.func, customCell: PropTypes.func, + columnDefaultText: PropTypes.string, customHeaderCell: PropTypes.func, align: PropTypes.oneOf(['left', 'right', 'center']), ellipsis: PropTypes.bool, @@ -92,6 +93,7 @@ export const TableRowSelection = { export const TableProps = { prefixCls: PropTypes.string, + tableDefaultText: PropTypes.string, dropdownPrefixCls: PropTypes.string, rowSelection: PropTypes.oneOfType([PropTypes.shape(TableRowSelection).loose, null]), pagination: PropTypes.oneOfType([ diff --git a/components/vc-table/src/Column.jsx b/components/vc-table/src/Column.jsx index 751a085d6f..44af604695 100644 --- a/components/vc-table/src/Column.jsx +++ b/components/vc-table/src/Column.jsx @@ -7,6 +7,7 @@ export default { colSpan: PropTypes.number, title: PropTypes.any, dataIndex: PropTypes.string, + columnDefaultText: PropTypes.string, width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), ellipsis: PropTypes.bool, fixed: PropTypes.oneOf([true, 'left', 'right']), diff --git a/components/vc-table/src/Table.jsx b/components/vc-table/src/Table.jsx index df0eba0525..aa86eacb5c 100644 --- a/components/vc-table/src/Table.jsx +++ b/components/vc-table/src/Table.jsx @@ -22,6 +22,7 @@ export default { { data: PropTypes.array, useFixedHeader: PropTypes.bool, + tableDefaultText: PropTypes.string, columns: PropTypes.array, prefixCls: PropTypes.string, bodyStyle: PropTypes.object, diff --git a/components/vc-table/src/TableCell.jsx b/components/vc-table/src/TableCell.jsx index 6dc5e5b477..8f869983e8 100644 --- a/components/vc-table/src/TableCell.jsx +++ b/components/vc-table/src/TableCell.jsx @@ -44,16 +44,16 @@ export default { column, component: BodyCell, } = this; - const { dataIndex, customRender, className = '' } = column; + const { dataIndex, customRender, className = '', columnDefaultText } = column; // We should return undefined if no dataIndex is specified, but in order to // be compatible with object-path's behavior, we return the record object instead. let text; if (typeof dataIndex === 'number') { - text = get(record, dataIndex); + text = get(record, dataIndex) || columnDefaultText; } else if (!dataIndex || dataIndex.length === 0) { - text = record; + text = record || columnDefaultText; } else { - text = get(record, dataIndex); + text = get(record, dataIndex) || columnDefaultText; } let tdProps = { props: {},