UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

165 lines (159 loc) 4.7 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireWildcard(require("react")); var _UploadRoot = _interopRequireDefault(require("./wrapper/UploadRoot")); var _DisabledContext = _interopRequireDefault(require("../config-provider/DisabledContext")); var _LocaleReceiver = _interopRequireDefault(require("../locale-provider/LocaleReceiver")); const LmUpload = ({ fileConfig, fileNames, components, ossConfig, ...resetProps }, ref) => { const defaultRef = (0, _react.useRef)(null); const disabled = _react.default.useContext(_DisabledContext.default); // 仅在初始化触发一次 const initConfig = (0, _react.useMemo)(() => { return { // 文件参数配置: 存储时的数据 fileConfig: fileConfigProps => { const { file, timestamp, fileName, filePath, shortlink, url, realFileName } = fileConfigProps; return { uid: timestamp, fileTypeCode: file.type, fileTypeName: file.type, fileName, // 上传时的文件名 realFileName: realFileName || file.name, // oss的文件名 fileSize: file.size, internalUrl: shortlink, externalUrl: shortlink, filePath, seq: 0, url, status: 'done', ...fileConfig?.(fileConfigProps) }; }, // 读取字段配置: 读取存储的参数字段 fileNames: { 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: { wrapper: null, // 结构定义 ...(components || {}) } }; }, []); const defaultProps = { 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: () => ({ 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: () => true, /** 是否开启粘贴快捷上传 */ onPasteUpload: false, /** 是否开启设置主图 */ showMaster: false, ...resetProps }; return /*#__PURE__*/_react.default.createElement(_LocaleReceiver.default, { componentName: "LmUpload" }, contextLocale => { return /*#__PURE__*/_react.default.createElement(_UploadRoot.default, (0, _extends2.default)({ ref: ref || defaultRef }, initConfig, defaultProps, { locale: contextLocale })); }); }; var _default = /*#__PURE__*/(0, _react.forwardRef)(LmUpload); exports.default = _default;