zp-bee
Version:
zp-bee,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。
111 lines (95 loc) • 4.06 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;
require("antd/es/upload/style");
var _upload = _interopRequireDefault(require("antd/es/upload"));
require("antd/es/button/style");
var _button = _interopRequireDefault(require("antd/es/button"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireWildcard(require("react"));
var _zpBee = require("zp-bee");
var _throttle = _interopRequireDefault(require("lodash/throttle"));
var BeeUpload = function BeeUpload(_ref) {
var modalTitle = _ref.modalTitle,
description = _ref.description,
selectFileTip = _ref.selectFileTip,
uploadVisible = _ref.uploadVisible,
importBtnLoading = _ref.importBtnLoading,
importFile = _ref.importFile,
onCancel = _ref.onCancel,
_ref$modalWidth = _ref.modalWidth,
modalWidth = _ref$modalWidth === void 0 ? 558 : _ref$modalWidth,
downloadTemplate = _ref.downloadTemplate,
uploadDescription = _ref.uploadDescription,
accept = _ref.accept,
extraContent = _ref.extraContent;
var _useState = (0, _react.useState)(),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
file = _useState2[0],
setFile = _useState2[1];
var uploadProps = {
maxCount: 1,
fileList: [],
accept: accept,
beforeUpload: function beforeUpload(uploadFile) {
setFile(uploadFile);
return false;
}
};
var importFileRefFn = (0, _react.useRef)(null);
importFileRefFn.current = importFile;
var handleClickImport = (0, _react.useMemo)(function () {
return (0, _throttle.default)(function () {
var _a;
(_a = importFileRefFn.current) === null || _a === void 0 ? void 0 : _a.call(importFileRefFn, file);
}, 3000, {
leading: true,
trailing: false
});
}, [file]);
(0, _react.useEffect)(function () {
if (!uploadVisible) {
// 重置file
setFile(null);
}
}, [uploadVisible]);
return /*#__PURE__*/_react.default.createElement(_zpBee.BeeModal, {
footer: null,
visible: uploadVisible,
title: modalTitle,
width: modalWidth,
onCancel: onCancel,
className: "bee-upload-wrap"
}, downloadTemplate && /*#__PURE__*/_react.default.createElement("div", {
className: "downloadTemplateTip"
}, /*#__PURE__*/_react.default.createElement("div", {
className: "importTemplateTipInfo"
}, "\u5BFC\u5165\u8BF4\u660E\uFF1A", description || '请下载模版,然后将科目信息添加到模板中'), /*#__PURE__*/_react.default.createElement(_button.default, {
onClick: downloadTemplate
}, "\u4E0B\u8F7D\u6587\u4EF6\u6A21\u677F")), /*#__PURE__*/_react.default.createElement("div", {
className: file ? 'fileShow' : 'uploadFileArea'
}, file && /*#__PURE__*/_react.default.createElement("div", {
className: "fileUrl"
}, /*#__PURE__*/_react.default.createElement(_zpBee.BeeIcon, {
type: "iconwenjian",
className: "fileIcon"
}), /*#__PURE__*/_react.default.createElement("span", null, file.name)), /*#__PURE__*/_react.default.createElement(_upload.default, Object.assign({}, uploadProps), /*#__PURE__*/_react.default.createElement(_button.default, {
type: "primary",
className: "selectFileBtn"
}, file ? '重新选择' : '选择文件')), !file && /*#__PURE__*/_react.default.createElement("div", {
className: "selectFileTip"
}, selectFileTip)), file ? /*#__PURE__*/_react.default.createElement(_button.default, {
onClick: handleClickImport,
className: "importBtn",
type: "primary",
loading: importBtnLoading
}, "\u7ACB\u5373\u5BFC\u5165") : uploadDescription && /*#__PURE__*/_react.default.createElement("div", {
className: "uploadTip"
}, uploadDescription), extraContent);
};
var _default = BeeUpload;
exports.default = _default;