zent
Version:
一套前端设计语言和基于React的实现
165 lines (126 loc) • 5.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _pagination = require('../../pagination');
var _pagination2 = _interopRequireDefault(_pagination);
var _checkbox = require('../../checkbox');
var _checkbox2 = _interopRequireDefault(_checkbox);
var _isNil = require('lodash/isNil');
var _isNil2 = _interopRequireDefault(_isNil);
var _helper = require('../helper.js');
var _helper2 = _interopRequireDefault(_helper);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var Foot = function (_ref) {
(0, _inherits3['default'])(Foot, _ref);
function Foot() {
var _ref2;
var _temp, _this, _ret;
(0, _classCallCheck3['default'])(this, Foot);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, (_ref2 = Foot.__proto__ || Object.getPrototypeOf(Foot)).call.apply(_ref2, [this].concat(args))), _this), _this.onSelect = function (e) {
var isChecked = false;
if (e.target.checked) {
isChecked = true;
}
_this.props.selection.onSelectAll(isChecked);
}, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret);
}
(0, _createClass3['default'])(Foot, [{
key: 'renderBatchComps',
// 拿到所有的选中的item
value: function renderBatchComps(selectedRows, batchComponents) {
return batchComponents.map(function (comp, index) {
if (_helper2['default'].isReactComponent(comp)) {
var Comp = comp;
return _react2['default'].createElement(Comp, { key: index, data: selectedRows });
}
if (typeof comp === 'function') {
return comp(selectedRows, index);
}
return comp;
});
}
}, {
key: 'componentWillReceiveProps',
value: function componentWillReceiveProps(nextProps) {
if (nextProps.batchComponentsFixed) {
this.footStyleFixed = {
height: _reactDom2['default'].findDOMNode(this.batch).getBoundingClientRect().height
};
} else {
this.footStyleFixed = {};
}
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
var _props = this.props,
onPageChange = _props.onPageChange,
batchComponents = _props.batchComponents,
selection = _props.selection,
current = _props.current;
var pageInfo = this.props.pageInfo || {};
var totalItem = pageInfo.totalItem,
pageSize = pageInfo.pageSize,
total = pageInfo.total,
limit = pageInfo.limit,
maxPageToShow = pageInfo.maxPageToShow;
var needSelect = selection.needSelect,
selectedRows = selection.selectedRows;
var batchClassName = 'tfoot__batchcomponents';
var shouldRenderFoot = batchComponents && batchComponents.length > 0 || Object.keys(pageInfo).length !== 0;
if (batchComponents && batchComponents.length > 0) {
batchClassName += ' tfoot__batchcomponents--has-children';
}
if (this.props.batchComponentsFixed) {
batchClassName += ' tfoot__batchcomponents--fixed';
}
return shouldRenderFoot && _react2['default'].createElement(
'div',
{ className: 'tfoot clearfix', style: this.footStyleFixed },
_react2['default'].createElement(
'div',
{ className: batchClassName, ref: function ref(c) {
return _this2.batch = c;
} },
needSelect && batchComponents && batchComponents.length > 0 && _react2['default'].createElement(_checkbox2['default'], {
className: 'select-check',
onChange: this.onSelect,
checked: selection.isSelectAll,
indeterminate: selection.isSelectPart
}),
batchComponents && batchComponents.length > 0 && this.renderBatchComps(selectedRows, batchComponents)
),
_react2['default'].createElement(
'div',
{ className: 'tfoot__page' },
Object.keys(pageInfo).length > 0 && _react2['default'].createElement(_pagination2['default'], {
current: current,
totalItem: (0, _isNil2['default'])(totalItem) ? total : totalItem,
pageSize: (0, _isNil2['default'])(pageSize) ? limit : pageSize,
maxPageToShow: maxPageToShow,
onChange: onPageChange
})
)
);
}
}]);
return Foot;
}(_react.PureComponent || _react.Component);
exports['default'] = Foot;