UNPKG

syber-lowcode-business-materials

Version:
134 lines (132 loc) 6.85 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _upload = _interopRequireDefault(require("antd/lib/upload")); var _modal = _interopRequireDefault(require("antd/lib/modal")); var _message2 = _interopRequireDefault(require("antd/lib/message")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireWildcard(require("react")); var _UploadHelp = _interopRequireDefault(require("../../utils/function/UploadHelp")); var _hoc = require("../../utils/hoc"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } var CustomUpload = function CustomUpload(props) { var _appHelper$constants, _appHelper$utils; var appHelper = _react["default"].useContext(window.__appContext).appHelper; var platformType = (appHelper === null || appHelper === void 0 ? void 0 : (_appHelper$constants = appHelper.constants) === null || _appHelper$constants === void 0 ? void 0 : _appHelper$constants.__platformType) || "platform"; var uploadHelpRef = (0, _react.useRef)(new _UploadHelp["default"]({ request: appHelper === null || appHelper === void 0 ? void 0 : (_appHelper$utils = appHelper.utils) === null || _appHelper$utils === void 0 ? void 0 : _appHelper$utils._request, platformType: platformType })); var _useState = (0, _react.useState)(props.fileListControlled || []), fileList = _useState[0], setFileList = _useState[1]; (0, _react.useEffect)(function () { var _props$onChange, _props$onFileListChan; (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, fileList); (_props$onFileListChan = props.onFileListChange) === null || _props$onFileListChan === void 0 ? void 0 : _props$onFileListChan.call(props, fileList); }, [JSON.stringify(fileList)]); (0, _react.useEffect)(function () { var _props$onChange2; setFileList(props.fileListControlled); (_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 ? void 0 : _props$onChange2.call(props, fileList); }, [JSON.stringify(props.fileListControlled || [])]); var handleChange = function handleChange(_ref) { var newFileList = _ref.fileList; // 处理响应数据,将上传结果URL同步到文件列表 var updatedList = newFileList.map(function (file) { if (file.response) { return (0, _extends2["default"])({}, file, { url: file.response.url }); } return file; }); // 处理文件数量限制 if (props.size && updatedList.length > props.size) { setFileList(updatedList.slice(0, props.size)); return; } setFileList(updatedList); }; var customProps = (0, _extends2["default"])({}, props, { onChange: handleChange, beforeUpload: function beforeUpload(_, files) { if (props.size && (files === null || files === void 0 ? void 0 : files.length) + ((fileList === null || fileList === void 0 ? void 0 : fileList.length) || 0) > props.size) { _message2["default"].warning('超出文件数量限制'); return false; } console.log("true", true); return true; }, onPreview: function onPreview(file) { var _file$type; if (!file.url) { _message2["default"].info("未上传完成"); return; } if ((_file$type = file.type) !== null && _file$type !== void 0 && _file$type.includes('image') || /^https?:\/\/[^\s]+?\.(?:jpg|jpeg|png|gif|bmp|webp|tiff|svg)/i.test(file.url)) { //是图片 _modal["default"].info({ title: "预览图片", icon: null, width: '80%', centered: true, content: /*#__PURE__*/_react["default"].createElement("div", { style: { textAlign: 'center', maxHeight: '70vh', overflow: 'auto' } }, /*#__PURE__*/_react["default"].createElement("img", { src: file.url, alt: "" })) }); } else { window.open(file.url); } }, customRequest: function customRequest(_ref2) { var file = _ref2.file, onSuccess = _ref2.onSuccess, onError = _ref2.onError, onProgress = _ref2.onProgress; console.log('上传文件', file); try { var fileName = file.name; var fileType = fileName.slice(fileName.lastIndexOf('.') + 1); var uploadFunc = props.uniq ? uploadHelpRef.current.uploadUniq.bind(uploadHelpRef.current) : uploadHelpRef.current.upload.bind(uploadHelpRef.current); uploadFunc(file, fileType, function (code, msg, json) { var _props$onFileUploadSu; onSuccess({ url: json.url }, file); // 传递下载地址 _message2["default"].success(msg); (_props$onFileUploadSu = props.onFileUploadSuccess) === null || _props$onFileUploadSu === void 0 ? void 0 : _props$onFileUploadSu.call(props, json); }, function (code, msg) { var _props$onFileUploadEr; onError(new Error(msg)); _message2["default"].error(msg); (_props$onFileUploadEr = props.onFileUploadError) === null || _props$onFileUploadEr === void 0 ? void 0 : _props$onFileUploadEr.call(props, msg); }, function (_ref3) { var _props$onFileUploadPr; var total = _ref3.total; onProgress({ percent: total.percent }); (_props$onFileUploadPr = props.onFileUploadProgress) === null || _props$onFileUploadPr === void 0 ? void 0 : _props$onFileUploadPr.call(props, total); }); } catch (err) { onError(err); console.error(err); _message2["default"].error('上传失败'); } } }); return /*#__PURE__*/_react["default"].createElement(_upload["default"], (0, _extends2["default"])({}, customProps, { fileList: fileList })); }; var _default = exports["default"] = (0, _hoc.withSingleChild)(CustomUpload, ['children']);