You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
794 lines
33 KiB
794 lines
33 KiB
(self["webpackChunk"] = self["webpackChunk"] || []).push([[3402],{
|
|
|
|
/***/ 4435:
|
|
/*!*********************************************!*\
|
|
!*** ./src/components/UploadFile/index.tsx ***!
|
|
\*********************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ cT: function() { return /* binding */ uploadFile; },
|
|
/* harmony export */ pe: function() { return /* binding */ decrypt; }
|
|
/* harmony export */ });
|
|
/* unused harmony exports reNameFile, UploadFile */
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd */ 73598);
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ 8591);
|
|
/* harmony import */ var _utils_fetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/fetch */ 64841);
|
|
/* harmony import */ var crypto_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! crypto-js */ 28209);
|
|
/* harmony import */ var crypto_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(crypto_js__WEBPACK_IMPORTED_MODULE_2__);
|
|
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! uuid */ 1012);
|
|
/* harmony import */ var umi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! umi */ 23852);
|
|
/* harmony import */ var ali_oss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ali-oss */ 47257);
|
|
/* harmony import */ var ali_oss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(ali_oss__WEBPACK_IMPORTED_MODULE_5__);
|
|
var __defProp = Object.defineProperty;
|
|
var __defProps = Object.defineProperties;
|
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
var __spreadValues = (a, b) => {
|
|
for (var prop in b || (b = {}))
|
|
if (__hasOwnProp.call(b, prop))
|
|
__defNormalProp(a, prop, b[prop]);
|
|
if (__getOwnPropSymbols)
|
|
for (var prop of __getOwnPropSymbols(b)) {
|
|
if (__propIsEnum.call(b, prop))
|
|
__defNormalProp(a, prop, b[prop]);
|
|
}
|
|
return a;
|
|
};
|
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
var __objRest = (source, exclude) => {
|
|
var target = {};
|
|
for (var prop in source)
|
|
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
target[prop] = source[prop];
|
|
if (source != null && __getOwnPropSymbols)
|
|
for (var prop of __getOwnPropSymbols(source)) {
|
|
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
target[prop] = source[prop];
|
|
}
|
|
return target;
|
|
};
|
|
var __async = (__this, __arguments, generator) => {
|
|
return new Promise((resolve, reject) => {
|
|
var fulfilled = (value) => {
|
|
try {
|
|
step(generator.next(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
};
|
|
var rejected = (value) => {
|
|
try {
|
|
step(generator.throw(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
};
|
|
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
});
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const { Dragger } = antd__WEBPACK_IMPORTED_MODULE_4__["default"];
|
|
|
|
const decrypt = (word) => {
|
|
const ENC_KEY = "bf3c199c2470cb477d907b1e0917c17b";
|
|
const IV = "5183666c72eec9e4";
|
|
var key = crypto_js__WEBPACK_IMPORTED_MODULE_2___default().enc.Utf8.parse(ENC_KEY);
|
|
let iv = crypto_js__WEBPACK_IMPORTED_MODULE_2___default().enc.Utf8.parse(IV);
|
|
var decrypt2 = crypto_js__WEBPACK_IMPORTED_MODULE_2___default().AES.decrypt(word, key, {
|
|
iv,
|
|
mode: (crypto_js__WEBPACK_IMPORTED_MODULE_2___default().mode).CBC
|
|
// padding: CryptoJS.pad.ZeroPadding
|
|
});
|
|
return decrypt2.toString((crypto_js__WEBPACK_IMPORTED_MODULE_2___default().enc).Utf8);
|
|
};
|
|
let tempCheckpoint;
|
|
const reNameFile = (_0) => __async(void 0, [_0], function* ({ identifier, oldFilename, newFilename }) {
|
|
var _a, _b, _c, _d, _e, _f;
|
|
const res = yield Fetch("/api/buckets/get_upload_token_for_big_files.json", { method: "get" });
|
|
res.data = JSON.parse(decrypt(res.data));
|
|
const client = new OSS({
|
|
endpoint: (_a = res == null ? void 0 : res.data) == null ? void 0 : _a.end_point,
|
|
region: (_b = res == null ? void 0 : res.data) == null ? void 0 : _b.region,
|
|
accessKeyId: (_c = res == null ? void 0 : res.data) == null ? void 0 : _c.access_key_id,
|
|
accessKeySecret: (_d = res == null ? void 0 : res.data) == null ? void 0 : _d.access_key_secret,
|
|
bucket: (_e = res == null ? void 0 : res.data) == null ? void 0 : _e.bucket,
|
|
stsToken: (_f = res == null ? void 0 : res.data) == null ? void 0 : _f.security_token
|
|
});
|
|
return new Promise((resolve, reject) => {
|
|
console.log(11111, `${identifier}/${oldFilename}`, `${identifier}/${newFilename}`, res.data);
|
|
client.copy(`/${identifier}/${oldFilename}`, `/${identifier}/${newFilename}`).then((r) => {
|
|
console.log("\u62F7\u8D1D\u6210\u529F", r);
|
|
}).catch((e) => {
|
|
console.log(e);
|
|
});
|
|
});
|
|
});
|
|
const uploadFile = (file, obj, config) => __async(void 0, null, function* () {
|
|
var _a, _b, _c, _d, _e, _f;
|
|
obj.file_name = file.name;
|
|
const res = yield (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .ZP)("/api/buckets/get_upload_token.json", { method: "get" });
|
|
console.log("decrypt(res.data):", decrypt(res.data));
|
|
res.data = JSON.parse(decrypt(res.data));
|
|
const namearrs = file.name.split(".");
|
|
namearrs.pop();
|
|
const name = obj.realFileName ? namearrs.join("") : (0,uuid__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)();
|
|
const client = new (ali_oss__WEBPACK_IMPORTED_MODULE_5___default())({
|
|
endpoint: (_a = res == null ? void 0 : res.data) == null ? void 0 : _a.end_point,
|
|
region: (_b = res == null ? void 0 : res.data) == null ? void 0 : _b.region,
|
|
accessKeyId: (_c = res == null ? void 0 : res.data) == null ? void 0 : _c.access_key_id,
|
|
accessKeySecret: (_d = res == null ? void 0 : res.data) == null ? void 0 : _d.access_key_secret,
|
|
bucket: (_e = res == null ? void 0 : res.data) == null ? void 0 : _e.bucket,
|
|
stsToken: (_f = res == null ? void 0 : res.data) == null ? void 0 : _f.security_token
|
|
});
|
|
return new Promise((resolve, reject) => {
|
|
var _a2;
|
|
client.multipartUpload(`${name}`, new Blob([file], { type: file.type }), __spreadProps(__spreadValues({
|
|
timeout: 200 * 1e3,
|
|
partSize: 102400
|
|
}, config), {
|
|
callback: {
|
|
url: (_a2 = res == null ? void 0 : res.data) == null ? void 0 : _a2.callback_url,
|
|
host: res == null ? void 0 : res.data.bucket_host,
|
|
body: "bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var=${x:my_var}&" + (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_1__/* .parseParams */ .rz)(obj)
|
|
// body: 'bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var=${x:my_var}&login=' + obj.login + '&container_id=' + obj.container_id + '&container_type='+obj.container_type,
|
|
}
|
|
})).then(function(result) {
|
|
var _a3;
|
|
file.response = (_a3 = result.data) == null ? void 0 : _a3.data;
|
|
resolve(result == null ? void 0 : result.data);
|
|
}).catch(function(err) {
|
|
reject(err);
|
|
console.log("err:", err);
|
|
});
|
|
});
|
|
});
|
|
const UploadFile = (_a) => {
|
|
var _b = _a, { user, cancelUpload } = _b, props = __objRest(_b, ["user", "cancelUpload"]);
|
|
const [fileList, setFileList] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);
|
|
let [client, setClient] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();
|
|
const _props = {
|
|
onRemove: (e) => {
|
|
setFileList([...fileList.filter((item) => item.name !== e.name)]);
|
|
props.onChange(fileList.filter((item) => item.name !== e.name));
|
|
},
|
|
disabled: props.disabled,
|
|
multiple: true,
|
|
fileList: fileList == null ? void 0 : fileList.map((item) => item.file),
|
|
customRequest: () => {
|
|
},
|
|
beforeUpload: (file) => __async(void 0, null, function* () {
|
|
let fileSize = props.maxSize || 1024 * 1024 * 1024 * 1;
|
|
if (!!fileList.filter((item) => item.name === file.name).length) {
|
|
antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP.info(`${file.name}\u5DF2\u5B58\u5728\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9`);
|
|
return;
|
|
}
|
|
if ((file == null ? void 0 : file.size) > fileSize) {
|
|
antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP.info(`\u6587\u4EF6\u8D85\u8FC7${fileSize / 1024 / 1024 / 1024}GB\uFF0C\u4E0D\u7B26\u5408\u4E0A\u4F20\u8981\u6C42`);
|
|
return false;
|
|
}
|
|
fileList.push({ name: file.name, file });
|
|
setFileList([...fileList]);
|
|
props.onChange(fileList);
|
|
return false;
|
|
})
|
|
};
|
|
const _uploadFiles = (file, obj) => __async(void 0, null, function* () {
|
|
var _a2, _b2, _c, _d, _e, _f;
|
|
obj.file_name = file.name;
|
|
const name = file.name;
|
|
const res = yield (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .ZP)("/api/buckets/get_upload_token_for_big_files.json", { method: "get" });
|
|
res.data = JSON.parse(decrypt(res.data));
|
|
if ((res == null ? void 0 : res.status) !== 0) {
|
|
fileList[fileList.findIndex((item) => item.name === name)]["status"] = "error";
|
|
fileList[fileList.findIndex((item) => item.name === name)]["file"]["status"] = "error";
|
|
props.onChange(fileList);
|
|
antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP.warning("\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u5C1D\u8BD5");
|
|
return;
|
|
}
|
|
client = new (ali_oss__WEBPACK_IMPORTED_MODULE_5___default())({
|
|
endpoint: (_a2 = res == null ? void 0 : res.data) == null ? void 0 : _a2.end_point,
|
|
region: (_b2 = res == null ? void 0 : res.data) == null ? void 0 : _b2.region,
|
|
accessKeyId: (_c = res == null ? void 0 : res.data) == null ? void 0 : _c.access_key_id,
|
|
accessKeySecret: (_d = res == null ? void 0 : res.data) == null ? void 0 : _d.access_key_secret,
|
|
bucket: (_e = res == null ? void 0 : res.data) == null ? void 0 : _e.bucket,
|
|
stsToken: (_f = res == null ? void 0 : res.data) == null ? void 0 : _f.security_token
|
|
});
|
|
console.log(file, "file");
|
|
setClient(client);
|
|
const namearrs = file.name.split(".");
|
|
namearrs.pop();
|
|
const filename = obj.realFileName ? namearrs.join(".") : (0,uuid__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)();
|
|
return new Promise((resolve, reject) => {
|
|
var _a3;
|
|
try {
|
|
client.multipartUpload(`${props.identifier}/${filename}${name.indexOf(".") > -1 ? "." + name.split(".").pop() : ""}`, new Blob([file.file], { type: file.file.type }), {
|
|
timeout: 3600 * 1e3,
|
|
partSize: 1002400,
|
|
progress: (p, checkpoint, res2) => {
|
|
try {
|
|
console.log("\u8FDB\u5EA6", p, checkpoint, res2);
|
|
const index = fileList.findIndex((item) => item.name === name);
|
|
fileList[index]["file"]["percent"] = p * 100;
|
|
fileList[index].tempCheckpoint = checkpoint;
|
|
setFileList([...fileList]);
|
|
} catch (e) {
|
|
}
|
|
},
|
|
checkpoint: fileList[fileList.findIndex((item) => item.name === name)].tempCheckpoint,
|
|
callback: {
|
|
customValue: {
|
|
id: name + ""
|
|
},
|
|
url: (_a3 = res == null ? void 0 : res.data) == null ? void 0 : _a3.callback_url,
|
|
host: res == null ? void 0 : res.data.bucket_host,
|
|
body: "bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var=${x:my_var}&" + (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_1__/* .parseParams */ .rz)(obj)
|
|
}
|
|
}).then(function(result) {
|
|
var _a4, _b3, _c2;
|
|
const index = fileList.findIndex((item) => item.name === name);
|
|
let status = "done";
|
|
if (((_a4 = result.data) == null ? void 0 : _a4.status) === 0) {
|
|
file.response = (_b3 = result.data) == null ? void 0 : _b3.data;
|
|
const index2 = fileList.findIndex((item) => item.name === name);
|
|
fileList[index2]["status"] = "done";
|
|
fileList[index2]["file"]["status"] = "done";
|
|
} else {
|
|
antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP.warning((_c2 = result.data) == null ? void 0 : _c2.message);
|
|
status = "error";
|
|
}
|
|
fileList[index]["status"] = status;
|
|
fileList[index]["file"]["status"] = status;
|
|
props.onChange(fileList);
|
|
resolve(result == null ? void 0 : result.data);
|
|
}).catch(function(err) {
|
|
fileList[fileList.findIndex((item) => item.name === name)]["status"] = "error";
|
|
fileList[fileList.findIndex((item) => item.name === name)]["file"]["status"] = "error";
|
|
antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP.warning("\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u5C1D\u8BD5");
|
|
setFileList([...fileList]);
|
|
props.onChange(fileList);
|
|
reject(err);
|
|
console.log("err:", err);
|
|
});
|
|
} catch (e) {
|
|
}
|
|
});
|
|
});
|
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
if (fileList.every((item) => item === "done" || item === "error")) {
|
|
props.onComplete(fileList);
|
|
}
|
|
}, [fileList]);
|
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
if (cancelUpload) {
|
|
client == null ? void 0 : client.cancel();
|
|
}
|
|
}, [cancelUpload]);
|
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
if (props.uploading)
|
|
fileList.map((item) => __async(void 0, null, function* () {
|
|
var _a2;
|
|
if ((!item.status || item.status === "error") && !cancelUpload) {
|
|
item.status = "uploading";
|
|
item.file.status = "uploading";
|
|
const res = yield _uploadFiles(item, {
|
|
login: (_a2 = user == null ? void 0 : user.userInfo) == null ? void 0 : _a2.login,
|
|
container_type: props.container_type,
|
|
container_id: props.container_id,
|
|
description: props.description,
|
|
realFileName: props.realFileName
|
|
});
|
|
}
|
|
}));
|
|
}, [props.uploading]);
|
|
return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(
|
|
Dragger,
|
|
__spreadProps(__spreadValues({}, _props), {
|
|
height: props.height,
|
|
className: props.className
|
|
}),
|
|
/* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("p", { className: "ant-upload-hint" }, props.text || "\u62D6\u62FD\u6587\u4EF6\u6216\u8005\u70B9\u51FB\u4E0A\u4F20")
|
|
);
|
|
};
|
|
/* harmony default export */ __webpack_exports__.ZP = ((0,umi__WEBPACK_IMPORTED_MODULE_3__.connect)(
|
|
({
|
|
loading,
|
|
globalSetting,
|
|
user
|
|
}) => ({
|
|
globalSetting,
|
|
loading: loading.models.competitions,
|
|
user
|
|
})
|
|
)(UploadFile));
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 27883:
|
|
/*!*****************************************************************************************!*\
|
|
!*** ./src/pages/Shixuns/Edit/body/Dataset/components/UploadFile/index.tsx + 1 modules ***!
|
|
\*****************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ components_UploadFile; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
var env = __webpack_require__(19351);
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
var fetch = __webpack_require__(64841);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/upload/index.js + 24 modules
|
|
var upload = __webpack_require__(73598);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/form/index.js + 19 modules
|
|
var es_form = __webpack_require__(78241);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
|
|
var message = __webpack_require__(8591);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
|
|
var modal = __webpack_require__(43418);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
|
|
var input = __webpack_require__(20008);
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Edit/body/Dataset/components/UploadFile/index.less?modules
|
|
// extracted by mini-css-extract-plugin
|
|
/* harmony default export */ var UploadFilemodules = ({"wrap":"wrap___EmsVa","colorBlue":"colorBlue___XqtfP","repeatedName":"repeatedName___yMQsm"});
|
|
// EXTERNAL MODULE: ./src/components/UploadFile/index.tsx
|
|
var UploadFile = __webpack_require__(4435);
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
var util = __webpack_require__(75798);
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Edit/body/Dataset/components/UploadFile/index.tsx
|
|
var __defProp = Object.defineProperty;
|
|
var __defProps = Object.defineProperties;
|
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
var __spreadValues = (a, b) => {
|
|
for (var prop in b || (b = {}))
|
|
if (__hasOwnProp.call(b, prop))
|
|
__defNormalProp(a, prop, b[prop]);
|
|
if (__getOwnPropSymbols)
|
|
for (var prop of __getOwnPropSymbols(b)) {
|
|
if (__propIsEnum.call(b, prop))
|
|
__defNormalProp(a, prop, b[prop]);
|
|
}
|
|
return a;
|
|
};
|
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
var __async = (__this, __arguments, generator) => {
|
|
return new Promise((resolve, reject) => {
|
|
var fulfilled = (value) => {
|
|
try {
|
|
step(generator.next(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
};
|
|
var rejected = (value) => {
|
|
try {
|
|
step(generator.throw(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
};
|
|
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
});
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const { Dragger } = upload["default"];
|
|
const UploadFile_UploadFile = ({
|
|
dispatch,
|
|
id,
|
|
onClose,
|
|
onOK,
|
|
visible,
|
|
wrapClassName,
|
|
local,
|
|
containerId,
|
|
rootIdentifier
|
|
}) => {
|
|
var _a;
|
|
const [formValue, setFormValue] = (0,_react_17_0_2_react.useState)({});
|
|
const [repeatedName, setRepeatedName] = (0,_react_17_0_2_react.useState)([]);
|
|
const [xhrItems, setXhrItems] = (0,_react_17_0_2_react.useState)([]);
|
|
const [disabled, setDisabled] = (0,_react_17_0_2_react.useState)(0);
|
|
const [cancelUpload, setCancelUpload] = (0,_react_17_0_2_react.useState)(false);
|
|
const [btnLoading, setBtnLoading] = (0,_react_17_0_2_react.useState)(false);
|
|
const [form] = es_form["default"].useForm();
|
|
const [fileList, setFileList] = (0,_react_17_0_2_react.useState)([]);
|
|
const savedFileList = (0,_react_17_0_2_react.useRef)([]);
|
|
(0,_react_17_0_2_react.useEffect)(() => {
|
|
if (visible) {
|
|
form.resetFields();
|
|
setFileList([]);
|
|
setXhrItems([]);
|
|
setRepeatedName([]);
|
|
setDisabled(0);
|
|
setBtnLoading(false);
|
|
setCancelUpload(false);
|
|
}
|
|
}, [visible]);
|
|
const handleChangeFile = (info) => {
|
|
var _a2, _b, _c;
|
|
if (info.file.status === "done" || info.file.status === "uploading") {
|
|
setFileList(info.fileList);
|
|
if (!info.file.response) {
|
|
return;
|
|
}
|
|
if ((_a2 = info.file.response) == null ? void 0 : _a2.id) {
|
|
message/* default */.ZP.success("\u4E0A\u4F20\u6210\u529F\uFF01");
|
|
return;
|
|
}
|
|
setFileList(fileList.filter((item) => item.uid !== info.file.uid));
|
|
((_b = info.file.response) == null ? void 0 : _b.message) && message/* default */.ZP.info((_c = info.file.response) == null ? void 0 : _c.message);
|
|
}
|
|
};
|
|
const handleRemoveFile = (info) => __async(void 0, null, function* () {
|
|
var _a2;
|
|
if (!disabled) {
|
|
const newFileList = fileList.filter((item) => item.uid !== info.uid);
|
|
setFileList(newFileList);
|
|
savedFileList.current = [...newFileList];
|
|
setRepeatedName(repeatedName.filter((item) => item !== info.name));
|
|
message/* default */.ZP.info("\u5220\u9664\u6210\u529F");
|
|
if (!newFileList.length) {
|
|
form.setFieldsValue({ file: void 0 });
|
|
form.validateFields();
|
|
}
|
|
return;
|
|
}
|
|
if (!info.response) {
|
|
message/* default */.ZP.info("\u8FD8\u672A\u4E0A\u4F20\u5B8C\u6210\uFF0C\u65E0\u6CD5\u8FDB\u884C\u5220\u9664\u64CD\u4F5C\uFF01");
|
|
return;
|
|
}
|
|
const res = yield (0,fetch/* default */.ZP)(`/api/shixuns/${id}/destroy_data_sets.json`, {
|
|
method: "Delete",
|
|
body: { id: [(_a2 = info == null ? void 0 : info.response) == null ? void 0 : _a2.id] }
|
|
});
|
|
if (res.status === 0) {
|
|
setFileList(fileList.filter((item) => item.uid !== info.uid));
|
|
message/* default */.ZP.info("\u5220\u9664\u6210\u529F");
|
|
}
|
|
});
|
|
const handleBeforeUpload = (info) => {
|
|
if (fileList == null ? void 0 : fileList.some((e) => e.name === info.name)) {
|
|
message/* default */.ZP.info(`${info.name}\u6587\u4EF6\u5DF2\u5B58\u5728`);
|
|
return false;
|
|
}
|
|
if (info.size / 1024 / 1024 > 500) {
|
|
message/* default */.ZP.info("\u6587\u4EF6\u8D85\u8FC7500M\uFF0C\u4E0D\u7B26\u5408\u4E0A\u4F20\u8981\u6C42");
|
|
return false;
|
|
}
|
|
const param = { name: info.name, uid: info.uid, file: info, percent: 0 };
|
|
fileList.push(param);
|
|
savedFileList.current = [...fileList];
|
|
setFileList([...fileList]);
|
|
return false;
|
|
};
|
|
const draggerProps = {
|
|
height: 300,
|
|
multiple: true,
|
|
disabled: disabled > 0,
|
|
withCredentials: true,
|
|
fileList,
|
|
action: `${env/* default */.Z.API_SERVER}/api/attachments.json`,
|
|
onChange: handleChangeFile,
|
|
onRemove: handleRemoveFile,
|
|
beforeUpload: handleBeforeUpload
|
|
};
|
|
const uploadRequest = (params, url, callback2, progressFunction, error2) => {
|
|
const formData = new FormData();
|
|
Object.keys(params).forEach((key) => {
|
|
formData.append(key, params[key]);
|
|
});
|
|
const xhr = new window.XMLHttpRequest();
|
|
xhr.withCredentials = true;
|
|
xhr.addEventListener(
|
|
"load",
|
|
function(res) {
|
|
var _a2;
|
|
callback2(JSON.parse((_a2 = res == null ? void 0 : res.target) == null ? void 0 : _a2.response));
|
|
},
|
|
false
|
|
);
|
|
xhr.addEventListener(
|
|
"error",
|
|
function(err) {
|
|
if (error2) {
|
|
error2(err);
|
|
}
|
|
},
|
|
false
|
|
);
|
|
xhr.upload.onprogress = (e) => {
|
|
if (progressFunction) {
|
|
progressFunction(e);
|
|
}
|
|
};
|
|
xhr.open("POST", url);
|
|
xhr.send(formData);
|
|
return xhr;
|
|
};
|
|
const getProgress = (event, item) => {
|
|
if (event.lengthComputable) {
|
|
const percent = Math.floor(event.loaded / event.total * 100);
|
|
const param = __spreadProps(__spreadValues({}, item), { percent, status: percent === 100 ? "done" : "uploading" });
|
|
console.log(savedFileList.current, 333);
|
|
savedFileList.current = savedFileList.current.map((e) => e.uid === item.uid ? param : e);
|
|
setFileList(savedFileList.current);
|
|
}
|
|
};
|
|
const error = (res, item) => {
|
|
const param = __spreadProps(__spreadValues({}, item), { status: "error" });
|
|
message/* default */.ZP.warning("\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u5C1D\u8BD5");
|
|
savedFileList.current = savedFileList.current.map((e) => e.uid === item.uid ? param : e);
|
|
if (savedFileList.current.every((e) => e.status === "done" || e.status === "error")) {
|
|
setBtnLoading(false);
|
|
setDisabled(2);
|
|
}
|
|
setFileList(savedFileList.current);
|
|
};
|
|
const callback = (res, item) => {
|
|
let param = __spreadProps(__spreadValues({}, item), { status: "done" });
|
|
if (res.status === 0) {
|
|
} else {
|
|
param = __spreadProps(__spreadValues({}, item), { status: "error" });
|
|
message/* default */.ZP.error("\u4E0A\u4F20\u5931\u8D25!");
|
|
}
|
|
savedFileList.current = savedFileList.current.map((e) => e.uid === item.uid ? param : e);
|
|
if (savedFileList.current.every((e) => e.status === "done")) {
|
|
message/* default */.ZP.success("\u4E0A\u4F20\u5B8C\u6210!");
|
|
cancelEnd(true);
|
|
return;
|
|
}
|
|
if (savedFileList.current.every((e) => e.status === "done" || e.status === "error")) {
|
|
setBtnLoading(false);
|
|
setDisabled(2);
|
|
}
|
|
setFileList(savedFileList.current);
|
|
};
|
|
const isOnLine = () => {
|
|
let netStatus = true;
|
|
if (window.navigator.onLine == true) {
|
|
netStatus = true;
|
|
} else {
|
|
netStatus = false;
|
|
}
|
|
;
|
|
return netStatus;
|
|
};
|
|
const handleFinish = (values) => __async(void 0, null, function* () {
|
|
setBtnLoading(true);
|
|
if (disabled === 3) {
|
|
setDisabled(2);
|
|
return;
|
|
}
|
|
if (disabled === 2 || disabled === 1) {
|
|
onUploadAgain();
|
|
return;
|
|
}
|
|
const { commitMessage = "", fileOss = [] } = values || {};
|
|
const filesItems = local ? fileList : fileOss;
|
|
const names = filesItems.map((e) => e.name);
|
|
if (names.filter((item) => item.indexOf("\u3001") != -1 || item.indexOf(" ") != -1).length > 0) {
|
|
message/* default */.ZP.info("\u6570\u636E\u96C6\u540D\u79F0\u7981\u6B62\u6709\u7A7A\u683C\u4E0E\u3001");
|
|
setBtnLoading(false);
|
|
return;
|
|
}
|
|
const res = yield (0,fetch/* default */.ZP)(`/api/shixuns/${id}/check_data_sets`, {
|
|
method: "post",
|
|
body: {
|
|
files_name: names
|
|
}
|
|
});
|
|
if (res.status === -3) {
|
|
setRepeatedName(res == null ? void 0 : res.exist_files);
|
|
setBtnLoading(false);
|
|
return;
|
|
}
|
|
if (JSON.stringify(res) === "{}") {
|
|
setBtnLoading(false);
|
|
message/* default */.ZP.error("\u7F51\u7EDC\u5DF2\u65AD\u5F00,\u8BF7\u7A0D\u540E\u91CD\u8BD5!");
|
|
return;
|
|
}
|
|
if (res.status === 0) {
|
|
fileList.forEach((item) => {
|
|
const xhr = uploadRequest(
|
|
{
|
|
file: item.file,
|
|
description: commitMessage
|
|
},
|
|
`${env/* default */.Z.API_SERVER}/api/shixuns/${id}/upload_data_sets.json`,
|
|
(e) => callback(e, item),
|
|
(e) => getProgress(e, item),
|
|
(e) => error(e, item)
|
|
);
|
|
xhrItems.push(xhr);
|
|
});
|
|
setDisabled(1);
|
|
}
|
|
});
|
|
const onUploadAgain = () => {
|
|
const { commitMessage = "" } = __spreadValues({}, form.getFieldsValue()) || {};
|
|
const errorFileList = savedFileList.current.filter((item) => item.status === "error");
|
|
const t = savedFileList.current.map((e) => __spreadProps(__spreadValues({}, e), { status: e.status === "error" ? "uploading" : e.status }));
|
|
setFileList(t);
|
|
errorFileList.forEach((item) => {
|
|
const xhr = uploadRequest(
|
|
{
|
|
file: item.file,
|
|
description: commitMessage
|
|
},
|
|
`${env/* default */.Z.API_SERVER}/api/shixuns/${id}/upload_data_sets.json`,
|
|
(e) => callback(e, item),
|
|
(e) => getProgress(e, item),
|
|
(e) => error(e, item)
|
|
);
|
|
xhrItems.push(xhr);
|
|
});
|
|
};
|
|
const handleValuesChange = (changedValues) => {
|
|
var _a2, _b;
|
|
console.log(changedValues, "changedValues");
|
|
if ("fileOss" in changedValues) {
|
|
if ((changedValues == null ? void 0 : changedValues.fileOss.every((e) => e.status === "done")) && ((_a2 = changedValues == null ? void 0 : changedValues.fileOss) == null ? void 0 : _a2.length)) {
|
|
message/* default */.ZP.success("\u4E0A\u4F20\u5B8C\u6210!");
|
|
cancelEnd(true);
|
|
return;
|
|
}
|
|
if ((changedValues == null ? void 0 : changedValues.fileOss.every((e) => e.status === "done" || e.status === "error")) && ((_b = changedValues == null ? void 0 : changedValues.fileOss) == null ? void 0 : _b.length)) {
|
|
setDisabled(3);
|
|
setBtnLoading(false);
|
|
return;
|
|
}
|
|
setRepeatedName(repeatedName.filter((item) => {
|
|
var _a3;
|
|
return (_a3 = changedValues == null ? void 0 : changedValues.fileOss) == null ? void 0 : _a3.some((e) => e.name === item);
|
|
}));
|
|
}
|
|
setFormValue(__spreadValues({}, form.getFieldsValue()));
|
|
};
|
|
const cancelEnd = (bool) => {
|
|
if (!bool) {
|
|
setCancelUpload(true);
|
|
xhrItems.forEach((e) => {
|
|
e.abort();
|
|
});
|
|
}
|
|
onOK();
|
|
onClose();
|
|
};
|
|
const handleCancel = () => {
|
|
const { fileOss = [] } = __spreadValues({}, form.getFieldsValue()) || {};
|
|
const fileListItems = fileList == null ? void 0 : fileList.every((e) => e.status === "done");
|
|
const ossItems = fileOss == null ? void 0 : fileOss.every((e) => e.status === "done");
|
|
if (!fileListItems || !ossItems) {
|
|
modal["default"].confirm({
|
|
title: "\u5173\u95ED\u5F39\u6846\u63D0\u793A",
|
|
content: "\u6709\u6587\u4EF6\u672A\u4E0A\u4F20,\u662F\u5426\u786E\u5B9A\u79BB\u5F00\uFF1F",
|
|
okText: "\u79BB\u5F00",
|
|
cancelText: "\u53D6\u6D88",
|
|
onOk: () => {
|
|
cancelEnd();
|
|
}
|
|
});
|
|
return;
|
|
}
|
|
cancelEnd();
|
|
};
|
|
const returnDom = () => {
|
|
return /* @__PURE__ */ _react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, /* @__PURE__ */ _react_17_0_2_react.createElement("div", null, /* @__PURE__ */ _react_17_0_2_react.createElement("i", { className: `iconfont icon-shangchuan font50 ${UploadFilemodules.colorBlue}` })), /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: `font14 mt30` }, "\u62D6\u62FD\u6587\u4EF6\u6216", /* @__PURE__ */ _react_17_0_2_react.createElement("span", { className: `${UploadFilemodules.colorBlue} ml5` }, "\u70B9\u51FB\u6B64\u5904\u4E0A\u4F20")));
|
|
};
|
|
const handleComplete = (item) => {
|
|
console.log(item, 444);
|
|
};
|
|
return /* @__PURE__ */ _react_17_0_2_react.createElement(
|
|
modal["default"],
|
|
{
|
|
open: visible,
|
|
onOk: () => {
|
|
(0,util/* trackEvent */.L9)(["\u5B9E\u8DF5\u9879\u76EE", "\u8BBE\u7F6E", "\u6570\u636E\u96C6", "\u4E0A\u4F20\u6587\u4EF6"]);
|
|
form.submit();
|
|
},
|
|
centered: true,
|
|
okText: disabled === 0 ? "\u786E\u5B9A" : disabled === 1 ? "\u4E0A\u4F20\u4E2D" : "\u91CD\u65B0\u4E0A\u4F20",
|
|
okButtonProps: { loading: btnLoading },
|
|
onCancel: handleCancel,
|
|
width: "1000px",
|
|
title: "\u4E0A\u4F20\u6587\u4EF6"
|
|
},
|
|
/* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: UploadFilemodules.wrap }, /* @__PURE__ */ _react_17_0_2_react.createElement(
|
|
es_form["default"],
|
|
{
|
|
className: "mt10",
|
|
form,
|
|
scrollToFirstError: true,
|
|
layout: "vertical",
|
|
onFinish: handleFinish,
|
|
onValuesChange: handleValuesChange
|
|
},
|
|
local ? /* @__PURE__ */ _react_17_0_2_react.createElement(es_form["default"].Item, { label: /* @__PURE__ */ _react_17_0_2_react.createElement("div", null, "\u9009\u62E9\u6587\u4EF6 ", /* @__PURE__ */ _react_17_0_2_react.createElement("span", { className: "c-light-black" }, "(\u5355\u4E2A\u6587\u4EF6\u4E0D\u8D85\u8FC7500M)")), name: "file", rules: [
|
|
{ required: true, message: "\u8BF7\u9009\u62E9\u6587\u4EF6" }
|
|
] }, /* @__PURE__ */ _react_17_0_2_react.createElement(Dragger, __spreadValues({}, draggerProps), " ", returnDom())) : /* @__PURE__ */ _react_17_0_2_react.createElement(es_form["default"].Item, { label: /* @__PURE__ */ _react_17_0_2_react.createElement("div", null, "\u9009\u62E9\u6587\u4EF6 ", /* @__PURE__ */ _react_17_0_2_react.createElement("span", { className: "c-light-black" }, "(\u5355\u4E2A\u6587\u4EF6\u4E0D\u8D85\u8FC7100GB)")), name: "fileOss", rules: [
|
|
{ required: true, message: "\u8BF7\u9009\u62E9\u6587\u4EF6" }
|
|
] }, /* @__PURE__ */ _react_17_0_2_react.createElement(
|
|
UploadFile/* default */.ZP,
|
|
{
|
|
identifier: rootIdentifier,
|
|
cancelUpload,
|
|
container_type: "Shixun",
|
|
container_id: containerId,
|
|
uploading: disabled < 3 ? disabled : 0,
|
|
disabled: disabled > 0,
|
|
height: 300,
|
|
maxSize: 100 * 1024 * 1024 * 1024,
|
|
description: formValue.commitMessage || "",
|
|
text: returnDom(),
|
|
onComplete: handleComplete,
|
|
realFileName: true
|
|
}
|
|
)),
|
|
!!repeatedName.length && /* @__PURE__ */ _react_17_0_2_react.createElement("span", { className: UploadFilemodules.repeatedName }, repeatedName.join("\u3001"), "\u5DF2\u5B58\u5728,\u8BF7\u5220\u9664\u540E\u518D\u4E0A\u4F20"),
|
|
/* @__PURE__ */ _react_17_0_2_react.createElement(
|
|
es_form["default"].Item,
|
|
{
|
|
name: "commitMessage",
|
|
label: "\u5907\u6CE8:",
|
|
rules: [
|
|
{ whitespace: true, message: "\u8BF7\u52FF\u8F93\u5165\u7A7A\u683C" }
|
|
]
|
|
},
|
|
/* @__PURE__ */ _react_17_0_2_react.createElement(
|
|
input["default"],
|
|
{
|
|
bordered: false,
|
|
disabled: disabled > 0,
|
|
maxLength: 100,
|
|
suffix: `${((_a = formValue.commitMessage) == null ? void 0 : _a.length) || 0}/100`,
|
|
placeholder: "\u8BF7\u586B\u5199\u5907\u6CE8\u4FE1\u606F"
|
|
}
|
|
)
|
|
)
|
|
))
|
|
);
|
|
};
|
|
/* harmony default export */ var components_UploadFile = (UploadFile_UploadFile);
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 3828:
|
|
/*!************************!*\
|
|
!*** crypto (ignored) ***!
|
|
\************************/
|
|
/***/ (function() {
|
|
|
|
/* (ignored) */
|
|
|
|
/***/ })
|
|
|
|
}]); |