UNPKG

ming-demo3

Version:
245 lines (213 loc) 7.91 kB
"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