betanet-mini-ui
Version:
为 Taro 而设计的 UI Library
202 lines (167 loc) • 7.74 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _react = _interopRequireDefault(require("react"));
var _api = _interopRequireDefault(require("../../api"));
var _PicturePicker = _interopRequireDefault(require("./PicturePicker"));
var BmPicture = function BmPicture(props) {
var action = props.action,
_props$name = props.name,
name = _props$name === void 0 ? 'file' : _props$name,
_props$formData = props.formData,
formData = _props$formData === void 0 ? {} : _props$formData,
_props$value = props.value,
value = _props$value === void 0 ? [] : _props$value,
_props$fileType = props.fileType,
fileType = _props$fileType === void 0 ? 'image' : _props$fileType,
_props$onChange = props.onChange,
onChange = _props$onChange === void 0 ? function () {} : _props$onChange,
beforeUpload = props.beforeUpload;
var uploadCount = 0;
var handleChange = function handleChange(files, operationType, operationData, index) {
if (operationType !== 'add') {
onChange((0, _toConsumableArray2.default)(files), operationType, operationData, index);
return;
}
operationData === null || operationData === void 0 ? void 0 : operationData.forEach( /*#__PURE__*/function () {
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(currentFile) {
var _currentFile$file, _currentFile$file2;
var cFileName, uploadParam, innerParam, bData, _ref2, innerAction, innerFormData, fFormData, iFromData, fAction, iAction, fFromData, cFromData, finalAction, result;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
uploadCount++;
currentFile.file.status = 'uploading';
onChange((0, _toConsumableArray2.default)(files), operationType, operationData);
cFileName = currentFile === null || currentFile === void 0 ? void 0 : (_currentFile$file = currentFile.file) === null || _currentFile$file === void 0 ? void 0 : _currentFile$file.name;
uploadParam = {
filePath: (currentFile === null || currentFile === void 0 ? void 0 : (_currentFile$file2 = currentFile.file) === null || _currentFile$file2 === void 0 ? void 0 : _currentFile$file2.path) || '',
name: name,
fileName: cFileName,
fileType: fileType
};
if (!beforeUpload) {
_context.next = 29;
break;
}
_context.next = 8;
return beforeUpload(files, currentFile);
case 8:
bData = _context.sent;
_ref2 = bData || {}, innerAction = _ref2.action, innerFormData = _ref2.formData;
fFormData = innerFormData || formData;
iFromData = fFormData instanceof Function ? fFormData() : fFormData;
fAction = innerAction || action;
iAction = fAction instanceof Function ? fAction() : fAction;
_context.next = 16;
return iFromData;
case 16:
fFromData = _context.sent;
_context.t0 = _objectSpread2.default;
_context.t1 = (0, _objectSpread2.default)({}, uploadParam);
_context.t2 = {};
_context.next = 22;
return iAction;
case 22:
_context.t3 = _context.sent;
_context.t4 = fFromData;
_context.t5 = (fFromData === null || fFromData === void 0 ? void 0 : fFromData.fileName) || cFileName;
_context.t6 = {
url: _context.t3,
formData: _context.t4,
fileName: _context.t5
};
innerParam = (0, _context.t0)(_context.t1, _context.t2, _context.t6);
_context.next = 42;
break;
case 29:
cFromData = formData instanceof Function ? formData() : formData;
finalAction = action instanceof Function ? action() : action;
_context.t7 = _objectSpread2.default;
_context.t8 = (0, _objectSpread2.default)({}, uploadParam);
_context.t9 = {};
_context.next = 36;
return finalAction;
case 36:
_context.t10 = _context.sent;
_context.next = 39;
return cFromData;
case 39:
_context.t11 = _context.sent;
_context.t12 = {
url: _context.t10,
formData: _context.t11
};
innerParam = (0, _context.t7)(_context.t8, _context.t9, _context.t12);
case 42:
_context.prev = 42;
_context.next = 45;
return upload(innerParam);
case 45:
result = _context.sent;
if ((result === null || result === void 0 ? void 0 : result.statusCode) === 200) {
currentFile.file.status = 'done';
} else {
currentFile.file.status = 'error';
}
currentFile.file.response = result;
_context.next = 54;
break;
case 50:
_context.prev = 50;
_context.t13 = _context["catch"](42);
currentFile.file.status = 'error';
currentFile.file.response = _context.t13;
case 54:
if (uploadCount >= operationData.length) {
onChange((0, _toConsumableArray2.default)(files), operationType, operationData);
}
case 55:
case "end":
return _context.stop();
}
}
}, _callee, null, [[42, 50]]);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}());
};
var upload = function upload(param) {
var _ref3 = param || {},
url = _ref3.url,
filePath = _ref3.filePath,
_ref3$name = _ref3.name,
name = _ref3$name === void 0 ? 'file' : _ref3$name,
fileName = _ref3.fileName,
_ref3$formData = _ref3.formData,
formData = _ref3$formData === void 0 ? {} : _ref3$formData,
_ref3$fileType = _ref3.fileType,
fileType = _ref3$fileType === void 0 ? 'image' : _ref3$fileType;
return _api.default.uploadFile({
url: url,
filePath: filePath,
name: name,
fileName: fileName,
formData: formData,
fileType: fileType
});
};
return /*#__PURE__*/_react.default.createElement(_PicturePicker.default, (0, _extends2.default)({}, props, {
value: (0, _toConsumableArray2.default)(value),
onChange: handleChange
}));
};
BmPicture.defaultProps = {};
var _default = BmPicture;
exports.default = _default;