ming-demo3
Version:
mdf metaui web
245 lines (213 loc) • 7.91 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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _antd = require("antd");
var _classnames = _interopRequireDefault(require("classnames"));
var _row = _interopRequireDefault(require("./row"));
var _col = _interopRequireDefault(require("./col"));
var _text = _interopRequireDefault(require("./text"));
var _env = _interopRequireDefault(require("../../helpers/env"));
var ReferControl = function (_React$Component) {
(0, _inherits2["default"])(ReferControl, _React$Component);
function ReferControl(props) {
var _this;
(0, _classCallCheck2["default"])(this, ReferControl);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ReferControl).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleBodyClick", function (e) {
if (!_this.refs.inputSearch) return;
if (e.target === _this.refs.inputSearch.refs.input || e.target.classList.contains('anticon-canzhao') || e.target.classList.contains('anticon-close-circle') || cb.dom(e.target).parents('.has-related').length) return;
document.body.removeEventListener('click', _this.handleBodyClick);
_this.setState({
focused: false
});
var model = _this.getModel();
if (model) model.execute('blur');
});
_this.state = {
touch: _env["default"].INTERACTIVE_MODE === 'touch',
bIsNull: props.bIsNull,
visible: !props.bHidden,
focus: false,
modalVisible: false,
value: _this.props.value,
referType: '',
disabled: false || false,
width: 600,
title: '参照',
err: '',
msg: '',
showClear: false,
focused: false
};
_this.onClick = _this.onClick.bind((0, _assertThisInitialized2["default"])(_this));
_this.handleBodyClick = _this.handleBodyClick.bind((0, _assertThisInitialized2["default"])(_this));
return _this;
}
(0, _createClass2["default"])(ReferControl, [{
key: "getModel",
value: function getModel() {
return this.props.model || this.model;
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
if (this.props.model) this.props.model.addListener(this);
if (this.props.focus) this.refs.inputSearch.refs.input.focus();
document.body.addEventListener('click', this.handleBodyClick);
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate() {
if (this.props.model) this.props.model.addListener(this);
}
}, {
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(nextProps) {
if (!this.props.model && nextProps.model) nextProps.model.addListener(this);
if (nextProps.value === this.props.value) return;
this.setState({
value: nextProps.value
});
if (typeof this.props.valueChange == 'function') this.props.valueChange(nextProps.value);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
document.body.removeEventListener('click', this.handleBodyClick);
var model = this.getModel();
if (model) model.removeListener(this);
}
}, {
key: "close",
value: function close() {
this.setState({
modalVisible: false,
focused: false
});
var model = this.getModel();
if (model) model.execute('blur');
}
}, {
key: "onClick",
value: function onClick() {
var model = this.getModel();
model.getParent().getParent().getParent().execute('funcType');
}
}, {
key: "handleInputBlur",
value: function handleInputBlur(e) {
var value = e.target.value === '' ? null : e.target.value;
if (this.props.model) this.props.model.setState('text', value);
this.setState({
focused: false
});
}
}, {
key: "baseControl",
value: function baseControl() {
var _this2 = this;
var baseControl;
if (this.state.readOnly) {
baseControl = (0, _text["default"])(this.state.value);
} else {
var _this$props = this.props,
style = _this$props.style,
size = _this$props.size,
placeholder = _this$props.placeholder;
var referTitle = '';
if (this.props.title) {
referTitle = _react["default"].createElement(_col["default"], {
span: 6
}, this.props.title);
}
var btnCls = (0, _classnames["default"])({
'ant-search-btn': true
});
var searchCls = (0, _classnames["default"])({
'ant-search-input': true,
'ant-search-input-focus': this.state.focus
});
var suffix;
if (true) {
var suffixItems = [];
suffixItems.push(_react["default"].createElement(_antd.Icon, {
type: "canzhao",
onClick: this.onClick
}));
suffix = _react["default"].createElement("div", null, suffixItems);
}
baseControl = _react["default"].createElement(_row["default"], {
className: this.state.err
}, _react["default"].createElement(_col["default"], {
span: "line"
}, _react["default"].createElement("div", {
className: "ant-search-input-wrapper",
style: style
}, _react["default"].createElement(_antd.Input, {
readOnly: true,
ref: "inputSearch",
value: this.state.value,
suffix: suffix,
onBlur: function onBlur(e) {
return _this2.handleInputBlur(e);
},
onClick: this.state.touch ? this.onClick : null
}))));
}
return baseControl;
}
}, {
key: "relatedControl",
value: function relatedControl() {
var control = this.baseControl();
var relatedControl = this.props.relatedControl;
if (!relatedControl) {
return control;
} else {
var style = {};
return _react["default"].createElement("div", {
className: "has-related"
}, _react["default"].createElement("div", {
className: "viewCell"
}, control), _react["default"].createElement("div", {
className: "related-show",
style: style
}, relatedControl));
}
}
}, {
key: "getControl",
value: function getControl() {
return this.relatedControl();
}
}, {
key: "render",
value: function render() {
var control = this.getControl();
var style = this.state.visible ? {} : {
display: "none"
};
var errClass = 'has-feedback ' + this.state.err;
return _react["default"].createElement("div", {
style: style,
className: errClass
}, control, _react["default"].createElement("div", {
className: "ant-form-explain"
}, this.state.msg));
}
}]);
return ReferControl;
}(_react["default"].Component);
exports["default"] = ReferControl;
//# sourceMappingURL=functypes.js.map