ming-demo3
Version:
mdf metaui web
239 lines (199 loc) • 7.49 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _react = _interopRequireDefault(require("react"));
var _baseui = require("@mdf/baseui");
var _input = _interopRequireDefault(require("../basic/input"));
var _inputnumber = _interopRequireDefault(require("../basic/inputnumber"));
var _datepicker = _interopRequireDefault(require("../basic/datepicker"));
var _select = _interopRequireDefault(require("../basic/select"));
var _refer = _interopRequireDefault(require("../basic/refer"));
var _switch = _interopRequireDefault(require("../basic/switch"));
var _labelswitch = _interopRequireDefault(require("../basic/labelswitch"));
var _button = _interopRequireDefault(require("../basic/button"));
var _checkbox = _interopRequireDefault(require("../basic/checkbox"));
var _tag = _interopRequireDefault(require("../basic/tag"));
var _col = _interopRequireDefault(require("../basic/col"));
var _row = _interopRequireDefault(require("../basic/row"));
var _addEventListener = _interopRequireDefault(require("rc-util/lib/Dom/addEventListener"));
var CompositeModel = function (_React$Component) {
(0, _inherits2["default"])(CompositeModel, _React$Component);
function CompositeModel(props) {
var _this;
(0, _classCallCheck2["default"])(this, CompositeModel);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CompositeModel).call(this, props));
_this.state = {
isVisible: props.visible,
width: props.width,
height: props.height,
compositeControl: props.compositeControl,
rowModel: props.rowModel
};
_this._isVisible = false;
_this.onDocumentClick = _this.onDocumentClick.bind((0, _assertThisInitialized2["default"])(_this));
return _this;
}
(0, _createClass2["default"])(CompositeModel, [{
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(nextProps) {
if (nextProps.compositeControl) this.setState({
width: nextProps.width,
height: nextProps.height,
compositeControl: nextProps.compositeControl,
rowModel: nextProps.rowModel
});
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate() {
if (this.state.isVisible) {
if (!this.clickOutsideHandler) this.clickOutsideHandler = (0, _addEventListener["default"])(document, 'mousedown', this.onDocumentClick);
return;
}
this.removeEventListener();
}
}, {
key: "removeEventListener",
value: function removeEventListener() {
if (this.clickOutsideHandler) {
this.clickOutsideHandler.remove();
this.clickOutsideHandler = null;
}
}
}, {
key: "onDocumentClick",
value: function onDocumentClick(event) {
if (this._isVisible !== false) return;
var parent = cb.dom(event.target).parents('div[data-reactroot]');
if (parent.hasClass('ant-row') || parent.children('.bill-maker-modal').length) {
this.setState({
isVisible: this._isVisible
});
if (!this._isVisible) this.props.setCellBlur();
}
}
}, {
key: "showPopClick",
value: function showPopClick() {
this.setState({
isVisible: true
});
}
}, {
key: "onVisibleChange",
value: function onVisibleChange(e) {
this._isVisible = e;
}
}, {
key: "getPopoverContent",
value: function getPopoverContent() {
var self = this;
var rowModel = this.state.rowModel;
var controls = this.state.compositeControl.controls;
var ret = [];
controls.map(function (item) {
var model = rowModel.get(item.cItemName);
var control = self.getComponents(item, model);
ret.push(_react["default"].createElement(_row["default"], null, _react["default"].createElement(_col["default"], {
span: 8
}, item.cShowCaption + ':'), _react["default"].createElement(_col["default"], {
span: 16
}, control)));
});
return ret;
}
}, {
key: "getComponents",
value: function getComponents(col, model) {
switch (col.cControlType && col.cControlType.trim().toLocaleLowerCase()) {
case 'input':
return _react["default"].createElement(_input["default"], {
model: model
});
case 'inputnumber':
var NumPoint = 1;
if (col.iNumPoint && col.iNumPoint > 1) {
NumPoint = 0.1;
NumPoint = Math.pow(NumPoint, col.iNumPoint).toFixed(col.iNumPoint);
}
return _react["default"].createElement(_inputnumber["default"], {
model: model,
iNumPoint: NumPoint
});
case 'datepicker':
return _react["default"].createElement(_datepicker["default"], {
model: model
});
case 'select':
return _react["default"].createElement(_select["default"], {
model: model
});
case 'refer':
return _react["default"].createElement(_refer["default"], {
model: model
});
case 'switch':
return _react["default"].createElement(_switch["default"], {
model: model,
checkedChildren: "\u662F",
unCheckedChildren: "\u5426"
});
case 'scheckbox':
return _react["default"].createElement(_checkbox["default"], {
model: model
});
case 'tag':
return _react["default"].createElement(_tag["default"], {
model: model,
disabled: false,
color: 'blue',
closable: true,
cRefType: col.cRefType,
refReturn: col.refReturn,
cRefRetId: col.cRefRetId
});
}
}
}, {
key: "render",
value: function render() {
var _this2 = this;
var content = this.getPopoverContent();
return _react["default"].createElement(_baseui.Popover, {
placement: "bottom",
overlayStyle: {
width: this.state.width
},
content: content,
trigger: "click",
visible: this.state.isVisible,
onVisibleChange: function onVisibleChange(e) {
return _this2.onVisibleChange(e);
}
}, _react["default"].createElement(_button["default"], {
style: {
borderWidth: 0,
width: '100%',
height: '100%'
},
type: "ghost",
icon: "",
onClick: function onClick() {
return _this2.showPopClick();
}
}));
}
}]);
return CompositeModel;
}(_react["default"].Component);
exports["default"] = CompositeModel;
//# sourceMappingURL=CompositeModel.js.map