ming-demo3
Version:
mdf metaui web
265 lines (231 loc) • 9.59 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 _index = require("./index");
var Avatar = function (_Component) {
(0, _inherits2["default"])(Avatar, _Component);
function Avatar(props) {
var _this;
(0, _classCallCheck2["default"])(this, Avatar);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Avatar).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleChange", function (info) {
if (info.file.status === 'done') {
if (info.file.response.code == 200) {
var value = _this.DocumentServerAddress + info.file.response.data;
if (_this.props.model) _this.props.model.setValue(value, true);
cb.utils.alert("".concat(info.file.name, " \u4E0A\u4F20\u6210\u529F\uFF01"), 'success');
} else {
cb.utils.alert("".concat(info.file.name, " \u4E0A\u4F20\u5931\u8D25\uFF01").concat(info.file.response.code, " : ").concat(info.file.response.message), 'error');
}
} else if (info.file.status === 'error') {
cb.utils.alert("".concat(info.file.name, " \u4E0A\u4F20\u5931\u8D25\uFF01").concat(info.file.response.code, " : ").concat(info.file.response.message), 'error');
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getUploadControl", function (control, className) {
var action = '/upload?token=' + cb.rest.AppContext.token;
var accept = _this.state.accept;
var _accept = '.' + accept.split(',').join(',.');
return _react["default"].createElement(_baseui.Upload, {
className: "avatar-uploader " + className,
showUploadList: false,
action: action,
beforeUpload: _this.beforeUpload.bind((0, _assertThisInitialized2["default"])(_this)),
onChange: _this.handleChange,
accept: _accept
}, control);
});
var cStyle = props.cStyle;
var config = null;
if (cStyle) {
try {
config = JSON.parse(cStyle);
} catch (e) {
config = {};
}
}
_this.state = Object.assign({
displaymode: 'default',
bIsNull: props.bIsNull,
visible: !props.bHidden,
caption: props.cShowCaption,
err: '',
msg: '',
accept: 'jpg,png',
imgSize: 2048,
uploadtext: '上传图片'
}, config);
_this.DocumentServerAddress = 'https://oivs4lxfc.bkt.clouddn.com';
var proxy = cb.rest.DynamicProxy.create({
getFileServerUrl: {
url: '/pub/fileupload/getFileServerUrl.do',
method: 'GET'
}
});
proxy.getFileServerUrl(function (err, result) {
if (result) _this.DocumentServerAddress = result;
});
return _this;
}
(0, _createClass2["default"])(Avatar, [{
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: "beforeUpload",
value: function beforeUpload(file) {
var _this$state = this.state,
accept = _this$state.accept,
imgSize = _this$state.imgSize;
var _typeArr = file.name.split('.');
var _type = _typeArr[_typeArr.length - 1].toLowerCase();
var _acceptArr = accept.split(',');
var _isType = _acceptArr.includes(_type);
if (!_isType) cb.utils.alert('图片仅支持' + accept + '格式', 'error');
var isFileSize = file.size / 1024 < imgSize;
if (!isFileSize) {
cb.utils.alert('文件必须小于' + (imgSize < 1024 ? imgSize + 'K' : imgSize / 1024 + 'M'), 'error');
}
return _isType && isFileSize;
}
}, {
key: "validate",
value: function validate(val) {
this.setState({
err: 'has-' + val.type,
msg: val.message
});
}
}, {
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: "handelDelete",
value: function handelDelete() {
if (this.props.model) this.props.model.setValue(null, true);
}
}, {
key: "baseControl",
value: function baseControl() {
var cCaption = this.props.cCaption;
var _this$state2 = this.state,
readOnly = _this$state2.readOnly,
value = _this$state2.value,
tooltip = _this$state2.tooltip,
displaymode = _this$state2.displaymode,
afterPopoverKey = _this$state2.afterPopoverKey,
after = _this$state2.after,
bottom = _this$state2.bottom,
accept = _this$state2.accept,
uploadtext = _this$state2.uploadtext,
disabled = _this$state2.disabled;
tooltip = after !== undefined ? after : tooltip !== undefined ? tooltip : '仅支持' + accept.split(',').join('、').toUpperCase() + '格式';
var className = "basic-avatar-".concat(displaymode);
if (readOnly || disabled) {
return value ? _react["default"].createElement("div", {
className: "basic-avatar-browse-img-container"
}, _react["default"].createElement("img", {
className: className,
src: value,
alt: ""
})) : _react["default"].createElement("div", {
className: "no-avatar-man ".concat(className)
});
}
var _baseControl = _react["default"].createElement(_index.Row, {
className: "face-img ".concat(className)
}, value ? _react["default"].createElement("p", {
className: "basic-avatar-btn-item"
}, _react["default"].createElement("img", {
src: value
}), this.getUploadControl(_react["default"].createElement(_baseui.Icon, {
type: "uploadimg"
}), 'basic-avator-changeimg'), _react["default"].createElement("strong", {
onClick: this.handelDelete.bind(this),
className: "basic-avator-deleteimg"
}, _react["default"].createElement(_baseui.Icon, {
type: "delete"
}))) : _react["default"].createElement("p", {
className: "basic-avatar-btn-item basic-avatar-bg"
}, this.getUploadControl(_react["default"].createElement("strong", null, _react["default"].createElement(_baseui.Icon, {
type: "uploadimg"
}), uploadtext), 'basic-avator-uploadimg')), _react["default"].createElement("div", {
className: "basic-avatar-right"
}, tooltip));
if (!bottom) {
return _baseControl;
} else {
return _react["default"].createElement("div", {
className: "input-bottom"
}, _react["default"].createElement("div", {
className: "control-flex"
}, _baseControl), _react["default"].createElement("div", {
className: "input-bottom-text"
}, bottom));
}
}
}, {
key: "getControl",
value: function getControl() {
var caption = this.state.caption;
var title = !this.state.readOnly && this.state.bIsNull === false && caption ? _react["default"].createElement("label", null, _react["default"].createElement(_baseui.Icon, {
type: "star"
}), caption) : _react["default"].createElement("label", null, caption);
var control = caption ? _react["default"].createElement(_index.Label, {
control: this.relatedControl(),
title: title
}) : this.relatedControl();
return control;
}
}, {
key: "render",
value: function render() {
var control = this.getControl();
var _this$state3 = this.state,
classname = _this$state3.classname,
visible = _this$state3.visible,
err = _this$state3.err,
msg = _this$state3.msg;
var style = visible ? {} : {
display: "none"
};
var _className = classname + ' basic-avatar has-feedback ' + err;
return _react["default"].createElement("div", {
style: style,
className: _className
}, control, _react["default"].createElement("div", {
className: "ant-form-explain"
}, msg));
}
}]);
return Avatar;
}(_react.Component);
exports["default"] = Avatar;
//# sourceMappingURL=avatar.js.map