UNPKG

@grc/business

Version:

更新sider选项 : forceSubMenuRender

144 lines (143 loc) 6.88 kB
var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); import React, { PureComponent } from "react"; import { ConfigConsumer } from "@grc/base/components/config-provider"; import { IntlFormattedMessageEnhance } from "@grc/base/components/intl"; import { Icon } from "@grc/base/components/icon"; import Upload from "./upload.component"; import ImportFail from "./import-fail.component"; import ImportModal from "./import-modal.component"; import ImportSuccess from "./import-success.component"; // import "./styles/index.less"; var ImportFileComponent = /** @class */ (function (_super) { __extends(ImportFileComponent, _super); function ImportFileComponent(props, context) { var _this = _super.call(this, props, context) || this; _this._uploadRef = null; _this.state = { uploadStatus: "init", currentFile: null, modalVisible: false }; _this._onFail = _this._onFail.bind(_this); _this._onSuccess = _this._onSuccess.bind(_this); _this._onChange = _this._onChange.bind(_this); return _this; } /** * 文件变化 */ ImportFileComponent.prototype._onChange = function (file) { var onChange = this.props.onChange; this.setState({ currentFile: file }); onChange && onChange(file); }; /** * 文件上传成功 */ ImportFileComponent.prototype._onSuccess = function (file) { this.setState({ uploadStatus: "success", modalVisible: true, currentFile: file }); }; /** * 文件上传失败 */ ImportFileComponent.prototype._onFail = function (file) { var onFail = this.props.onFail; this.setState({ uploadStatus: "fail", modalVisible: true, currentFile: file }); onFail && onFail(file.result, file.response); }; /** * 文件重新或继续导入回调 * @param isSuccess 是否导入成功 */ ImportFileComponent.prototype._continiuHandle = function (isSuccess) { var onBack = this.props.onBack; this.setState({ modalVisible: false, currentFile: null }); onBack && onBack(isSuccess); }; /** * 上传 * @param data 其他参数 */ ImportFileComponent.prototype.upload = function (data) { if (!this._uploadRef) return; this._uploadRef.upload(data); }; /** * 重置 */ ImportFileComponent.prototype.reset = function () { this.setState({ currentFile: null, uploadStatus: "init", modalVisible: false }); if (!this._uploadRef) return; this._uploadRef.reset(); }; ImportFileComponent.prototype.render = function () { var _this = this; var _a = this.props, headerChildren = _a.headerChildren, uploadIcon = _a.uploadIcon, uploadPlaceholder = _a.uploadPlaceholder, action = _a.action, _b = _a.modalProps, modalProps = _b === void 0 ? {} : _b, _c = _a.successProps, successProps = _c === void 0 ? {} : _c, _d = _a.failProps, failProps = _d === void 0 ? {} : _d, formateResponse = _a.formateResponse, onCancel = _a.onCancel; var _e = this.state, currentFile = _e.currentFile, modalVisible = _e.modalVisible, uploadStatus = _e.uploadStatus; var isUploadSuccess = uploadStatus === "success"; return (React.createElement(ConfigConsumer, null, function (config) { var getPrefixCls = config.getPrefixCls; var prefixCls = getPrefixCls("import", "", true); return (React.createElement("div", { className: "" + prefixCls }, React.createElement("div", { className: prefixCls + "-header" }, headerChildren), React.createElement("div", { className: prefixCls + "-main" }, React.createElement(Upload, { prefixCls: prefixCls, action: action, onChange: _this._onChange, onSuccess: _this._onSuccess, formateResponse: formateResponse, onFail: _this._onFail, ref: function (node) { _this._uploadRef = node; } }, React.createElement(React.Fragment, null, React.createElement("p", { className: prefixCls + "-upload_icon" }, React.createElement(Icon, { type: uploadIcon })), React.createElement("p", { className: prefixCls + "-upload_placeholder" }, currentFile ? currentFile.name : uploadPlaceholder)))), React.createElement(ImportModal, { prefixCls: prefixCls, visible: modalVisible, continueText: isUploadSuccess ? modalProps.continueText : modalProps.reImportText, cancelText: modalProps.cancelText || React.createElement(IntlFormattedMessageEnhance, { intlId: "gbc.component.importFile.modal.cancleText" }), onContinue: function () { _this._continiuHandle(isUploadSuccess); }, onCancel: function () { _this.setState({ modalVisible: false }); if (typeof onCancel === "function") onCancel(); } }, currentFile && isUploadSuccess && React.createElement(ImportSuccess, { prefixCls: prefixCls, title: successProps.title, tip: successProps.tip, file: currentFile }), currentFile && !isUploadSuccess && React.createElement(ImportFail, { prefixCls: prefixCls, title: failProps.title, tip: failProps.tip, file: currentFile, reasonChildren: failProps.reasonChildren, reasonDefault: failProps.reasonDefault })))); })); }; ImportFileComponent.defaultProps = { uploadPlaceholder: React.createElement(IntlFormattedMessageEnhance, { intlId: "gbc.component.importFile.placeholder" }), uploadIcon: "inbox", modalProps: { reImportText: React.createElement(IntlFormattedMessageEnhance, { intlId: "gbc.component.importFile.modal.reimportText" }), continueText: React.createElement(IntlFormattedMessageEnhance, { intlId: "gbc.component.importFile.modal.continueText" }), } }; return ImportFileComponent; }(PureComponent)); export default ImportFileComponent;