ming-demo3
Version:
mdf metaui web
226 lines (194 loc) • 7.22 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
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 = _interopRequireWildcard(require("react"));
var _baseui = require("@mdf/baseui");
var _label = _interopRequireDefault(require("./label"));
var _text = _interopRequireDefault(require("./text"));
var TextArea = _baseui.Input.TextArea;
var TagArea = function (_Component) {
(0, _inherits2["default"])(TagArea, _Component);
function TagArea(props) {
var _this;
(0, _classCallCheck2["default"])(this, TagArea);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(TagArea).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleInputChange", function (e) {
var value = e && e.target ? e.target.value : e;
_this.setState({
value: value
});
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleInputBlur", function (e) {
var value = e && e.target ? e.target.value : e;
if (_this.props.model) {
_this.modelSetValue(value);
_this.props.model.execute('blur');
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPressEnter", function (e) {
var value = e && e.target ? e.target.value : e;
if (_this.props.model) {
_this.modelSetValue(value);
_this.props.model.execute('enter');
}
});
var cStyle = props.cStyle;
var config = null;
if (cStyle) {
try {
config = JSON.parse(cStyle);
} catch (e) {
config = {};
}
}
_this.state = Object.assign({
bIsNull: props.bIsNull,
visible: !props.bHidden,
readOnly: props.readOnly,
placeholder: props.placeholder || '',
err: props.err || '',
msg: props.msg || ''
}, config);
return _this;
}
(0, _createClass2["default"])(TagArea, [{
key: "componentDidMount",
value: function componentDidMount() {
if (this.props.model) this.props.model.addListener(this);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
if (this.props.model) this.props.model.removeListener(this);
}
}, {
key: "modelSetValue",
value: function modelSetValue(value) {
if (!value) {
this.props.model.setCheckMsg();
return;
}
var reg = /^[0-9A-Za-z\,]+$/;
if (reg.test(value)) {
this.props.model.setCheckMsg();
} else {
this.props.model.setCheckMsg('输入不合法,请检查');
return;
}
value = value.split(',');
var textField = this.state.textField;
var newValue = [],
hashValue = {};
value.forEach(function (item) {
if (hashValue[item]) return;
hashValue[item] = true;
var obj = {};
obj[textField] = item;
newValue.push(obj);
});
this.props.model.setValue(newValue, true);
}
}, {
key: "setValue",
value: function setValue(value) {
this.setState({
value: cb.utils.isArray(value) && value.join(',')
});
}
}, {
key: "validate",
value: function validate(val) {
this.setState({
err: 'has-' + val.type,
msg: val.message
});
}
}, {
key: "baseControl",
value: function baseControl() {
var _this$state = this.state,
readOnly = _this$state.readOnly,
value = _this$state.value,
placeholder = _this$state.placeholder,
disabled = _this$state.disabled,
before = _this$state.before,
after = _this$state.after,
bottom = _this$state.bottom;
if (readOnly) return (0, _text["default"])(value);
var props = {
placeholder: placeholder,
disabled: disabled,
value: value,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange
};
var com = _react["default"].createElement(TextArea, props);
if (!after && !bottom && !before) return com;
return _react["default"].createElement("div", {
className: "input-bottom"
}, _react["default"].createElement("div", null, before && _react["default"].createElement("span", {
className: "input-before"
}, before), com, after && _react["default"].createElement("span", {
className: "input-after"
}, after)), bottom && _react["default"].createElement("div", {
className: "input-bottom-text"
}, bottom));
}
}, {
key: "relatedControl",
value: function relatedControl() {
var control = this.baseControl();
var relatedControl = this.props.relatedControl;
if (!relatedControl) return control;
return _react["default"].createElement("div", {
className: "has-related"
}, _react["default"].createElement("div", {
className: "viewCell"
}, control), relatedControl);
}
}, {
key: "getControl",
value: function getControl() {
var cShowCaption = this.props.cShowCaption;
var title = !this.state.readOnly && this.state.bIsNull === false && cShowCaption ? _react["default"].createElement("label", null, _react["default"].createElement(Icon, {
type: "star"
}), cShowCaption) : _react["default"].createElement("label", null, cShowCaption);
var control = cShowCaption ? _react["default"].createElement(_label["default"], {
control: this.relatedControl(),
title: title
}) : this.relatedControl();
return control;
}
}, {
key: "render",
value: function render() {
var control = this.getControl();
var style = this.state.visible ? {} : {
display: "none"
};
var errClass = "basic-tagarea has-feedback ".concat(this.state.classname || '', " ") + this.state.err;
return _react["default"].createElement("div", {
style: style,
className: errClass,
onMouseEnter: this.onMouseEnter,
onMouseLeave: this.onMouseLeave
}, control, _react["default"].createElement("div", {
className: "ant-form-explain"
}, this.state.msg));
}
}]);
return TagArea;
}(_react.Component);
exports["default"] = TagArea;
//# sourceMappingURL=tagarea.js.map