UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

153 lines (148 loc) 4.87 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; var _excluded = ["fileConfig", "fileNames", "components", "ossConfig"]; import React, { useRef, useMemo, forwardRef } from 'react'; import LmFilterRoot from "./wrapper/UploadRoot"; import DisabledContext from "../config-provider/DisabledContext"; import LocaleReceiver from "../locale-provider/LocaleReceiver"; var LmUpload = function LmUpload(_ref, ref) { var _fileConfig = _ref.fileConfig, fileNames = _ref.fileNames, components = _ref.components, _ossConfig = _ref.ossConfig, resetProps = _objectWithoutProperties(_ref, _excluded); var defaultRef = useRef(null); var disabled = React.useContext(DisabledContext); // 仅在初始化触发一次 var initConfig = useMemo(function () { return { // 文件参数配置: 存储时的数据 fileConfig: function fileConfig(fileConfigProps) { var file = fileConfigProps.file, timestamp = fileConfigProps.timestamp, fileName = fileConfigProps.fileName, filePath = fileConfigProps.filePath, shortlink = fileConfigProps.shortlink, url = fileConfigProps.url, realFileName = fileConfigProps.realFileName; return _objectSpread({ uid: timestamp, fileTypeCode: file.type, fileTypeName: file.type, fileName: fileName, // 上传时的文件名 realFileName: realFileName || file.name, // oss的文件名 fileSize: file.size, internalUrl: shortlink, externalUrl: shortlink, filePath: filePath, seq: 0, url: url, status: 'done' }, _fileConfig === null || _fileConfig === void 0 ? void 0 : _fileConfig(fileConfigProps)); }, // 读取字段配置: 读取存储的参数字段 fileNames: _objectSpread({ uid: 'uid', fileTypeCode: 'fileTypeCode', fileTypeName: 'fileTypeName', fileName: 'fileName', // 上传时的文件名 realFileName: 'realFileName', // oss的文件名 fileSize: 'fileSize', internalUrl: 'internalUrl', externalUrl: 'externalUrl', filePath: 'filePath', seq: 'seq', url: 'url', status: 'status' }, fileNames), // 初始化 components: _objectSpread({ wrapper: null }, components || {}) }; }, []); var defaultProps = _objectSpread({ size: 100, // 宽高大小 仅 listType 为 'card' 时有效 fileSize: 10, // 限制的文件大小 M fileSizeType: 'M', // 文件大小类型 M/Mb/K/kb uid: 'fileName', // 文件列表的key字段 accept: '', // 接收上传的文件类型 type: ['jpg', 'jpeg', 'png'], // 文件类型 listType: 'card', // 上传列表的内建样式: text/card/picture readOnly: false, // 是否只读 disabled: disabled || false, // 是否禁用 showUploadList: true, // 是否展示文件列表 fileList: null, // 受控文件列表 defaultFileList: [], // 默认已经上传的文件列表 limit: null, // 允许上传的最大数量 maxCount: null, // 允许上传的最大数量 children: null, itemRender: null, // 自定义文件列表 enabledPreview: true, // 是否可预览 enabledCrop: false, // 是否剪裁 enableDrag: false, // 是否可拖拽 multiple: false, // 是否支持多选 enabledOss: false, // 是否开启OSS上传 // oss配置 ossConfig: function ossConfig() { return _objectSpread({ dir: '/BizFile/4595/Supplier/', // 文件路径 region: 'oss-cn-hangzhou', // 所在地域 accessKeyId: '', // ak accessKeySecret: '', // aks stsToken: '', // st bucket: 'linkmore-scm-test', // Bucket名称 shortlink: 'https://linkmore-scm-test.oss-cn-hangzhou.aliyuncs.com' }, typeof _ossConfig === 'function' ? _ossConfig() : _ossConfig); }, // 根据返回值决定是否可删除 onRemove: function onRemove() { return true; }, /** 是否开启粘贴快捷上传 */ onPasteUpload: false, /** 是否开启设置主图 */ showMaster: false }, resetProps); return /*#__PURE__*/React.createElement(LocaleReceiver, { componentName: "LmUpload" }, function (contextLocale) { return /*#__PURE__*/React.createElement(LmFilterRoot, _extends({ ref: ref || defaultRef }, initConfig, defaultProps, { locale: contextLocale })); }); }; export default /*#__PURE__*/forwardRef(LmUpload);