|
|
|
|
@ -726,14 +726,14 @@ var AddOrEditModal = function AddOrEditModal(_ref) {
|
|
|
|
|
description: '',
|
|
|
|
|
percent: 0,
|
|
|
|
|
status: 'uploading'
|
|
|
|
|
};
|
|
|
|
|
OSSUploadFiles(gather, {
|
|
|
|
|
login: data === null || data === void 0 ? void 0 : data.login,
|
|
|
|
|
container_type: 'DataSet',
|
|
|
|
|
container_id: null,
|
|
|
|
|
description: '',
|
|
|
|
|
realFileName: true
|
|
|
|
|
});
|
|
|
|
|
}; // OSSUploadFiles(gather, {
|
|
|
|
|
// login: data?.login,
|
|
|
|
|
// container_type: 'DataSet',
|
|
|
|
|
// container_id: null,
|
|
|
|
|
// description: '',
|
|
|
|
|
// realFileName: true
|
|
|
|
|
// })
|
|
|
|
|
LocalUploadFiles(gather);
|
|
|
|
|
setFileList(function (p) {
|
|
|
|
|
return [].concat(toConsumableArray_default()(p), [gather]);
|
|
|
|
|
});
|
|
|
|
|
@ -752,35 +752,29 @@ var AddOrEditModal = function AddOrEditModal(_ref) {
|
|
|
|
|
};
|
|
|
|
|
var handleRemove = /*#__PURE__*/function () {
|
|
|
|
|
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(file) {
|
|
|
|
|
var _currentFile$response;
|
|
|
|
|
var currentFile, _currentFile$response2, _currentFile$client;
|
|
|
|
|
var currentFile, _currentFile$client;
|
|
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
|
|
case 0:
|
|
|
|
|
currentFile = fileListRef.current.find(function (item) {
|
|
|
|
|
return item.name === file.name;
|
|
|
|
|
});
|
|
|
|
|
if (!(currentFile !== null && currentFile !== void 0 && (_currentFile$response = currentFile.response) !== null && _currentFile$response !== void 0 && _currentFile$response.attachment_id)) {
|
|
|
|
|
_context3.next = 4;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
_context3.next = 4;
|
|
|
|
|
return (0,fetch/* default */.ZP)('/api/data_sets/single_destroy_files.json', {
|
|
|
|
|
method: "delete",
|
|
|
|
|
body: {
|
|
|
|
|
attachment_id: currentFile === null || currentFile === void 0 || (_currentFile$response2 = currentFile.response) === null || _currentFile$response2 === void 0 ? void 0 : _currentFile$response2.attachment_id
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
case 4:
|
|
|
|
|
}); // if (currentFile?.response?.attachment_id) {
|
|
|
|
|
// await Fetch('/api/data_sets/single_destroy_files.json', {
|
|
|
|
|
// method: "delete",
|
|
|
|
|
// body: {
|
|
|
|
|
// attachment_id: currentFile?.response?.attachment_id
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
if (currentFile !== null && currentFile !== void 0 && currentFile.client) {
|
|
|
|
|
currentFile === null || currentFile === void 0 || (_currentFile$client = currentFile.client) === null || _currentFile$client === void 0 || _currentFile$client.cancel();
|
|
|
|
|
currentFile === null || currentFile === void 0 || (_currentFile$client = currentFile.client) === null || _currentFile$client === void 0 || _currentFile$client.abort();
|
|
|
|
|
}
|
|
|
|
|
setFileList(function (p) {
|
|
|
|
|
return p.filter(function (item) {
|
|
|
|
|
return item.name !== file.name;
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
case 6:
|
|
|
|
|
case 3:
|
|
|
|
|
case "end":
|
|
|
|
|
return _context3.stop();
|
|
|
|
|
}
|
|
|
|
|
@ -795,7 +789,7 @@ var AddOrEditModal = function AddOrEditModal(_ref) {
|
|
|
|
|
(_fileListRef$current = fileListRef.current) === null || _fileListRef$current === void 0 || _fileListRef$current.forEach(function (e) {
|
|
|
|
|
if (e !== null && e !== void 0 && e.client) {
|
|
|
|
|
var _e$client;
|
|
|
|
|
e === null || e === void 0 || (_e$client = e.client) === null || _e$client === void 0 || _e$client.cancel();
|
|
|
|
|
e === null || e === void 0 || (_e$client = e.client) === null || _e$client === void 0 || _e$client.abort();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
@ -908,6 +902,174 @@ var AddOrEditModal = function AddOrEditModal(_ref) {
|
|
|
|
|
return _ref5.apply(this, arguments);
|
|
|
|
|
};
|
|
|
|
|
}();
|
|
|
|
|
var LocalUploadFiles = /*#__PURE__*/function () {
|
|
|
|
|
var _ref6 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5(gather) {
|
|
|
|
|
var file, fileSize, name, chunkSize, totalChunks, res, uploadId, chunk_count, client, promises, percent, _loop, i, completed, step, _promises$slice, subTasks, p, result;
|
|
|
|
|
return regeneratorRuntime_default()().wrap(function _callee5$(_context6) {
|
|
|
|
|
while (1) switch (_context6.prev = _context6.next) {
|
|
|
|
|
case 0:
|
|
|
|
|
file = gather.file;
|
|
|
|
|
fileSize = file.size;
|
|
|
|
|
name = file.name;
|
|
|
|
|
chunkSize = 1024 * 1024 * 2; // 2MB
|
|
|
|
|
totalChunks = Math.ceil(fileSize / chunkSize);
|
|
|
|
|
_context6.prev = 5;
|
|
|
|
|
_context6.next = 8;
|
|
|
|
|
return (0,fetch/* default */.ZP)("/api/attachments/multipart_breakpoint_upload_start", {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
body: {
|
|
|
|
|
fileName: name,
|
|
|
|
|
chunkCount: totalChunks,
|
|
|
|
|
size: file === null || file === void 0 ? void 0 : file.size,
|
|
|
|
|
lastModified: file === null || file === void 0 ? void 0 : file.lastModified,
|
|
|
|
|
user_id: data === null || data === void 0 ? void 0 : data.user_id
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
case 8:
|
|
|
|
|
res = _context6.sent;
|
|
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) !== 0)) {
|
|
|
|
|
_context6.next = 13;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
setFileList(function (p) {
|
|
|
|
|
p[p.findIndex(function (item) {
|
|
|
|
|
return item.name === name;
|
|
|
|
|
})]['status'] = 'error';
|
|
|
|
|
return toConsumableArray_default()(p);
|
|
|
|
|
});
|
|
|
|
|
message/* default */.ZP.warning("上传失败,请重新尝试");
|
|
|
|
|
return _context6.abrupt("return");
|
|
|
|
|
case 13:
|
|
|
|
|
uploadId = res.upload_id, chunk_count = res.chunk_count;
|
|
|
|
|
client = new AbortController();
|
|
|
|
|
promises = [];
|
|
|
|
|
percent = chunk_count;
|
|
|
|
|
_loop = /*#__PURE__*/regeneratorRuntime_default()().mark(function _loop() {
|
|
|
|
|
var start, end, chunk, formData;
|
|
|
|
|
return regeneratorRuntime_default()().wrap(function _loop$(_context5) {
|
|
|
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
|
|
|
case 0:
|
|
|
|
|
start = i * chunkSize;
|
|
|
|
|
end = Math.min(start + chunkSize, fileSize);
|
|
|
|
|
chunk = file.slice(start, end);
|
|
|
|
|
formData = new FormData();
|
|
|
|
|
formData.append('chunk', chunk);
|
|
|
|
|
formData.append('fileName', name);
|
|
|
|
|
formData.append('chunkIndex', (i + 1).toString());
|
|
|
|
|
formData.append('uploadId', uploadId);
|
|
|
|
|
formData.append('user_id', data === null || data === void 0 ? void 0 : data.user_id);
|
|
|
|
|
promises.push(function () {
|
|
|
|
|
return (0,fetch/* default */.ZP)("/api/attachments/multipart_upload", {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
body: formData,
|
|
|
|
|
signal: client.signal
|
|
|
|
|
}, true).then(function (res) {
|
|
|
|
|
percent++;
|
|
|
|
|
var currentProgress = Math.round(percent / totalChunks * 100);
|
|
|
|
|
console.log("进度", currentProgress);
|
|
|
|
|
setFileList(function (p) {
|
|
|
|
|
var i = p.findIndex(function (item) {
|
|
|
|
|
return item.name === name;
|
|
|
|
|
});
|
|
|
|
|
p[i]['client'] = client;
|
|
|
|
|
p[i]['percent'] = currentProgress;
|
|
|
|
|
return toConsumableArray_default()(p);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
case 10:
|
|
|
|
|
case "end":
|
|
|
|
|
return _context5.stop();
|
|
|
|
|
}
|
|
|
|
|
}, _loop);
|
|
|
|
|
});
|
|
|
|
|
i = chunk_count;
|
|
|
|
|
case 19:
|
|
|
|
|
if (!(i < totalChunks)) {
|
|
|
|
|
_context6.next = 24;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return _context6.delegateYield(_loop(), "t0", 21);
|
|
|
|
|
case 21:
|
|
|
|
|
i++;
|
|
|
|
|
_context6.next = 19;
|
|
|
|
|
break;
|
|
|
|
|
case 24:
|
|
|
|
|
completed = 0;
|
|
|
|
|
step = 4;
|
|
|
|
|
case 26:
|
|
|
|
|
if (!(completed < promises.length)) {
|
|
|
|
|
_context6.next = 35;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
subTasks = (_promises$slice = promises.slice(completed, completed + step)) === null || _promises$slice === void 0 ? void 0 : _promises$slice.map(function (t) {
|
|
|
|
|
return t();
|
|
|
|
|
});
|
|
|
|
|
if (!(subTasks.length > 0)) {
|
|
|
|
|
_context6.next = 33;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
_context6.next = 31;
|
|
|
|
|
return Promise.all(subTasks);
|
|
|
|
|
case 31:
|
|
|
|
|
p = _context6.sent;
|
|
|
|
|
completed += step;
|
|
|
|
|
case 33:
|
|
|
|
|
_context6.next = 26;
|
|
|
|
|
break;
|
|
|
|
|
case 35:
|
|
|
|
|
_context6.next = 37;
|
|
|
|
|
return (0,fetch/* default */.ZP)("/api/attachments/multipart_upload_end", {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
body: {
|
|
|
|
|
fileName: file.name,
|
|
|
|
|
chunkCount: totalChunks,
|
|
|
|
|
uploadId: uploadId
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
case 37:
|
|
|
|
|
result = _context6.sent;
|
|
|
|
|
setFileList(function (p) {
|
|
|
|
|
var i = p.findIndex(function (item) {
|
|
|
|
|
return item.name === name;
|
|
|
|
|
});
|
|
|
|
|
var status = 'done';
|
|
|
|
|
if ((result === null || result === void 0 ? void 0 : result.status) === 0) {
|
|
|
|
|
p[i].response = {
|
|
|
|
|
attachment_id: result === null || result === void 0 ? void 0 : result.id
|
|
|
|
|
};
|
|
|
|
|
} else {
|
|
|
|
|
message/* default */.ZP.warning(result === null || result === void 0 ? void 0 : result.message);
|
|
|
|
|
status = 'error';
|
|
|
|
|
}
|
|
|
|
|
p[i]['status'] = status;
|
|
|
|
|
return toConsumableArray_default()(p);
|
|
|
|
|
});
|
|
|
|
|
_context6.next = 45;
|
|
|
|
|
break;
|
|
|
|
|
case 41:
|
|
|
|
|
_context6.prev = 41;
|
|
|
|
|
_context6.t1 = _context6["catch"](5);
|
|
|
|
|
console.log('接口错误:', _context6.t1);
|
|
|
|
|
if ((_context6.t1 === null || _context6.t1 === void 0 ? void 0 : _context6.t1.name) !== 'cancel') {
|
|
|
|
|
setFileList(function (p) {
|
|
|
|
|
var i = p.findIndex(function (item) {
|
|
|
|
|
return item.name === name;
|
|
|
|
|
});
|
|
|
|
|
p[i]['status'] = 'error';
|
|
|
|
|
return toConsumableArray_default()(p);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
case 45:
|
|
|
|
|
case "end":
|
|
|
|
|
return _context6.stop();
|
|
|
|
|
}
|
|
|
|
|
}, _callee5, null, [[5, 41]]);
|
|
|
|
|
}));
|
|
|
|
|
return function LocalUploadFiles(_x5) {
|
|
|
|
|
return _ref6.apply(this, arguments);
|
|
|
|
|
};
|
|
|
|
|
}();
|
|
|
|
|
var replaceTrim = function replaceTrim(str) {
|
|
|
|
|
str = str || '';
|
|
|
|
|
str = String(str);
|
|
|
|
|
@ -916,10 +1078,10 @@ var AddOrEditModal = function AddOrEditModal(_ref) {
|
|
|
|
|
return str;
|
|
|
|
|
};
|
|
|
|
|
var handleFinish = /*#__PURE__*/function () {
|
|
|
|
|
var _ref6 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5() {
|
|
|
|
|
var _ref7 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6() {
|
|
|
|
|
var value, title, is_public, desc, errorList, attachments, body, res, _res;
|
|
|
|
|
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
|
|
|
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
|
|
|
return regeneratorRuntime_default()().wrap(function _callee6$(_context7) {
|
|
|
|
|
while (1) switch (_context7.prev = _context7.next) {
|
|
|
|
|
case 0:
|
|
|
|
|
value = form.getFieldsValue();
|
|
|
|
|
title = value.title, is_public = value.is_public, desc = value.desc;
|
|
|
|
|
@ -943,11 +1105,11 @@ var AddOrEditModal = function AddOrEditModal(_ref) {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
if (!errorList.length) {
|
|
|
|
|
_context5.next = 9;
|
|
|
|
|
_context7.next = 9;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
form.setFields(errorList);
|
|
|
|
|
return _context5.abrupt("return");
|
|
|
|
|
return _context7.abrupt("return");
|
|
|
|
|
case 9:
|
|
|
|
|
attachments = fileList.map(function (e) {
|
|
|
|
|
var _e$response;
|
|
|
|
|
@ -967,26 +1129,26 @@ var AddOrEditModal = function AddOrEditModal(_ref) {
|
|
|
|
|
desc: desc
|
|
|
|
|
};
|
|
|
|
|
if (!dataSetInfo) {
|
|
|
|
|
_context5.next = 18;
|
|
|
|
|
_context7.next = 18;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
_context5.next = 15;
|
|
|
|
|
_context7.next = 15;
|
|
|
|
|
return (0,fetch/* default */.ZP)("/api/data_sets/".concat(dataSetInfo === null || dataSetInfo === void 0 ? void 0 : dataSetInfo.id, ".json"), {
|
|
|
|
|
method: "put",
|
|
|
|
|
body: body
|
|
|
|
|
});
|
|
|
|
|
case 15:
|
|
|
|
|
res = _context5.sent;
|
|
|
|
|
_context5.next = 21;
|
|
|
|
|
res = _context7.sent;
|
|
|
|
|
_context7.next = 21;
|
|
|
|
|
break;
|
|
|
|
|
case 18:
|
|
|
|
|
_context5.next = 20;
|
|
|
|
|
_context7.next = 20;
|
|
|
|
|
return (0,fetch/* default */.ZP)('/api/data_sets.json', {
|
|
|
|
|
method: "post",
|
|
|
|
|
body: body
|
|
|
|
|
});
|
|
|
|
|
case 20:
|
|
|
|
|
res = _context5.sent;
|
|
|
|
|
res = _context7.sent;
|
|
|
|
|
case 21:
|
|
|
|
|
if (res.status === 0) {
|
|
|
|
|
message/* default */.ZP.success('操作成功');
|
|
|
|
|
@ -995,12 +1157,12 @@ var AddOrEditModal = function AddOrEditModal(_ref) {
|
|
|
|
|
setBtnLoading(false);
|
|
|
|
|
case 23:
|
|
|
|
|
case "end":
|
|
|
|
|
return _context5.stop();
|
|
|
|
|
return _context7.stop();
|
|
|
|
|
}
|
|
|
|
|
}, _callee5);
|
|
|
|
|
}, _callee6);
|
|
|
|
|
}));
|
|
|
|
|
return function handleFinish() {
|
|
|
|
|
return _ref6.apply(this, arguments);
|
|
|
|
|
return _ref7.apply(this, arguments);
|
|
|
|
|
};
|
|
|
|
|
}();
|
|
|
|
|
|