fastlion-amis
Version:
一种MIS页面生成工具
136 lines (135 loc) • 6.02 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = (0, tslib_1.__importDefault)(require("react"));
var AffixRow = function (props) {
// const renderSummaryRow = (
// position: 'prefix' | 'affix',
// items?: Array<any>,
// rowIndex?: number
// ) => {
// const { columns, render, data, classnames: cx, rows, store, setBorder, stickyWidths, tableLayout } = this.props;
// if (!(Array.isArray(items) && items.length) || tableLayout !== 'horizontal') {
// return null;
// }
// let offset = 0;
// // 将列的隐藏对应的把总结行也隐藏起来
// const result: any[] = items.map((item, index) => {
// let colIdxs: number[] = [offset + index];
// if (item.colSpan > 1) {
// for (let i = 1; i < item.colSpan; i++) {
// colIdxs.push(offset + index + i);
// }
// offset += item.colSpan - 1;
// }
// const matchedColumns = colIdxs
// .map(idx => columns.find(col => col.rawIndex === idx))
// .filter(item => item);
// return {
// ...item,
// colSpan: matchedColumns.length,
// firstColumn: matchedColumns[0],
// lastColumn: matchedColumns[matchedColumns.length - 1]
// };
// }).filter(item => item.colSpan);
// if (result.length == 0) return null;
// // 如果是勾选栏,展开栏,拖拽栏,序号栏让它和下一列合并。
// if (result[0] && typeof columns[0]?.type === 'string' && columns[0]?.type.substring(0, 2) === '__') {
// store.hideCheckToggler && isMobile() ? null : result[0].colSpan = (result[0].colSpan || 1) + 1;
// }
// if (result[1] && typeof columns[1]?.type === 'string' && columns[1]?.type.substring(0, 2) === '__') {
// result[0].colSpan = (result[0].colSpan || 1) + 1;
// }
// // 缺少的单元格补齐
// let appendLen = columns.length - result.reduce((p, c) => p + (c.colSpan || 1), 0);
// // 多了则干掉一些
// while (appendLen < 0) {
// const item = result.pop();
// if (!item) {
// break;
// }
// appendLen += item.colSpan || 1;
// }
// // 少了则补个空的
// if (appendLen) {
// const item = /*result.length
// ? result.pop()
// : */ {
// type: 'html',
// html: ' '
// };
// const column = store.filteredColumns[store.filteredColumns.length - 1];
// result.push({
// ...item,
// colSpan: /*(item.colSpan || 1)*/ 1 + appendLen,
// firstColumn: column,
// lastColumn: column
// });
// }
// return (
// <tr
// className={cx('Table-tr', 'is-summary')}
// key={`summary-${position}-${rowIndex || 0}`}
// style={{ position: 'sticky', bottom: 0, zIndex: 1 }}
// onClick={() => isMobile() ? this.setState({ summaryVisible: true }) : null}
// >
// {result.map((item, index) => {
// const column = item.firstColumn;
// const tdStyle = {
// position: 'sticky', bottom: 0, zIndex: column.fixed == 'left' || column.fixed == 'right' ? 4 : 1,
// left: column.fixed === 'left' && stickyWidths?.[`${column.index}`],
// right: column.fixed === 'right' && stickyWidths?.[`${column.index}`],
// maxWidth: column.pristine.width || "200px",
// width: column.pristine.width,
// textAlign: column.align
// }
// const Com = item.isHead ? 'th' : 'td';
// if (item.tpl) {
// const str = item.tpl.split('pick:')[1];
// const fieldList = str.split('|');
// const fieldName = fieldList[0];
// let unitName = fieldList[1];
// if (unitName.includes('}')) unitName = unitName.split('}')[0];
// const targetCol = columns.find(col => col.name === fieldName);
// const prevStr = item.tpl.split('${')[0];
// const nextStr = item.tpl.split('}')[1];
// const selectedList = data.selectedItems.toJSON();
// const calc = calcFn(unitName, targetCol?.name ?? '', selectedList.length ? selectedList : data.items)
// let newValue: any = calc;
// if (typeof newValue === 'number' && targetCol?.pristine?.precision) {
// newValue = newValue.toFixed(targetCol.pristine.precision);
// }
// if (targetCol?.pristine?.kilobitSeparator) {
// newValue = numberFormatter(newValue, targetCol.pristine.precision);
// }
// return (
// <Com
// key={index}
// colSpan={item.colSpan}
// className={cx({ 'td-border': setBorder }, item.cellClassName)}
// style={tdStyle}
// >
// {prevStr + (unitName === 'count' ? calc : newValue) + nextStr}
// </Com>
// )
// }
// return (
// <Com
// key={index}
// colSpan={item.colSpan}
// className={cx({ 'td-border': setBorder }, item.cellClassName)}
// style={tdStyle}
// >
// {render(`summary-row/${index}`, item, {
// data: data.items
// })}
// </Com>
// );
// })}
// </tr>
// );
// }
return (react_1.default.createElement(react_1.default.Fragment, null));
};
exports.default = AffixRow;
//# sourceMappingURL=./renderers/Table/AffixRow.js.map
;