UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

141 lines (140 loc) 8.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConditionGroup = void 0; var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importDefault)(require("react")); var theme_1 = require("../../theme"); var Button_1 = (0, tslib_1.__importDefault)(require("../Button")); var GroupOrItem_1 = (0, tslib_1.__importDefault)(require("./GroupOrItem")); var helper_1 = require("../../utils/helper"); var icons_1 = require("../icons"); var locale_1 = require("../../locale"); var ConditionGroup = /** @class */ (function (_super) { (0, tslib_1.__extends)(ConditionGroup, _super); function ConditionGroup() { return _super !== null && _super.apply(this, arguments) || this; } ConditionGroup.prototype.getValue = function () { return (0, tslib_1.__assign)({ id: (0, helper_1.guid)(), conjunction: 'and' }, this.props.value); }; ConditionGroup.prototype.handleNotClick = function () { var onChange = this.props.onChange; var value = this.getValue(); value.not = !value.not; onChange(value); }; ConditionGroup.prototype.handleConjunctionClick = function () { var onChange = this.props.onChange; var value = this.getValue(); value.conjunction = value.conjunction === 'and' ? 'or' : 'and'; onChange(value); }; ConditionGroup.prototype.handleAdd = function () { var onChange = this.props.onChange; var value = this.getValue(); value.children = Array.isArray(value.children) ? value.children.concat() : []; value.children.push({ id: (0, helper_1.guid)() }); onChange(value); }; ConditionGroup.prototype.handleAddGroup = function () { var onChange = this.props.onChange; var value = this.getValue(); value.children = Array.isArray(value.children) ? value.children.concat() : []; value.children.push({ id: (0, helper_1.guid)(), conjunction: 'and', children: [ { id: (0, helper_1.guid)() } ] }); onChange(value); }; ConditionGroup.prototype.handleItemChange = function (item, index) { var onChange = this.props.onChange; var value = this.getValue(); value.children = Array.isArray(value.children) ? value.children.concat() : []; value.children.splice(index, 1, item); onChange(value); }; ConditionGroup.prototype.handleItemRemove = function (index) { var onChange = this.props.onChange; var value = this.getValue(); value.children = Array.isArray(value.children) ? value.children.concat() : []; value.children.splice(index, 1); onChange(value); }; ConditionGroup.prototype.render = function () { var _this = this; var _a = this.props, builderMode = _a.builderMode, cx = _a.classnames, fieldClassName = _a.fieldClassName, value = _a.value, data = _a.data, fields = _a.fields, funcs = _a.funcs, config = _a.config, removeable = _a.removeable, onRemove = _a.onRemove, onDragStart = _a.onDragStart, showNot = _a.showNot, _b = _a.showANDOR, showANDOR = _b === void 0 ? false : _b, disabled = _a.disabled, searchable = _a.searchable, __ = _a.translate; return (react_1.default.createElement("div", { className: cx('CBGroup'), "data-group-id": value === null || value === void 0 ? void 0 : value.id }, react_1.default.createElement("div", { className: cx('CBGroup-toolbar') }, builderMode === 'simple' && showANDOR === false ? null : (react_1.default.createElement("div", { className: cx('CBGroup-toolbarCondition') }, showNot ? (react_1.default.createElement(Button_1.default, { onClick: this.handleNotClick, className: "m-r-xs", size: "xs", active: value === null || value === void 0 ? void 0 : value.not, disabled: disabled }, __('Condition.not'))) : null, react_1.default.createElement("div", { className: cx('ButtonGroup') }, react_1.default.createElement(Button_1.default, { size: "xs", onClick: this.handleConjunctionClick, active: (value === null || value === void 0 ? void 0 : value.conjunction) !== 'or', disabled: disabled }, __('Condition.and')), react_1.default.createElement(Button_1.default, { size: "xs", onClick: this.handleConjunctionClick, active: (value === null || value === void 0 ? void 0 : value.conjunction) === 'or', disabled: disabled }, __('Condition.or'))))), react_1.default.createElement("div", { className: cx("CBGroup-toolbarConditionAdd" + (builderMode === 'simple' ? '-simple' : '')) }, react_1.default.createElement("div", { className: cx('ButtonGroup') }, react_1.default.createElement(Button_1.default, { onClick: this.handleAdd, size: "xs", disabled: disabled }, react_1.default.createElement(icons_1.Icon, { icon: "plus", className: "icon" }), __('Condition.add_cond')), builderMode === 'simple' ? null : (react_1.default.createElement(Button_1.default, { onClick: this.handleAddGroup, size: "xs", disabled: disabled }, react_1.default.createElement(icons_1.Icon, { icon: "plus-cicle", className: "icon" }), __('Condition.add_cond_group'))))), removeable ? (react_1.default.createElement("a", { className: cx('CBDelete'), onClick: onRemove }, react_1.default.createElement(icons_1.Icon, { icon: "close", className: "icon" }))) : null), react_1.default.createElement("div", { className: cx('CBGroup-body') }, Array.isArray(value === null || value === void 0 ? void 0 : value.children) && value.children.length ? (value.children.map(function (item, index) { return (react_1.default.createElement(GroupOrItem_1.default, { draggable: value.children.length > 1, onDragStart: onDragStart, config: config, key: item.id, fields: fields, fieldClassName: fieldClassName, value: item, index: index, onChange: _this.handleItemChange, funcs: funcs, onRemove: _this.handleItemRemove, data: data, disabled: disabled, searchable: searchable, builderMode: builderMode })); })) : (react_1.default.createElement("div", { className: cx("CBGroup-placeholder " + (builderMode === 'simple' ? 'simple' : '')) }, __('Condition.blank')))))); }; (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", []), (0, tslib_1.__metadata)("design:returntype", void 0) ], ConditionGroup.prototype, "handleNotClick", null); (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", []), (0, tslib_1.__metadata)("design:returntype", void 0) ], ConditionGroup.prototype, "handleConjunctionClick", null); (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", []), (0, tslib_1.__metadata)("design:returntype", void 0) ], ConditionGroup.prototype, "handleAdd", null); (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", []), (0, tslib_1.__metadata)("design:returntype", void 0) ], ConditionGroup.prototype, "handleAddGroup", null); (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", [Object, Number]), (0, tslib_1.__metadata)("design:returntype", void 0) ], ConditionGroup.prototype, "handleItemChange", null); (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", [Number]), (0, tslib_1.__metadata)("design:returntype", void 0) ], ConditionGroup.prototype, "handleItemRemove", null); return ConditionGroup; }(react_1.default.Component)); exports.ConditionGroup = ConditionGroup; exports.default = (0, theme_1.themeable)((0, locale_1.localeable)(ConditionGroup)); //# sourceMappingURL=./components/condition-builder/Group.js.map