fastlion-amis
Version:
一种MIS页面生成工具
147 lines (146 loc) • 8.39 kB
JavaScript
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
;