UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

147 lines (146 loc) 8.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FieldRenderer = exports.TableCellRenderer = exports.TableCell = void 0; var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importDefault)(require("react")); var factory_1 = require("../../factory"); var QuickEdit_1 = (0, tslib_1.__importDefault)(require("../QuickEdit")); var Copyable_1 = (0, tslib_1.__importDefault)(require("../Copyable")); var PopOver_1 = (0, tslib_1.__importDefault)(require("../PopOver")); var mobx_react_1 = require("mobx-react"); var omit = require("lodash/omit"); var tpl_1 = require("../../utils/tpl"); var Badge_1 = require("../../components/Badge"); var TableCell = /** @class */ (function (_super) { (0, tslib_1.__extends)(TableCell, _super); function TableCell(props) { return _super.call(this, props) || this; } TableCell.prototype.render = function () { var _a; var _b = this.props, cx = _b.classnames, className = _b.className, classNameExpr = _b.classNameExpr, render = _b.render, style = _b.style, Component = _b.wrapperComponent, column = _b.column, value = _b.value, data = _b.data, children = _b.children, width = _b.width, align = _b.align, innerClassName = _b.innerClassName, label = _b.label, tabIndex = _b.tabIndex, onKeyUp = _b.onKeyUp, rowSpan = _b.rowSpan, _body = _b.body, tpl = _b.tpl, remark = _b.remark, prefix = _b.prefix, affix = _b.affix, isHead = _b.isHead, rowIndex = _b.rowIndex, colIndex = _b.colIndex, row = _b.row, showBadge = _b.showBadge, itemBadge = _b.itemBadge, $path = _b.$path, ellipsis = _b.ellipsis, fold = _b.fold, showContextMenu = _b.showContextMenu, name = _b.name, setBorder = _b.setBorder, defaultOpen = _b.defaultOpen, rest = (0, tslib_1.__rest)(_b, ["classnames", "className", "classNameExpr", "render", "style", "wrapperComponent", "column", "value", "data", "children", "width", "align", "innerClassName", "label", "tabIndex", "onKeyUp", "rowSpan", "body", "tpl", "remark", "prefix", "affix", "isHead", "rowIndex", "colIndex", "row", "showBadge", "itemBadge", "$path", "ellipsis", "fold", "showContextMenu", "name", "setBorder", "defaultOpen"]); var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, column), { className: innerClassName, type: (column && column.type) || 'plain' }); // 如果本来就是 type 为 button,不要删除,其他情况下都应该删除。 if (schema.type !== 'button' && schema.type !== 'dropdown-button') { delete schema.label; } // Jay // 对于input-table-dynamic组件的原始数据做判断 var isInputTableDynamic = /(input-table-dynamic)/.test($path); var isOrigin = data.isOrigin && isInputTableDynamic; var body = children ? children : render('field', schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({ fold: fold }, omit(rest, Object.keys(schema))), { // inputOnly: true, value: value, data: data, // Jay // data.isOrigin是针对于input-table-dynamic组件的原始数据不能修改 inputOnly: data.isOrigin ? !isOrigin : true, disabled: isOrigin, className: cx(innerClassName, { 'text-secondary': isOrigin }) })); //字段分组 if ((_a = column.group) === null || _a === void 0 ? void 0 : _a.length) { body = column.group.map(function (item) { var _a, _b, _c, _d, _e; var ass = (0, factory_1.render)({ type: (_a = item.type) !== null && _a !== void 0 ? _a : '', name: item.name, body: item === null || item === void 0 ? void 0 : item.body }, { data: data }); var showTitle = !!data[(_b = item.name) !== null && _b !== void 0 ? _b : ''] && typeof data[(_c = item.name) !== null && _c !== void 0 ? _c : ''] === ('string' || 'number'); return (react_1.default.createElement("div", { key: item.name, className: "group-field-container", title: showTitle ? data[(_d = item.name) !== null && _d !== void 0 ? _d : ''] : null }, (item === null || item === void 0 ? void 0 : item.hideLabel) ? '' : item.label + ':', item.type ? ass : data[(_e = item.name) !== null && _e !== void 0 ? _e : ''])); }); } if (width) { style = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, style), { width: (style && style.width) || width }); if (!/%$/.test(String(style.width))) { body = (react_1.default.createElement("div", { style: { width: style.width }, className: ellipsis ? 'ellipsis' : '' }, prefix, body, affix)); prefix = null; affix = null; // delete style.width; } } if (!width && column.type === 'html' || !column.type) { style = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, style), { maxWidth: 200 }); } if (align) { style = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, style), { textAlign: align }); } if (!Component) { return body; } if (isHead) { Component = 'th'; } return (react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement(Component, { onContextMenu: function (e) { e.preventDefault(); showContextMenu(rowIndex, colIndex, name || column.name); }, rowSpan: rowSpan > 1 ? rowSpan : undefined, style: style, className: cx(className, column.classNameExpr ? (0, tpl_1.filter)(column.classNameExpr, data) : null, setBorder ? 'td-border' : ''), tabIndex: tabIndex, onKeyUp: onKeyUp, title: !defaultOpen ? null : (data[column.name || ''] || null) }, showBadge ? (react_1.default.createElement(Badge_1.Badge, { classnames: cx, badge: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, itemBadge), { className: cx("Table-badge", itemBadge === null || itemBadge === void 0 ? void 0 : itemBadge.className) }), data: row.data })) : null, prefix, body, affix))); }; TableCell.defaultProps = { wrapperComponent: 'td' }; TableCell.propsList = [ 'type', 'label', 'column', 'body', 'tpl', 'rowSpan', 'remark' ]; return TableCell; }(react_1.default.Component)); exports.TableCell = TableCell; var TableCellRenderer = /** @class */ (function (_super) { (0, tslib_1.__extends)(TableCellRenderer, _super); function TableCellRenderer() { return _super !== null && _super.apply(this, arguments) || this; } TableCellRenderer.propsList = (0, tslib_1.__spreadArray)([ 'quickEdit', 'quickEditEnabledOn', 'popOver', 'copyable', 'inline' ], TableCell.propsList, true); TableCellRenderer = (0, tslib_1.__decorate)([ (0, factory_1.Renderer)({ test: /(^|\/)(table|lion-bi-table|mobile-table-horizontal)\/(?:.*\/)?cell$/, name: 'table-cell' }), (0, QuickEdit_1.default)(), (0, PopOver_1.default)({ targetOutter: true }), (0, Copyable_1.default)(), mobx_react_1.observer ], TableCellRenderer); return TableCellRenderer; }(TableCell)); exports.TableCellRenderer = TableCellRenderer; var FieldRenderer = /** @class */ (function (_super) { (0, tslib_1.__extends)(FieldRenderer, _super); function FieldRenderer() { return _super !== null && _super.apply(this, arguments) || this; } FieldRenderer.defaultProps = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, TableCell.defaultProps), { wrapperComponent: 'div' }); FieldRenderer = (0, tslib_1.__decorate)([ (0, factory_1.Renderer)({ type: 'field', name: 'field' }), (0, PopOver_1.default)(), (0, Copyable_1.default)() ], FieldRenderer); return FieldRenderer; }(TableCell)); exports.FieldRenderer = FieldRenderer; //# sourceMappingURL=./renderers/Table/TableCell.js.map