UNPKG

shradmin

Version:

A frontend Framework for building admin application, using antd and mirrorjs.

111 lines (90 loc) 3.44 kB
'use strict'; exports.__esModule = true; var _style2 = require('antd/lib/table/style'); var _table = require('antd/lib/table'); var _table2 = _interopRequireDefault(_table); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _inflection = require('inflection'); var _inflection2 = _interopRequireDefault(_inflection); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var DataTable = function DataTable(_ref) { var model = _ref.model, data = _ref.data, children = _ref.children, translate = _ref.translate, rowKey = _ref.rowKey, params = _ref.params, total = _ref.total, setParams = _ref.setParams, rest = _objectWithoutProperties(_ref, ['model', 'data', 'children', 'translate', 'rowKey', 'params', 'total', 'setParams']); var columns = []; _react2.default.Children.forEach(children, function (child, index) { if (child) { var _child$props = child.props, source = _child$props.source, columnProps = _child$props.columnProps; columns.push(_extends({ title: source ? translate('models.' + model + '.fields.' + source, { _: _inflection2.default.humanize(source) }) : "", dataIndex: source, key: index, render: function render(value, record) { return _react2.default.cloneElement(child, { record: record, model: model }); } }, columnProps)); } }); var handleChange = function handleChange(pagination, filters, sorter) { var newParams = { _page: pagination.current, _limit: pagination.pageSize }; if (sorter.field && sorter.order !== false) { newParams._sort = sorter.field; newParams._order = sorter.order === "descend" ? "desc" : "asc"; } else { newParams._sort = null; newParams._order = "asc"; } setParams(newParams); }; return _react2.default.createElement( 'div', { style: { margin: "16px 0" } }, _react2.default.createElement(_table2.default, _extends({}, rest, { rowKey: rowKey, dataSource: data, columns: columns, onChange: handleChange, pagination: { total: total, current: parseInt(params._page, 10), pageSize: parseInt(params._limit, 10) } })) ); }; DataTable.defaultProps = { data: [], rowKey: "id", params: {}, total: 0 }; DataTable.propTypes = process.env.NODE_ENV !== "production" ? { model: _propTypes2.default.string, data: _propTypes2.default.array, translate: _propTypes2.default.func, rowKey: _propTypes2.default.string, params: _propTypes2.default.object, total: _propTypes2.default.number, setParams: _propTypes2.default.func } : {}; exports.default = DataTable; module.exports = exports['default'];