captain-ui
Version:
有赞vue wap业务组件库
88 lines (73 loc) • 2.41 kB
JavaScript
;
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;