syber-lowcode-business-materials
Version:
syber-lowcode-business-materials
134 lines (132 loc) • 6.85 kB
JavaScript
"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']);