fastlion-amis
Version:
一种MIS页面生成工具
150 lines (149 loc) • 7.71 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.StaticFieldRenderer = exports.StaticControlRenderer = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var Item_1 = require("./Item");
var Table_1 = require("../Table");
var PopOver_1 = tslib_1.__importDefault(require("../PopOver"));
var QuickEdit_1 = tslib_1.__importDefault(require("../QuickEdit"));
var Copyable_1 = tslib_1.__importDefault(require("../Copyable"));
var helper_1 = require("../../utils/helper");
var omit = require("lodash/omit");
var StaticControl = /** @class */ (function (_super) {
tslib_1.__extends(StaticControl, _super);
function StaticControl(props) {
var _this = _super.call(this, props) || this;
_this.handleQuickChange = _this.handleQuickChange.bind(_this);
return _this;
// this.mouseOverAll = this.mouseOverAll.bind(this)
// this.mouseOutAll = this.mouseOutAll.bind(this)
// this.state = {
// hemlset: null,
// }
}
StaticControl.prototype.handleQuickChange = function (values, saveImmediately) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, onBulkChange, onAction, data;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = this.props, onBulkChange = _a.onBulkChange, onAction = _a.onAction, data = _a.data;
if (!(saveImmediately && saveImmediately.api)) return [3 /*break*/, 2];
return [4 /*yield*/, onAction(null, {
actionType: 'ajax',
api: saveImmediately.api
}, (0, helper_1.extendObject)(data, values), true)];
case 1:
_b.sent();
_b.label = 2;
case 2:
onBulkChange && onBulkChange(values, saveImmediately === true);
return [2 /*return*/];
}
});
});
};
// mouseOverAll(e: any) {
// const { type, value } = this.props
// const curr = e.currentTarget;
// const currChildren = curr.childNodes[0];
// const currChildrenHtml = type == 'static-html' || type == 'html'
// const style = {
// top: e.pageY,
// left: e.pageX
// }
// // 判断当前的宽度和实际的宽度对比判断是否有省略号
// if (currChildren.scrollWidth > currChildren.clientWidth) {
// let htmlset = null
// htmlset = (
// <div className={this.props.classnames(`Form-static-pop`)} style={style}>
// {!!currChildrenHtml ? <div dangerouslySetInnerHTML={{
// __html: value
// }} /> : value}
// </div>
// )
// this.setState({
// hemlset: htmlset,
// });
// }
// }
// mouseOutAll(e: any) {
// this.setState({
// hemlset: null
// });
// }
StaticControl.prototype.render = function () {
var _a;
var _b = this.props, className = _b.className, value = _b.value, label = _b.label, type = _b.type, render = _b.render, children = _b.children, data = _b.data, cx = _b.classnames, name = _b.name, disabled = _b.disabled, $schema = _b.$schema, defaultValue = _b.defaultValue, borderMode = _b.borderMode, rest = tslib_1.__rest(_b, ["className", "value", "label", "type", "render", "children", "data", "classnames", "name", "disabled", "$schema", "defaultValue", "borderMode"]);
var subType = /^static/.test(type)
? type.substring(7) || (rest.tpl ? 'tpl' : 'plain')
: type;
var field = tslib_1.__assign(tslib_1.__assign({ label: label, name: name }, $schema), { type: subType });
return (react_1.default.createElement("div", { className: cx('Form-static', (_a = {},
_a["Form-static--border".concat((0, helper_1.ucFirst)(borderMode))] = borderMode,
_a)) },
react_1.default.createElement(StaticFieldRenderer, tslib_1.__assign({}, tslib_1.__assign(tslib_1.__assign({}, rest), { name: name, render: render, field: field, value: value, className: className, onQuickChange: this.handleQuickChange, data: data, disabled: disabled, classnames: cx })))));
};
StaticControl.defaultProps = {
placeholder: '-'
};
return StaticControl;
}(react_1.default.Component));
exports.default = StaticControl;
var StaticControlRenderer = /** @class */ (function (_super) {
tslib_1.__extends(StaticControlRenderer, _super);
function StaticControlRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
StaticControlRenderer = tslib_1.__decorate([
(0, Item_1.FormItem)({
test: /(^|\/)static(\-[^\/]+)?$/,
weight: -90,
strictMode: false,
sizeMutable: false,
name: 'static'
})
], StaticControlRenderer);
return StaticControlRenderer;
}(StaticControl));
exports.StaticControlRenderer = StaticControlRenderer;
var StaticFieldRenderer = /** @class */ (function (_super) {
tslib_1.__extends(StaticFieldRenderer, _super);
function StaticFieldRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
StaticFieldRenderer.prototype.render = function () {
var _a = this.props, type = _a.type, className = _a.className, render = _a.render, style = _a.style, Component = _a.wrapperComponent, labelClassName = _a.labelClassName, value = _a.value, data = _a.data, children = _a.children, nBody = _a.body, width = _a.width, inputClassName = _a.inputClassName, label = _a.label, tabIndex = _a.tabIndex, onKeyUp = _a.onKeyUp, field = _a.field,
// mouseOverAll,
// mouseOutAll,
// hemlset,
rest = tslib_1.__rest(_a, ["type", "className", "render", "style", "wrapperComponent", "labelClassName", "value", "data", "children", "body", "width", "inputClassName", "label", "tabIndex", "onKeyUp", "field"]);
var schema = tslib_1.__assign(tslib_1.__assign({}, field), { className: inputClassName, type: (field && field.type) || 'plain' });
var body = nBody
? render('field', nBody)
: render('field', schema, tslib_1.__assign(tslib_1.__assign({}, omit(rest, Object.keys(schema))), { value: value, data: data }));
if (width) {
style = style || {};
style.width = style.width || width;
}
if (!Component) {
return body;
}
return (react_1.default.createElement(Component, { style: style, className: className, tabIndex: tabIndex, onKeyUp: onKeyUp,
// onMouseEnter={(e: any) => { !isMobile() && mouseOverAll(e) }}
// onMouseLeave={(e: any) => { !isMobile() && mouseOutAll(e) }}
title: value }, body));
};
StaticFieldRenderer.defaultProps = tslib_1.__assign(tslib_1.__assign({}, Table_1.TableCell.defaultProps), { wrapperComponent: 'div' });
StaticFieldRenderer = tslib_1.__decorate([
(0, QuickEdit_1.default)(),
(0, PopOver_1.default)({
position: 'right'
}),
(0, Copyable_1.default)()
], StaticFieldRenderer);
return StaticFieldRenderer;
}(Table_1.TableCell));
exports.StaticFieldRenderer = StaticFieldRenderer;
//# sourceMappingURL=./renderers/Form/Static.js.map