UNPKG

captain-ui

Version:

有赞vue wap业务组件库

88 lines (73 loc) 2.41 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.upload = void 0; require("vant/es/toast/style"); var _toast = _interopRequireDefault(require("vant/es/toast")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _queryString = require("@youzan/utils/url/queryString"); var _index = require("./index"); var _constants = require("../constants"); var config = { tokenOptions: { kdtId: 0, channel: 'pay_ucert_photo', maxSize: _constants.IMAGE_MAX_SIZE } }; var fetchUploadToken = function fetchUploadToken(tokenUrl, tokenOptions, type) { return (0, _index.ajaxData)({ url: tokenUrl + "?" + (0, _queryString.stringify)((0, _extends2.default)({}, tokenOptions, { type: type })), xhrFields: { withCredentials: true } }).then(function (_ref) { var uploadToken = _ref.uploadToken; return uploadToken; }); }; var uploadSingle = function uploadSingle(file, tokenUrl, options) { var tokenOptions = options.tokenOptions; var mimeType = file.type; var firstSlashIndex = mimeType.indexOf('/'); var type = mimeType.slice(0, firstSlashIndex); return fetchUploadToken(tokenUrl, tokenOptions, type).then(function (token) { var fd = new FormData(); fd.append('file', file, file.name); fd.append('token', token); return (0, _index.ajaxData)({ url: '//upload.qiniup.com', type: 'POST', data: fd, contentType: 'multipart/form-data; charset=UTF-8', processData: false, disableCsrfToken: true }).then(function (data) { var questionIndex = data.attachment_url.indexOf('?'); var pureUrl = data.attachment_url.slice(0, questionIndex); return pureUrl; }); }).catch(function (e) { var fileName = file && file.name || ''; var msg = "\u56FE\u7247" + fileName + "\u4E0A\u4F20\u5931\u8D25"; (0, _toast.default)(msg); return ''; }); }; /** * 上传文件 * @param {Array} files 上传文件 * @param {String} tokenUrl 素材银行获取token的请求地址 * @param {Object} options 配置 */ var upload = function upload(files, tokenUrl, options) { if (options === void 0) { options = config; } return Promise.all(files.map(function (file) { return uploadSingle(file, tokenUrl, options); })); }; exports.upload = upload;