shineout
Version:
Shein 前端组件库
89 lines (71 loc) • 2.23 kB
JavaScript
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
import React from 'react';
import { tableClass } from './styles';
import { isArray } from '../utils/is';
var Tfoot =
/*#__PURE__*/
function (_React$PureComponent) {
_inheritsLoose(Tfoot, _React$PureComponent);
function Tfoot() {
return _React$PureComponent.apply(this, arguments) || this;
}
var _proto = Tfoot.prototype;
_proto.getTrs = function getTrs() {
var _this$props$summary = this.props.summary,
summary = _this$props$summary === void 0 ? [] : _this$props$summary;
if (!isArray(summary[0])) {
summary = [summary];
}
var summarys = summary;
var trs = [];
for (var i = 0; i < summarys.length; i++) {
var row = summarys[i];
trs[i] = [];
var index = 0;
for (var j = 0; j < row.length; j++) {
var item = row[j];
var nextIndex = index + (item.colSpan || 1);
trs[i].push(this.renderTd(item, index));
index = nextIndex;
}
}
return trs;
};
_proto.renderTd = function renderTd(item, index) {
var render = item.render,
_item$colSpan = item.colSpan,
colSpan = _item$colSpan === void 0 ? 1 : _item$colSpan;
var columns = this.props.columns;
var content = render();
var fixed = {};
var isLast = index + colSpan - 1 >= columns.length - 1;
for (var i = 0; i < colSpan; i++) {
var col = columns[index + i] || {};
if (col.fixed) {
fixed["fixed-" + col.fixed] = true;
}
if (col.firstFixed) {
fixed['fixed-first'] = true;
}
if (col.lastFixed) {
fixed['fixed-last'] = true;
}
}
return React.createElement("td", {
key: index,
colSpan: colSpan,
className: tableClass.apply(void 0, Object.keys(fixed).concat([isLast && 'ignore-right-border']))
}, content);
};
_proto.render = function render() {
var trs = this.getTrs();
return React.createElement("tfoot", null, trs.map(function (tr, index) {
return React.createElement("tr", {
key: index,
className: tableClass('normal')
}, tr);
}));
};
return Tfoot;
}(React.PureComponent);
export default Tfoot;