|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[86634,1058],{
|
|
|
|
|
|
/***/ 25032:
|
|
|
/*!*******************************************************************************************************!*\
|
|
|
!*** ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/InboxOutlined.js + 1 modules ***!
|
|
|
\*******************************************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ icons_InboxOutlined; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.25.6@@babel/runtime/helpers/esm/extends.js
|
|
|
var esm_extends = __webpack_require__(33614);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/InboxOutlined.js
|
|
|
// This icon file is generated automatically.
|
|
|
var InboxOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "0 0 1024 1024", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M885.2 446.3l-.2-.8-112.2-285.1c-5-16.1-19.9-27.2-36.8-27.2H281.2c-17 0-32.1 11.3-36.9 27.6L139.4 443l-.3.7-.2.8c-1.3 4.9-1.7 9.9-1 14.8-.1 1.6-.2 3.2-.2 4.8V830a60.9 60.9 0 0060.8 60.8h627.2c33.5 0 60.8-27.3 60.9-60.8V464.1c0-1.3 0-2.6-.1-3.7.4-4.9 0-9.6-1.3-14.1zm-295.8-43l-.3 15.7c-.8 44.9-31.8 75.1-77.1 75.1-22.1 0-41.1-7.1-54.8-20.6S436 441.2 435.6 419l-.3-15.7H229.5L309 210h399.2l81.7 193.3H589.4zm-375 76.8h157.3c24.3 57.1 76 90.8 140.4 90.8 33.7 0 65-9.4 90.3-27.2 22.2-15.6 39.5-37.4 50.7-63.6h156.5V814H214.4V480.1z" } }] }, "name": "inbox", "theme": "outlined" };
|
|
|
/* harmony default export */ var asn_InboxOutlined = (InboxOutlined);
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
|
var AntdIcon = __webpack_require__(1393);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/InboxOutlined.js
|
|
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var InboxOutlined_InboxOutlined = function InboxOutlined(props, ref) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
|
ref: ref,
|
|
|
icon: asn_InboxOutlined
|
|
|
}));
|
|
|
};
|
|
|
|
|
|
/** */
|
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(InboxOutlined_InboxOutlined);
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var icons_InboxOutlined = (RefIcon);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 29419:
|
|
|
/*!**********************************************************************************************************!*\
|
|
|
!*** ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/PoweroffOutlined.js + 1 modules ***!
|
|
|
\**********************************************************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
Z: function() { return /* binding */ icons_PoweroffOutlined; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.25.6@@babel/runtime/helpers/esm/extends.js
|
|
|
var esm_extends = __webpack_require__(33614);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/PoweroffOutlined.js
|
|
|
// This icon file is generated automatically.
|
|
|
var PoweroffOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M705.6 124.9a8 8 0 00-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0162.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0127.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 01-76.3 113.3 353.06 353.06 0 01-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 01-113.2-76.4A355.92 355.92 0 01184 650.4a355 355 0 01-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z" } }] }, "name": "poweroff", "theme": "outlined" };
|
|
|
/* harmony default export */ var asn_PoweroffOutlined = (PoweroffOutlined);
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
|
var AntdIcon = __webpack_require__(1393);
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/PoweroffOutlined.js
|
|
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var PoweroffOutlined_PoweroffOutlined = function PoweroffOutlined(props, ref) {
|
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
|
ref: ref,
|
|
|
icon: asn_PoweroffOutlined
|
|
|
}));
|
|
|
};
|
|
|
|
|
|
/** */
|
|
|
var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(PoweroffOutlined_PoweroffOutlined);
|
|
|
if (false) {}
|
|
|
/* harmony default export */ var icons_PoweroffOutlined = (RefIcon);
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 1058:
|
|
|
/*!**********************************************************!*\
|
|
|
!*** ./src/components/MultiUpload/index.tsx + 2 modules ***!
|
|
|
\**********************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
z: function() { return /* binding */ coverToFileList; },
|
|
|
Z: function() { return /* binding */ MultiUpload; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js
|
|
|
var regeneratorRuntime = __webpack_require__(7557);
|
|
|
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js
|
|
|
var asyncToGenerator = __webpack_require__(41498);
|
|
|
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js
|
|
|
var objectSpread2 = __webpack_require__(82242);
|
|
|
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/toConsumableArray.js
|
|
|
var toConsumableArray = __webpack_require__(37205);
|
|
|
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(79800);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/upload/index.js
|
|
|
var upload = __webpack_require__(60028);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
|
|
|
var es_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/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
|
var env = __webpack_require__(71681);
|
|
|
// EXTERNAL MODULE: ./src/pages/MoopCases/FormPanel/service.ts
|
|
|
var service = __webpack_require__(70754);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/SingleUpload/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var uploadNameSizeSeperator = ' ';
|
|
|
function bytesToSize(bytes) {
|
|
|
var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
|
|
|
if (bytes == 0) return '0 Byte';
|
|
|
var i = parseInt('' + Math.floor(Math.log(bytes) / Math.log(1024)), 10);
|
|
|
return (bytes / Math.pow(1024, i)).toFixed(1) + ' ' + sizes[i];
|
|
|
}
|
|
|
/* harmony default export */ var SingleUpload = (function (_ref) {
|
|
|
var _ref$value = _ref.value,
|
|
|
value = _ref$value === void 0 ? [] : _ref$value,
|
|
|
action = _ref.action,
|
|
|
_onChange = _ref.onChange,
|
|
|
className = _ref.className,
|
|
|
_ref$maxSize = _ref.maxSize,
|
|
|
maxSize = _ref$maxSize === void 0 ? 150 : _ref$maxSize,
|
|
|
_ref$title = _ref.title,
|
|
|
title = _ref$title === void 0 ? '文件上传' : _ref$title,
|
|
|
_ref$accept = _ref.accept,
|
|
|
accept = _ref$accept === void 0 ? null : _ref$accept;
|
|
|
var uploadProps = {
|
|
|
multiple: false,
|
|
|
fileList: value,
|
|
|
accept: accept,
|
|
|
withCredentials: true,
|
|
|
beforeUpload: function beforeUpload(file) {
|
|
|
var fileSize = file.size / 1024 / 1024;
|
|
|
if (!(fileSize < maxSize)) {
|
|
|
message.error("\u8BE5\u6587\u4EF6\u65E0\u6CD5\u4E0A\u4F20\u3002\u8D85\u8FC7\u6587\u4EF6\u5927\u5C0F\u9650\u5236(".concat(maxSize, "MB),\u5EFA\u8BAE\u4E0A\u4F20\u5230\u767E\u5EA6\u4E91\u7B49\u5176\u5B83\u5171\u4EAB\u5DE5\u5177\u91CC\uFF0C\u7136\u540E\u518Dtxt\u6587\u6863\u91CC\u7ED9\u51FA\u94FE\u63A5\u4EE5\u53CA\u5171\u4EAB\u5BC6\u7801\u5E76\u4E0A\u4F20"));
|
|
|
return Promise.reject();
|
|
|
}
|
|
|
return true;
|
|
|
},
|
|
|
action: "".concat(ENV.API_SERVER, "/api/attachments.json"),
|
|
|
// ?debug=student&randomcode=undefined&client_key=6d57f8c3dd186c5ada392546ace9620a
|
|
|
onChange: function onChange(info) {
|
|
|
var _info$file;
|
|
|
var fileList = _toConsumableArray(info.fileList);
|
|
|
fileList = fileList.map(function (file) {
|
|
|
if (file.name.indexOf(uploadNameSizeSeperator) === -1) {
|
|
|
file.name = "".concat(file.name).concat(uploadNameSizeSeperator).concat(bytesToSize(file.size));
|
|
|
}
|
|
|
return _objectSpread({}, file);
|
|
|
});
|
|
|
if (info.file.status === 'done' && ((_info$file = info.file) === null || _info$file === void 0 || (_info$file = _info$file.response) === null || _info$file === void 0 ? void 0 : _info$file.status) === -1) {
|
|
|
var _info$file2;
|
|
|
message.error((_info$file2 = info.file) === null || _info$file2 === void 0 || (_info$file2 = _info$file2.response) === null || _info$file2 === void 0 ? void 0 : _info$file2.message);
|
|
|
_onChange([]);
|
|
|
return;
|
|
|
}
|
|
|
_onChange(fileList);
|
|
|
},
|
|
|
onRemove: function () {
|
|
|
var _onRemove = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(file) {
|
|
|
var fileSize, id, rs;
|
|
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
fileSize = file.size / 1024 / 1024;
|
|
|
if (!(file.status === 'uploading')) {
|
|
|
_context.next = 3;
|
|
|
break;
|
|
|
}
|
|
|
return _context.abrupt("return", true);
|
|
|
case 3:
|
|
|
if (fileSize < maxSize) {
|
|
|
_context.next = 7;
|
|
|
break;
|
|
|
}
|
|
|
return _context.abrupt("return", true);
|
|
|
case 7:
|
|
|
id = file.response ? file.response.id : file.uid;
|
|
|
if (!id) {
|
|
|
_context.next = 15;
|
|
|
break;
|
|
|
}
|
|
|
_context.next = 11;
|
|
|
return removeAttachment(file.response ? file.response.id : file.id);
|
|
|
case 11:
|
|
|
rs = _context.sent;
|
|
|
return _context.abrupt("return", rs);
|
|
|
case 15:
|
|
|
return _context.abrupt("return", true);
|
|
|
case 16:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
function onRemove(_x) {
|
|
|
return _onRemove.apply(this, arguments);
|
|
|
}
|
|
|
return onRemove;
|
|
|
}()
|
|
|
};
|
|
|
function onCancel(e) {
|
|
|
e.preventDefault();
|
|
|
e.stopPropagation();
|
|
|
}
|
|
|
return /*#__PURE__*/_jsx("div", {
|
|
|
className: "single-upload ".concat(className ? className : ''),
|
|
|
children: /*#__PURE__*/_jsxs(Upload, _objectSpread(_objectSpread({}, uploadProps), {}, {
|
|
|
children: [/*#__PURE__*/_jsx(Button, {
|
|
|
type: "primary",
|
|
|
title: value.length > 0 ? '每次只能上传一个资源, 删除下面资源可重新上传 ' : '',
|
|
|
disabled: value.length > 0,
|
|
|
ghost: true,
|
|
|
children: title
|
|
|
}), /*#__PURE__*/_jsxs("span", {
|
|
|
onClick: onCancel,
|
|
|
style: {
|
|
|
marginLeft: 10
|
|
|
},
|
|
|
children: ["(\u5355\u4E2A\u6587\u4EF6\u6700\u5927", maxSize, "M)", ' ']
|
|
|
})]
|
|
|
}))
|
|
|
});
|
|
|
});
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/InboxOutlined.js + 1 modules
|
|
|
var InboxOutlined = __webpack_require__(25032);
|
|
|
// EXTERNAL MODULE: ./node_modules/_lodash@4.17.21@lodash/lodash.js
|
|
|
var lodash = __webpack_require__(89392);
|
|
|
;// CONCATENATED MODULE: ./src/components/MultiUpload/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
// EXTERNAL MODULE: ./src/assets/images/uploadImg.svg
|
|
|
var uploadImg = __webpack_require__(43539);
|
|
|
;// CONCATENATED MODULE: ./src/components/MultiUpload/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Dragger = upload/* default */.Z.Dragger;
|
|
|
function coverToFileList(data) {
|
|
|
var rs = [];
|
|
|
if (data && data.length > 0) {
|
|
|
rs = data.map(function (item) {
|
|
|
return {
|
|
|
uid: item.id,
|
|
|
id: item.id,
|
|
|
name: item.title + uploadNameSizeSeperator + item.filesize,
|
|
|
url: item.url,
|
|
|
filesize: item.filesize,
|
|
|
status: 'done',
|
|
|
response: {
|
|
|
id: item.id
|
|
|
}
|
|
|
};
|
|
|
});
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
/* harmony default export */ var MultiUpload = (function (_ref) {
|
|
|
var value = _ref.value,
|
|
|
_onChange = _ref.onChange,
|
|
|
action = _ref.action,
|
|
|
data = _ref.data,
|
|
|
className = _ref.className,
|
|
|
_ref$maxSize = _ref.maxSize,
|
|
|
maxSize = _ref$maxSize === void 0 ? 150 : _ref$maxSize,
|
|
|
_ref$title = _ref.title,
|
|
|
title = _ref$title === void 0 ? '上传附件' : _ref$title,
|
|
|
_ref$showRemoveModal = _ref.showRemoveModal,
|
|
|
showRemoveModal = _ref$showRemoveModal === void 0 ? false : _ref$showRemoveModal,
|
|
|
_ref$accept = _ref.accept,
|
|
|
accept = _ref$accept === void 0 ? '' : _ref$accept,
|
|
|
additionalText = _ref.additionalText,
|
|
|
isDragger = _ref.isDragger,
|
|
|
_ref$number = _ref.number,
|
|
|
number = _ref$number === void 0 ? 1000 : _ref$number,
|
|
|
_ref$aloneClear = _ref.aloneClear,
|
|
|
aloneClear = _ref$aloneClear === void 0 ? false : _ref$aloneClear;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
disabled = _useState2[0],
|
|
|
setDisabled = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(value || []),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
fileList = _useState4[0],
|
|
|
setFileList = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(1),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
nums = _useState6[0],
|
|
|
setnums = _useState6[1];
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (value) {
|
|
|
if (nums === 1) {
|
|
|
setFileList(toConsumableArray_default()(value));
|
|
|
}
|
|
|
setnums(2);
|
|
|
if (number === (value === null || value === void 0 ? void 0 : value.length)) {
|
|
|
setDisabled(true);
|
|
|
}
|
|
|
}
|
|
|
}, [value]);
|
|
|
var clearLastFile = function clearLastFile() {
|
|
|
setTimeout(function () {
|
|
|
fileList.pop();
|
|
|
setFileList(toConsumableArray_default()(fileList));
|
|
|
}, 500);
|
|
|
};
|
|
|
var uploadProps = {
|
|
|
multiple: true,
|
|
|
disabled: disabled,
|
|
|
accept: accept,
|
|
|
withCredentials: true,
|
|
|
fileList: fileList,
|
|
|
// fileList: fileList?.length ? fileList : value,
|
|
|
beforeUpload: function beforeUpload(file, fileArr) {
|
|
|
var fileSize = file.size / 1024 / 1024;
|
|
|
if (fileList.concat(fileArr).length > number) {
|
|
|
fileList.pop();
|
|
|
setFileList(toConsumableArray_default()(fileList));
|
|
|
es_message/* default */.ZP.error("\u6700\u591A\u53EA\u80FD\u4E0A\u4F20".concat(number, "\u4E2A\u6587\u4EF6"));
|
|
|
if (aloneClear) {
|
|
|
return Promise.reject();
|
|
|
}
|
|
|
clearLastFile();
|
|
|
return false;
|
|
|
}
|
|
|
if (!(fileSize < maxSize)) {
|
|
|
es_message/* default */.ZP.error("\u8BE5\u6587\u4EF6\u65E0\u6CD5\u4E0A\u4F20\u3002\u8D85\u8FC7\u6587\u4EF6\u5927\u5C0F\u9650\u5236(".concat(maxSize, "MB)."));
|
|
|
if (aloneClear) {
|
|
|
return Promise.reject();
|
|
|
}
|
|
|
clearLastFile();
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
|
},
|
|
|
data: data,
|
|
|
action: action || "".concat(env/* default */.Z.API_SERVER, "/api/attachments.json"),
|
|
|
// ?debug=student&randomcode=undefined&client_key=6d57f8c3dd186c5ada392546ace9620a
|
|
|
onChange: function onChange(info) {
|
|
|
var _info$file;
|
|
|
if (info.file.status === "removed") {
|
|
|
fileList = info.fileList;
|
|
|
} else {
|
|
|
fileList = (0,lodash.uniqBy)([].concat(toConsumableArray_default()(info.fileList), toConsumableArray_default()(fileList)), 'uid');
|
|
|
}
|
|
|
if (info.file.status === 'done' && ((_info$file = info.file) === null || _info$file === void 0 || (_info$file = _info$file.response) === null || _info$file === void 0 ? void 0 : _info$file.status) === -1) {
|
|
|
var _info$file2;
|
|
|
es_message/* default */.ZP.error((_info$file2 = info.file) === null || _info$file2 === void 0 || (_info$file2 = _info$file2.response) === null || _info$file2 === void 0 ? void 0 : _info$file2.message);
|
|
|
return;
|
|
|
}
|
|
|
if (fileList.length >= number) setDisabled(true);else setDisabled(false);
|
|
|
setFileList(toConsumableArray_default()(fileList));
|
|
|
fileList = fileList.map(function (file) {
|
|
|
var _file$response;
|
|
|
if (file !== null && file !== void 0 && (_file$response = file.response) !== null && _file$response !== void 0 && _file$response.id) {
|
|
|
var _file$response2;
|
|
|
file.url = "/api/attachments/".concat(file === null || file === void 0 || (_file$response2 = file.response) === null || _file$response2 === void 0 ? void 0 : _file$response2.id);
|
|
|
}
|
|
|
if (file.name.indexOf(uploadNameSizeSeperator) === -1) {
|
|
|
file.name = "".concat(file.name).concat(uploadNameSizeSeperator).concat(bytesToSize(file.size));
|
|
|
}
|
|
|
return objectSpread2_default()({}, file);
|
|
|
});
|
|
|
console.log('info:', info, fileList);
|
|
|
_onChange(fileList);
|
|
|
},
|
|
|
onRemove: function () {
|
|
|
var _onRemove = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(file) {
|
|
|
var remove;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
remove = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var id, rs;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
id = file.response ? file.response.id : file.id;
|
|
|
if (!id) {
|
|
|
_context.next = 8;
|
|
|
break;
|
|
|
}
|
|
|
_context.next = 4;
|
|
|
return (0,service/* removeAttachment */.JZ)(file.response ? file.response.id : file.uid);
|
|
|
case 4:
|
|
|
rs = _context.sent;
|
|
|
return _context.abrupt("return", Promise.resolve(rs));
|
|
|
case 8:
|
|
|
return _context.abrupt("return", true);
|
|
|
case 9:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function remove() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
if (!showRemoveModal) {
|
|
|
_context3.next = 5;
|
|
|
break;
|
|
|
}
|
|
|
return _context3.abrupt("return", new Promise(function (resolve, reject) {
|
|
|
modal/* default */.Z.confirm({
|
|
|
centered: true,
|
|
|
width: 530,
|
|
|
okText: '确定',
|
|
|
cancelText: '取消',
|
|
|
title: '提示',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "tc font16",
|
|
|
children: "\u662F\u5426\u786E\u8BA4\u5220\u9664?"
|
|
|
}),
|
|
|
onOk: function () {
|
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
_context2.next = 2;
|
|
|
return remove();
|
|
|
case 2:
|
|
|
res = _context2.sent;
|
|
|
es_message/* default */.ZP.success('删除成功');
|
|
|
resolve(true);
|
|
|
case 5:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}(),
|
|
|
onCancel: function onCancel() {
|
|
|
return resolve(false);
|
|
|
}
|
|
|
});
|
|
|
}));
|
|
|
case 5:
|
|
|
_context3.next = 7;
|
|
|
return remove();
|
|
|
case 7:
|
|
|
return _context3.abrupt("return", _context3.sent);
|
|
|
case 8:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
function onRemove(_x) {
|
|
|
return _onRemove.apply(this, arguments);
|
|
|
}
|
|
|
return onRemove;
|
|
|
}()
|
|
|
};
|
|
|
function onCancel(e) {
|
|
|
e.preventDefault();
|
|
|
e.stopPropagation();
|
|
|
}
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "multi-upload ".concat(className ? className : ''),
|
|
|
children: [isDragger && /*#__PURE__*/(0,jsx_runtime.jsxs)(Dragger, objectSpread2_default()(objectSpread2_default()({}, uploadProps), {}, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
className: "ant-upload-drag-icon",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(InboxOutlined/* default */.Z, {})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
|
className: "ant-upload-text",
|
|
|
children: ["\u70B9\u51FB\u4E0A\u4F20\u56FE\u6807\uFF0C\u9009\u62E9\u8981\u4E0A\u4F20\u7684\u6587\u4EF6\u6216\u5C06\u6587\u4EF6\u62D6\u62FD\u5230\u6B64", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "(\u5355\u4E2A\u6587\u4EF6\u6700\u5927\u9650\u5236\u4E3A", maxSize, "MB)", ' ']
|
|
|
}), additionalText]
|
|
|
})), !isDragger && /*#__PURE__*/(0,jsx_runtime.jsxs)(upload/* default */.Z, objectSpread2_default()(objectSpread2_default()({}, uploadProps), {}, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(es_button/* default */.ZP, {
|
|
|
disabled: disabled,
|
|
|
className: "upload_button",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
className: "aBtn_img",
|
|
|
src: uploadImg/* default */.Z
|
|
|
}), title]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
onClick: onCancel,
|
|
|
className: "upload_text",
|
|
|
children: ["(\u5355\u4E2A\u6587\u4EF6\u6700\u5927", maxSize, "MB)", ' ']
|
|
|
})]
|
|
|
}))]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 74063:
|
|
|
/*!**********************************!*\
|
|
|
!*** ./src/components/modal.tsx ***!
|
|
|
\**********************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ Z: function() { return /* binding */ Dialog; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/classCallCheck.js */ 82100);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/createClass.js */ 29186);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/inherits.js */ 80619);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/createSuper.js */ 47074);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__);
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ 59301);
|
|
|
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-dom */ 4676);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Dialog = /*#__PURE__*/function (_React$Component) {
|
|
|
_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default()(Dialog, _React$Component);
|
|
|
var _super = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default()(Dialog);
|
|
|
function Dialog(props) {
|
|
|
var _this;
|
|
|
_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default()(this, Dialog);
|
|
|
_this = _super.call(this, props);
|
|
|
var doc = window.document;
|
|
|
_this.node = doc.createElement('div');
|
|
|
doc.body.appendChild(_this.node);
|
|
|
return _this;
|
|
|
}
|
|
|
_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1___default()(Dialog, [{
|
|
|
key: "render",
|
|
|
value: function render() {
|
|
|
var children = this.props.children;
|
|
|
return /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_5__.createPortal)(children, this.node);
|
|
|
}
|
|
|
}, {
|
|
|
key: "componentWillUnmount",
|
|
|
value: function componentWillUnmount() {
|
|
|
window.document.body.removeChild(this.node);
|
|
|
}
|
|
|
}]);
|
|
|
return Dialog;
|
|
|
}(react__WEBPACK_IMPORTED_MODULE_4__.Component);
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 46587:
|
|
|
/*!****************************************!*\
|
|
|
!*** ./src/components/useInterval.tsx ***!
|
|
|
\****************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ Z: function() { return /* binding */ useInterval; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
|
|
|
|
|
|
function useInterval(callback, delay) {
|
|
|
var savedCallback = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
|
|
|
|
|
|
// 保存新回调
|
|
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
|
|
|
savedCallback.current = callback;
|
|
|
});
|
|
|
|
|
|
// 建立 interval
|
|
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
|
|
|
function tick() {
|
|
|
savedCallback.current();
|
|
|
}
|
|
|
if (delay !== null) {
|
|
|
var id = setInterval(tick, delay);
|
|
|
return function () {
|
|
|
return clearInterval(id);
|
|
|
};
|
|
|
}
|
|
|
}, [delay]);
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 74049:
|
|
|
/*!***********************************************************!*\
|
|
|
!*** ./src/pages/Innovation/Tasks/index.jsx + 25 modules ***!
|
|
|
\***********************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
// ESM COMPAT FLAG
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
"default": function() { return /* binding */ Tasks; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/toConsumableArray.js
|
|
|
var toConsumableArray = __webpack_require__(37205);
|
|
|
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/defineProperty.js
|
|
|
var defineProperty = __webpack_require__(85573);
|
|
|
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js
|
|
|
var regeneratorRuntime = __webpack_require__(7557);
|
|
|
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js
|
|
|
var asyncToGenerator = __webpack_require__(41498);
|
|
|
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(79800);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectWithoutProperties.js
|
|
|
var objectWithoutProperties = __webpack_require__(39647);
|
|
|
var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js
|
|
|
var objectSpread2 = __webpack_require__(82242);
|
|
|
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts
|
|
|
var _umi_production_exports = __webpack_require__(80608);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
// EXTERNAL MODULE: ./src/components/Spinner/index.tsx + 1 modules
|
|
|
var Spinner = __webpack_require__(93428);
|
|
|
// EXTERNAL MODULE: ./src/components/modal.tsx
|
|
|
var modal = __webpack_require__(74063);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/statistic/index.js + 5 modules
|
|
|
var statistic = __webpack_require__(31797);
|
|
|
// 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/modal/index.js + 16 modules
|
|
|
var es_modal = __webpack_require__(43418);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/drawer/index.js + 9 modules
|
|
|
var drawer = __webpack_require__(43428);
|
|
|
// 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/input/index.js + 3 modules
|
|
|
var input = __webpack_require__(92832);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input-number/index.js + 14 modules
|
|
|
var input_number = __webpack_require__(94001);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/header/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
// EXTERNAL MODULE: ./src/components/tpi-code-setting/index.less
|
|
|
var tpi_code_setting = __webpack_require__(63955);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/row/index.js
|
|
|
var row = __webpack_require__(95237);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/col/index.js
|
|
|
var col = __webpack_require__(43604);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/PoweroffOutlined.js + 1 modules
|
|
|
var PoweroffOutlined = __webpack_require__(29419);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react-copy-to-clipboard@5.0.2@react-copy-to-clipboard/lib/index.js
|
|
|
var lib = __webpack_require__(56102);
|
|
|
// EXTERNAL MODULE: ./src/service/task.ts
|
|
|
var task = __webpack_require__(11125);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/ExclamationCircleOutlined.js + 1 modules
|
|
|
var ExclamationCircleOutlined = __webpack_require__(3148);
|
|
|
// EXTERNAL MODULE: ./src/components/MultiUpload/index.tsx + 2 modules
|
|
|
var MultiUpload = __webpack_require__(1058);
|
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
|
var env = __webpack_require__(71681);
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(49105);
|
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
|
var util = __webpack_require__(27876);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/vnc-setting2/record.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var ScreenRecord = /*#__PURE__*/(0,_react_17_0_2_react.forwardRef)(function (_ref, ref) {
|
|
|
var time = _ref.time;
|
|
|
console.log("ScreenRecord:", ref);
|
|
|
var previewRef = (0,_react_17_0_2_react.useRef)();
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
recorder = _useState2[0],
|
|
|
setRecorder = _useState2[1];
|
|
|
var recorderRef = (0,_react_17_0_2_react.useRef)();
|
|
|
var recordingTimeMS = 2000;
|
|
|
var recordingArr = [];
|
|
|
(0,_react_17_0_2_react.useImperativeHandle)(ref, function () {
|
|
|
return {
|
|
|
startScreenRecord: startScreenRecord,
|
|
|
downloadFile: downloadFile
|
|
|
};
|
|
|
});
|
|
|
function startRecording(_x, _x2) {
|
|
|
return _startRecording.apply(this, arguments);
|
|
|
}
|
|
|
function _startRecording() {
|
|
|
_startRecording = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(stream, lengthInMS) {
|
|
|
var data, re;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
data = [];
|
|
|
_context.next = 3;
|
|
|
return new MediaRecorder(stream);
|
|
|
case 3:
|
|
|
re = _context.sent;
|
|
|
re.ondataavailable = function (event) {
|
|
|
data.push(event.data);
|
|
|
};
|
|
|
re.start();
|
|
|
recorderRef.current = re;
|
|
|
window.recorderRefs = re;
|
|
|
re.addEventListener('stop', function (event) {
|
|
|
var videoUrl = URL.createObjectURL(data[0], {
|
|
|
type: 'video/mp4'
|
|
|
});
|
|
|
(0,util/* downLoadLink */.Nd)("xxx.webm", videoUrl);
|
|
|
});
|
|
|
case 9:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return _startRecording.apply(this, arguments);
|
|
|
}
|
|
|
function downloadFile() {
|
|
|
if (!window.recorderRefs) {
|
|
|
message/* default */.ZP.warning("您还没有开启视频录制,请先去录制视频吧!");
|
|
|
return;
|
|
|
}
|
|
|
var tracks = previewRef.current.srcObject.getTracks();
|
|
|
tracks.forEach(function (track) {
|
|
|
track.stop();
|
|
|
});
|
|
|
window.recorderRefs.addEventListener('dataavailable', function (event) {
|
|
|
var videoUrl = URL.createObjectURL(event.data, {
|
|
|
type: 'video/mp4'
|
|
|
});
|
|
|
(0,util/* downLoadLink */.Nd)("屏幕录制视频.webm", videoUrl);
|
|
|
});
|
|
|
}
|
|
|
;
|
|
|
function startScreenRecord() {
|
|
|
navigator.mediaDevices.getDisplayMedia({
|
|
|
video: true,
|
|
|
audio: true
|
|
|
}).then(function (stream) {
|
|
|
previewRef.current.srcObject = stream;
|
|
|
// downloadButton.href = stream;
|
|
|
recordingArr.push(stream);
|
|
|
previewRef.current.captureStream = previewRef.current.captureStream || previewRef.current.mozCaptureStream;
|
|
|
return new Promise(function (resolve) {
|
|
|
return previewRef.current.onplaying = resolve;
|
|
|
});
|
|
|
}).then(function () {
|
|
|
return startRecording(previewRef.current.captureStream(), recordingTimeMS);
|
|
|
}).then(function (recordedChunks) {})["catch"](function (error) {
|
|
|
if (error.name === "NotFoundError") {
|
|
|
message/* default */.ZP.warning("找不到摄像头或麦克风。无法录制.");
|
|
|
} else {
|
|
|
message/* default */.ZP.warning(error.name);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// stop(previewRef.current.srcObject);
|
|
|
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
position: "absolute",
|
|
|
top: "0",
|
|
|
zIndex: -1
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("video", {
|
|
|
onPause: function onPause() {},
|
|
|
width: "60",
|
|
|
height: "120",
|
|
|
autoPlay: true,
|
|
|
muted: true,
|
|
|
ref: previewRef
|
|
|
})
|
|
|
});
|
|
|
});
|
|
|
/* harmony default export */ var record = (ScreenRecord);
|
|
|
;// CONCATENATED MODULE: ./src/components/vnc-setting2/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var difficultyDesc = {
|
|
|
1: '简单',
|
|
|
2: '中等',
|
|
|
3: '困难'
|
|
|
};
|
|
|
/* harmony default export */ var vnc_setting2 = (function (_ref) {
|
|
|
var className = _ref.className,
|
|
|
mirror_description = _ref.mirror_description,
|
|
|
git_url = _ref.git_url,
|
|
|
difficulty = _ref.difficulty,
|
|
|
task_pass = _ref.task_pass,
|
|
|
test_set_permission = _ref.test_set_permission,
|
|
|
onVncAction = _ref.onVncAction,
|
|
|
shixun = _ref.shixun,
|
|
|
window_vnc_url = _ref.window_vnc_url,
|
|
|
linux_vnc = _ref.linux_vnc,
|
|
|
vnc_url = _ref.vnc_url,
|
|
|
unity_3d_routes = _ref.unity_3d_routes,
|
|
|
taskData = _ref.taskData;
|
|
|
console.log(taskData);
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
var _useState = (0,_react_17_0_2_react.useState)("8082"),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
portValue = _useState2[0],
|
|
|
setPortValue = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
isLoading = _useState4[0],
|
|
|
setIsLoading = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
isLoading2 = _useState6[0],
|
|
|
setIsLoading2 = _useState6[1];
|
|
|
var recordRef = (0,_react_17_0_2_react.useRef)();
|
|
|
var uploadWorkspace = window_vnc_url ? "C:\/Windows\/AppReadiness\/userfiles" : "/data/workspace/userfiles";
|
|
|
var downloadWorkspace = window_vnc_url ? "C:\/Windows\/AppReadiness\/downloadfiles" : "/data/workspace/downloadfiles";
|
|
|
var restartVac = function restartVac() {
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
title: '重启云主机',
|
|
|
icon: /*#__PURE__*/(0,jsx_runtime.jsx)(ExclamationCircleOutlined/* default */.Z, {}),
|
|
|
content: '您确定要重启云主机吗?',
|
|
|
centered: true,
|
|
|
okText: '确定',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
_context.next = 2;
|
|
|
return (0,task/* rebootEsc */.Jd)({
|
|
|
identifier: params.taskId
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
message/* default */.ZP.info("重启成功");
|
|
|
}
|
|
|
return _context.abrupt("return", '');
|
|
|
case 5:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var uploadFile = function uploadFile() {
|
|
|
es_modal/* default */.Z.info({
|
|
|
title: "文件上传",
|
|
|
icon: null,
|
|
|
okText: "关闭",
|
|
|
width: 600,
|
|
|
centered: true,
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "pt10",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(MultiUpload/* default */.Z, {
|
|
|
isDragger: true,
|
|
|
maxSize: 1024,
|
|
|
additionalText: "\u9ED8\u8BA4\u5B58\u653E\u76EE\u5F55\u8DEF\u5F84\u4E3A\"".concat(uploadWorkspace, "\""),
|
|
|
action: "".concat(env/* default */.Z.API_SERVER, "/api/sci/projects/").concat(params.taskId, "/upload_file.json"),
|
|
|
onChange: function onChange(fileList) {
|
|
|
if (fileList.every(function (item) {
|
|
|
var _item$response;
|
|
|
return ((_item$response = item.response) === null || _item$response === void 0 ? void 0 : _item$response.status) === 0;
|
|
|
})) {
|
|
|
es_modal/* default */.Z.destroyAll();
|
|
|
message/* default */.ZP.info("文件上传成功");
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
var serverPreview = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
var _res$data;
|
|
|
var res, _res$data2;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
setIsLoading2(true);
|
|
|
_context2.next = 3;
|
|
|
return (0,fetch/* default */.ZP)("/api/sci/projects/".concat(params.taskId, "/port_proxy.json"), {
|
|
|
method: "post",
|
|
|
body: {
|
|
|
port: portValue,
|
|
|
position: 1
|
|
|
}
|
|
|
});
|
|
|
case 3:
|
|
|
res = _context2.sent;
|
|
|
if (res !== null && res !== void 0 && (_res$data = res.data) !== null && _res$data !== void 0 && _res$data.url) {
|
|
|
(0,util/* openNewWindow */.xg)(res === null || res === void 0 || (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.url);
|
|
|
}
|
|
|
setIsLoading2(false);
|
|
|
case 6:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function serverPreview() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var downloadFile = function downloadFile() {
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
title: "下载代码",
|
|
|
centered: true,
|
|
|
width: 600,
|
|
|
content: "\u4EE3\u7801\u4E0B\u8F7D\u529F\u80FD\uFF1A\u5C06\u201C".concat(downloadWorkspace, "\u201D\u76EE\u5F55\u8FDB\u884C\u6253\u5305\u5E76\u4E0B\u8F7D"),
|
|
|
onOk: function () {
|
|
|
var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
_context3.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/sci/projects/".concat(params.taskId, "/download_file.json"), {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
autoDownload: true
|
|
|
},
|
|
|
headers: {
|
|
|
responseType: 'arraybuffer',
|
|
|
Accept: 'application/vnd.ms-excel;charset=utf-8'
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
return _context3.abrupt("return", true);
|
|
|
case 3:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk2.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var onStartRecord = function onStartRecord() {
|
|
|
var _recordRef$current, _recordRef$current$st;
|
|
|
(_recordRef$current = recordRef.current) === null || _recordRef$current === void 0 || (_recordRef$current$st = _recordRef$current.startScreenRecord) === null || _recordRef$current$st === void 0 || _recordRef$current$st.call(_recordRef$current);
|
|
|
};
|
|
|
|
|
|
// const serverPreview = async () => {
|
|
|
// setIsLoading(true)
|
|
|
// const res = await Fetch(`/api/tasks/${params.taskId}/port_proxy`, { method: "post", body: { port: portValue } })
|
|
|
// if (res?.data?.url) {
|
|
|
// openNewWindow(res?.data?.url);
|
|
|
// }
|
|
|
// setIsLoading(false)
|
|
|
// }
|
|
|
|
|
|
var getSSH = function getSSH() {
|
|
|
var webssh = taskData.webssh;
|
|
|
es_modal/* default */.Z.info({
|
|
|
title: 'SSH直连',
|
|
|
width: 600,
|
|
|
centered: true,
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
flex: "50px",
|
|
|
children: "\u8D26\u53F7"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
children: webssh === null || webssh === void 0 ? void 0 : webssh.username
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
flex: "50px",
|
|
|
children: "\u5730\u5740"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
children: webssh === null || webssh === void 0 ? void 0 : webssh.address
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
flex: "50px",
|
|
|
children: "\u7AEF\u53E3"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
children: webssh === null || webssh === void 0 ? void 0 : webssh.servicePort
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
flex: "50px",
|
|
|
children: "\u5BC6\u7801"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
children: webssh === null || webssh === void 0 ? void 0 : webssh.password
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "tpi-code-setting ".concat(className),
|
|
|
style: {
|
|
|
height: "calc(100vh - 54px )"
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("h3", {
|
|
|
children: "\u529F\u80FD"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
id: "full-screen",
|
|
|
title: "\u5168\u5C4F",
|
|
|
className: "file-item action",
|
|
|
onClick: function onClick() {
|
|
|
onVncAction('full-screen');
|
|
|
},
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-quanping"
|
|
|
}), "\u5F00\u542F / \u9000\u51FA\u5168\u5C4F "]
|
|
|
}), !unity_3d_routes && /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
id: "reset-task",
|
|
|
onClick: function onClick() {
|
|
|
return onVncAction('reset-task');
|
|
|
},
|
|
|
className: "file-item action",
|
|
|
title: "\u91CD\u7F6E\u73AF\u5883",
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-zhongzhishixun"
|
|
|
}), "\u91CD\u7F6E\u73AF\u5883 "]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
onClick: function onClick() {
|
|
|
return uploadFile();
|
|
|
},
|
|
|
className: "file-item action",
|
|
|
title: "\u4E0A\u4F20\u6587\u4EF6",
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-shangchuanshipin1"
|
|
|
}), "\u4E0A\u4F20\u6587\u4EF6"]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
onClick: function onClick() {
|
|
|
return downloadFile();
|
|
|
},
|
|
|
className: "file-item action",
|
|
|
title: "\u4E0B\u8F7D\u6587\u4EF6",
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-xiazai3"
|
|
|
}), "\u4E0B\u8F7D\u6587\u4EF6"]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
onClick: function onClick() {
|
|
|
return onStartRecord();
|
|
|
},
|
|
|
className: "file-item action",
|
|
|
title: "\u5C4F\u5E55\u5F55\u5236",
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-jiaruketang1"
|
|
|
}), "\u5C4F\u5E55\u5F55\u5236"]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
className: "file-item action w100",
|
|
|
title: "ssh\u76F4\u8FDE",
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-wodegongzuotai"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(row/* default */.Z, {
|
|
|
align: "middle",
|
|
|
className: "w100",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
flex: "1",
|
|
|
onClick: getSSH,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "text",
|
|
|
loading: isLoading,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
style: {
|
|
|
color: "#ddd",
|
|
|
marginLeft: -11
|
|
|
},
|
|
|
children: "ssh\u76F4\u8FDE"
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
})]
|
|
|
}), window_vnc_url && /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
id: "reset-task",
|
|
|
onClick: restartVac,
|
|
|
className: "file-item action",
|
|
|
title: "\u91CD\u542F\u4E91\u4E3B\u673A",
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)(PoweroffOutlined/* default */.Z, {
|
|
|
style: {
|
|
|
marginRight: 21,
|
|
|
color: "#FFF"
|
|
|
},
|
|
|
className: "c-white font16"
|
|
|
}), "\u91CD\u542F\u4E91\u4E3B\u673A "]
|
|
|
}), git_url ? /*#__PURE__*/(0,jsx_runtime.jsx)(lib.CopyToClipboard, {
|
|
|
text: git_url,
|
|
|
onCopy: function onCopy() {
|
|
|
return message/* default */.ZP.success('复制成功');
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
id: "copy-git",
|
|
|
title: "\u590D\u5236\u7248\u672C\u5E93\u5730\u5740",
|
|
|
className: "file-item action",
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-fuzhibanbenkudizhi1"
|
|
|
}), "\u590D\u5236\u7248\u672C\u5E93\u5730\u5740 "]
|
|
|
})
|
|
|
}) : null]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(record, {
|
|
|
ref: recordRef
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
// EXTERNAL MODULE: ./src/components/useInterval.tsx
|
|
|
var useInterval = __webpack_require__(46587);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tooltip/index.js + 3 modules
|
|
|
var tooltip = __webpack_require__(6848);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/pagination/index.js + 10 modules
|
|
|
var pagination = __webpack_require__(86859);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/data-sets/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var data_setsmodules = ({"flex_box_center":"flex_box_center___ayVLf","flex_space_between":"flex_space_between___pLloZ","flex_box_vertical_center":"flex_box_vertical_center___eX0c1","flex_box_center_end":"flex_box_center_end___KU45M","flex_box_column":"flex_box_column___cZiLo","wrap":"wrap___x0TPJ","list":"list___Bn7Fe","page":"page___zVCLY"});
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/service/index.js
|
|
|
|
|
|
|
|
|
|
|
|
var _getJsonFromUrl, _getJsonFromUrl2;
|
|
|
|
|
|
|
|
|
|
|
|
//判断是否来自教学课堂助教查看实训
|
|
|
var urlParams = (_getJsonFromUrl = (0,util/* getJsonFromUrl */.oP)()) !== null && _getJsonFromUrl !== void 0 && _getJsonFromUrl.homework_common_id ? {
|
|
|
homework_common_id: (_getJsonFromUrl2 = (0,util/* getJsonFromUrl */.oP)()) === null || _getJsonFromUrl2 === void 0 ? void 0 : _getJsonFromUrl2.homework_common_id
|
|
|
} : {};
|
|
|
function fetchTaskInfo(id) {
|
|
|
return get("tasks/".concat(id, ".json"), urlParams);
|
|
|
}
|
|
|
function fetchDataList(id) {
|
|
|
return (0,fetch/* get */.U2)("sci/projects/".concat(id, "/get_data_sets.json"));
|
|
|
}
|
|
|
function fetchTaskList(id) {
|
|
|
return get("myshixuns/".concat(id, "/challenges.json"));
|
|
|
}
|
|
|
function fetchPathsTaskList(id, params) {
|
|
|
return get("myshixuns/".concat(id, "/subject_challenges.json"), params);
|
|
|
}
|
|
|
function saveTaskStar(id, shixunId, star) {
|
|
|
return (0,fetch/* get */.U2)("tasks/".concat(id, "/star.json"), {
|
|
|
star: star,
|
|
|
shixun_id: shixunId
|
|
|
});
|
|
|
}
|
|
|
function fetchCode(id, params) {
|
|
|
return (0,fetch/* get */.U2)("tasks/".concat(id, "/rep_content.json"), objectSpread2_default()(objectSpread2_default()({}, params), urlParams));
|
|
|
}
|
|
|
function updateCode(id, params) {
|
|
|
return (0,fetch/* post */.v_)("myshixuns/".concat(id, "/update_file.json"), params);
|
|
|
}
|
|
|
function restoreCode(id, params) {
|
|
|
return (0,fetch/* get */.U2)("tasks/".concat(id, "/reset_original_code.json"), objectSpread2_default()(objectSpread2_default()({}, params), urlParams));
|
|
|
}
|
|
|
function resetGitCode(id, params) {
|
|
|
return (0,fetch/* post */.v_)("myshixuns/".concat(id, "/reset_repository.json"), params);
|
|
|
}
|
|
|
function resetPassedCode(id, params) {
|
|
|
return (0,fetch/* get */.U2)("tasks/".concat(id, "/reset_passed_code.json"), objectSpread2_default()(objectSpread2_default()({}, params), urlParams));
|
|
|
}
|
|
|
function codeGameBuild(id, params) {
|
|
|
return (0,fetch/* post */.v_)("tasks/".concat(id, "/game_build.json"), objectSpread2_default()(objectSpread2_default()({}, params), urlParams));
|
|
|
}
|
|
|
function getCodeGameStatus(id, params) {
|
|
|
return (0,fetch/* get */.U2)("tasks/".concat(id, "/game_status.json"), objectSpread2_default()(objectSpread2_default()({}, params), urlParams));
|
|
|
}
|
|
|
function evalateChooseGame(id, params) {
|
|
|
return post("tasks/".concat(id, "/choose_build.json"), _objectSpread(_objectSpread({}, params), urlParams));
|
|
|
}
|
|
|
function fetchPictures(id) {
|
|
|
return get("tasks/".concat(id, "/picture_display.json"), urlParams);
|
|
|
}
|
|
|
function updateCostTime(id, params) {
|
|
|
return get("tasks/".concat(id, "/cost_time.json"), _objectSpread(_objectSpread({}, params), urlParams));
|
|
|
}
|
|
|
function getNoticeDetail(id, params) {
|
|
|
return get("courses/".concat(id, "/inform_detail.json"), params);
|
|
|
}
|
|
|
function plusOrCancelPraise(id) {
|
|
|
return (0,fetch/* post */.v_)("tasks/".concat(id, "/plus_or_cancel_praise.json"));
|
|
|
}
|
|
|
function fetchRepos(id) {
|
|
|
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
|
return (0,fetch/* post */.v_)("myshixuns/".concat(id, "/repository.json"), params);
|
|
|
}
|
|
|
function openSSh(id, params) {
|
|
|
return get("myshixuns/".concat(id, "/open_webssh.json"), params || {});
|
|
|
}
|
|
|
function openVmSSh(id, params) {
|
|
|
return get("myshixuns/".concat(id, "/open_vm_webssh.json"), params);
|
|
|
}
|
|
|
function closeSSh(id) {
|
|
|
return get("tasks/".concat(id, "/close_webssh.json"));
|
|
|
}
|
|
|
function resetVnc(_x) {
|
|
|
return _resetVnc.apply(this, arguments);
|
|
|
}
|
|
|
// 所有环境重置都可以使用此方法
|
|
|
function _resetVnc() {
|
|
|
_resetVnc = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(id) {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
_context.next = 2;
|
|
|
return (0,fetch/* post */.v_)("/sci/projects/".concat(id, "/delete_pod.json"));
|
|
|
case 2:
|
|
|
res = _context.sent;
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) >= 0)) {
|
|
|
_context.next = 5;
|
|
|
break;
|
|
|
}
|
|
|
return _context.abrupt("return", (0,fetch/* post */.v_)("/sci/projects/".concat(id, "/start_environment.json"), urlParams));
|
|
|
case 5:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return _resetVnc.apply(this, arguments);
|
|
|
}
|
|
|
function resetWindowsVnc(id) {
|
|
|
// return post(`tasks/${id}/reset_windows_vnc_link.json`);
|
|
|
return post("tasks/".concat(id, "/reset_environment"));
|
|
|
}
|
|
|
function resetLinuxVnc(id, params) {
|
|
|
return post("tasks/".concat(id, "/reset_linux_vnc_link.json"), params || {});
|
|
|
}
|
|
|
function unlockTestCase(id) {
|
|
|
return (0,fetch/* get */.U2)("tasks/".concat(id, "/check_test_sets.json"));
|
|
|
}
|
|
|
function getAnswerInfo(id) {
|
|
|
return get("tasks/".concat(id, "/get_answer_info.json"));
|
|
|
}
|
|
|
function getChooseAnswerInfo(id) {
|
|
|
return get("tasks/".concat(id, "/get_choose_answer.json"));
|
|
|
}
|
|
|
function getChooseUnlockAnswer(id) {
|
|
|
return get("tasks/".concat(id, "/unlock_choose_answer.json"));
|
|
|
}
|
|
|
function getUnlockAnswer(id, aid) {
|
|
|
return get("tasks/".concat(id, "/unlock_answer.json"), {
|
|
|
answer_id: aid
|
|
|
});
|
|
|
}
|
|
|
function setUnity3dStatus(id, result, data) {
|
|
|
return (0,fetch/* post */.v_)("tasks/".concat(id, "/set_games_status.json"), {
|
|
|
result: result,
|
|
|
data: data
|
|
|
});
|
|
|
}
|
|
|
function addVncTime(id) {
|
|
|
return (0,fetch/* post */.v_)("/sci/projects/".concat(id, "/extend_release.json"));
|
|
|
}
|
|
|
function saveEnv(id, data) {
|
|
|
return (0,fetch/* post */.v_)("/sci/projects/".concat(id, "/save_mirror.json"), objectSpread2_default()({}, data));
|
|
|
}
|
|
|
// 所有延时都改成了此接口,旧接口依旧可用
|
|
|
function addWindowsVncTime(id) {
|
|
|
return Fetch("/api/tasks/".concat(id, "/active.json"), {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
template_id: window.sessionStorage.imageId
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function addLinuxVncTime(id) {
|
|
|
return post("tasks/".concat(id, "/extend_linux_vnc.json"), urlParams);
|
|
|
}
|
|
|
function getRanking(id, params) {
|
|
|
return get("tasks/".concat(id, "/rank_list.json"), params);
|
|
|
}
|
|
|
function closeWindowsVnc(id, tpi_id) {
|
|
|
return (0,fetch/* post */.v_)("tasks/".concat(id, "/close_windows_vnc.json"), {
|
|
|
tpi_id: tpi_id
|
|
|
});
|
|
|
}
|
|
|
function pullFiles(id) {
|
|
|
return get("tasks/".concat(id, "/pull_files.json"));
|
|
|
}
|
|
|
function logOutput(id, params) {
|
|
|
return post("tasks/".concat(id, "/log_output"), params);
|
|
|
}
|
|
|
function stopLogOutput(id) {
|
|
|
return get("tasks/".concat(id, "/stop_log_output.json"));
|
|
|
}
|
|
|
|
|
|
// myshixuns start
|
|
|
function addMyRepositoryFile(_x2) {
|
|
|
return _addMyRepositoryFile.apply(this, arguments);
|
|
|
}
|
|
|
function _addMyRepositoryFile() {
|
|
|
_addMyRepositoryFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(params) {
|
|
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
return _context2.abrupt("return", Fetch("/api/myshixuns/".concat(params.id, "/add_file.json"), {
|
|
|
method: 'post',
|
|
|
body: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return _addMyRepositoryFile.apply(this, arguments);
|
|
|
}
|
|
|
function deleteMyGitFile(_x3) {
|
|
|
return _deleteMyGitFile.apply(this, arguments);
|
|
|
}
|
|
|
function _deleteMyGitFile() {
|
|
|
_deleteMyGitFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(params) {
|
|
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
return _context3.abrupt("return", Fetch("/api/myshixuns/".concat(params.id, "/delete_git_file.json"), {
|
|
|
method: 'Delete',
|
|
|
body: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
return _deleteMyGitFile.apply(this, arguments);
|
|
|
}
|
|
|
function moveMyGitFile(_x4) {
|
|
|
return _moveMyGitFile.apply(this, arguments);
|
|
|
}
|
|
|
function _moveMyGitFile() {
|
|
|
_moveMyGitFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(params) {
|
|
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
return _context4.abrupt("return", Fetch("/api/myshixuns/".concat(params.id, "/mv_file.json"), {
|
|
|
method: 'post',
|
|
|
body: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
}));
|
|
|
return _moveMyGitFile.apply(this, arguments);
|
|
|
}
|
|
|
function getMyFileContent(_x5) {
|
|
|
return _getMyFileContent.apply(this, arguments);
|
|
|
}
|
|
|
function _getMyFileContent() {
|
|
|
_getMyFileContent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(params) {
|
|
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
|
case 0:
|
|
|
return _context5.abrupt("return", Fetch("/api/tasks/".concat(params.id, "/rep_content.json"), {
|
|
|
method: 'get',
|
|
|
params: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context5.stop();
|
|
|
}
|
|
|
}, _callee5);
|
|
|
}));
|
|
|
return _getMyFileContent.apply(this, arguments);
|
|
|
}
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/data-sets/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var _excluded = ["userDetail", "user", "globalSetting", "loading", "dispatch", "onClose", "shixun"];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var NavType = /*#__PURE__*/function (NavType) {
|
|
|
NavType["Classrooms"] = "classrooms";
|
|
|
NavType["Shixuns"] = "shixuns";
|
|
|
NavType["Paths"] = "paths";
|
|
|
NavType["Projects"] = "projects";
|
|
|
NavType["Videos"] = "videos";
|
|
|
NavType["Topics"] = "topics";
|
|
|
NavType["Teach"] = "teach-group";
|
|
|
return NavType;
|
|
|
}(NavType || {});
|
|
|
var Banner = function Banner(_ref) {
|
|
|
var userDetail = _ref.userDetail,
|
|
|
user = _ref.user,
|
|
|
globalSetting = _ref.globalSetting,
|
|
|
loading = _ref.loading,
|
|
|
dispatch = _ref.dispatch,
|
|
|
onClose = _ref.onClose,
|
|
|
shixun = _ref.shixun,
|
|
|
props = objectWithoutProperties_default()(_ref, _excluded);
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
var _useState = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
dataList = _useState2[0],
|
|
|
setDataList = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(""),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
folderName = _useState4[0],
|
|
|
setFolderName = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(0),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
count = _useState6[0],
|
|
|
setCount = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(objectSpread2_default()({
|
|
|
page: 1,
|
|
|
limit: 20
|
|
|
}, params)),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
query = _useState8[0],
|
|
|
setQuery = _useState8[1];
|
|
|
var visible = (0,_react_17_0_2_react.useCallback)(function () {
|
|
|
return props.visible;
|
|
|
}, [props.visible]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
query.page = 1;
|
|
|
getSetData();
|
|
|
}, [props.visible]);
|
|
|
var getSetData = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
_context.next = 2;
|
|
|
return fetchDataList(params.taskId);
|
|
|
case 2:
|
|
|
res = _context.sent;
|
|
|
if (res) {
|
|
|
setDataList(toConsumableArray_default()(res.data_sets));
|
|
|
setCount(res.data_sets_count);
|
|
|
setFolderName(res.folder_name);
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function getSetData() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
height: "calc(100vh - 51px)",
|
|
|
padding: "20px 15px"
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "c-grey-999 font14 ml5 mb5",
|
|
|
children: "\u6570\u636E\u96C6"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("dl", {
|
|
|
className: data_setsmodules.list,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: folderName,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("dt", {
|
|
|
className: "c-white",
|
|
|
children: folderName
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("dd", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(lib.CopyToClipboard, {
|
|
|
text: folderName,
|
|
|
onCopy: function onCopy() {
|
|
|
return message/* default */.ZP.success('复制成功');
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "".concat(data_setsmodules.copy, " current"),
|
|
|
children: "\u70B9\u51FB\u590D\u5236"
|
|
|
})
|
|
|
})
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "c-grey-999 font14 ml5 mb5",
|
|
|
children: "\u6587\u4EF6\u8DEF\u5F84"
|
|
|
}), dataList === null || dataList === void 0 ? void 0 : dataList.map(function (item, key) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("dl", {
|
|
|
className: data_setsmodules.list,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(tooltip/* default */.Z, {
|
|
|
title: item.filename,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("dt", {
|
|
|
className: "c-white",
|
|
|
children: item.filename
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("dd", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(lib.CopyToClipboard, {
|
|
|
text: item.file_path,
|
|
|
onCopy: function onCopy() {
|
|
|
return message/* default */.ZP.success('复制成功');
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "".concat(data_setsmodules.copy, " current"),
|
|
|
children: "\u70B9\u51FB\u590D\u5236"
|
|
|
})
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "tc",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(pagination/* default */.Z, {
|
|
|
onChange: function onChange(page) {
|
|
|
query.page = page;
|
|
|
getSetData();
|
|
|
},
|
|
|
className: data_setsmodules.page,
|
|
|
size: "small",
|
|
|
total: count,
|
|
|
pageSize: query.limit,
|
|
|
hideOnSinglePage: true
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var data_sets = ((0,_umi_production_exports.connect)(function (_ref3) {
|
|
|
var user = _ref3.user,
|
|
|
userDetail = _ref3.userDetail,
|
|
|
loading = _ref3.loading,
|
|
|
shixunsDetail = _ref3.shixunsDetail,
|
|
|
globalSetting = _ref3.globalSetting;
|
|
|
return {
|
|
|
user: user,
|
|
|
userDetail: userDetail,
|
|
|
shixunsDetail: shixunsDetail,
|
|
|
globalSetting: globalSetting,
|
|
|
loading: loading.models.index
|
|
|
};
|
|
|
})(Banner));
|
|
|
// EXTERNAL MODULE: ./src/components/mediator.js
|
|
|
var mediator = __webpack_require__(87684);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/header/tool.png
|
|
|
var tool_namespaceObject = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAgCAYAAAB6kdqOAAABZ0lEQVRYR+2YrU7FQBBGzzwEPAMSi+M6MARDggNJgiIkWLiSBIFCkyCuQECCQFIcEstb8AYf2ZvmhpbuT9ttUpJWdma+OZ3O7k5rRC5Jh8ARsBPzjdhvgXczew75WSyJpCdgP+aXaP8ws63OQJK2gbdSYJ6Y1Od2WRpmZlb4nIIVqgEFhUKwbXTGByRpDzgBdnu+kr7hD8CLSboGLvqqZYp/dEDK1LR9mZZNXwEys6u+ql3iJbm8E5C3eFOFYn2VrUKS1oADYL1M+gW8mtl3DOK3PQuQpE1gAWzUkn8CZ6Hzqg6bC+gcuPFU4s7MTlOrlAvITQFuGijMbOaSS/pzLwXKB+QdCQKiXqAUkJqP06rs1B00liFNFeqqVQEaXYXmbc6ypn7J3UNtgUa3ysa1D5XLfDw7dedl1BCYZWOcgHJWIKb1f15Z7EkGtq+G/NXEP3DCFPl79xnkTln3u+U4JWJAH/czo/gBVkc5pun3NGoAAAAASUVORK5CYII=";
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/header/data.png
|
|
|
var data_namespaceObject = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABqVJREFUeF7tm3eoXUUQxr9REXtXbIiKARs2xAKiBlGx+4cNUaOoCWKikChqjMbYYksUC5ZIiCLYwBYldkVFUOwVC/YC9ooF8ZMvzD7Hk3PvO+eePfc94Q5ceLx7zu7Mb2dnd2fnGvosJI8FsAuA1QC8CWCumb3dZzWGurN+dUxyVwCnANin0Of3AC7Tx8z+7Jc+qZ/WAZBczw2fFIx7CcBPAAQlyYsO4bZ+QmgVAMmT3fh13aivAFyuj5n9QfJIAJMBbBWMvgPALDN7vh8gWgFAcj83fOdgxNVu+AfRMJJL+rMCsap/91eYFt+2CSIrAJKbuTFHB6XvdsOf7mYIyTEApgCYEJ57x71hTlsQsgAgubQrryC3oisrF5ar15rTJHfzabF3MHqBx4fHc4NoDIDk4T7qW7tyn7vhs5ooS/IYB7F5aOcaB/FRk7bjuz0DILmDj/pBocErAFxgZt/kUJCk9DvLQSTP+sKnxewcfdQGQHJ1H3G5+2KuxJ0ALjSzV3IoVWyD5PoApgHQJirJM+4N9zbpsxYAkgpQMnwj7/RZADPN7P4mSlR9l6RWlTMB7BHeudlBvF61ndpTgOTu7u57+ssfA7jIzK7rpdOm7/j+YSqAjb2tn33Z1P7h1zrtd/UAkhv6iJ/gjWp9vhjAOWamv0dUSGpanA5gWVfkVfeGW6oq1hEASbm61uU1vbGbAMwwsw+rNt6P50iuA2A6gONDf9p76GyhKdpVFgFAci0A1wPQbk7ymBvedSMzXEdtf09yR3lmIT4cYmYK0B2lDICoqTHtwjTit7atfM72SR7mHpHiwxgze79TH/8BQFKHlk/Dwzqhab73Jco3BUFyLzd++9DWBDO7oSoAHU+fKHl4vnuDgIw6Ibmpu//BZcqZWcdYV/SACGCG04xtiqQ84svRQIGkor/mvQJ2krcAnATg0fSPJgBmAtD+O+7A1K5igzoeMSE5UZswAMu5Ej8AmGRmC5dAkmwMIBlJUjs/gYg7sO8AnNFtfrVBh+T+Om8AiIek08zskthfVgCpYc/rCYTmXJI3HESrgZLklgDOB7Bv6FuHrylm9ncRdisAAgilsgRi+dDxwwCmmlnWQElyZQDnApDLJ7ndDdfRu1RaBRBAaD8ud4wyz0E0DpS+G700NK7N2GQze2G46dUXAB5s5AU6H6TzQtJNx2Od3GoLSeUYlDxNyVRtZGS4luNK0jcAwRs2AaBAFOfo71qizEzTZVghua0bvpM/rJOdDO+4kRnRKVDWuR+d5bYKWkmUCRYIHVIWEZJrKMsD4IjwZaOltu8eULTKc3oCkVLdekRZHIF4LnjOeZ7tSf/SaCuYNkqHjziAYKByeoriUXT58Yi7e9rIaH7LcC2rjWXUAJAlJFfxXdv4EssU0WW4gGSTUQUgeMMWDiLl/MeZmXJ62WVUAggg0j59rJk9md363GeB3AqG0RkAGHjAYAoMYsAgCOYOsr73yJcRyq3gYBX4N183WAYHy+BgGRwsg9mXQU/jv5eCd52LkaUAqJhReT7dqk5vo463zVWApK7JYwptvpnpLqFUym6HdeOj+3aJbluUqlLlxW+5lsM2AJBUlZpS8yrCjtL1irz00pBkhKDGVPwkCJUrL7rByg2A5IMAUvlO6vprACfWrg8IZ/axXp4Ws7z3OAjl9nqWXABIFvOJSadrAczuVhcwFB+Gs4LkOAehbE4S5ezVwWfDvV/2fVMAJA8AcFco00vdPOB6Va4orVQm59fQKmbWZyXvTbX9p5rZlXUh9AqA5NoAlDzdptCnSuQ0ILqVqiWVAIRpocsPQTgu9KL7eN0S31e1514AkLyx5Jr+Rxnuxv9Stf/4XC0AAYQCjkDE63KNzDQze204ReoA8DqAq0ranOvxSAPQs/QEIIDQmisQqSBJXyk+qIpEvwgplSoAvBZZBVoqk42iyg+5uyrIG0sjAOrdr69TfFgmaDSx051gNwAkl/BN2IEF6951w1XCl00aAwjeoLtAgTgqaPcJgPFm9lDUuBMAkmer/KZgnS5Y0zxvdF1WRi0bgABCBZaqMNVP45Ko8kwgFtbrFQH4T2y0yVqhoKT+J3d/OduQFxrKDiCAUEWHPGKD0OccMxsfAfiIx98W6fGn3PBGpfBVoLUGwEdadcYpPixeQSH9EkQjXhb1K7xe/5FWAQRv2M5BHNpBRRU5pXneuLSmDoa+AAggVPoij1AtchJdlWvUh2oG6hjQ9Nm+AgggVJGqz4KRMjzpMiIAmo5azvcHAHLS/D+29Q9mll9ufOAEPQAAAABJRU5ErkJggg==";
|
|
|
// EXTERNAL MODULE: ./src/utils/fullscreen.ts
|
|
|
var fullscreen = __webpack_require__(25526);
|
|
|
// EXTERNAL MODULE: ./src/components/Exercise/recordScreen.tsx + 3 modules
|
|
|
var recordScreen = __webpack_require__(42058);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/header/index.jsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// import { Timer } from '../code-repository/ssh-action-bar';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Countdown = statistic/* default */.Z.Countdown;
|
|
|
function TipContent() {
|
|
|
return /*#__PURE__*/_jsx("p", {
|
|
|
children: "\u684C\u9762\u7CFB\u7EDF\u5C06\u6062\u590D\u5230\u521D\u59CB\u72B6\u6001\uFF0C\u60A8\u5728\u7CFB\u7EDF\u4E2D\u521B\u5EFA\u7684\u6570\u636E\u53EF\u80FD\u4F1A\u4E22\u5931\u3002\u8BF7\u786E\u4FDD\u60A8\u7684\u6570\u636E\u5DF2\u4FDD\u5B58\uFF08\u5982\uFF1A\u7248\u672C\u5E93\u4EE3\u7801\u5DF2\u63A8\u9001\u5230\u670D\u52A1\u5668\uFF09\u3002\u662F\u5426\u786E\u8BA4\u91CD\u7F6E\uFF1F"
|
|
|
});
|
|
|
}
|
|
|
/* harmony default export */ var header = (function (_ref) {
|
|
|
var mirror_description = _ref.mirror_description,
|
|
|
difficulty = _ref.difficulty,
|
|
|
git_url = _ref.git_url,
|
|
|
vnc_url = _ref.vnc_url,
|
|
|
window_vnc_url = _ref.window_vnc_url,
|
|
|
linux_vnc = _ref.linux_vnc,
|
|
|
isNotice = _ref.isNotice,
|
|
|
user = _ref.user,
|
|
|
game = _ref.game,
|
|
|
_ref$shixun = _ref.shixun,
|
|
|
shixun = _ref$shixun === void 0 ? {} : _ref$shixun,
|
|
|
_ref$taskData = _ref.taskData,
|
|
|
taskData = _ref$taskData === void 0 ? {} : _ref$taskData,
|
|
|
resetVncLoading = _ref.resetVncLoading,
|
|
|
onUpdateCostTime = _ref.onUpdateCostTime,
|
|
|
lastedGetTaskInfoTime = _ref.lastedGetTaskInfoTime,
|
|
|
onShowNotice = _ref.onShowNotice,
|
|
|
onResetGitCode = _ref.onResetGitCode,
|
|
|
onResetVnc = _ref.onResetVnc,
|
|
|
onBack = _ref.onBack,
|
|
|
onAddVncTime = _ref.onAddVncTime,
|
|
|
onUpdateCode = _ref.onUpdateCode,
|
|
|
unity_3d_routes = _ref.unity_3d_routes,
|
|
|
remaining_time = _ref.remaining_time,
|
|
|
st = _ref.st;
|
|
|
var _useSearchParams = (0,_umi_production_exports.useSearchParams)(),
|
|
|
_useSearchParams2 = slicedToArray_default()(_useSearchParams, 1),
|
|
|
searchParams = _useSearchParams2[0];
|
|
|
var name = shixun.name,
|
|
|
identifier = shixun.identifier,
|
|
|
task_pass = shixun.task_pass,
|
|
|
test_set_permission = shixun.test_set_permission;
|
|
|
// const { remaining_time, status } = taskData;
|
|
|
// const { user_url, image_url, grade = 0 } = user;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
isToolBar = _useState2[0],
|
|
|
setIsToolBar = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
isDataBar = _useState4[0],
|
|
|
setIsDataBar = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)({}),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
exerciseData = _useState6[0],
|
|
|
setExerciseData = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
showSave = _useState8[0],
|
|
|
setShowSave = _useState8[1];
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)(null),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
countDownTime = _useState10[0],
|
|
|
setCountDownTime = _useState10[1];
|
|
|
var _useState11 = (0,_react_17_0_2_react.useState)(1800),
|
|
|
_useState12 = slicedToArray_default()(_useState11, 2),
|
|
|
vncTime = _useState12[0],
|
|
|
setVncTime = _useState12[1];
|
|
|
var _useState13 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState14 = slicedToArray_default()(_useState13, 2),
|
|
|
dataSetsVisiable = _useState14[0],
|
|
|
setdataSetsVisiable = _useState14[1];
|
|
|
var _useState15 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState16 = slicedToArray_default()(_useState15, 2),
|
|
|
isshowmodal = _useState16[0],
|
|
|
setisshowmodal = _useState16[1];
|
|
|
var query = (0,_umi_production_exports.useLocation)().query;
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
var _useState17 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState18 = slicedToArray_default()(_useState17, 2),
|
|
|
isloading = _useState18[0],
|
|
|
setisloading = _useState18[1];
|
|
|
var _Form$useForm = es_form/* default */.Z.useForm(),
|
|
|
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
|
|
|
form = _Form$useForm2[0];
|
|
|
var timers = (0,_react_17_0_2_react.useMemo)(function () {
|
|
|
return Date.now() + remaining_time;
|
|
|
}, [remaining_time]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (!showSave) {
|
|
|
setTimeout(function () {
|
|
|
setShowSave(true);
|
|
|
}, 1000 * 60);
|
|
|
}
|
|
|
}, [showSave]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
mediator/* default */.Z.subscribe('update-windows-time', function (data) {
|
|
|
setVncTime(parseInt(remaining_time / 1000));
|
|
|
});
|
|
|
setVncTime(remaining_time / 1000);
|
|
|
}, []);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var _exerciseData$exercis;
|
|
|
if (searchParams.get("type") === 'exercises' && exerciseData !== null && exerciseData !== void 0 && (_exerciseData$exercis = exerciseData.exercise) !== null && _exerciseData$exercis !== void 0 && _exerciseData$exercis.screen_open) {
|
|
|
recordScreen/* fullchange */.U.forEach(function (item, index) {
|
|
|
document.addEventListener(item, backExercise, false);
|
|
|
document.addEventListener('blur', backExercise, false);
|
|
|
});
|
|
|
window.focus();
|
|
|
window.onblur = function () {
|
|
|
if ((0,fullscreen/* IsFull */.vp)()) {
|
|
|
backExercise();
|
|
|
(0,fullscreen/* exitFull */.BU)();
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
return function () {
|
|
|
recordScreen/* fullchange */.U.forEach(function (item, index) {
|
|
|
document.removeEventListener(item, backExercise, false);
|
|
|
});
|
|
|
};
|
|
|
}, [exerciseData]);
|
|
|
var handleToggleDatasets = function handleToggleDatasets() {
|
|
|
setdataSetsVisiable(!dataSetsVisiable);
|
|
|
};
|
|
|
var backExercise = function backExercise(type) {
|
|
|
window.parent.postMessage('backExercise', '*');
|
|
|
if (type !== 'back') (0,fullscreen/* exitFull */.BU)();
|
|
|
// window.top.location.href = `/classrooms/${searchParams.get("coursesId")}/exercise/${searchParams.get("exercisesId")}/users/${searchParams.get("login")}`;
|
|
|
};
|
|
|
function triggerToolBar() {
|
|
|
setIsToolBar(!isToolBar);
|
|
|
}
|
|
|
function onHideToolBar() {
|
|
|
setIsToolBar(false);
|
|
|
setIsDataBar(false);
|
|
|
}
|
|
|
function toShixun() {
|
|
|
// onBack();
|
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
|
type: 'globalSetting/headerFooterToggle',
|
|
|
payload: true
|
|
|
});
|
|
|
_umi_production_exports.history.replace("/innovation/project/detail/".concat(params.taskId));
|
|
|
}
|
|
|
function onReset() {
|
|
|
if (resetVncLoading) {
|
|
|
return;
|
|
|
}
|
|
|
onResetVnc();
|
|
|
}
|
|
|
function onCancelShixun() {
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
title: '退出',
|
|
|
icon: /*#__PURE__*/(0,jsx_runtime.jsx)(ExclamationCircleOutlined/* default */.Z, {}),
|
|
|
content: '您确定要退出制作镜像吗?',
|
|
|
centered: true,
|
|
|
okText: '确定',
|
|
|
cancelText: '取消',
|
|
|
onOk: toShixun
|
|
|
});
|
|
|
}
|
|
|
function onVncAction(name) {
|
|
|
onHideToolBar();
|
|
|
if (name === 'reset-task') {
|
|
|
if (!resetVncLoading) {
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
title: '重置环境',
|
|
|
icon: /*#__PURE__*/(0,jsx_runtime.jsx)(ExclamationCircleOutlined/* default */.Z, {}),
|
|
|
content: '是否确定重置环境?',
|
|
|
centered: true,
|
|
|
okText: '确定',
|
|
|
cancelText: '取消',
|
|
|
onOk: function onOk() {
|
|
|
onReset();
|
|
|
setShowSave(false);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
if (name === 'reset-code') {
|
|
|
if (!resetVncLoading) {
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
title: '恢复初始代码',
|
|
|
icon: /*#__PURE__*/(0,jsx_runtime.jsx)(ExclamationCircleOutlined/* default */.Z, {}),
|
|
|
content: '您在本文件中修改的内容将丢失,是否确定重新加载初始代码?',
|
|
|
centered: true,
|
|
|
okText: '确定',
|
|
|
cancelText: '取消',
|
|
|
onOk: onResetGitCode
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
if (name === 'full-screen') {
|
|
|
if ((0,fullscreen/* IsFull */.vp)()) {
|
|
|
(0,fullscreen/* exitFull */.BU)();
|
|
|
} else {
|
|
|
var _document, _document$getElementB;
|
|
|
(0,fullscreen/* requestFullScreen */.Dj)((_document = document) === null || _document === void 0 || (_document$getElementB = _document.getElementById) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.call(_document, 'task-right-panel'));
|
|
|
}
|
|
|
}
|
|
|
if (name === 'show-clipboard-box') {
|
|
|
mediator/* default */.Z.publish('show-clipboard-box');
|
|
|
}
|
|
|
}
|
|
|
var vncSettingOption = {
|
|
|
task_pass: task_pass,
|
|
|
test_set_permission: test_set_permission,
|
|
|
mirror_description: mirror_description,
|
|
|
difficulty: difficulty,
|
|
|
resetVncLoading: resetVncLoading,
|
|
|
git_url: git_url,
|
|
|
onVncAction: onVncAction,
|
|
|
window_vnc_url: window_vnc_url,
|
|
|
linux_vnc: linux_vnc,
|
|
|
vnc_url: vnc_url,
|
|
|
shixun: shixun,
|
|
|
unity_3d_routes: unity_3d_routes
|
|
|
};
|
|
|
var cutTime = (0,_react_17_0_2_react.useCallback)(function () {
|
|
|
if (!vncTime) {
|
|
|
return null;
|
|
|
}
|
|
|
console.log('VncTimer:', vncTime);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(VncTimer, {
|
|
|
defaultTime: vncTime,
|
|
|
onAddVncTime: onAddVncTime,
|
|
|
onReset: onReset,
|
|
|
toShixun: toShixun,
|
|
|
title: vnc_url ? '' : ''
|
|
|
});
|
|
|
}, [vncTime]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (isshowmodal) {
|
|
|
form.setFieldsValue({
|
|
|
name: '',
|
|
|
version: '',
|
|
|
description: ''
|
|
|
});
|
|
|
}
|
|
|
}, [isshowmodal]);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "task-header-container",
|
|
|
children: [searchParams.get("type") !== 'exercises' && /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
|
|
|
children: taskData.name
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("h2", {
|
|
|
className: "shixun-info",
|
|
|
children: name
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "flex-container",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [window_vnc_url && /*#__PURE__*/(0,jsx_runtime.jsx)(_umi_production_exports.Link, {
|
|
|
onClick: function onClick(e) {
|
|
|
e.preventDefault();
|
|
|
mediator/* default */.Z.publish('send-ctrl-alt-delete');
|
|
|
},
|
|
|
className: "c-grey-c mr20",
|
|
|
children: "\u53D1\u9001CTRL+ALT+DELETE"
|
|
|
}), cutTime()]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-shijian1"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(Countdown, {
|
|
|
valueStyle: {
|
|
|
color: 'white',
|
|
|
fontSize: '12px'
|
|
|
},
|
|
|
style: {
|
|
|
marginRight: 20,
|
|
|
marginLeft: 5
|
|
|
},
|
|
|
value: timers
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
className: "btn-vnc",
|
|
|
title: "\u5DE5\u5177\u680F",
|
|
|
onClick: triggerToolBar,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
alt: "tool",
|
|
|
src: tool_namespaceObject,
|
|
|
width: 16
|
|
|
}), "\u5DE5\u5177\u680F"]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
className: "btn-vnc",
|
|
|
title: "\u6570\u636E\u96C6",
|
|
|
onClick: function onClick() {
|
|
|
return setIsDataBar(true);
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
|
|
|
alt: "tool",
|
|
|
src: data_namespaceObject,
|
|
|
width: 18
|
|
|
}), "\u6570\u636E\u96C6"]
|
|
|
})]
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
disabled: !showSave,
|
|
|
className: "save-innovation",
|
|
|
onClick: /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
setisshowmodal(true);
|
|
|
// const res = await saveEnv(params.taskId);
|
|
|
// if (res?.status == 200) {
|
|
|
// message.info('保存成功');
|
|
|
// }
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
})),
|
|
|
children: "\u4FDD\u5B58\u955C\u50CF"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
className: "btn-out",
|
|
|
onClick: onCancelShixun,
|
|
|
title: "\u9000\u51FA\u5B9E\u8BAD",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-kaiguan"
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(drawer/* default */.Z, {
|
|
|
rootClassName: "setting-drawer",
|
|
|
title: null,
|
|
|
placement: "right",
|
|
|
closable: false,
|
|
|
open: isToolBar,
|
|
|
onClose: onHideToolBar,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(vnc_setting2, objectSpread2_default()(objectSpread2_default()({}, vncSettingOption), {}, {
|
|
|
taskData: taskData
|
|
|
}))
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(drawer/* default */.Z, {
|
|
|
rootClassName: "setting-drawer",
|
|
|
title: null,
|
|
|
placement: "right",
|
|
|
closable: false,
|
|
|
open: isDataBar,
|
|
|
onClose: onHideToolBar,
|
|
|
style: {
|
|
|
height: '100%'
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(data_sets, {})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
title: '保存镜像',
|
|
|
open: isshowmodal,
|
|
|
okButtonProps: {
|
|
|
loading: isloading
|
|
|
},
|
|
|
onCancel: function onCancel() {
|
|
|
setisshowmodal(false);
|
|
|
},
|
|
|
onOk: function onOk() {
|
|
|
form.submit();
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
style: {
|
|
|
color: '#6B758B'
|
|
|
},
|
|
|
children: "\u628A\u5F53\u524D\u7684\u73AF\u5883\u5B58\u4E3A\u4E00\u4E2A\u65B0\u7684\u955C\u50CF\u3002\u786E\u5B9A\u4FDD\u5B58\u540E\uFF0C\u5728\u6211\u7684\u955C\u50CF\u53EF\u4EE5\u770B\u5230\u8BE5\u955C\u50CF\u7684\u4FDD\u5B58\u72B6\u6001\u3002"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, {
|
|
|
labelCol: {
|
|
|
span: 4
|
|
|
},
|
|
|
wrapperCol: {
|
|
|
span: 20
|
|
|
},
|
|
|
form: form,
|
|
|
onFinish: ( /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(value) {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
setisloading(true);
|
|
|
_context3.next = 3;
|
|
|
return saveEnv(params.taskId, value);
|
|
|
case 3:
|
|
|
res = _context3.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) == 0) {
|
|
|
message/* default */.ZP.info('保存成功');
|
|
|
setisshowmodal(false);
|
|
|
}
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === -5) {
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
title: '覆盖镜像提示',
|
|
|
content: '系统检测到你的【镜像列表】存在同名且同版本号的镜像, 您确定要覆盖原来的镜像?',
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
_context2.next = 2;
|
|
|
return saveEnv(params.taskId, objectSpread2_default()({
|
|
|
is_cover: true
|
|
|
}, value));
|
|
|
case 2:
|
|
|
res = _context2.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) == 0) {
|
|
|
message/* default */.ZP.info('覆盖成功');
|
|
|
setisshowmodal(false);
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
}
|
|
|
setisloading(false);
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
return function (_x) {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}()),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u955C\u50CF\u540D\u79F0",
|
|
|
name: "name",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入镜像名称'
|
|
|
}, {
|
|
|
pattern: /^[a-z0-9_]+$/,
|
|
|
message: '只允许输入数字或小写字母'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
type: "text",
|
|
|
maxLength: 60
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: " \u7248\u672C\u53F7",
|
|
|
name: "version",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入版本号'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {
|
|
|
style: {
|
|
|
width: '100%'
|
|
|
}
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u955C\u50CF\u63CF\u8FF0",
|
|
|
name: "description",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入镜像描述'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z.TextArea, {})
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
var FiveMinute = 300;
|
|
|
function VncTimer(_ref4) {
|
|
|
var onAddVncTime = _ref4.onAddVncTime,
|
|
|
onReset = _ref4.onReset,
|
|
|
toShixun = _ref4.toShixun,
|
|
|
_ref4$title = _ref4.title,
|
|
|
title = _ref4$title === void 0 ? '' : _ref4$title,
|
|
|
defaultTime = _ref4.defaultTime;
|
|
|
var _useState19 = (0,_react_17_0_2_react.useState)(defaultTime),
|
|
|
_useState20 = slicedToArray_default()(_useState19, 2),
|
|
|
time = _useState20[0],
|
|
|
setTime = _useState20[1];
|
|
|
var _useState21 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState22 = slicedToArray_default()(_useState21, 2),
|
|
|
isPlusTime = _useState22[0],
|
|
|
setIsPlusTime = _useState22[1];
|
|
|
(0,useInterval/* default */.Z)(function () {
|
|
|
setTime(time - 1);
|
|
|
}, time > 0 ? 1000 : null);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (time === FiveMinute) {
|
|
|
setIsPlusTime(true);
|
|
|
}
|
|
|
}, [time]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (defaultTime < FiveMinute) {
|
|
|
setIsPlusTime(true);
|
|
|
}
|
|
|
setTime(defaultTime);
|
|
|
}, [defaultTime]);
|
|
|
function onCancel() {
|
|
|
if (time !== 0) {
|
|
|
setIsPlusTime(false);
|
|
|
} else {
|
|
|
toShixun();
|
|
|
}
|
|
|
}
|
|
|
function onAddTime() {
|
|
|
return _onAddTime.apply(this, arguments);
|
|
|
}
|
|
|
function _onAddTime() {
|
|
|
_onAddTime = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
setIsPlusTime(false);
|
|
|
if (!(time > 0)) {
|
|
|
_context4.next = 8;
|
|
|
break;
|
|
|
}
|
|
|
_context4.next = 4;
|
|
|
return onAddVncTime();
|
|
|
case 4:
|
|
|
res = _context4.sent;
|
|
|
setTime((res === null || res === void 0 ? void 0 : res.remaining_time) / 1000);
|
|
|
_context4.next = 10;
|
|
|
break;
|
|
|
case 8:
|
|
|
setTime(defaultTime);
|
|
|
onReset();
|
|
|
case 10:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
}));
|
|
|
return _onAddTime.apply(this, arguments);
|
|
|
}
|
|
|
function callback() {
|
|
|
if (time < FiveMinute) {
|
|
|
setIsPlusTime(true);
|
|
|
}
|
|
|
}
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(_react_17_0_2_react.Fragment, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
title: [/*#__PURE__*/(0,jsx_runtime.jsx)(ExclamationCircleOutlined/* default */.Z, {
|
|
|
className: "modalIconYellow"
|
|
|
}), time !== 0 ? '实验环境延时提醒' : '实验环境重置提醒'],
|
|
|
closable: false,
|
|
|
centered: true,
|
|
|
open: isPlusTime,
|
|
|
onOk: onAddTime,
|
|
|
onCancel: onCancel,
|
|
|
okText: time !== 0 ? '立即延长' : '重置',
|
|
|
cancelText: time !== 0 ? '不需要' : '退出',
|
|
|
children: time !== 0 ? "\u5F53\u524D\u5B9E\u9A8C\u73AF\u5883\u5C06\u4E8E ".concat(Math.round(time / 60), " \u5206\u949F\u540E\u5173\u95ED\uFF0C\u9700\u8981\u5EF6\u957F\u4F7F\u7528\u65F6\u95F4\u5417\uFF1F") : '由于长时间没有使用,资源已经被回收。如有需要,可以重置实验环境。'
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/index.js + 8 modules
|
|
|
var tree = __webpack_require__(32985);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/util.js
|
|
|
|
|
|
function isCompileOk(rs) {
|
|
|
var flag = true;
|
|
|
if (rs.length > 0) {
|
|
|
for (var i = 0; i < rs.length; i++) {
|
|
|
if (rs[i].compile_success == 0 || !rs[i].compile_success) {
|
|
|
flag = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
flag = false;
|
|
|
}
|
|
|
return flag;
|
|
|
}
|
|
|
function getTreeData(data) {
|
|
|
var parentKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
|
var result = [];
|
|
|
for (var i = 0; i < data.length; i++) {
|
|
|
var item = data[i];
|
|
|
var key = parentKey ? "".concat(parentKey, "/").concat(item.name) : "".concat(item.name);
|
|
|
result.push({
|
|
|
title: item.name,
|
|
|
isLeaf: item.type === 'tree' ? false : true,
|
|
|
key: key
|
|
|
});
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
function processTreeData(repos, key, newData) {
|
|
|
for (var i = 0; i < repos.length; i++) {
|
|
|
var item = repos[i];
|
|
|
if (item.key === key) {
|
|
|
item.children = newData;
|
|
|
break;
|
|
|
}
|
|
|
if (item.children) {
|
|
|
processTreeData(item.children, key, newData);
|
|
|
}
|
|
|
}
|
|
|
return repos;
|
|
|
}
|
|
|
function debounce(func, wait, immediate) {
|
|
|
var timeout;
|
|
|
return function () {
|
|
|
var context = this,
|
|
|
args = arguments;
|
|
|
var later = function later() {
|
|
|
timeout = null;
|
|
|
if (!immediate) func.apply(context, args);
|
|
|
};
|
|
|
var callNow = immediate && !timeout;
|
|
|
clearTimeout(timeout);
|
|
|
timeout = setTimeout(later, wait);
|
|
|
if (callNow) func.apply(context, args);
|
|
|
};
|
|
|
}
|
|
|
var isProd = true;
|
|
|
var apiPref = env/* default */.Z.API_SERVER;
|
|
|
// export const isProd =
|
|
|
// window.location.href.indexOf('test-') > 0 ||
|
|
|
// window.location.href.indexOf('localhost') > 0
|
|
|
// ? false
|
|
|
// : true;
|
|
|
|
|
|
// export const apiPref = isProd
|
|
|
// ? 'https://www.educoder.net'
|
|
|
// : 'https://test-newweb.educoder.net';
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/createForOfIteratorHelper.js
|
|
|
var createForOfIteratorHelper = __webpack_require__(91232);
|
|
|
var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper);
|
|
|
// EXTERNAL MODULE: ./node_modules/_js-base64@2.6.4@js-base64/base64.js
|
|
|
var base64 = __webpack_require__(24334);
|
|
|
// EXTERNAL MODULE: ./node_modules/_xterm@4.8.1@xterm/lib/xterm.js
|
|
|
var xterm = __webpack_require__(34376);
|
|
|
// EXTERNAL MODULE: ./node_modules/_xterm@4.8.1@xterm/css/xterm.css
|
|
|
var css_xterm = __webpack_require__(26632);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/xterm-panel/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var xterm_panelmodules = ({"xterm-panel-wrp":"xterm-panel-wrp___hg9up","xterm-panel":"xterm-panel___QKpsc"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_resize-observer-polyfill@1.5.1@resize-observer-polyfill/dist/ResizeObserver.es.js
|
|
|
var ResizeObserver_es = __webpack_require__(76374);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/xterm-panel/index.jsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getColsAndRows(width, height, term) {
|
|
|
var w = term._core._renderService.dimensions.actualCellWidth || 9.5;
|
|
|
var h = term._core._renderService.dimensions.actualCellHeight || 18;
|
|
|
var rows = Math.floor(height / h);
|
|
|
var cols = Math.floor(width / w);
|
|
|
return [cols, rows];
|
|
|
}
|
|
|
function onLayout(term, el) {
|
|
|
var ro = new ResizeObserver_es/* default */.Z(function (entries) {
|
|
|
console.log('entries:', entries);
|
|
|
var _iterator = createForOfIteratorHelper_default()(entries),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var entry = _step.value;
|
|
|
if (entry.target.offsetHeight > 0 || entry.target.offsetWidth > 0) {
|
|
|
var _getColsAndRows = getColsAndRows(entry.target.offsetWidth, entry.target.offsetHeight, term),
|
|
|
_getColsAndRows2 = slicedToArray_default()(_getColsAndRows, 2),
|
|
|
cols = _getColsAndRows2[0],
|
|
|
rows = _getColsAndRows2[1];
|
|
|
console.log('cols, rows', cols, rows);
|
|
|
mediator/* default */.Z.publish('ssh-xterm-resize', {
|
|
|
columns: cols,
|
|
|
rows: rows,
|
|
|
width: entry.target.offsetWidth,
|
|
|
height: entry.target.offsetHeight
|
|
|
});
|
|
|
term.resize(cols, rows);
|
|
|
var data1 = base64.Base64.decode('IA==');
|
|
|
var data = base64.Base64.decode('CBtbSw==');
|
|
|
term.write(data1);
|
|
|
term.write(data);
|
|
|
}
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
});
|
|
|
ro.observe(el);
|
|
|
return ro;
|
|
|
}
|
|
|
var TimeTicket = 30000;
|
|
|
|
|
|
//建立 websockt 来交互
|
|
|
//根据容器大小计算行数和列数并做到自适应
|
|
|
//socket 与 term 需要分开初始化 因为socket 可能重置连接
|
|
|
//mediator 监听消息,如果和id匹配,则建立连接,重置,或关闭连接
|
|
|
|
|
|
/* harmony default export */ var xterm_panel = (function (_ref) {
|
|
|
var sshConfigData = _ref.sshConfigData,
|
|
|
sid = _ref.sid;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(null),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
term = _useState2[0],
|
|
|
setTerm = _useState2[1];
|
|
|
var ws_url = sshConfigData.ws_url,
|
|
|
password = sshConfigData.password,
|
|
|
port = sshConfigData.port;
|
|
|
var el = (0,_react_17_0_2_react.useRef)();
|
|
|
var socket = (0,_react_17_0_2_react.useRef)();
|
|
|
var isFirstConnected = (0,_react_17_0_2_react.useRef)(false);
|
|
|
|
|
|
//term init
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (el.current && ws_url) {
|
|
|
var _term = new xterm.Terminal({
|
|
|
fontSize: 16,
|
|
|
rendererType: 'dom'
|
|
|
});
|
|
|
console.log('el.current:', el.current);
|
|
|
_term.open(el.current);
|
|
|
_term.onData(function (data) {
|
|
|
console.log('data:', data);
|
|
|
if (socket.current) {
|
|
|
if (socket.current.readyState === 1) {
|
|
|
socket.current.send(JSON.stringify({
|
|
|
tp: 'client',
|
|
|
data: data
|
|
|
}));
|
|
|
mediator/* default */.Z.publish('on-operating-ssh'); //有操作则自动延时
|
|
|
} else {
|
|
|
//断开连接后重连
|
|
|
// socket.current = null
|
|
|
// mediator.publish('create-socket', sid)
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
_term.write('Connecting...');
|
|
|
setTerm(_term);
|
|
|
var ro = onLayout(_term, el.current);
|
|
|
return function () {
|
|
|
_term === null || _term === void 0 || _term.dispose();
|
|
|
ro === null || ro === void 0 || ro.unobserve(el.current);
|
|
|
};
|
|
|
}
|
|
|
}, [ws_url, el.current]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (term && ws_url) {
|
|
|
var createSocket = function createSocket() {
|
|
|
var socketInstance = new WebSocket(ws_url);
|
|
|
console.log('socketInstance:', ws_url);
|
|
|
socket.current = socketInstance;
|
|
|
socketInstance.onopen = function () {
|
|
|
var container = term.element.parentElement;
|
|
|
if (container) {
|
|
|
var width = container.offsetWidth;
|
|
|
var height = container.offsetHeight;
|
|
|
console.log('init', {
|
|
|
tp: 'init',
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, sshConfigData), {}, {
|
|
|
secret: password,
|
|
|
width: width,
|
|
|
height: height,
|
|
|
rows: term.rows,
|
|
|
columns: term.cols
|
|
|
})
|
|
|
});
|
|
|
socketInstance.send(JSON.stringify({
|
|
|
tp: 'init',
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, sshConfigData), {}, {
|
|
|
secret: password,
|
|
|
width: width,
|
|
|
height: height,
|
|
|
rows: term.rows,
|
|
|
columns: term.cols
|
|
|
})
|
|
|
}));
|
|
|
}
|
|
|
term.focus();
|
|
|
};
|
|
|
socketInstance.onerror = function (error) {
|
|
|
console.log('------in socket error----', error, socketInstance, ws_url);
|
|
|
//连接报错后,重新请求资源
|
|
|
// mediator.publish('on-recreate-socket')
|
|
|
};
|
|
|
socketInstance.onmessage = function (event) {
|
|
|
if (!isFirstConnected.current) {
|
|
|
term.write('\r');
|
|
|
// term.focus()
|
|
|
setTimeout(function () {
|
|
|
// term.clear();
|
|
|
}, 1000);
|
|
|
}
|
|
|
isFirstConnected.current = true;
|
|
|
console.log('event:', event);
|
|
|
var data = base64.Base64.decode(event.data.toString());
|
|
|
var w = term._core._renderService.dimensions.actualCellWidth || 9.5;
|
|
|
console.log('data:', data, w, term);
|
|
|
term.write(data);
|
|
|
};
|
|
|
socketInstance.onclose = function (evt) {
|
|
|
if (tid) {
|
|
|
clearInterval(tid);
|
|
|
}
|
|
|
term.write('\r\nconnection closed');
|
|
|
};
|
|
|
};
|
|
|
var tid = setInterval(function () {
|
|
|
if (socket.current) {
|
|
|
socket.current.send(JSON.stringify({
|
|
|
tp: 'h'
|
|
|
}));
|
|
|
}
|
|
|
}, TimeTicket);
|
|
|
var unSubCreate = mediator/* default */.Z.subscribe('create-socket', function (id) {
|
|
|
if (sid == id) {
|
|
|
if (socket.current && socket.current.readyState === 1) {
|
|
|
term.focus();
|
|
|
} else {
|
|
|
createSocket();
|
|
|
}
|
|
|
term.focus();
|
|
|
}
|
|
|
});
|
|
|
var unSubClose = mediator/* default */.Z.subscribe('close-socket', function (id) {
|
|
|
if (sid === id) {
|
|
|
if (socket.current) {
|
|
|
socket.current.close();
|
|
|
isFirstConnected.current = false;
|
|
|
term.clear();
|
|
|
}
|
|
|
socket.current = null;
|
|
|
}
|
|
|
});
|
|
|
var unSubResize = mediator/* default */.Z.subscribe('ssh-xterm-resize', function (option) {
|
|
|
if (socket.current && socket.current.readyState === 1) {
|
|
|
socket.current.send(JSON.stringify({
|
|
|
tp: 'resize',
|
|
|
data: objectSpread2_default()({}, option)
|
|
|
}));
|
|
|
}
|
|
|
});
|
|
|
var unSubAddTime = mediator/* default */.Z.subscribe('ssh-add-connect-time', function () {
|
|
|
if (socket.current && socket.current.readyState === 1) {
|
|
|
socket.current.send(JSON.stringify({
|
|
|
tp: 'overtime'
|
|
|
}));
|
|
|
}
|
|
|
});
|
|
|
return function () {
|
|
|
unSubClose();
|
|
|
unSubCreate();
|
|
|
unSubResize();
|
|
|
unSubAddTime();
|
|
|
if (socket.current) {
|
|
|
socket.current.close();
|
|
|
isFirstConnected.current = false;
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
}, [term, ws_url, port]);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: xterm_panelmodules['xterm-panel-wrp'],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
ref: el,
|
|
|
className: xterm_panelmodules['xterm-panel'],
|
|
|
children: !ws_url ? /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
style: {
|
|
|
color: '#fff'
|
|
|
},
|
|
|
children: "\u6B63\u5728\u8FDE\u63A5\u547D\u4EE4\u884C\u670D\u52A1..."
|
|
|
}) : null
|
|
|
})
|
|
|
});
|
|
|
});
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/vnc-view/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/progress/index.js + 13 modules
|
|
|
var progress = __webpack_require__(93948);
|
|
|
// EXTERNAL MODULE: ./node_modules/_novncrfb@1.2.1@novncrfb/lib/rfb.js
|
|
|
var lib_rfb = __webpack_require__(62013);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/vnc-view/clipboard-box/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/vnc-view/clipboard-box/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var TextArea = input/* default */.Z.TextArea;
|
|
|
/* harmony default export */ var clipboard_box = (function (_ref) {
|
|
|
var onCancel = _ref.onCancel,
|
|
|
onSave = _ref.onSave,
|
|
|
content = _ref.content;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(content),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
value = _useState2[0],
|
|
|
setValue = _useState2[1];
|
|
|
function onChangeValue(e) {
|
|
|
setValue(e.target.value);
|
|
|
}
|
|
|
function onSaveContent() {
|
|
|
onSave(value);
|
|
|
}
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
setValue(content);
|
|
|
}, [content]);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "clipboard-box",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("h3", {
|
|
|
children: "\u5B9E\u9A8C\u73AF\u5883\u526A\u5207\u677F\uFF1A"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {
|
|
|
value: value,
|
|
|
onChange: onChangeValue,
|
|
|
className: "clipboard"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("b", {
|
|
|
children: " 1.\u4ECE\u5916\u90E8\u590D\u5236\u5185\u5BB9\u5230\u5B9E\u9A8C\u73AF\u5883\u5185\uFF1A "
|
|
|
}), " \u7C98\u8D34\u5185\u5BB9\u5230\u4E0A\u9762\u6587\u672C\u6846\uFF0C\u70B9\u51FB\u4FDD\u5B58\uFF0C\u7136\u540E\u5728\u5B9E\u9A8C\u73AF\u5883\u4E2D\u8FDB\u884C\u7C98\u8D34\u3002 "]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("b", {
|
|
|
children: " 2.\u83B7\u53D6\u5B9E\u9A8C\u73AF\u5883\u4E2D\u7684\u5185\u5BB9\uFF1A "
|
|
|
}), " \u8BF7\u5148\u5728\u73AF\u5883\u4E2D\u590D\u5236\u5185\u5BB9\uFF0C\u590D\u5236\u52A8\u4F5C\u5B8C\u6210\u540E\u5185\u5BB9\u4F1A\u663E\u793A\u5728\u4E0A\u9762\u6587\u672C\u6846\uFF0C\u7136\u540E\u5728\u4E0A\u9762\u6587\u672C\u6846\u4E2D\u518D\u6B21\u590D\u5236\u3002 "]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "btn-action-container",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "ghost",
|
|
|
onClick: onCancel,
|
|
|
style: {
|
|
|
marginRight: 10
|
|
|
},
|
|
|
children: "\u53D6\u6D88"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
onClick: onSaveContent,
|
|
|
children: "\u4FDD\u5B58"
|
|
|
})]
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/LoadingOutlined.js + 1 modules
|
|
|
var LoadingOutlined = __webpack_require__(42857);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/vnc-view/vnc-panel/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var vnc_panelmodules = ({"selectImage":"selectImage___t63KU","container":"container___WChhl"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_dayjs@1.11.13@dayjs/dayjs.min.js
|
|
|
var dayjs_min = __webpack_require__(61186);
|
|
|
var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/vnc-view/vnc-panel/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var antIcon = /*#__PURE__*/(0,jsx_runtime.jsx)(LoadingOutlined/* default */.Z, {
|
|
|
style: {
|
|
|
fontSize: 24
|
|
|
},
|
|
|
spin: true
|
|
|
});
|
|
|
function unicodeUnEscape(str) {
|
|
|
return str.replace(/\\u([\dA-Za-z]{4})/g, function (_, m1) {
|
|
|
return String.fromCharCode(parseInt("0x" + m1));
|
|
|
});
|
|
|
}
|
|
|
function getJsonFromUrl(url) {
|
|
|
if (!url) url = window.location.search;
|
|
|
var query = url.substr(1);
|
|
|
var result = {};
|
|
|
query.split('&').forEach(function (part) {
|
|
|
var item = part.split('=');
|
|
|
result[item[0]] = decodeURIComponent(item[1]);
|
|
|
});
|
|
|
return result;
|
|
|
}
|
|
|
var initialState = {
|
|
|
loading: true,
|
|
|
isLarge: false,
|
|
|
showClipBoardBox: false,
|
|
|
transferContent: '',
|
|
|
mes: '实验环境准备中'
|
|
|
};
|
|
|
var Types = /*#__PURE__*/function (Types) {
|
|
|
Types[Types["SET_LOADING"] = 0] = "SET_LOADING";
|
|
|
Types[Types["SET_IS_LARGE"] = 1] = "SET_IS_LARGE";
|
|
|
Types[Types["SET_MES"] = 2] = "SET_MES";
|
|
|
Types[Types["SET_STATE"] = 3] = "SET_STATE";
|
|
|
Types[Types["SHOW_CLIPBOARD_BOX"] = 4] = "SHOW_CLIPBOARD_BOX";
|
|
|
Types[Types["SET_TRANSFER_CONTENT"] = 5] = "SET_TRANSFER_CONTENT";
|
|
|
Types[Types["UPDATE_ALL"] = 6] = "UPDATE_ALL";
|
|
|
return Types;
|
|
|
}(Types || {});
|
|
|
function reducer(state, action) {
|
|
|
switch (action.type) {
|
|
|
case Types.SET_LOADING:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
loading: action.payload
|
|
|
});
|
|
|
case Types.SET_IS_LARGE:
|
|
|
return objectSpread2_default()({}, objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
isLarge: action.payload
|
|
|
}));
|
|
|
case Types.SET_MES:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
mes: action.payload
|
|
|
});
|
|
|
case Types.SET_STATE:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case Types.SET_TRANSFER_CONTENT:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
transferContent: action.payload
|
|
|
});
|
|
|
case Types.SHOW_CLIPBOARD_BOX:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showClipBoardBox: action.payload
|
|
|
});
|
|
|
case Types.UPDATE_ALL:
|
|
|
return objectSpread2_default()({
|
|
|
loading: state.loading
|
|
|
}, action.payload);
|
|
|
default:
|
|
|
throw new Error();
|
|
|
}
|
|
|
}
|
|
|
/* harmony default export */ var vnc_panel = (function (_ref) {
|
|
|
var _taskData$shixun_virt4;
|
|
|
var vnc_url = _ref.vnc_url,
|
|
|
window_vnc_url = _ref.window_vnc_url,
|
|
|
linux_vnc = _ref.linux_vnc,
|
|
|
virtual_machine = _ref.virtual_machine,
|
|
|
taskId = _ref.taskId,
|
|
|
taskData = _ref.taskData;
|
|
|
var el = (0,_react_17_0_2_react.useRef)();
|
|
|
var guacaRef = (0,_react_17_0_2_react.useRef)();
|
|
|
var rfbRef = (0,_react_17_0_2_react.useRef)();
|
|
|
var iframeRef = (0,_react_17_0_2_react.useRef)();
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
imageId = _useState2[0],
|
|
|
setImageId = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
showImage = _useState4[0],
|
|
|
setShowImage = _useState4[1];
|
|
|
var _useReducer = (0,_react_17_0_2_react.useReducer)(reducer, initialState),
|
|
|
_useReducer2 = slicedToArray_default()(_useReducer, 2),
|
|
|
state = _useReducer2[0],
|
|
|
dispatch = _useReducer2[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(0),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
linkNum = _useState6[0],
|
|
|
setLinkNum = _useState6[1];
|
|
|
var mes = state.mes,
|
|
|
loading = state.loading,
|
|
|
showClipBoardBox = state.showClipBoardBox,
|
|
|
isLarge = state.isLarge,
|
|
|
transferContent = state.transferContent;
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(0),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
percent = _useState8[0],
|
|
|
setPercent = _useState8[1];
|
|
|
var timeout = (0,_react_17_0_2_react.useRef)();
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
var paramsd = params;
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
window.addEventListener("visibilitychange", handleFocus);
|
|
|
return function () {
|
|
|
var _guacaRef$current, _guacaRef$current$dis;
|
|
|
(_guacaRef$current = guacaRef.current) === null || _guacaRef$current === void 0 || (_guacaRef$current$dis = _guacaRef$current.disconnect) === null || _guacaRef$current$dis === void 0 || _guacaRef$current$dis.call(_guacaRef$current);
|
|
|
window.removeEventListener("visibilitychange", handleFocus);
|
|
|
};
|
|
|
}, []);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
window.sessionStorage.imageId = imageId;
|
|
|
return function () {
|
|
|
window.sessionStorage.removeItem("imageId");
|
|
|
};
|
|
|
}, [imageId]);
|
|
|
var fullChange = function fullChange() {
|
|
|
var _taskData$shixun, _rfbRef$current;
|
|
|
// setIsFull(IsFull())
|
|
|
if ((taskData === null || taskData === void 0 || (_taskData$shixun = taskData.shixun) === null || _taskData$shixun === void 0 ? void 0 : _taskData$shixun.windows_connection_mode) === "rdp") {
|
|
|
setTimeout(function () {
|
|
|
doResize();
|
|
|
}, 1500);
|
|
|
} else if ((rfbRef === null || rfbRef === void 0 || (_rfbRef$current = rfbRef.current) === null || _rfbRef$current === void 0 ? void 0 : _rfbRef$current.resizeSession) !== undefined) {
|
|
|
if ((0,fullscreen/* IsFull */.vp)()) {
|
|
|
rfbRef.current.resizeSession = true;
|
|
|
} else {
|
|
|
setTimeout(function () {
|
|
|
rfbRef.current.resizeSession = false;
|
|
|
}, 900);
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
window.addEventListener("visibilitychange", handleFocus);
|
|
|
document.addEventListener((0,fullscreen/* fullscreenChange */.gH)(), fullChange);
|
|
|
return function () {
|
|
|
document.removeEventListener((0,fullscreen/* fullscreenChange */.gH)(), fullChange);
|
|
|
window.removeEventListener("visibilitychange", handleFocus);
|
|
|
};
|
|
|
}, []);
|
|
|
var handleFocus = function handleFocus(e) {
|
|
|
if (document.visibilityState === 'visible') {
|
|
|
var time = sessionStorage.vncPageLeaveTime;
|
|
|
if (dayjs_min_default()(new Date()).diff(dayjs_min_default()(time), "minutes") > 2) setLinkNum(new Date().getTime());
|
|
|
sessionStorage.removeItem("vncPageLeaveTime");
|
|
|
} else {
|
|
|
sessionStorage.vncPageLeaveTime = new Date();
|
|
|
}
|
|
|
};
|
|
|
function onCancelClipboardBox() {
|
|
|
dispatch({
|
|
|
type: Types.SHOW_CLIPBOARD_BOX,
|
|
|
payload: false
|
|
|
});
|
|
|
}
|
|
|
function onResizeSet() {
|
|
|
dispatch({
|
|
|
type: Types.SET_IS_LARGE,
|
|
|
payload: !isLarge
|
|
|
});
|
|
|
}
|
|
|
function onLayout(rfb) {
|
|
|
var ro;
|
|
|
if (el.current) {
|
|
|
ro = new ResizeObserver_es/* default */.Z(function (entries) {
|
|
|
var _iterator = createForOfIteratorHelper_default()(entries),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var _taskData$shixun2;
|
|
|
var entry = _step.value;
|
|
|
if ((taskData === null || taskData === void 0 || (_taskData$shixun2 = taskData.shixun) === null || _taskData$shixun2 === void 0 ? void 0 : _taskData$shixun2.windows_connection_mode) === "rdp") {
|
|
|
doResize();
|
|
|
}
|
|
|
if (entry.target.offsetHeight > 0 || entry.target.offsetWidth > 0) {
|
|
|
var _rfb$_eventHandlers;
|
|
|
rfb === null || rfb === void 0 || (_rfb$_eventHandlers = rfb._eventHandlers) === null || _rfb$_eventHandlers === void 0 || _rfb$_eventHandlers.windowResize();
|
|
|
}
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
});
|
|
|
ro.observe(el.current);
|
|
|
}
|
|
|
return ro;
|
|
|
}
|
|
|
var getWindowVnc = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
|
|
|
var _getJsonFromUrl, _getJsonFromUrl2;
|
|
|
var urlParams, res, _res$data;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
urlParams = (_getJsonFromUrl = getJsonFromUrl()) !== null && _getJsonFromUrl !== void 0 && _getJsonFromUrl.homework_common_id ? {
|
|
|
homework_common_id: (_getJsonFromUrl2 = getJsonFromUrl()) === null || _getJsonFromUrl2 === void 0 ? void 0 : _getJsonFromUrl2.homework_common_id
|
|
|
} : {};
|
|
|
_context3.next = 3;
|
|
|
return (0,fetch/* default */.ZP)("/api/tasks/".concat(params.taskId || taskId, "/get_vnc_link.json"), {
|
|
|
method: "post",
|
|
|
body: objectSpread2_default()(objectSpread2_default()(objectSpread2_default()({}, params), urlParams), {}, {
|
|
|
template_id: imageId
|
|
|
})
|
|
|
});
|
|
|
case 3:
|
|
|
res = _context3.sent;
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) === -3)) {
|
|
|
_context3.next = 6;
|
|
|
break;
|
|
|
}
|
|
|
return _context3.abrupt("return", new Promise( /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(resolve, reject) {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
content: "检测到您已经开启了其他实验环境,请先关闭环境后,再连接",
|
|
|
okText: "立即关闭",
|
|
|
cancelText: "稍后关闭",
|
|
|
onOk: function () {
|
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
clearTimeout(timeout.current);
|
|
|
setPercent(0);
|
|
|
_context.next = 4;
|
|
|
return closeWindowsVnc(params.taskId, res === null || res === void 0 ? void 0 : res.message);
|
|
|
case 4:
|
|
|
// resolve(await getWindowVnc());
|
|
|
setLinkNum(linkNum + 1);
|
|
|
return _context.abrupt("return");
|
|
|
case 6:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function (_x, _x2) {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}()));
|
|
|
case 6:
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) === -1)) {
|
|
|
_context3.next = 8;
|
|
|
break;
|
|
|
}
|
|
|
throw new String(res === null || res === void 0 ? void 0 : res.message);
|
|
|
case 8:
|
|
|
if (virtual_machine) {
|
|
|
(0,util/* setCookie */.d8)("PVEAuthCookie", res === null || res === void 0 || (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.cookies_value, 1);
|
|
|
(0,util/* setCookie */.d8)("PVELangCookie", "zh_CN", 1);
|
|
|
}
|
|
|
mediator/* default */.Z.publish('update-windows-time', res === null || res === void 0 ? void 0 : res.data);
|
|
|
return _context3.abrupt("return", res);
|
|
|
case 11:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
return function getWindowVnc() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var rfb;
|
|
|
var ro;
|
|
|
function onDisconnect(e) {
|
|
|
if (window_vnc_url) {
|
|
|
message/* default */.ZP.warning('由于长时间未操作,连接失效,正在重新连接Windows VNC服务');
|
|
|
dispatch({
|
|
|
type: Types.SET_LOADING,
|
|
|
payload: true
|
|
|
});
|
|
|
setLinkNum(linkNum + 1);
|
|
|
}
|
|
|
}
|
|
|
mediator/* default */.Z.subscribe('reset-linux-windows-loading', function () {
|
|
|
dispatch({
|
|
|
type: Types.SET_LOADING,
|
|
|
payload: true
|
|
|
});
|
|
|
});
|
|
|
mediator/* default */.Z.subscribe('reset-linux-windos-vnc', function () {
|
|
|
setLinkNum(linkNum + 1);
|
|
|
});
|
|
|
function onConnect() {
|
|
|
setPercent(100);
|
|
|
clearTimeout(timeout.current);
|
|
|
setTimeout(function () {
|
|
|
var _rfb;
|
|
|
(_rfb = rfb) === null || _rfb === void 0 || (_rfb = _rfb._eventHandlers) === null || _rfb === void 0 || _rfb.windowResize();
|
|
|
// doResize()
|
|
|
// rfbRef.current.resizeSession = false;
|
|
|
dispatch({
|
|
|
type: Types.SET_LOADING,
|
|
|
payload: false
|
|
|
});
|
|
|
}, 1300);
|
|
|
mediator/* default */.Z.subscribe('send-ctrl-alt-delete', function () {
|
|
|
var _rfb2;
|
|
|
(_rfb2 = rfb) === null || _rfb2 === void 0 || _rfb2.sendCtrlAltDel();
|
|
|
});
|
|
|
}
|
|
|
function onClipboardReceive(e) {
|
|
|
var rs = unicodeUnEscape(e.detail.text);
|
|
|
dispatch({
|
|
|
type: Types.SET_TRANSFER_CONTENT,
|
|
|
payload: rs
|
|
|
});
|
|
|
}
|
|
|
if ((window_vnc_url || vnc_url || linux_vnc || virtual_machine && imageId) && el.current) {
|
|
|
var _taskData$shixun3;
|
|
|
clearTimeout(timeout.current);
|
|
|
if ((taskData === null || taskData === void 0 || (_taskData$shixun3 = taskData.shixun) === null || _taskData$shixun3 === void 0 ? void 0 : _taskData$shixun3.windows_connection_mode) === "rdp") {
|
|
|
doResize();
|
|
|
}
|
|
|
new Promise( /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
|
|
|
var params, socketUrl, password, urlParser, protocol, searchParams, host, search, searchUrl;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
params = getJsonFromUrl();
|
|
|
socketUrl = '';
|
|
|
// let res = await getWindowVnc()
|
|
|
// if (linux_vnc || virtual_machine) {
|
|
|
// iframeRef.current.src = res?.data?.vnc_url + '&time=' + Date.now();
|
|
|
// dispatch({
|
|
|
// type: Types.SET_STATE,
|
|
|
// payload: {
|
|
|
// loading: false,
|
|
|
// mes: '实验环境重置中'
|
|
|
// }
|
|
|
// })
|
|
|
// return;
|
|
|
// } else if (window_vnc_url) {
|
|
|
// password = 'Edu123';
|
|
|
// socketUrl = decodeURIComponent(res?.data?.vnc_url)
|
|
|
// } else {
|
|
|
urlParser = new URL(decodeURIComponent(taskData === null || taskData === void 0 ? void 0 : taskData.vnc_url)); //no IE11 support
|
|
|
protocol = urlParser.protocol, searchParams = urlParser.searchParams, host = urlParser.host, search = urlParser.search;
|
|
|
searchUrl = (0,util/* parseUrl */.en)(search);
|
|
|
password = searchParams.get('password');
|
|
|
socketUrl = "".concat(protocol === 'https:' ? 'wss' : 'ws', "://").concat(host, "/").concat(searchUrl.path || 'websockify');
|
|
|
// }
|
|
|
|
|
|
// if (taskData?.shixun?.windows_connection_mode === "rdp") {
|
|
|
// onLayout()
|
|
|
// iframeRef.current.style.cssText = iframeRef.current.style.cssText + "width:1920px;height:1080px;position:initial"
|
|
|
// iframeRef.current.src = `/rdp.html?tpiId=${taskData?.myshixun?.id}`
|
|
|
|
|
|
// // guacaRef.current = new Guacamole.Client(new Guacamole.WebSocketTunnel(`wss://pre-webssh.educoder.net/tunnel?tpiID=${taskData?.myshixun?.id}&width=500&height=400&`));
|
|
|
// // // guacaRef.current = new Guacamole.Client(new Guacamole.WebSocketTunnel(`wss://pre-webssh.educoder.net/tunnel?tpiID=4232620&width=1920&height=1080&`));
|
|
|
// // guacaRef.current.onerror = function (error:any) {
|
|
|
// // console.log("onerror",error);
|
|
|
// // };
|
|
|
// // el.current.appendChild(guacaRef.current.getDisplay().getElement());
|
|
|
// // guacaRef.current.connect();
|
|
|
// dispatch({
|
|
|
// type: Types.SET_LOADING,
|
|
|
// payload: false
|
|
|
// })
|
|
|
// return;
|
|
|
// }
|
|
|
|
|
|
rfb = new lib_rfb/* default */.Z(el.current, socketUrl, {
|
|
|
credentials: {
|
|
|
password: password
|
|
|
},
|
|
|
wsProtocols: ['binary'],
|
|
|
resize: "scale",
|
|
|
show_dot: true
|
|
|
});
|
|
|
ro = onLayout(rfb);
|
|
|
rfb.viewOnly = params.view_only || false;
|
|
|
if (window_vnc_url) {
|
|
|
rfb.scaleViewport = true;
|
|
|
} else {
|
|
|
rfb.scaleViewport = params.scale || false;
|
|
|
}
|
|
|
rfb.scaleViewport = true;
|
|
|
rfb.showDotCursor = true;
|
|
|
rfb.resizeSession = true;
|
|
|
rfbRef.current = rfb;
|
|
|
rfb.addEventListener('disconnect', onDisconnect);
|
|
|
rfb.addEventListener('connect', onConnect);
|
|
|
rfb.addEventListener('clipboard', onClipboardReceive);
|
|
|
case 18:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
})));
|
|
|
var unsub = mediator/* default */.Z.subscribe('vnc-reseting', function () {
|
|
|
setPercent(0);
|
|
|
dispatch({
|
|
|
type: Types.SET_STATE,
|
|
|
payload: {
|
|
|
loading: true,
|
|
|
mes: '实验环境重置中'
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
var unSub2 = mediator/* default */.Z.subscribe('vnc-enlarge', function (data) {
|
|
|
// if (data) {
|
|
|
// state.isLarge = !state.isLarge;
|
|
|
// }else{
|
|
|
// state.isLarge = true;
|
|
|
// }
|
|
|
// dispatch({
|
|
|
// type: Types.SET_IS_LARGE,
|
|
|
// payload:state.isLarge
|
|
|
// })
|
|
|
});
|
|
|
var unSub3 = mediator/* default */.Z.subscribe('show-clipboard-box', function () {
|
|
|
dispatch({
|
|
|
type: Types.SHOW_CLIPBOARD_BOX,
|
|
|
payload: true
|
|
|
});
|
|
|
});
|
|
|
setPercent(0);
|
|
|
return function () {
|
|
|
var _rfb3, _rfb4, _rfb5, _ro;
|
|
|
(_rfb3 = rfb) === null || _rfb3 === void 0 || _rfb3.removeEventListener('disconnect', onDisconnect);
|
|
|
(_rfb4 = rfb) === null || _rfb4 === void 0 || _rfb4.removeEventListener('connect', onConnect);
|
|
|
(_rfb5 = rfb) === null || _rfb5 === void 0 || _rfb5.removeEventListener('clipboard', onClipboardReceive);
|
|
|
unsub();
|
|
|
unSub2();
|
|
|
unSub3();
|
|
|
(_ro = ro) === null || _ro === void 0 || _ro.unobserve(el.current);
|
|
|
};
|
|
|
}
|
|
|
}, [vnc_url, window_vnc_url, linux_vnc, linkNum, imageId]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var _taskData$shixun_virt, _taskData$shixun_virt3;
|
|
|
if (virtual_machine && (taskData === null || taskData === void 0 || (_taskData$shixun_virt = taskData.shixun_virtual_templates) === null || _taskData$shixun_virt === void 0 ? void 0 : _taskData$shixun_virt.length) === 1) {
|
|
|
var _taskData$shixun_virt2;
|
|
|
setImageId(taskData === null || taskData === void 0 || (_taskData$shixun_virt2 = taskData.shixun_virtual_templates) === null || _taskData$shixun_virt2 === void 0 || (_taskData$shixun_virt2 = _taskData$shixun_virt2[0]) === null || _taskData$shixun_virt2 === void 0 ? void 0 : _taskData$shixun_virt2.template_id);
|
|
|
} else if (virtual_machine && (taskData === null || taskData === void 0 || (_taskData$shixun_virt3 = taskData.shixun_virtual_templates) === null || _taskData$shixun_virt3 === void 0 ? void 0 : _taskData$shixun_virt3.length) > 1) {
|
|
|
setShowImage(true);
|
|
|
}
|
|
|
}, [virtual_machine]);
|
|
|
function clipboardSend(content) {
|
|
|
var _rfbRef$current2;
|
|
|
(_rfbRef$current2 = rfbRef.current) === null || _rfbRef$current2 === void 0 || _rfbRef$current2.clipboardPasteFrom(content);
|
|
|
dispatch({
|
|
|
type: Types.SET_TRANSFER_CONTENT,
|
|
|
payload: content
|
|
|
});
|
|
|
message/* default */.ZP.success('保存成功!你可以在实验环境中粘贴该内容');
|
|
|
onCancelClipboardBox();
|
|
|
}
|
|
|
function doResize() {
|
|
|
// function doResize(event, ui) {
|
|
|
var scale, origin;
|
|
|
scale = Math.min(document.getElementById("task-right-panel").clientWidth / 1920, document.getElementById("task-right-panel").clientHeight / 1260);
|
|
|
iframeRef.current.parentElement.className = "wh1080p";
|
|
|
iframeRef.current.parentElement.style.cssText = "transform:scale(".concat(scale, ");transform-origin:center center");
|
|
|
el.current.style.cssText = "translate(-50%, -50%) " + "scale(" + scale + ")";
|
|
|
}
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (percent == 0) {
|
|
|
clearTimeout(timeout.current);
|
|
|
increase();
|
|
|
}
|
|
|
}, [percent]);
|
|
|
var increase = function increase() {
|
|
|
if (percent > 99) {
|
|
|
percent = 99;
|
|
|
} else {
|
|
|
percent = percent + 1;
|
|
|
timeout.current = setTimeout(function () {
|
|
|
increase();
|
|
|
}, 1500);
|
|
|
}
|
|
|
if (percent < 100) setPercent(percent);
|
|
|
};
|
|
|
var showIframe = (0,_react_17_0_2_react.useMemo)(function () {
|
|
|
var _taskData$shixun4;
|
|
|
if (loading) {
|
|
|
return 'none';
|
|
|
}
|
|
|
if (linux_vnc || virtual_machine || window_vnc_url && (taskData === null || taskData === void 0 || (_taskData$shixun4 = taskData.shixun) === null || _taskData$shixun4 === void 0 ? void 0 : _taskData$shixun4.windows_connection_mode) === "rdp") {
|
|
|
return 'block';
|
|
|
} else {
|
|
|
return 'none';
|
|
|
}
|
|
|
}, [linux_vnc, loading, virtual_machine, window_vnc_url]);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
|
children: [showImage && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: vnc_panelmodules.selectImage,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
|
className: vnc_panelmodules.container,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("h1", {
|
|
|
children: "\u9009\u62E9\u89D2\u8272"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("aside", {
|
|
|
children: taskData === null || taskData === void 0 || (_taskData$shixun_virt4 = taskData.shixun_virtual_templates) === null || _taskData$shixun_virt4 === void 0 ? void 0 : _taskData$shixun_virt4.map(function (item, key) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
align: "middle",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
flex: "1",
|
|
|
children: item.template_name
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
onClick: function onClick() {
|
|
|
setImageId(item.template_id);
|
|
|
setShowImage(false);
|
|
|
},
|
|
|
children: "\u5F00\u59CB\u5B9E\u9A8C"
|
|
|
})
|
|
|
})]
|
|
|
}, key);
|
|
|
})
|
|
|
})]
|
|
|
})
|
|
|
}), isLarge && /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
className: "btn-vnc-resize",
|
|
|
onClick: onResizeSet,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tuichuquanping"
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
width: "100%",
|
|
|
height: "calc(100% - 50px)",
|
|
|
overflow: "hidden",
|
|
|
position: "absolute",
|
|
|
display: showIframe === "block" ? "flex" : "none",
|
|
|
alignItems: "center",
|
|
|
justifyContent: "center",
|
|
|
zIndex: 6
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", {
|
|
|
style: {
|
|
|
position: isLarge ? "fixed" : "absolute",
|
|
|
left: 0,
|
|
|
top: isLarge ? 54 : 40,
|
|
|
width: "100%",
|
|
|
height: "calc(100% - ".concat(isLarge ? "100px" : "45px", ")")
|
|
|
},
|
|
|
frameBorder: "0",
|
|
|
ref: iframeRef,
|
|
|
allowFullScreen: true
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
position: isLarge ? "fixed" : "absolute",
|
|
|
left: 0,
|
|
|
top: 0,
|
|
|
zIndex: 5,
|
|
|
width: "100%",
|
|
|
height: "calc(100% - ".concat(isLarge ? "100px" : "0", ")")
|
|
|
},
|
|
|
className: "".concat(window_vnc_url ? "vnc-panel-wrapper-windows" : "vnc-panel-wrapper", " ").concat(isLarge ? 'full-screen' : ''),
|
|
|
children: [loading ? /*#__PURE__*/(0,jsx_runtime.jsx)(Spinner/* default */.Z, {
|
|
|
message: mes,
|
|
|
style: {
|
|
|
color: '#0152d9'
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "tc",
|
|
|
style: {
|
|
|
width: 500,
|
|
|
margin: "0 auto",
|
|
|
color: "#FFF"
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(progress/* default */.Z, {
|
|
|
percent: percent,
|
|
|
format: function format(p) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "c-white",
|
|
|
children: [p, "%"]
|
|
|
});
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
}) : null, /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
ref: el,
|
|
|
className: "vnc-panel ".concat(loading ? "hidden zIndexf1" : "animated fadeIn")
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
title: "\u590D\u5236\u7C98\u8D34",
|
|
|
centered: true,
|
|
|
maskClosable: false,
|
|
|
open: showClipBoardBox,
|
|
|
onCancel: onCancelClipboardBox,
|
|
|
footer: null,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(clipboard_box, {
|
|
|
onCancel: onCancelClipboardBox,
|
|
|
onSave: clipboardSend,
|
|
|
content: transferContent
|
|
|
})
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/vnc-view/index.jsx
|
|
|
|
|
|
|
|
|
|
|
|
// import FooterBar from '../footer-bar';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* harmony default export */ var vnc_view = (function (_ref) {
|
|
|
var taskData = _ref.taskData,
|
|
|
evaluateLoading = _ref.evaluateLoading,
|
|
|
evaluateMessage = _ref.evaluateMessage,
|
|
|
language = _ref.language,
|
|
|
onEval = _ref.onEval;
|
|
|
var vnc_url = taskData.vnc_url,
|
|
|
shixun = taskData.shixun,
|
|
|
test_sets = taskData.test_sets,
|
|
|
test_sets_count = taskData.test_sets_count,
|
|
|
sets_error_count = taskData.sets_error_count,
|
|
|
last_compile_output = taskData.last_compile_output,
|
|
|
game = taskData.game,
|
|
|
allowed_unlock = taskData.allowed_unlock,
|
|
|
user = taskData.user;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
isLarge = _useState2[0],
|
|
|
setIsLarge = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
isPop = _useState4[0],
|
|
|
setIsPop = _useState4[1];
|
|
|
function onPop() {
|
|
|
setIsPop(!isPop);
|
|
|
}
|
|
|
console.log('vnc_url:', vnc_url);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(vnc_panel, {
|
|
|
vnc_url: vnc_url,
|
|
|
window_vnc_url: taskData.windows_vnc,
|
|
|
virtual_machine: taskData === null || taskData === void 0 ? void 0 : taskData.virtual_machine,
|
|
|
linux_vnc: taskData.linux_vnc,
|
|
|
taskData: taskData
|
|
|
}), isPop ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "vnc-mask"
|
|
|
}) : null, /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "vnc-test-list ".concat(isLarge ? 'large' : isPop ? 'pop' : ''),
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "vnc-test-list-body",
|
|
|
children: !isLarge ? /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "arrow-container",
|
|
|
onClick: onPop,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont ".concat(isPop ? 'icon-xiajiantou' : 'icon-shangjiantou', " ")
|
|
|
})
|
|
|
}) : null
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/Jupyter/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var Jupytermodules = ({"bg":"bg___xjZP4","header":"header___S_AU0","dragingMask":"dragingMask___MuMgB","content":"content___sS5Wc","leftContainer":"leftContainer___pbkhe","tabNav":"tabNav___QTkA2","mdContent":"mdContent___p39IM","resizeBar":"resizeBar___UvVzB","has-unity-3d":"has-unity-3d___EQEWx","btn-resize":"btn-resize___XVPBl","rightCotainer":"rightCotainer___Z2h3Y","user":"user___du0m1","titleWrap":"titleWrap___dDrU9","title":"title___Id58q","endTimeWrap":"endTimeWrap___O3i6z","colorGray":"colorGray___SHbxz","main":"main___t6BMk","loadFail":"loadFail___ubRWw","reload":"reload___m8wjw","failIcon":"failIcon___q_CjJ","failWrap":"failWrap___EEJNl","failReload":"failReload___SiyZT","dataSetButton":"dataSetButton___H1Oqu","dataSetText":"dataSetText___p9NRw","dataSetOpen":"dataSetOpen___bT5j8","mymove":"mymove___qtayT","footer":"footer___rdX6y","start":"start___s0r2G","liWarp":"liWarp___N3c6S","li":"li___mKv9C"});
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/Jupyter/reducer.ts
|
|
|
|
|
|
var reducer_reducer = function reducer(state, action) {
|
|
|
switch (action.type) {
|
|
|
case 'MOVE_X':
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
moveX: action.payload
|
|
|
});
|
|
|
case 'SET_DRAGMODULE':
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showDragModule: action.payload
|
|
|
});
|
|
|
case 'TRIGGER_RIGHT_PANEL_MASK':
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showDragMask: action.payload
|
|
|
});
|
|
|
}
|
|
|
};
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/Jupyter/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Jupyter_excluded = ["globalSetting", "loading", "taskData", "dispatch"];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Jupyter_Countdown = statistic/* default */.Z.Countdown;
|
|
|
var Status = /*#__PURE__*/function (Status) {
|
|
|
Status[Status["LoadFail"] = 1] = "LoadFail";
|
|
|
Status[Status["ReLoad"] = 2] = "ReLoad";
|
|
|
Status[Status["Success"] = 3] = "Success";
|
|
|
return Status;
|
|
|
}(Status || {});
|
|
|
/**
|
|
|
*
|
|
|
*/
|
|
|
var Jupyter_initialState = {
|
|
|
moveX: '40%',
|
|
|
showDragModule: false,
|
|
|
showDragMask: false
|
|
|
};
|
|
|
var TaskJupyterPage = function TaskJupyterPage(_ref) {
|
|
|
var globalSetting = _ref.globalSetting,
|
|
|
loading = _ref.loading,
|
|
|
taskData = _ref.taskData,
|
|
|
dispatch = _ref.dispatch,
|
|
|
props = objectWithoutProperties_default()(_ref, Jupyter_excluded);
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
var token = (0,_react_17_0_2_react.useRef)();
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(true),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
spinning = _useState2[0],
|
|
|
setSpinning = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
btnLoading = _useState4[0],
|
|
|
setBtnLoading = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(0),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
btnTime = _useState6[0],
|
|
|
setBtnTime = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(0),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
active = _useState8[0],
|
|
|
setActive = _useState8[1];
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)(true),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
urlSign = _useState10[0],
|
|
|
setUrlSign = _useState10[1];
|
|
|
var _useState11 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState12 = slicedToArray_default()(_useState11, 2),
|
|
|
caseVisible = _useState12[0],
|
|
|
setCaseVisible = _useState12[1];
|
|
|
var jupyterMessageFlag = (0,_react_17_0_2_react.useRef)(true);
|
|
|
var _useState13 = (0,_react_17_0_2_react.useState)({}),
|
|
|
_useState14 = slicedToArray_default()(_useState13, 2),
|
|
|
jupyterData = _useState14[0],
|
|
|
setJupyterData = _useState14[1];
|
|
|
var _useState15 = (0,_react_17_0_2_react.useState)({}),
|
|
|
_useState16 = slicedToArray_default()(_useState15, 2),
|
|
|
gamesData = _useState16[0],
|
|
|
setGamesData = _useState16[1];
|
|
|
var _useState17 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState18 = slicedToArray_default()(_useState17, 2),
|
|
|
url = _useState18[0],
|
|
|
setUrl = _useState18[1];
|
|
|
var port = (0,_react_17_0_2_react.useRef)();
|
|
|
var _useState19 = (0,_react_17_0_2_react.useState)(Status.Success),
|
|
|
_useState20 = slicedToArray_default()(_useState19, 2),
|
|
|
status = _useState20[0],
|
|
|
setStatus = _useState20[1];
|
|
|
var _useState21 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState22 = slicedToArray_default()(_useState21, 2),
|
|
|
time = _useState22[0],
|
|
|
setTime = _useState22[1];
|
|
|
var _useState23 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState24 = slicedToArray_default()(_useState23, 2),
|
|
|
endTime = _useState24[0],
|
|
|
setEndTime = _useState24[1];
|
|
|
var _useState25 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState26 = slicedToArray_default()(_useState25, 2),
|
|
|
isOpenDrawer = _useState26[0],
|
|
|
setIsOpenDrawer = _useState26[1];
|
|
|
var _useState27 = (0,_react_17_0_2_react.useState)(''),
|
|
|
_useState28 = slicedToArray_default()(_useState27, 2),
|
|
|
codeMessage = _useState28[0],
|
|
|
setCodeMessage = _useState28[1];
|
|
|
var timer = (0,_react_17_0_2_react.useRef)(null);
|
|
|
var saveJupyterData = (0,_react_17_0_2_react.useRef)({});
|
|
|
var clickEvaluating = (0,_react_17_0_2_react.useRef)(false);
|
|
|
var _useReducer = (0,_react_17_0_2_react.useReducer)(reducer_reducer, Jupyter_initialState),
|
|
|
_useReducer2 = slicedToArray_default()(_useReducer, 2),
|
|
|
state = _useReducer2[0],
|
|
|
redcuerDispatch = _useReducer2[1];
|
|
|
|
|
|
// const noDragging = useMemo(() => {
|
|
|
// return (
|
|
|
// (unity_3d_routes && !with_code_file) || challenge?.thiry_party || vnc_url
|
|
|
// );
|
|
|
// }, [vnc_url, with_code_file, unity_3d_routes]);
|
|
|
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
window.addEventListener('message', handleJupyterMessage);
|
|
|
return function () {
|
|
|
window.removeEventListener('message', handleJupyterMessage);
|
|
|
};
|
|
|
}, []);
|
|
|
var handleJupyterMessage = function handleJupyterMessage(e) {
|
|
|
if ((e === null || e === void 0 ? void 0 : e.data) === 'jupytermessage' && jupyterMessageFlag.current) {
|
|
|
jupyterMessageFlag.current = false;
|
|
|
handleSaveWithTPI();
|
|
|
if (!clickEvaluating.current) {
|
|
|
setTimeout(function () {
|
|
|
return jupyterMessageFlag.current = true;
|
|
|
}, 500);
|
|
|
}
|
|
|
// setTimeout(() => jupyterMessageFlag.current = true, 500)
|
|
|
}
|
|
|
};
|
|
|
var handleSaveWithTPI = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function handleSaveWithTPI() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleGetJupyterData = /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
_context2.next = 2;
|
|
|
return (0,task/* getJupyterData */.dU)({
|
|
|
identifier: params.identifier
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context2.sent;
|
|
|
if (res) {
|
|
|
setJupyterData(res);
|
|
|
saveJupyterData.current = objectSpread2_default()({}, res);
|
|
|
setGamesData(objectSpread2_default()(objectSpread2_default()({}, gamesData), {}, {
|
|
|
test_sets: (res === null || res === void 0 ? void 0 : res.test_sets) || []
|
|
|
}));
|
|
|
redcuerDispatch({
|
|
|
type: 'SET_DRAGMODULE',
|
|
|
payload: res.jupyter_show_description
|
|
|
});
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function handleGetJupyterData() {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleGetJupyterTPIUrl = /*#__PURE__*/function () {
|
|
|
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
|
|
|
var res, _parseUrl, _res$url, _res$url2;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
_context3.next = 2;
|
|
|
return (0,task/* getInfoWithTPI */.rV)({
|
|
|
identifier: params.identifier
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context3.sent;
|
|
|
setSpinning(false);
|
|
|
if (!(res !== null && res !== void 0 && res.url)) {
|
|
|
_context3.next = 14;
|
|
|
break;
|
|
|
}
|
|
|
setUrl(res.url);
|
|
|
token.current = (_parseUrl = (0,util/* parseUrl */.en)(res === null || res === void 0 || (_res$url = res.url) === null || _res$url === void 0 || (_res$url = _res$url[0]) === null || _res$url === void 0 ? void 0 : _res$url["url"])) === null || _parseUrl === void 0 ? void 0 : _parseUrl.token;
|
|
|
port.current = res.port;
|
|
|
if (!(((_res$url2 = res.url) === null || _res$url2 === void 0 ? void 0 : _res$url2.length) > 1)) {
|
|
|
_context3.next = 10;
|
|
|
break;
|
|
|
}
|
|
|
return _context3.abrupt("return");
|
|
|
case 10:
|
|
|
setUrlSign(false);
|
|
|
handleGetTPITimeInfo();
|
|
|
setStatus(Status.Success);
|
|
|
return _context3.abrupt("return");
|
|
|
case 14:
|
|
|
if (res.status === -1) {
|
|
|
setStatus(Status.LoadFail);
|
|
|
setUrlSign(false);
|
|
|
} else {
|
|
|
setStatus(Status.ReLoad);
|
|
|
}
|
|
|
case 15:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
return function handleGetJupyterTPIUrl() {
|
|
|
return _ref4.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleUrlClick = function handleUrlClick(num) {
|
|
|
setUrlSign(false);
|
|
|
setActive(num);
|
|
|
handleGetTPITimeInfo();
|
|
|
setStatus(Status.Success);
|
|
|
};
|
|
|
var handleGetTPITimeInfo = /*#__PURE__*/function () {
|
|
|
var _ref5 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
_context4.next = 2;
|
|
|
return (0,task/* getTimeInfoWithTPI */.x4)({
|
|
|
identifier: params.identifier
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context4.sent;
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) !== 0)) {
|
|
|
_context4.next = 5;
|
|
|
break;
|
|
|
}
|
|
|
return _context4.abrupt("return");
|
|
|
case 5:
|
|
|
if (res !== null && res !== void 0 && res.useSeconds) {
|
|
|
_context4.next = 8;
|
|
|
break;
|
|
|
}
|
|
|
handleResetEnvModal();
|
|
|
return _context4.abrupt("return");
|
|
|
case 8:
|
|
|
if (res !== null && res !== void 0 && res.remainingSeconds) {
|
|
|
setTime(Date.now() + res.remainingSeconds * 1000);
|
|
|
setEndTime(res.remainingSeconds - 300 <= 0 ? Date.now() + 1000 : Date.now() + (res.remainingSeconds - 300) * 1000);
|
|
|
}
|
|
|
case 9:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
}));
|
|
|
return function handleGetTPITimeInfo() {
|
|
|
return _ref5.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleResetEnvModal = function handleResetEnvModal() {
|
|
|
postMessageToIframe(true);
|
|
|
setSpinning(true);
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
centered: true,
|
|
|
title: '重置环境',
|
|
|
content: ' 是否确定重置环境?',
|
|
|
okText: '确定',
|
|
|
cancelText: '取消',
|
|
|
onOk: function onOk() {
|
|
|
handleResetEnv();
|
|
|
},
|
|
|
onCancel: function onCancel() {
|
|
|
postMessageToIframe(false);
|
|
|
setSpinning(false);
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
var handleResetEnv = /*#__PURE__*/function () {
|
|
|
var _ref6 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
|
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
|
case 0:
|
|
|
_context5.next = 2;
|
|
|
return (0,task/* resetWithTPI */.m_)({
|
|
|
identifier: params.identifier
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context5.sent;
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) !== 0)) {
|
|
|
_context5.next = 5;
|
|
|
break;
|
|
|
}
|
|
|
return _context5.abrupt("return");
|
|
|
case 5:
|
|
|
message/* default */.ZP.success('重置成功!');
|
|
|
setSpinning(false);
|
|
|
setTimeout(function () {
|
|
|
return window.location.reload();
|
|
|
}, 300);
|
|
|
case 8:
|
|
|
case "end":
|
|
|
return _context5.stop();
|
|
|
}
|
|
|
}, _callee5);
|
|
|
}));
|
|
|
return function handleResetEnv() {
|
|
|
return _ref6.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleEndTimeFinish = function handleEndTimeFinish() {
|
|
|
es_modal/* default */.Z.destroyAll();
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
centered: true,
|
|
|
title: '服务中断提醒',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "tc font14",
|
|
|
children: ["jupyter\u5C06\u4E8E", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(Jupyter_Countdown, {
|
|
|
value: time,
|
|
|
format: "HH:mm:ss",
|
|
|
onFinish: handleTimeFinish
|
|
|
})
|
|
|
}), "\u65F6\u95F4\u540E\u670D\u52A1\u4E2D\u65AD\uFF0C\u662F\u5426\u9700\u8981\u5EF6\u957F\u4F7F\u7528\u65F6\u95F4\uFF1F"]
|
|
|
}),
|
|
|
okText: '立即延长',
|
|
|
cancelText: '不需要',
|
|
|
onOk: function () {
|
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee6$(_context6) {
|
|
|
while (1) switch (_context6.prev = _context6.next) {
|
|
|
case 0:
|
|
|
_context6.next = 2;
|
|
|
return (0,task/* activeWithTPI */.rB)({
|
|
|
identifier: params.identifier
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context6.sent;
|
|
|
if (!(res.status === 0)) {
|
|
|
_context6.next = 7;
|
|
|
break;
|
|
|
}
|
|
|
_context6.next = 6;
|
|
|
return handleGetTPITimeInfo();
|
|
|
case 6:
|
|
|
message/* default */.ZP.success('延长成功!');
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context6.stop();
|
|
|
}
|
|
|
}, _callee6);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var handleTimeFinish = function handleTimeFinish() {
|
|
|
es_modal/* default */.Z.destroyAll();
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
centered: true,
|
|
|
title: '倒计时截止',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
className: "tc font14",
|
|
|
children: "\u670D\u52A1\u5DF2\u4E2D\u65AD\uFF0C\u662F\u5426\u786E\u8BA4\u91CD\u7F6E\u5B9E\u9A8C\u73AF\u5883\uFF1F"
|
|
|
}),
|
|
|
okText: '确定',
|
|
|
cancelText: '取消',
|
|
|
onOk: function onOk() {
|
|
|
handleResetEnv();
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
var postMessageToIframe = function postMessageToIframe(stopParent) {
|
|
|
var iframe = document.getElementById('taskJupyterIframe');
|
|
|
if (!iframe) {
|
|
|
return;
|
|
|
}
|
|
|
if (stopParent) {
|
|
|
iframe.contentWindow.postMessage('stopParent', '*');
|
|
|
} else {
|
|
|
iframe.contentWindow.postMessage('clonsParent', '*');
|
|
|
}
|
|
|
};
|
|
|
var handleResetTPI = function handleResetTPI() {
|
|
|
setSpinning(true);
|
|
|
postMessageToIframe(true);
|
|
|
tipReset({
|
|
|
title: '重置实训',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "tc font14",
|
|
|
children: ["\u4F60\u5728\u672C\u6587\u4EF6\u4E2D\u4FEE\u6539\u7684\u5185\u5BB9\u5C06\u4E22\u5931,", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u662F\u5426\u786E\u5B9A\u91CD\u65B0\u52A0\u8F7D\u521D\u59CB\u4EE3\u7801\uFF1F"]
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
var evaluating = function evaluating() {
|
|
|
var iframe = document.getElementById('taskJupyterIframe');
|
|
|
if (!iframe) {
|
|
|
return;
|
|
|
}
|
|
|
//底下触发保存事件 Ctrl+S
|
|
|
iframe.contentWindow.postMessage('saveCode', '*');
|
|
|
clickEvaluating.current = true;
|
|
|
setBtnLoading(true);
|
|
|
setCaseVisible(true);
|
|
|
// handleSaveWithTPI()
|
|
|
};
|
|
|
var tipReset = function tipReset(obj) {
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
centered: true,
|
|
|
title: obj.title,
|
|
|
content: obj.content,
|
|
|
okText: '确定',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee7() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee7$(_context7) {
|
|
|
while (1) switch (_context7.prev = _context7.next) {
|
|
|
case 0:
|
|
|
_context7.next = 2;
|
|
|
return (0,task/* syncCode */.fi)({
|
|
|
identifier: params.identifier
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context7.sent;
|
|
|
if (!(res.status !== 0)) {
|
|
|
_context7.next = 5;
|
|
|
break;
|
|
|
}
|
|
|
return _context7.abrupt("return");
|
|
|
case 5:
|
|
|
message/* default */.ZP.success('操作成功');
|
|
|
setSpinning(false);
|
|
|
setTimeout(function () {
|
|
|
return window.location.reload();
|
|
|
}, 300);
|
|
|
case 8:
|
|
|
case "end":
|
|
|
return _context7.stop();
|
|
|
}
|
|
|
}, _callee7);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk2.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}(),
|
|
|
onCancel: function onCancel() {
|
|
|
postMessageToIframe(false);
|
|
|
setSpinning(false);
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
function onMove(e) {
|
|
|
redcuerDispatch({
|
|
|
type: 'MOVE_X',
|
|
|
payload: e.pageX
|
|
|
});
|
|
|
}
|
|
|
function onMouseUp() {
|
|
|
redcuerDispatch({
|
|
|
type: 'TRIGGER_RIGHT_PANEL_MASK',
|
|
|
payload: false
|
|
|
});
|
|
|
document.onselectstart = null;
|
|
|
}
|
|
|
if (state.showDragMask) {
|
|
|
document.addEventListener('mousemove', onMove);
|
|
|
document.addEventListener('mouseup', onMouseUp);
|
|
|
}
|
|
|
return function () {
|
|
|
document.removeEventListener('mousemove', onMove);
|
|
|
document.removeEventListener('mouseup', onMouseUp);
|
|
|
};
|
|
|
}, [state.showDragMask]);
|
|
|
var leftPanelWidth = typeof state.moveX === 'number' && state.moveX !== 0.01 ? "".concat(state.moveX, "px") : '40%';
|
|
|
var rightPanelWidth = "calc(100% - 4px - ".concat(leftPanelWidth, ")");
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
*/
|
|
|
var onResizeStart = function onResizeStart(status) {
|
|
|
redcuerDispatch({
|
|
|
type: 'TRIGGER_RIGHT_PANEL_MASK',
|
|
|
payload: status
|
|
|
});
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("section", {
|
|
|
className: Jupytermodules.bg,
|
|
|
style: {
|
|
|
userSelect: state.showDragMask ? 'none' : 'unset'
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("section", {
|
|
|
className: Jupytermodules.content,
|
|
|
style: {
|
|
|
height: jupyterData !== null && jupyterData !== void 0 && jupyterData.open_evaluate ? 'calc(100vh - 130px)' : 'calc(100vh - 60px)'
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("section", {
|
|
|
className: Jupytermodules.rightCotainer,
|
|
|
style: {
|
|
|
width: rightPanelWidth
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("main", {
|
|
|
className: Jupytermodules.main,
|
|
|
style: {
|
|
|
height: '100%'
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "".concat(Jupytermodules.dataSetButton, " ").concat(isOpenDrawer ? Jupytermodules.dataSetOpen : ''),
|
|
|
onClick: function onClick() {
|
|
|
return setIsOpenDrawer(!isOpenDrawer);
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: Jupytermodules.dataSetText,
|
|
|
children: "\u6570\u636E\u96C6"
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", {
|
|
|
frameBorder: 0,
|
|
|
id: "taskJupyterIframe",
|
|
|
width: "100%",
|
|
|
height: "100%",
|
|
|
allow: "geolocation; microphone; camera; midi; encrypted-media;",
|
|
|
src: taskData === null || taskData === void 0 ? void 0 : taskData.url
|
|
|
})]
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var Jupyter = ((0,_umi_production_exports.connect)(function (_ref7) {
|
|
|
var loading = _ref7.loading,
|
|
|
globalSetting = _ref7.globalSetting;
|
|
|
return {
|
|
|
globalSetting: globalSetting,
|
|
|
loading: loading
|
|
|
};
|
|
|
})(TaskJupyterPage));
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/resize-enlarge.png
|
|
|
var resize_enlarge_namespaceObject = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAACgCAYAAAB+HS7YAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjczMUZFNjhCMDE3NzExRUJCOEU5RDg5RTZBOTI5QTU3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjczMUZFNjhDMDE3NzExRUJCOEU5RDg5RTZBOTI5QTU3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzMxRkU2ODkwMTc3MTFFQkI4RTlEODlFNkE5MjlBNTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzMxRkU2OEEwMTc3MTFFQkI4RTlEODlFNkE5MjlBNTciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7zBaLcAAACAElEQVR42uzdzyvDcRzH8ffsZiVc/IjbkOTuShN/gXIgYi5y2AlpFBL/AAdLiXBgBwfUxplmyU2tRK4sTey0+H6+RbKD7Gtfb/V817t963t59Nnn9f58+7aap6LO/yq6KmN13OoJq1MehcD3erS6rUT0VrnVC5qBpgLagWXagQIQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAABUCD6Lbkr5L2W2uv9bS3LR4vd6iAb/9BaaBfa7K+oa8+0exEwmOheT5+UXnV9zd2SEHeztSU12ldw+2tjRLbH/X/lQbktqaansluwLtelPs85XKZmRFggN9eseMSbVJ9+Js2HHCizoHRwb7ZWN12V5VtYPaacJdOUmcJNy1o67QhLt6FheScNcfFkyqmxr9eoGHsWMZD8/qBCYvLmV4NCS5XE4f8PrmVnoHRySbzeoLyf1DWnr6huxPdWPGrJhZObOC6ga12Wtmz5m9p/Kom5yZt1Or8mFhbWNLIuubOh+3fjrrXAUWMutcAxY661wBOpl1RQc6nXVFBf7GrHMEPEskP65PE+d5901anc46R68+/rp4/QYQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAP8dMKMdGNcMNH9eMaUR+GR11Oo2q6/eBBgA/5+hicfO9/sAAAAASUVORK5CYII=";
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/resize-small.png
|
|
|
var resize_small_namespaceObject = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAACgCAYAAAB+HS7YAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc0MDQ0OTA3MDE3NzExRUJCNjY1QzBDMDY3NUI5QTQ3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjc0MDQ0OTA4MDE3NzExRUJCNjY1QzBDMDY3NUI5QTQ3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzQwNDQ5MDUwMTc3MTFFQkI2NjVDMEMwNjc1QjlBNDciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzQwNDQ5MDYwMTc3MTFFQkI2NjVDMEMwNjc1QjlBNDciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4CEd39AAACAklEQVR42uzYvyuFURjA8Yf7TpSw+BHbvSTZrXTFX6AMRLiLySSE8ismg8FAIsKAwcCA/eqSbEqJrEgMd7pxzi3iUgbn8KTvU0/37b7Lp/Oe5+k5JygoC4uJiMkpk1GTeaIoApOVJuMm80VhZJuc1Ip7BUZFcWRr23NfAQUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL8FWAoFJLpseFP/+9ur8v9zUU67fN3kVVQFn52jcvNzZH52RlpaqiXwvLIh3cW9j4y32dG4BpXUlwkG0vzUlNdpe8TW9T+zqYznFNgY7ROdrc2pLSkWF+RdLe3yurCXHrvuY7gp5U6MTIgsY42b20mcFGpPiPQUKlO96CPSnUG9FWpToA+K9UJsLIinK5atcNC39Co7O0f6gWmUinp6umVk9MzveNWMpmUlo6YXF5d650Hb+/upbm1M/2rdmC1K2hX0q6o2ona7kW7J+3eVDvy26ruHxnXfSZZWF6VxZU13Ycmnz3SCdBnj3Q28vvqkU4PTT56pPODu+se6eVmwWWP9Hb1YavaVndmxBPHb89HiZO/ufpQWyQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECPD/AB+1Aw+0AwdNPmgGnpusNblt8kkb8EWAAQAq85VNhqprywAAAABJRU5ErkJggg==";
|
|
|
// EXTERNAL MODULE: ./src/pages/Innovation/Detail/components/DataSetPane/index.tsx
|
|
|
var DataSetPane = __webpack_require__(68121);
|
|
|
// EXTERNAL MODULE: ./src/pages/Innovation/Tasks/Collaborate/index.tsx + 4 modules
|
|
|
var Collaborate = __webpack_require__(74187);
|
|
|
// EXTERNAL MODULE: ./src/service/innovation.ts
|
|
|
var innovation = __webpack_require__(47295);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/constant.js
|
|
|
var FETCH_TASK_START = 'FETCH_TASK_START';
|
|
|
var FETCH_TASK_FAILURE = 'FETCH_TASK_FAILURE';
|
|
|
var FETCH_TASK_SUCCESS = 'FETCH_TASK_SUCCESS';
|
|
|
var UPDATE_TASK_DATA = 'UPDATE_TASK_DATA';
|
|
|
var HIDE_EVALUATE_RESULT = 'HIDE_EVALUATE_RESULT';
|
|
|
var SHOW_EVALUATE_RESULT = 'SHOW_EVALUATE_RESULT';
|
|
|
var UPDATE_TIMESTRAP = 'UPDATE_TIMESTRAP';
|
|
|
var MOVE_X = 'MOVE_X';
|
|
|
var MOVE_Y = 'MOVE_Y';
|
|
|
var TRIGGER_RIGHT_PANEL_MASK = 'TRIGGER_RIGHT_PANEL_MASK ';
|
|
|
|
|
|
//left_panel_action
|
|
|
var SET_ACTIVE_INDEX = 'SET_ACTIVE_INDEX';
|
|
|
var GET_TASK_LIST = 'GET_TASK_LIST';
|
|
|
var SHOW_TASK_LIST = 'SHOW_TASK_LIST';
|
|
|
var HIDE_TASK_LIST = 'HIDE_TASK_LIST';
|
|
|
var SET_TASK_STAR = 'SET_TASK_STAR';
|
|
|
var TRIGGER_ENLARGE_UNITY3D = 'TRIGGER_ENLARGE_UNITY3D ';
|
|
|
var TRIGGER_TAB_FIXED = 'TRIGGER_TAB_FIXED ';
|
|
|
|
|
|
//discuss action
|
|
|
var GET_DISCUSSES = 'GET_DISCUSSES';
|
|
|
var SHOW_DISCUSSES_LOADING = 'SHOW_DISCUSSES_LOADING';
|
|
|
var TOP_OR_DOWN_DISCUSS = 'TOP_OR_DOWN_DISCUSS';
|
|
|
var PLUS_DISCUSS = 'PLUS_DISCUSS';
|
|
|
var SET_ACTION_TYPE = 'SET_ACTION_TYPE';
|
|
|
var SHOW_REWARD_DIALOG = 'SHOW_REWARD_DIALOG';
|
|
|
var CANCEL_REWARD_DIALOG = 'CANCEL_REWARD_DIALOG';
|
|
|
var SET_REWARD = 'SET_REWARD';
|
|
|
var ACTIVE_DISCUSS_INDEX = 'ACTIVE_DISCUSS_INDEX';
|
|
|
var CREATE_DISCUSS = 'CREATE_DISCUSS';
|
|
|
var DISABLE_DISCUSS = 'DISABLE_DISCUSS';
|
|
|
|
|
|
//answer_panel_action
|
|
|
var SHOW_ANSWER_LOADING = 'SHOW_ANSWER_LOADING';
|
|
|
var FETCH_ANSWER_INFO = 'FETCH_ANSWER_INFO';
|
|
|
var HIDE_TIP_MODAL = 'HIGH_TIP_MODAL';
|
|
|
var SHOW_TIP_MODAL = 'SHOW_TIP_MODAL';
|
|
|
var SELECT_UNLOCK_ANSWER = 'SELECT_UNLOCK_ANSWER';
|
|
|
|
|
|
//choose_repository_action
|
|
|
var SET_CHOOSE_ANSWERS = 'SET_CHOOSE_ANSWERS';
|
|
|
var EVAL_CHOOSE_START = 'EVAL_CHOOSE_START';
|
|
|
var EVAL_CHOOSE_END = 'EVAL_CHOOSE_END';
|
|
|
|
|
|
//code_repository_action
|
|
|
var SHOW_REP_LOADING = 'SHOW_REP_loading';
|
|
|
var FETCH_REP_CONTENT = 'FETCH_REP_CONTENT';
|
|
|
var EDIT_REP_CODE = 'EDIT_REP_CONTENT';
|
|
|
var SET_REP_PATH = 'SET_REP_PATH';
|
|
|
var SHOW_EVALUATE_LOADING = 'SHOW_EVALUATE_LOADING';
|
|
|
var HIDE_EVALUATE_LOADING = 'HIDE_EVALUATE_LOADING';
|
|
|
var SET_EVALUATE_MESSAGE = 'SET_EVALUATE_MESSAGE';
|
|
|
var SET_SHOW_DIR = 'SET_SHOW_DIR';
|
|
|
var SET_EDITOR_SETTING = 'SET_EDITOR_SETTING';
|
|
|
var SET_EDITOR_THEME = 'SET_EDITOR_THEME';
|
|
|
var SET_EDITOR_FONTSIZE = 'SET_EDITOR_FONTSIZE';
|
|
|
var SET_REPOS = 'SET_REPOS';
|
|
|
var SHOW_PATH_LIST = 'SHOW_PATH_LIST';
|
|
|
var HIDE_PATH_LIST = 'HIDE_PATH_LIST';
|
|
|
var HIDE_PICTURE_VIEW = 'HIDE_PICTURE_VIEW';
|
|
|
var SHOW_PICTURE_VIEW = 'SHOW_PICTURE_VIEW';
|
|
|
var SHOW_NOTICE = 'SHOW_NOTICE';
|
|
|
var HIDE_NOTICE = 'HIDE_NOTICE';
|
|
|
var SET_TAB_INDEX = 'SET_TAB_INDEX';
|
|
|
var SET_SSH_TABS = 'SET_SSH_TABS';
|
|
|
var SET_SSH_CONFIGDATA = 'SET_SSH_CONFIGDATA';
|
|
|
var SET_SSH_CONFIGDATAARR = 'SET_SSH_CONFIGDATAARR';
|
|
|
var SET_VNC_LOADING = 'SET_VNC_LOADING ';
|
|
|
var ON_TAB_TO_SPACE = 'ON_TAB_TO_SPACE ';
|
|
|
;// CONCATENATED MODULE: ./src/pages/Innovation/Tasks/index.jsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Tasks_excluded = ["match", "history"],
|
|
|
_excluded2 = ["gold", "experience", "next_game", "next_shixun", "subject_done"];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// import EvaluateResult from './evaluate-result';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var DirectoryTree = tree/* default */.Z.DirectoryTree;
|
|
|
var BADSUFS = (/* unused pure expression or super */ null && (['jpg', 'png', 'gif', 'jpeg', 'jar', 'doc', 'pdf', 'xsl', 'ppt', 'mp3', 'mp4']));
|
|
|
var Tasks_initialState = {
|
|
|
moveX: '40%',
|
|
|
moveY: 0,
|
|
|
loading: true,
|
|
|
isError: false,
|
|
|
taskData: {
|
|
|
game: {}
|
|
|
},
|
|
|
evalData: null,
|
|
|
lastedGetTaskInfoTime: 0,
|
|
|
codeRepData: {
|
|
|
content: '',
|
|
|
language: 'c',
|
|
|
currentPath: '',
|
|
|
paths: [],
|
|
|
lastedUpdateTime: 0,
|
|
|
loading: false
|
|
|
},
|
|
|
showEvalResult: false,
|
|
|
showPictureView: false,
|
|
|
isPictureView: false,
|
|
|
showDragMask: false,
|
|
|
webDisplayUrl: '',
|
|
|
evaluateLoading: false,
|
|
|
resetVncLoading: false,
|
|
|
evaluateMessage: '',
|
|
|
showNotice: false,
|
|
|
timestamp: '',
|
|
|
showDocuments: false,
|
|
|
repos: null
|
|
|
};
|
|
|
function Tasks_reducer(state, action) {
|
|
|
switch (action.type) {
|
|
|
case MOVE_X:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
moveX: action.payload
|
|
|
});
|
|
|
case MOVE_Y:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
moveY: action.payload
|
|
|
});
|
|
|
case SHOW_REP_LOADING:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
codeRepData: action.payload
|
|
|
});
|
|
|
case FETCH_REP_CONTENT:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
codeRepData: action.payload
|
|
|
});
|
|
|
case EDIT_REP_CODE:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
codeRepData: objectSpread2_default()(objectSpread2_default()({}, state.codeRepData), action.payload)
|
|
|
});
|
|
|
case SHOW_EVALUATE_RESULT:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
evaluateLoading: false,
|
|
|
showEvalResult: true
|
|
|
});
|
|
|
case UPDATE_TIMESTRAP:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
timestamp: action.payload
|
|
|
});
|
|
|
case HIDE_EVALUATE_RESULT:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showEvalResult: false
|
|
|
});
|
|
|
case FETCH_TASK_START:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
loading: true
|
|
|
});
|
|
|
case UPDATE_TASK_DATA:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case TRIGGER_RIGHT_PANEL_MASK:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showDragMask: action.payload
|
|
|
});
|
|
|
case FETCH_TASK_FAILURE:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
loading: false,
|
|
|
isError: true
|
|
|
});
|
|
|
case FETCH_TASK_SUCCESS:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case SHOW_EVALUATE_LOADING:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
evaluateLoading: true
|
|
|
});
|
|
|
case HIDE_EVALUATE_LOADING:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
evaluateLoading: false
|
|
|
});
|
|
|
case SET_EVALUATE_MESSAGE:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
evaluateMessage: action.payload
|
|
|
});
|
|
|
case SET_SHOW_DIR:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showDocuments: action.payload
|
|
|
});
|
|
|
case SET_REPOS:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case SHOW_NOTICE:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showNotice: true
|
|
|
});
|
|
|
case HIDE_NOTICE:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showNotice: false
|
|
|
});
|
|
|
case HIDE_PICTURE_VIEW:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showPictureView: false
|
|
|
});
|
|
|
case SHOW_PICTURE_VIEW:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showPictureView: true
|
|
|
});
|
|
|
case SET_VNC_LOADING:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
resetVncLoading: action.payload
|
|
|
});
|
|
|
default:
|
|
|
throw new Error();
|
|
|
}
|
|
|
}
|
|
|
//切换关卡或者用户关闭页面时需要保存用户计时与代码
|
|
|
//评测时,刷新测试集,用户金币与关卡任务信息
|
|
|
//react 缺少keep-alive 机制,所以文件目录树也需要放在顶层,在code-repository 中管理,会因为react的组件卸载导致状态丢失。
|
|
|
|
|
|
/* harmony default export */ var Tasks = (function (_ref) {
|
|
|
var match = _ref.match,
|
|
|
history = _ref.history,
|
|
|
props = objectWithoutProperties_default()(_ref, Tasks_excluded);
|
|
|
console.log('props:', props);
|
|
|
var _params = (0,_umi_production_exports.useParams)();
|
|
|
var _useSearchParams = (0,_umi_production_exports.useSearchParams)(),
|
|
|
_useSearchParams2 = slicedToArray_default()(_useSearchParams, 1),
|
|
|
searchParams = _useSearchParams2[0];
|
|
|
var query = (0,_umi_production_exports.useLocation)().query;
|
|
|
var _useReducer = (0,_react_17_0_2_react.useReducer)(Tasks_reducer, Tasks_initialState),
|
|
|
_useReducer2 = slicedToArray_default()(_useReducer, 2),
|
|
|
state = _useReducer2[0],
|
|
|
dispatch = _useReducer2[1];
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(1),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
showTab = _useState2[0],
|
|
|
setShowTab = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(_params.taskId),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
taskId = _useState4[0],
|
|
|
setTaskId = _useState4[1];
|
|
|
var resizeXFlag = (0,_react_17_0_2_react.useRef)();
|
|
|
var resizeYFlag = (0,_react_17_0_2_react.useRef)();
|
|
|
var fullscreenOrExit = (0,_react_17_0_2_react.useRef)();
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)(),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
datas = _useState6[0],
|
|
|
setdatas = _useState6[1];
|
|
|
var location = (0,_umi_production_exports.useLocation)();
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
console.log('_params:', _params);
|
|
|
setTaskId(_params.taskId);
|
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
|
type: 'globalSetting/headerFooterToggle',
|
|
|
payload: false
|
|
|
});
|
|
|
}, [_params]);
|
|
|
var moveX = state.moveX,
|
|
|
taskData = state.taskData,
|
|
|
moveY = state.moveY,
|
|
|
evalData = state.evalData,
|
|
|
showEvalResult = state.showEvalResult,
|
|
|
codeRepData = state.codeRepData,
|
|
|
loading = state.loading,
|
|
|
evaluateLoading = state.evaluateLoading,
|
|
|
evaluateMessage = state.evaluateMessage,
|
|
|
showDocuments = state.showDocuments,
|
|
|
repos = state.repos,
|
|
|
showPictureView = state.showPictureView,
|
|
|
showNotice = state.showNotice,
|
|
|
webDisplayUrl = state.webDisplayUrl,
|
|
|
isPictureView = state.isPictureView,
|
|
|
resetVncLoading = state.resetVncLoading,
|
|
|
timestamp = state.timestamp,
|
|
|
lastedGetTaskInfoTime = state.lastedGetTaskInfoTime,
|
|
|
showDragMask = state.showDragMask;
|
|
|
var st = taskData.st,
|
|
|
challenge = taskData.challenge,
|
|
|
shixun = taskData.shixun,
|
|
|
is_teacher = taskData.is_teacher,
|
|
|
game = taskData.game,
|
|
|
has_answer = taskData.has_answer,
|
|
|
vnc_url = taskData.vnc_url,
|
|
|
git_url = taskData.git_url,
|
|
|
user = taskData.user,
|
|
|
myshixun = taskData.myshixun,
|
|
|
discusses_count = taskData.discusses_count,
|
|
|
user_praise = taskData.user_praise,
|
|
|
praise_count = taskData.praise_count,
|
|
|
tpm_cases_modified = taskData.tpm_cases_modified,
|
|
|
tpm_modified = taskData.tpm_modified,
|
|
|
tpm_script_modified = taskData.tpm_script_modified,
|
|
|
mirror_name = taskData.mirror_name,
|
|
|
mirror_description = taskData.mirror_description,
|
|
|
tomcat_url = taskData.tomcat_url,
|
|
|
unity_3d_routes = taskData.unity_3d_routes,
|
|
|
with_code_file = taskData.with_code_file,
|
|
|
unity_3d_result = taskData.unity_3d_result,
|
|
|
next_game = taskData.next_game,
|
|
|
prev_game = taskData.prev_game;
|
|
|
var currentPath = codeRepData.currentPath,
|
|
|
paths = codeRepData.paths,
|
|
|
content = codeRepData.content,
|
|
|
language = codeRepData.language,
|
|
|
lastedUpdateTime = codeRepData.lastedUpdateTime;
|
|
|
var isUpdateScript = (tpm_modified || tpm_script_modified) && st === 0;
|
|
|
var isNotice = (tpm_cases_modified || isUpdateScript) && myshixun.system_tip === true;
|
|
|
var isHtml = (mirror_name || []).indexOf('Html') !== -1;
|
|
|
var isEditPath = (0,_react_17_0_2_react.useMemo)(function () {
|
|
|
if (currentPath && paths) {
|
|
|
return paths.indexOf(currentPath) >= 0;
|
|
|
}
|
|
|
return false;
|
|
|
}, [currentPath, paths]);
|
|
|
var noDragging = (0,_react_17_0_2_react.useMemo)(function () {
|
|
|
return unity_3d_routes && !with_code_file || (challenge === null || challenge === void 0 ? void 0 : challenge.thiry_party) || vnc_url;
|
|
|
}, [vnc_url, with_code_file, unity_3d_routes]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (unity_3d_routes && with_code_file) {
|
|
|
dispatch({
|
|
|
type: SHOW_EVALUATE_LOADING
|
|
|
});
|
|
|
var unsub = mediator/* default */.Z.subscribe('unity3d-load-end', function () {
|
|
|
dispatch({
|
|
|
type: HIDE_EVALUATE_LOADING
|
|
|
});
|
|
|
});
|
|
|
return unsub;
|
|
|
}
|
|
|
}, [taskId, unity_3d_routes, challenge === null || challenge === void 0 ? void 0 : challenge.thiry_party, with_code_file, dispatch]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
getdata();
|
|
|
}, []);
|
|
|
function getdata() {
|
|
|
return _getdata.apply(this, arguments);
|
|
|
}
|
|
|
function _getdata() {
|
|
|
_getdata = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
|
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
|
case 0:
|
|
|
_context5.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/sci/projects/".concat(taskId, ".json"), {
|
|
|
method: 'get'
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context5.sent;
|
|
|
setdatas(res);
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context5.stop();
|
|
|
}
|
|
|
}, _callee5);
|
|
|
}));
|
|
|
return _getdata.apply(this, arguments);
|
|
|
}
|
|
|
function init(_x) {
|
|
|
return _init.apply(this, arguments);
|
|
|
}
|
|
|
function _init() {
|
|
|
_init = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6(didCancel) {
|
|
|
var response, status, payload;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee6$(_context6) {
|
|
|
while (1) switch (_context6.prev = _context6.next) {
|
|
|
case 0:
|
|
|
_context6.prev = 0;
|
|
|
_context6.next = 3;
|
|
|
return (0,innovation/* startEnvironment */.ie)(taskId);
|
|
|
case 3:
|
|
|
response = _context6.sent;
|
|
|
status = response.status;
|
|
|
if (!(status === 401)) {
|
|
|
_context6.next = 10;
|
|
|
break;
|
|
|
}
|
|
|
history.replace('/user/login', {
|
|
|
from: location.pathname
|
|
|
});
|
|
|
return _context6.abrupt("return");
|
|
|
case 10:
|
|
|
if (!(status === -3)) {
|
|
|
_context6.next = 14;
|
|
|
break;
|
|
|
}
|
|
|
(0,util/* bindPhone */.eF)({
|
|
|
onCancel: function onCancel() {
|
|
|
window.location.href = '/';
|
|
|
}
|
|
|
});
|
|
|
_context6.next = 25;
|
|
|
break;
|
|
|
case 14:
|
|
|
if (!(status === 403)) {
|
|
|
_context6.next = 18;
|
|
|
break;
|
|
|
}
|
|
|
history.replace('/403');
|
|
|
_context6.next = 25;
|
|
|
break;
|
|
|
case 18:
|
|
|
if (!(status === 404)) {
|
|
|
_context6.next = 23;
|
|
|
break;
|
|
|
}
|
|
|
history.replace('/404');
|
|
|
return _context6.abrupt("return");
|
|
|
case 23:
|
|
|
payload = {
|
|
|
loading: false,
|
|
|
isError: false,
|
|
|
taskData: response
|
|
|
};
|
|
|
if (!didCancel) {
|
|
|
dispatch({
|
|
|
type: FETCH_TASK_SUCCESS,
|
|
|
payload: payload
|
|
|
});
|
|
|
}
|
|
|
case 25:
|
|
|
if (response.mirror_type === 'webssh') {
|
|
|
setTimeout(function () {
|
|
|
mediator/* default */.Z.publish('create-socket', 1);
|
|
|
}, 1000);
|
|
|
}
|
|
|
_context6.next = 32;
|
|
|
break;
|
|
|
case 28:
|
|
|
_context6.prev = 28;
|
|
|
_context6.t0 = _context6["catch"](0);
|
|
|
console.log(_context6.t0);
|
|
|
if (!didCancel) {
|
|
|
dispatch({
|
|
|
type: FETCH_TASK_FAILURE
|
|
|
});
|
|
|
}
|
|
|
case 32:
|
|
|
case "end":
|
|
|
return _context6.stop();
|
|
|
}
|
|
|
}, _callee6, null, [[0, 28]]);
|
|
|
}));
|
|
|
return _init.apply(this, arguments);
|
|
|
}
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var didCancel = false;
|
|
|
init(didCancel);
|
|
|
return function () {
|
|
|
didCancel = true;
|
|
|
};
|
|
|
}, [dispatch, taskId]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var didCancel = false;
|
|
|
function init() {
|
|
|
return _init2.apply(this, arguments);
|
|
|
}
|
|
|
function _init2() {
|
|
|
_init2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var data, _content, _content2, _data$content, _data$content2, _data$content3;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
dispatch({
|
|
|
type: SHOW_REP_LOADING,
|
|
|
payload: objectSpread2_default()(objectSpread2_default()({}, codeRepData), {}, {
|
|
|
loading: true
|
|
|
})
|
|
|
});
|
|
|
if (!(unity_3d_routes && !with_code_file || challenge !== null && challenge !== void 0 && challenge.thiry_party)) {
|
|
|
_context.next = 3;
|
|
|
break;
|
|
|
}
|
|
|
return _context.abrupt("return");
|
|
|
case 3:
|
|
|
_context.next = 5;
|
|
|
return fetchCode(taskId, {
|
|
|
path: currentPath
|
|
|
});
|
|
|
case 5:
|
|
|
data = _context.sent;
|
|
|
if (!didCancel) {
|
|
|
if (data.status === 0) {
|
|
|
message/* default */.ZP.info(data.message);
|
|
|
dispatch({
|
|
|
type: FETCH_REP_CONTENT,
|
|
|
payload: objectSpread2_default()(objectSpread2_default()({}, codeRepData), {}, {
|
|
|
loading: false
|
|
|
})
|
|
|
});
|
|
|
} else {
|
|
|
try {
|
|
|
// if (!!data?.content?.content?.length) {
|
|
|
if ((data === null || data === void 0 ? void 0 : data.file_type) === 'txt') {
|
|
|
_content = ((_content2 = _content) === null || _content2 === void 0 ? void 0 : _content2.length) === 0 ? _content : window.decodeURIComponent(escape(window.atob(data === null || data === void 0 || (_data$content = data.content) === null || _data$content === void 0 ? void 0 : _data$content.content)));
|
|
|
} else {
|
|
|
_content = data === null || data === void 0 || (_data$content2 = data.content) === null || _data$content2 === void 0 ? void 0 : _data$content2.content;
|
|
|
}
|
|
|
// }
|
|
|
} catch (e) {
|
|
|
_content = window.atob(data === null || data === void 0 || (_data$content3 = data.content) === null || _data$content3 === void 0 ? void 0 : _data$content3.content);
|
|
|
message/* default */.ZP.warning('请确认文件字符集编码是否为UTF-8');
|
|
|
console.log('err:', e);
|
|
|
}
|
|
|
dispatch({
|
|
|
type: FETCH_REP_CONTENT,
|
|
|
payload: objectSpread2_default()(objectSpread2_default()({}, codeRepData), {}, {
|
|
|
content: _content,
|
|
|
language: data.language,
|
|
|
file_type: data.file_type,
|
|
|
filename: data.filename,
|
|
|
lastedUpdateTime: 0,
|
|
|
loading: false
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return _init2.apply(this, arguments);
|
|
|
}
|
|
|
if (st === 0 && currentPath && shixun.hide_code !== 1) {
|
|
|
// if (vnc_url || taskData?.windows_vnc) {
|
|
|
// return;
|
|
|
// }
|
|
|
init();
|
|
|
return function () {
|
|
|
didCancel = true;
|
|
|
};
|
|
|
}
|
|
|
}, [st, currentPath, lastedGetTaskInfoTime, timestamp]);
|
|
|
var onUpdateCode = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
var evaluate,
|
|
|
response,
|
|
|
_args2 = arguments;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
evaluate = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : 0;
|
|
|
console.log('lastedUpdateTime:', isEditPath, evaluate);
|
|
|
if (!(
|
|
|
// shixun?.hide_code !== 1 &&
|
|
|
st === 0 && lastedUpdateTime > 0 && isEditPath || evaluate)) {
|
|
|
_context2.next = 8;
|
|
|
break;
|
|
|
}
|
|
|
_context2.next = 5;
|
|
|
return updateCode(myshixun.identifier, {
|
|
|
path: currentPath,
|
|
|
evaluate: evaluate,
|
|
|
content: content,
|
|
|
game_id: game.id
|
|
|
});
|
|
|
case 5:
|
|
|
response = _context2.sent;
|
|
|
dispatch({
|
|
|
type: EDIT_REP_CODE,
|
|
|
payload: {
|
|
|
lastedUpdateTime: 0
|
|
|
}
|
|
|
});
|
|
|
return _context2.abrupt("return", response);
|
|
|
case 8:
|
|
|
return _context2.abrupt("return", true);
|
|
|
case 9:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function onUpdateCode() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
|
|
|
// useEffect(() => {
|
|
|
// onUpdateCode();
|
|
|
// }, [st, lastedUpdateTime, currentPath, content, game?.id, isEditPath])
|
|
|
|
|
|
//保存上下文
|
|
|
var onSaveContent = (0,_react_17_0_2_react.useCallback)(function () {
|
|
|
// if (game) {
|
|
|
// if (game.status !== 2) {
|
|
|
// mediator.publish('update-cost-time');
|
|
|
// }
|
|
|
// }
|
|
|
// try {
|
|
|
// if (myshixun?.identifier) {
|
|
|
// let bodys = {
|
|
|
// path: currentPath,
|
|
|
// evaluate: 0,
|
|
|
// content,
|
|
|
// game_id: game.id,
|
|
|
// };
|
|
|
// let headers = {
|
|
|
// type: 'application/json',
|
|
|
// };
|
|
|
// let blob = new Blob([JSON.stringify(bodys)], headers);
|
|
|
// window.navigator.sendBeacon(
|
|
|
// `${ENV.API_SERVER}/api/myshixuns/${myshixun?.identifier}/update_file.json`,
|
|
|
// blob,
|
|
|
// );
|
|
|
// }
|
|
|
// } catch (e) {}
|
|
|
// onUpdateCode();
|
|
|
}, [onUpdateCode]);
|
|
|
|
|
|
//解锁测试集
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var unSub = mediator/* default */.Z.subscribe('unlock-test-case', function () {
|
|
|
es_modal/* default */.Z.confirm(defineProperty_default()(defineProperty_default()({
|
|
|
centered: true,
|
|
|
okText: '确定',
|
|
|
cancelText: '取消',
|
|
|
title: '提示',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)(UnLockTestTip, {
|
|
|
score: challenge.score,
|
|
|
is_teacher: is_teacher
|
|
|
})
|
|
|
}, "centered", true), "onOk", onUnlockTestCase));
|
|
|
});
|
|
|
return unSub;
|
|
|
}, [onUnlockTestCase, challenge, is_teacher]);
|
|
|
var onUnlockTestCase = (0,_react_17_0_2_react.useCallback)( /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
|
|
|
var response, test_sets, message, status, grade;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
_context3.next = 2;
|
|
|
return unlockTestCase(game.identifier);
|
|
|
case 2:
|
|
|
response = _context3.sent;
|
|
|
test_sets = response.test_sets, message = response.message, status = response.status;
|
|
|
if (!(status === -1)) {
|
|
|
_context3.next = 7;
|
|
|
break;
|
|
|
}
|
|
|
message.info(message);
|
|
|
return _context3.abrupt("return");
|
|
|
case 7:
|
|
|
grade = taskData['user'].grade;
|
|
|
taskData['user'].grade = grade - challenge.score * 2;
|
|
|
taskData['test_sets'] = test_sets;
|
|
|
taskData['game']['test_sets_view'] = true;
|
|
|
dispatch({
|
|
|
type: UPDATE_TASK_DATA,
|
|
|
payload: {
|
|
|
taskData: taskData
|
|
|
}
|
|
|
});
|
|
|
case 12:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
})), [game, challenge, dispatch]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (!noDragging || vnc_url) {
|
|
|
var onMove = function onMove(e) {
|
|
|
if (resizeXFlag.current) {
|
|
|
dispatch({
|
|
|
type: MOVE_X,
|
|
|
payload: e.pageX
|
|
|
});
|
|
|
}
|
|
|
if (resizeYFlag.current) {
|
|
|
dispatch({
|
|
|
type: MOVE_Y,
|
|
|
payload: e.pageY
|
|
|
});
|
|
|
}
|
|
|
};
|
|
|
var onMouseUp = function onMouseUp() {
|
|
|
resizeXFlag.current = false;
|
|
|
resizeYFlag.current = false;
|
|
|
dispatch({
|
|
|
type: TRIGGER_RIGHT_PANEL_MASK,
|
|
|
payload: false
|
|
|
});
|
|
|
document.onselectstart = null;
|
|
|
};
|
|
|
document.addEventListener('mousemove', onMove);
|
|
|
document.addEventListener('mouseup', onMouseUp);
|
|
|
return function () {
|
|
|
document.removeEventListener('mousemove', onMove);
|
|
|
document.removeEventListener('mouseup', onMouseUp);
|
|
|
};
|
|
|
}
|
|
|
}, [resizeYFlag.current, resizeXFlag.current, noDragging, dispatch]);
|
|
|
function minuxUserGrade(value) {
|
|
|
var grade = taskData['user'].grade;
|
|
|
taskData['user'].grade = grade - value;
|
|
|
dispatch({
|
|
|
type: UPDATE_TASK_DATA,
|
|
|
payload: {
|
|
|
taskData: taskData
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
fullscreenOrExit.current = function () {
|
|
|
state.moveX = state.moveX !== 0.01 ? 0.01 : '40%';
|
|
|
dispatch({
|
|
|
type: MOVE_X,
|
|
|
payload: state.moveX
|
|
|
});
|
|
|
};
|
|
|
function onResizeStart() {
|
|
|
if (noDragging) {
|
|
|
fullscreenOrExit.current();
|
|
|
} else {
|
|
|
document.onselectstart = function () {
|
|
|
return false;
|
|
|
};
|
|
|
resizeXFlag.current = true;
|
|
|
dispatch({
|
|
|
type: TRIGGER_RIGHT_PANEL_MASK,
|
|
|
payload: true
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
function onResizeYStart() {
|
|
|
document.onselectstart = function () {
|
|
|
return false;
|
|
|
};
|
|
|
resizeYFlag.current = true;
|
|
|
if (taskData !== null && taskData !== void 0 && taskData.vnc_url || taskData !== null && taskData !== void 0 && taskData.windows_vnc || taskData !== null && taskData !== void 0 && taskData.linux_vnc || taskData !== null && taskData !== void 0 && taskData.virtual_machine || (shixun === null || shixun === void 0 ? void 0 : shixun.hide_code) === 2) {
|
|
|
dispatch({
|
|
|
type: TRIGGER_RIGHT_PANEL_MASK,
|
|
|
payload: true
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
function onResizeSetContainer(value) {
|
|
|
if (value === 0.01) {
|
|
|
dispatch({
|
|
|
type: MOVE_Y,
|
|
|
payload: 0
|
|
|
});
|
|
|
} else {
|
|
|
dispatch({
|
|
|
type: MOVE_Y,
|
|
|
payload: 0.01
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
function onResizeCodeArea(value) {
|
|
|
if (value === 0) {
|
|
|
dispatch({
|
|
|
type: MOVE_Y,
|
|
|
payload: '100%'
|
|
|
});
|
|
|
} else {
|
|
|
dispatch({
|
|
|
type: MOVE_Y,
|
|
|
payload: 0
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
var unSub = mediator/* default */.Z.subscribe('vnc-enlarge', function () {
|
|
|
fullscreenOrExit.current();
|
|
|
});
|
|
|
return unSub;
|
|
|
}, []);
|
|
|
function onFinishDisplayHtml() {
|
|
|
onUpdateCode();
|
|
|
}
|
|
|
function onResetCode() {
|
|
|
return _onResetCode.apply(this, arguments);
|
|
|
}
|
|
|
function _onResetCode() {
|
|
|
_onResetCode = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee7() {
|
|
|
var response, content, language;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee7$(_context7) {
|
|
|
while (1) switch (_context7.prev = _context7.next) {
|
|
|
case 0:
|
|
|
_context7.next = 2;
|
|
|
return restoreCode(taskId, {
|
|
|
path: currentPath
|
|
|
});
|
|
|
case 2:
|
|
|
response = _context7.sent;
|
|
|
content = response.content, language = response.language;
|
|
|
dispatch({
|
|
|
type: FETCH_REP_CONTENT,
|
|
|
payload: objectSpread2_default()(objectSpread2_default()({}, codeRepData), {}, {
|
|
|
content: content,
|
|
|
language: language,
|
|
|
lastedUpdateTime: 0,
|
|
|
loading: false
|
|
|
})
|
|
|
});
|
|
|
case 5:
|
|
|
case "end":
|
|
|
return _context7.stop();
|
|
|
}
|
|
|
}, _callee7);
|
|
|
}));
|
|
|
return _onResetCode.apply(this, arguments);
|
|
|
}
|
|
|
function onResetGitCode() {
|
|
|
return _onResetGitCode.apply(this, arguments);
|
|
|
}
|
|
|
function _onResetGitCode() {
|
|
|
_onResetGitCode = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee8() {
|
|
|
var _taskData$myshixun;
|
|
|
var response;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee8$(_context8) {
|
|
|
while (1) switch (_context8.prev = _context8.next) {
|
|
|
case 0:
|
|
|
_context8.next = 2;
|
|
|
return resetGitCode(taskData === null || taskData === void 0 || (_taskData$myshixun = taskData.myshixun) === null || _taskData$myshixun === void 0 ? void 0 : _taskData$myshixun.identifier, {});
|
|
|
case 2:
|
|
|
response = _context8.sent;
|
|
|
init();
|
|
|
return _context8.abrupt("return", response);
|
|
|
case 5:
|
|
|
case "end":
|
|
|
return _context8.stop();
|
|
|
}
|
|
|
}, _callee8);
|
|
|
}));
|
|
|
return _onResetGitCode.apply(this, arguments);
|
|
|
}
|
|
|
function onResetPassedCode() {
|
|
|
return _onResetPassedCode.apply(this, arguments);
|
|
|
}
|
|
|
function _onResetPassedCode() {
|
|
|
_onResetPassedCode = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee9() {
|
|
|
var response, content, language;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee9$(_context9) {
|
|
|
while (1) switch (_context9.prev = _context9.next) {
|
|
|
case 0:
|
|
|
_context9.next = 2;
|
|
|
return resetPassedCode(taskId, {
|
|
|
path: currentPath
|
|
|
});
|
|
|
case 2:
|
|
|
response = _context9.sent;
|
|
|
content = response.content, language = response.language;
|
|
|
dispatch({
|
|
|
type: FETCH_REP_CONTENT,
|
|
|
payload: objectSpread2_default()(objectSpread2_default()({}, codeRepData), {}, {
|
|
|
content: content,
|
|
|
language: language,
|
|
|
lastedUpdateTime: 0,
|
|
|
loading: false
|
|
|
})
|
|
|
});
|
|
|
case 5:
|
|
|
case "end":
|
|
|
return _context9.stop();
|
|
|
}
|
|
|
}, _callee9);
|
|
|
}));
|
|
|
return _onResetPassedCode.apply(this, arguments);
|
|
|
}
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (st === 0 && challenge && challenge.path) {
|
|
|
var _paths = challenge.path.split(';').filter(function (item) {
|
|
|
return !!item;
|
|
|
});
|
|
|
dispatch({
|
|
|
type: EDIT_REP_CODE,
|
|
|
payload: {
|
|
|
currentPath: _paths[0],
|
|
|
paths: _paths
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}, [challenge, st]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
if (shixun) {
|
|
|
(0,util/* setDocumentTitle */.Dk)(shixun.name || '实践项目名称-未填写');
|
|
|
}
|
|
|
}, [shixun]);
|
|
|
function onPlusOrCancelPraise() {
|
|
|
return _onPlusOrCancelPraise.apply(this, arguments);
|
|
|
}
|
|
|
function _onPlusOrCancelPraise() {
|
|
|
_onPlusOrCancelPraise = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee10() {
|
|
|
var response, praise_count, praise;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee10$(_context10) {
|
|
|
while (1) switch (_context10.prev = _context10.next) {
|
|
|
case 0:
|
|
|
_context10.next = 2;
|
|
|
return plusOrCancelPraise(taskId);
|
|
|
case 2:
|
|
|
response = _context10.sent;
|
|
|
praise_count = response.praise_count, praise = response.praise;
|
|
|
taskData.praise_count = praise_count;
|
|
|
taskData['user_praise'] = praise;
|
|
|
dispatch({
|
|
|
type: UPDATE_TASK_DATA,
|
|
|
payload: {
|
|
|
taskData: taskData
|
|
|
}
|
|
|
});
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context10.stop();
|
|
|
}
|
|
|
}, _callee10);
|
|
|
}));
|
|
|
return _onPlusOrCancelPraise.apply(this, arguments);
|
|
|
}
|
|
|
var onUpdateCostTime = (0,_react_17_0_2_react.useCallback)(function (time) {
|
|
|
function init(_x2) {
|
|
|
return _init3.apply(this, arguments);
|
|
|
}
|
|
|
function _init3() {
|
|
|
_init3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4(time) {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
try {
|
|
|
window.navigator.sendBeacon("".concat(env/* default */.Z.API_SERVER, "/api/tasks/").concat(taskId, "/cost_time.json?time=").concat(time), JSON.stringify({
|
|
|
time: time
|
|
|
}));
|
|
|
} catch (e) {}
|
|
|
// await updateCostTime(taskId, { time });
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
}));
|
|
|
return _init3.apply(this, arguments);
|
|
|
}
|
|
|
init(time);
|
|
|
}, [taskId]);
|
|
|
function onSaveTaskStar(_x3) {
|
|
|
return _onSaveTaskStar.apply(this, arguments);
|
|
|
}
|
|
|
function _onSaveTaskStar() {
|
|
|
_onSaveTaskStar = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee11(value) {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee11$(_context11) {
|
|
|
while (1) switch (_context11.prev = _context11.next) {
|
|
|
case 0:
|
|
|
_context11.next = 2;
|
|
|
return saveTaskStar(taskId, shixun.id, value);
|
|
|
case 2:
|
|
|
taskData['game']['star'] = value;
|
|
|
dispatch({
|
|
|
type: UPDATE_TASK_DATA,
|
|
|
payload: {
|
|
|
taskData: taskData
|
|
|
}
|
|
|
});
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context11.stop();
|
|
|
}
|
|
|
}, _callee11);
|
|
|
}));
|
|
|
return _onSaveTaskStar.apply(this, arguments);
|
|
|
}
|
|
|
function onShowDir() {
|
|
|
return _onShowDir.apply(this, arguments);
|
|
|
}
|
|
|
function _onShowDir() {
|
|
|
_onShowDir = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee12() {
|
|
|
var response, trees;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee12$(_context12) {
|
|
|
while (1) switch (_context12.prev = _context12.next) {
|
|
|
case 0:
|
|
|
if (repos) {
|
|
|
_context12.next = 8;
|
|
|
break;
|
|
|
}
|
|
|
_context12.next = 3;
|
|
|
return fetchRepos(myshixun.identifier);
|
|
|
case 3:
|
|
|
response = _context12.sent;
|
|
|
trees = response.trees;
|
|
|
dispatch({
|
|
|
type: SET_REPOS,
|
|
|
payload: {
|
|
|
showDocuments: true,
|
|
|
repos: getTreeData(trees)
|
|
|
}
|
|
|
});
|
|
|
_context12.next = 9;
|
|
|
break;
|
|
|
case 8:
|
|
|
dispatch({
|
|
|
type: SET_SHOW_DIR,
|
|
|
payload: true
|
|
|
});
|
|
|
case 9:
|
|
|
case "end":
|
|
|
return _context12.stop();
|
|
|
}
|
|
|
}, _callee12);
|
|
|
}));
|
|
|
return _onShowDir.apply(this, arguments);
|
|
|
}
|
|
|
function onLoadTreeData(_x4) {
|
|
|
return _onLoadTreeData.apply(this, arguments);
|
|
|
}
|
|
|
function _onLoadTreeData() {
|
|
|
_onLoadTreeData = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee14(node) {
|
|
|
var _node$props, children, eventKey;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee14$(_context14) {
|
|
|
while (1) switch (_context14.prev = _context14.next) {
|
|
|
case 0:
|
|
|
_node$props = node.props, children = _node$props.children, eventKey = _node$props.eventKey;
|
|
|
return _context14.abrupt("return", new Promise( /*#__PURE__*/function () {
|
|
|
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee13(resolve) {
|
|
|
var response, trees, newRepos;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee13$(_context13) {
|
|
|
while (1) switch (_context13.prev = _context13.next) {
|
|
|
case 0:
|
|
|
if (children && children.length > 0) {
|
|
|
resolve();
|
|
|
}
|
|
|
_context13.next = 3;
|
|
|
return fetchRepos(myshixun.identifier, {
|
|
|
path: eventKey
|
|
|
});
|
|
|
case 3:
|
|
|
response = _context13.sent;
|
|
|
trees = response.trees;
|
|
|
newRepos = processTreeData(repos, eventKey, getTreeData(trees, eventKey));
|
|
|
dispatch({
|
|
|
type: SET_REPOS,
|
|
|
payload: {
|
|
|
repos: toConsumableArray_default()(newRepos)
|
|
|
}
|
|
|
});
|
|
|
resolve();
|
|
|
case 8:
|
|
|
case "end":
|
|
|
return _context13.stop();
|
|
|
}
|
|
|
}, _callee13);
|
|
|
}));
|
|
|
return function (_x9) {
|
|
|
return _ref4.apply(this, arguments);
|
|
|
};
|
|
|
}()));
|
|
|
case 2:
|
|
|
case "end":
|
|
|
return _context14.stop();
|
|
|
}
|
|
|
}, _callee14);
|
|
|
}));
|
|
|
return _onLoadTreeData.apply(this, arguments);
|
|
|
}
|
|
|
function onHideDocuments() {
|
|
|
dispatch({
|
|
|
type: SET_SHOW_DIR,
|
|
|
payload: false
|
|
|
});
|
|
|
}
|
|
|
function onEvalChoose(value) {
|
|
|
var gold = value.gold,
|
|
|
experience = value.experience,
|
|
|
next_game = value.next_game,
|
|
|
next_shixun = value.next_shixun,
|
|
|
subject_done = value.subject_done,
|
|
|
rest = objectWithoutProperties_default()(value, _excluded2);
|
|
|
var isOk = rest.challenge_chooses_count === rest.choose_correct_num;
|
|
|
var new_test_cases = {
|
|
|
had_submmit: true,
|
|
|
test_sets: rest.test_sets,
|
|
|
challenge_chooses_count: rest.challenge_chooses_count,
|
|
|
choose_correct_num: rest.choose_correct_num
|
|
|
};
|
|
|
taskData['choose_test_cases'] = new_test_cases;
|
|
|
if (isOk) {
|
|
|
taskData['game'].status = 2;
|
|
|
taskData['next_game'] = next_game;
|
|
|
taskData['user']['grade'] += gold;
|
|
|
}
|
|
|
if (isOk && game.status !== 2) {
|
|
|
mediator/* default */.Z.publish('update-cost-time');
|
|
|
}
|
|
|
dispatch({
|
|
|
type: UPDATE_TASK_DATA,
|
|
|
payload: {
|
|
|
taskData: taskData,
|
|
|
evalData: {
|
|
|
gold: gold,
|
|
|
experience: experience,
|
|
|
next_game: next_game,
|
|
|
next_shixun: next_shixun,
|
|
|
subject_done: subject_done
|
|
|
// had_done,
|
|
|
},
|
|
|
showEvalResult: isOk
|
|
|
}
|
|
|
});
|
|
|
//*评测完成后有10秒倒计时
|
|
|
mediator/* default */.Z.publish('eval-code-finish');
|
|
|
}
|
|
|
function onEvalCode() {
|
|
|
return _onEvalCode.apply(this, arguments);
|
|
|
}
|
|
|
function _onEvalCode() {
|
|
|
_onEvalCode = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee16() {
|
|
|
var response, resubmit, sec_key, content_modified, params, _taskData$challenge, rs, getGameStatus, count, intervalTime, time_out;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee16$(_context16) {
|
|
|
while (1) switch (_context16.prev = _context16.next) {
|
|
|
case 0:
|
|
|
_context16.prev = 0;
|
|
|
dispatch({
|
|
|
type: SHOW_EVALUATE_LOADING
|
|
|
});
|
|
|
_context16.next = 4;
|
|
|
return onUpdateCode(1);
|
|
|
case 4:
|
|
|
response = _context16.sent;
|
|
|
resubmit = response.resubmit, sec_key = response.sec_key, content_modified = response.content_modified;
|
|
|
if (!(response.status && response.status < 0)) {
|
|
|
_context16.next = 10;
|
|
|
break;
|
|
|
}
|
|
|
// message.warning(response?.message,'message-key');
|
|
|
mediator/* default */.Z.publish('eval-code-finish');
|
|
|
dispatch({
|
|
|
type: UPDATE_TASK_DATA,
|
|
|
payload: {
|
|
|
evaluateLoading: false
|
|
|
}
|
|
|
});
|
|
|
return _context16.abrupt("return");
|
|
|
case 10:
|
|
|
params = {
|
|
|
sec_key: sec_key,
|
|
|
resubmit: resubmit,
|
|
|
first: 1,
|
|
|
content_modified: content_modified
|
|
|
}; // 只有试卷考试才需要下面参数
|
|
|
if (query.type === 'exercises') {
|
|
|
params.extras = {
|
|
|
exercise_id: query.exercisesId,
|
|
|
//试卷id
|
|
|
question_id: query.questionId,
|
|
|
// 题目id
|
|
|
challenge_id: (_taskData$challenge = taskData.challenge) === null || _taskData$challenge === void 0 ? void 0 : _taskData$challenge.id,
|
|
|
// 关卡id
|
|
|
subject_id: query.subject_id || ''
|
|
|
};
|
|
|
}
|
|
|
_context16.next = 14;
|
|
|
return codeGameBuild(taskId, params);
|
|
|
case 14:
|
|
|
rs = _context16.sent;
|
|
|
if (!(rs.status === -1 && query.type === 'exercises')) {
|
|
|
_context16.next = 18;
|
|
|
break;
|
|
|
}
|
|
|
window.parent.location.href = "/classrooms/".concat(searchParams.get("coursesId"), "/exercise/").concat(searchParams.get("exercisesId"), "/detail");
|
|
|
return _context16.abrupt("return");
|
|
|
case 18:
|
|
|
if (rs.status === 1) {
|
|
|
getGameStatus = /*#__PURE__*/function () {
|
|
|
var _ref5 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee15(intervalTime, finalTime, count) {
|
|
|
var _taskData$challenge2;
|
|
|
var excuteTime, source, ds, status, running_code_message, port, web_route, playUrl, isWeb, isOk, isPicture, isShowEvalResult, payload;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee15$(_context15) {
|
|
|
while (1) switch (_context15.prev = _context15.next) {
|
|
|
case 0:
|
|
|
excuteTime = count++ * intervalTime;
|
|
|
if (excuteTime / 1000 > finalTime) {
|
|
|
time_out = true;
|
|
|
}
|
|
|
_context15.next = 4;
|
|
|
return getCodeGameStatus(taskId, {
|
|
|
resubmit: resubmit,
|
|
|
time_out: time_out,
|
|
|
port: rs.port,
|
|
|
sec_key: sec_key,
|
|
|
challenge_id: taskData === null || taskData === void 0 || (_taskData$challenge2 = taskData.challenge) === null || _taskData$challenge2 === void 0 ? void 0 : _taskData$challenge2.id,
|
|
|
subject_id: query.subject_id || ''
|
|
|
});
|
|
|
case 4:
|
|
|
source = _context15.sent;
|
|
|
ds = source;
|
|
|
status = ds.status, running_code_message = ds.running_code_message, port = ds.port, web_route = ds.web_route;
|
|
|
dispatch({
|
|
|
type: SET_EVALUATE_MESSAGE,
|
|
|
payload: running_code_message
|
|
|
});
|
|
|
if (+status > -1 || excuteTime / 1000 > finalTime) {
|
|
|
//第一次通关
|
|
|
if (game.status !== 2 && status === 2) {
|
|
|
taskData['game'].status = 2;
|
|
|
taskData['user']['grade'] += ds.gold;
|
|
|
mediator/* default */.Z.publish('update-cost-time');
|
|
|
}
|
|
|
taskData['test_sets'] = ds.test_sets || [];
|
|
|
taskData['last_compile_output'] = ds.last_compile_output;
|
|
|
taskData['test_sets_count'] = ds.test_sets_count;
|
|
|
taskData['sets_error_count'] = ds.sets_error_count;
|
|
|
taskData['record_consume_time'] = ds.record_consume_time;
|
|
|
taskData['next_game'] = ds.next_game;
|
|
|
taskData['prev_game'] = ds.prev_game;
|
|
|
playUrl = '';
|
|
|
isWeb = mirror_name.indexOf('Web') !== -1 || mirror_name.indexOf('JFinal') !== -1;
|
|
|
if (isWeb && port != -1 && web_route) {
|
|
|
playUrl = "".concat(tomcat_url, ":").concat(port, "/").concat(web_route);
|
|
|
}
|
|
|
isOk = isCompileOk(ds.test_sets);
|
|
|
isPicture = ds.picture > 0 && isOk;
|
|
|
isShowEvalResult = status === 2 && !time_out;
|
|
|
if (time_out) {
|
|
|
message/* default */.ZP.info('本次评测超时');
|
|
|
} else {
|
|
|
if (!isShowEvalResult) {
|
|
|
message/* default */.ZP.info('评测未通过,详情参见“测试结果”');
|
|
|
}
|
|
|
}
|
|
|
payload = {
|
|
|
taskData: taskData,
|
|
|
evalData: {
|
|
|
gold: ds.gold,
|
|
|
experience: ds.experience,
|
|
|
next_game: ds.next_game,
|
|
|
next_shixun: ds.next_shixun
|
|
|
// had_done: ds.had_done,
|
|
|
},
|
|
|
evaluateLoading: false,
|
|
|
evaluateMessage: '',
|
|
|
webDisplayUrl: playUrl,
|
|
|
showPictureView: unity_3d_routes || challenge !== null && challenge !== void 0 && challenge.thiry_party ? false : isPicture,
|
|
|
isPictureView: isPicture
|
|
|
};
|
|
|
if (unity_3d_routes && with_code_file || challenge !== null && challenge !== void 0 && challenge.thiry_party) {
|
|
|
//* 新需求
|
|
|
mediator/* default */.Z.publish('evaluate-unity3d-result', {
|
|
|
state: 'user',
|
|
|
data: {
|
|
|
user: user
|
|
|
}
|
|
|
});
|
|
|
mediator/* default */.Z.publish('evaluate-unity3d-finish');
|
|
|
//*评测结果由unity3d给出, 在评测时需要格外等待unity3d给出的消息
|
|
|
if (unity_3d_result) {
|
|
|
mediator/* default */.Z.publish('evaluate-unity3d-result', ds.unity_3d_result);
|
|
|
} else {
|
|
|
if (isOk) {
|
|
|
mediator/* default */.Z.publish('evaluate-unity3d-result', ds.unity_3d_result);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
payload['showEvalResult'] = isShowEvalResult;
|
|
|
}
|
|
|
dispatch({
|
|
|
type: UPDATE_TASK_DATA,
|
|
|
payload: payload
|
|
|
});
|
|
|
//*评测完成后有10秒倒计时
|
|
|
mediator/* default */.Z.publish('eval-code-finish');
|
|
|
} else {
|
|
|
setTimeout(function () {
|
|
|
getGameStatus(intervalTime, challenge.exec_time + 11, count++);
|
|
|
}, intervalTime);
|
|
|
}
|
|
|
case 9:
|
|
|
case "end":
|
|
|
return _context15.stop();
|
|
|
}
|
|
|
}, _callee15);
|
|
|
}));
|
|
|
return function getGameStatus(_x10, _x11, _x12) {
|
|
|
return _ref5.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
count = 1;
|
|
|
intervalTime = 1000;
|
|
|
time_out = false;
|
|
|
getGameStatus(intervalTime, challenge.exec_time + 11, count++);
|
|
|
//* 前端检查评测结果的总时间为关卡设置的评测时长限制 +10s+1s(时间差)
|
|
|
// let timerId = setInterval(() => {
|
|
|
// getGameStatus(
|
|
|
// intervalTime,
|
|
|
// challenge.exec_time + 11,
|
|
|
// count++,
|
|
|
// timerId,
|
|
|
// );
|
|
|
// }, intervalTime);
|
|
|
}
|
|
|
return _context16.abrupt("return", res);
|
|
|
case 22:
|
|
|
_context16.prev = 22;
|
|
|
_context16.t0 = _context16["catch"](0);
|
|
|
console.log('-------eval code', _context16.t0);
|
|
|
case 25:
|
|
|
case "end":
|
|
|
return _context16.stop();
|
|
|
}
|
|
|
}, _callee16, null, [[0, 22]]);
|
|
|
}));
|
|
|
return _onEvalCode.apply(this, arguments);
|
|
|
}
|
|
|
function onEditRepCode(value) {
|
|
|
dispatch({
|
|
|
type: EDIT_REP_CODE,
|
|
|
payload: {
|
|
|
content: value,
|
|
|
lastedUpdateTime: new Date().getTime()
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function onCloseResult() {
|
|
|
dispatch({
|
|
|
type: HIDE_EVALUATE_RESULT
|
|
|
});
|
|
|
}
|
|
|
function onHidePictureView() {
|
|
|
dispatch({
|
|
|
type: HIDE_PICTURE_VIEW
|
|
|
});
|
|
|
}
|
|
|
function onShowPictureView() {
|
|
|
dispatch({
|
|
|
type: SHOW_PICTURE_VIEW
|
|
|
});
|
|
|
}
|
|
|
function onShowNotice() {
|
|
|
dispatch({
|
|
|
type: SHOW_NOTICE
|
|
|
});
|
|
|
}
|
|
|
function onSelectRepo(_x5, _x6) {
|
|
|
return _onSelectRepo.apply(this, arguments);
|
|
|
}
|
|
|
function _onSelectRepo() {
|
|
|
_onSelectRepo = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee17(selectedKeys, event) {
|
|
|
var node, path, suf;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee17$(_context17) {
|
|
|
while (1) switch (_context17.prev = _context17.next) {
|
|
|
case 0:
|
|
|
node = event.node;
|
|
|
if (!node.isLeaf) {
|
|
|
_context17.next = 7;
|
|
|
break;
|
|
|
}
|
|
|
path = selectedKeys[0];
|
|
|
suf = path.split('.').pop().toLowerCase(); // if (BADSUFS.indexOf(suf) >= 0) {
|
|
|
// message.info(`不支持加载${suf}类型的文件。`);
|
|
|
// return;
|
|
|
// } else {
|
|
|
_context17.next = 6;
|
|
|
return onUpdateCode();
|
|
|
case 6:
|
|
|
dispatch({
|
|
|
type: EDIT_REP_CODE,
|
|
|
payload: {
|
|
|
currentPath: path
|
|
|
}
|
|
|
});
|
|
|
// }
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context17.stop();
|
|
|
}
|
|
|
}, _callee17);
|
|
|
}));
|
|
|
return _onSelectRepo.apply(this, arguments);
|
|
|
}
|
|
|
function onChangePath(_x7) {
|
|
|
return _onChangePath.apply(this, arguments);
|
|
|
}
|
|
|
function _onChangePath() {
|
|
|
_onChangePath = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee18(value) {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee18$(_context18) {
|
|
|
while (1) switch (_context18.prev = _context18.next) {
|
|
|
case 0:
|
|
|
_context18.next = 2;
|
|
|
return onUpdateCode();
|
|
|
case 2:
|
|
|
dispatch({
|
|
|
type: EDIT_REP_CODE,
|
|
|
payload: {
|
|
|
currentPath: value
|
|
|
}
|
|
|
});
|
|
|
case 3:
|
|
|
case "end":
|
|
|
return _context18.stop();
|
|
|
}
|
|
|
}, _callee18);
|
|
|
}));
|
|
|
return _onChangePath.apply(this, arguments);
|
|
|
}
|
|
|
function onNextCallback() {
|
|
|
taskData['myshixun'].system_tip = true;
|
|
|
dispatch({
|
|
|
type: UPDATE_TASK_DATA,
|
|
|
payload: {
|
|
|
taskData: taskData,
|
|
|
showNotice: false
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function onUpdateCallback(newPath, timestamp) {
|
|
|
taskData['challenge'].path = newPath;
|
|
|
taskData['myshixun'].system_tip = false;
|
|
|
dispatch({
|
|
|
type: UPDATE_TASK_DATA,
|
|
|
payload: {
|
|
|
taskData: objectSpread2_default()(objectSpread2_default()({}, taskData), {}, {
|
|
|
tpm_cases_modified: false,
|
|
|
tpm_modified: false,
|
|
|
tpm_script_modified: false
|
|
|
}),
|
|
|
showNotice: false,
|
|
|
timestamp: timestamp
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function onUpdateFailure() {
|
|
|
dispatch({
|
|
|
type: HIDE_NOTICE
|
|
|
});
|
|
|
}
|
|
|
function onResetVnc() {
|
|
|
return _onResetVnc.apply(this, arguments);
|
|
|
}
|
|
|
function _onResetVnc() {
|
|
|
_onResetVnc = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee19() {
|
|
|
var response, new_vnc_url;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee19$(_context19) {
|
|
|
while (1) switch (_context19.prev = _context19.next) {
|
|
|
case 0:
|
|
|
_context19.prev = 0;
|
|
|
dispatch({
|
|
|
type: SET_VNC_LOADING,
|
|
|
payload: true
|
|
|
});
|
|
|
mediator/* default */.Z.publish('vnc-reseting');
|
|
|
_context19.next = 5;
|
|
|
return resetVnc(_params.taskId);
|
|
|
case 5:
|
|
|
response = _context19.sent;
|
|
|
new_vnc_url = response.vnc_url;
|
|
|
taskData['vnc_url'] = new_vnc_url + '×tamp=' + new Date().getTime();
|
|
|
mediator/* default */.Z.publish('vnc-reseting-done', response);
|
|
|
dispatch({
|
|
|
type: UPDATE_TASK_DATA,
|
|
|
payload: {
|
|
|
taskData: taskData,
|
|
|
resetVncLoading: false
|
|
|
}
|
|
|
});
|
|
|
_context19.next = 15;
|
|
|
break;
|
|
|
case 12:
|
|
|
_context19.prev = 12;
|
|
|
_context19.t0 = _context19["catch"](0);
|
|
|
console.log(_context19.t0);
|
|
|
case 15:
|
|
|
case "end":
|
|
|
return _context19.stop();
|
|
|
}
|
|
|
}, _callee19, null, [[0, 12]]);
|
|
|
}));
|
|
|
return _onResetVnc.apply(this, arguments);
|
|
|
}
|
|
|
function onGetUnity3dMessage(_x8) {
|
|
|
return _onGetUnity3dMessage.apply(this, arguments);
|
|
|
} //代码评测后回调
|
|
|
function _onGetUnity3dMessage() {
|
|
|
_onGetUnity3dMessage = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee20(mes) {
|
|
|
var GameState, Data, challenge, response, status, data;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee20$(_context20) {
|
|
|
while (1) switch (_context20.prev = _context20.next) {
|
|
|
case 0:
|
|
|
GameState = mes.GameState, Data = mes.Data, challenge = mes.challenge;
|
|
|
console.log('match:', match);
|
|
|
if (!(challenge === 'info')) {
|
|
|
_context20.next = 6;
|
|
|
break;
|
|
|
}
|
|
|
mediator/* default */.Z.publish('evaluate-unity3d-result', {
|
|
|
state: '3d_callback',
|
|
|
data: {
|
|
|
challenge_info: objectSpread2_default()({}, taskData.challenge)
|
|
|
}
|
|
|
});
|
|
|
//taskData.challenge
|
|
|
_context20.next = 16;
|
|
|
break;
|
|
|
case 6:
|
|
|
if (!(GameState === 'Success')) {
|
|
|
_context20.next = 16;
|
|
|
break;
|
|
|
}
|
|
|
if (!(unity_3d_result || !with_code_file)) {
|
|
|
_context20.next = 15;
|
|
|
break;
|
|
|
}
|
|
|
_context20.next = 10;
|
|
|
return setUnity3dStatus(taskId, base64.Base64.encode(taskId + new Date().getTime()), Data);
|
|
|
case 10:
|
|
|
response = _context20.sent;
|
|
|
status = response.status, data = response.data;
|
|
|
if (status == 0) {
|
|
|
if (game.status !== 2) {
|
|
|
taskData['game'].status = 2;
|
|
|
taskData['user']['grade'] += data.gold;
|
|
|
mediator/* default */.Z.publish('update-cost-time');
|
|
|
}
|
|
|
//* 新需求,无代码评测通关需要发送用户和通关时间信息
|
|
|
mediator/* default */.Z.publish('evaluate-unity3d-result', {
|
|
|
state: 'userAndtime',
|
|
|
data: {
|
|
|
user: user,
|
|
|
open_time: data.open_time,
|
|
|
end_time: data.end_time
|
|
|
}
|
|
|
});
|
|
|
dispatch({
|
|
|
type: UPDATE_TASK_DATA,
|
|
|
payload: {
|
|
|
taskData: taskData,
|
|
|
evalData: {
|
|
|
gold: data.gold,
|
|
|
experience: data.experience,
|
|
|
next_game: data.next_game
|
|
|
// had_done: data.had_done,
|
|
|
},
|
|
|
evaluateLoading: false,
|
|
|
showEvalResult: true
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
_context20.next = 16;
|
|
|
break;
|
|
|
case 15:
|
|
|
dispatch({
|
|
|
type: SHOW_EVALUATE_RESULT
|
|
|
});
|
|
|
case 16:
|
|
|
case "end":
|
|
|
return _context20.stop();
|
|
|
}
|
|
|
}, _callee20);
|
|
|
}));
|
|
|
return _onGetUnity3dMessage.apply(this, arguments);
|
|
|
}
|
|
|
function onEvaluateCallback() {}
|
|
|
function onAddVncTime() {
|
|
|
return _onAddVncTime.apply(this, arguments);
|
|
|
}
|
|
|
function _onAddVncTime() {
|
|
|
_onAddVncTime = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee21() {
|
|
|
var _res, _res3;
|
|
|
var res, _res2;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee21$(_context21) {
|
|
|
while (1) switch (_context21.prev = _context21.next) {
|
|
|
case 0:
|
|
|
_context21.next = 2;
|
|
|
return addVncTime(taskId);
|
|
|
case 2:
|
|
|
res = _context21.sent;
|
|
|
// }
|
|
|
if ((_res = res) !== null && _res !== void 0 && (_res = _res.data) !== null && _res !== void 0 && _res.remaining_time) {
|
|
|
mediator/* default */.Z.publish('update-windows-time', (_res2 = res) === null || _res2 === void 0 ? void 0 : _res2.data);
|
|
|
}
|
|
|
return _context21.abrupt("return", (_res3 = res) === null || _res3 === void 0 ? void 0 : _res3.data);
|
|
|
case 5:
|
|
|
case "end":
|
|
|
return _context21.stop();
|
|
|
}
|
|
|
}, _callee21);
|
|
|
}));
|
|
|
return _onAddVncTime.apply(this, arguments);
|
|
|
}
|
|
|
var leftPanelWidth = '80px';
|
|
|
var rightPanelWidth = "calc(100vw - 4px - ".concat(leftPanelWidth, ")");
|
|
|
var leftPanelOption = defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()({
|
|
|
game: game,
|
|
|
taskId: taskId,
|
|
|
user_praise: user_praise,
|
|
|
praise_count: praise_count,
|
|
|
st: st,
|
|
|
challenge: challenge,
|
|
|
rank_name: taskData.rank_name,
|
|
|
shixun: shixun,
|
|
|
is_teacher: is_teacher,
|
|
|
has_answer: has_answer,
|
|
|
unity_3d_routes: unity_3d_routes,
|
|
|
with_code_file: with_code_file,
|
|
|
onEvaluateCallback: onEvaluateCallback,
|
|
|
onGetUnity3dMessage: onGetUnity3dMessage
|
|
|
}, "taskId", taskId), "myshixun", myshixun), "user", user), "discusses_count", discusses_count), "onPlusOrCancelPraise", onPlusOrCancelPraise), "minuxUserGrade", minuxUserGrade), "taskData", taskData);
|
|
|
var noticeOption = {
|
|
|
showNotice: showNotice || (tpm_cases_modified || isUpdateScript) && myshixun.system_tip === false,
|
|
|
tpm_cases_modified: tpm_cases_modified,
|
|
|
tpm_modified: tpm_modified,
|
|
|
tpm_script_modified: tpm_script_modified,
|
|
|
st: st,
|
|
|
taskId: taskId,
|
|
|
myshixunId: (myshixun || {}).id,
|
|
|
onNextCallback: onNextCallback,
|
|
|
onUpdateCallback: onUpdateCallback,
|
|
|
onUpdateFailure: onUpdateFailure
|
|
|
};
|
|
|
var evaluateResultOption = objectSpread2_default()(objectSpread2_default()({}, evalData), {}, {
|
|
|
isPictureView: isPictureView,
|
|
|
history: history,
|
|
|
webDisplayUrl: webDisplayUrl,
|
|
|
onShowPictureView: onShowPictureView,
|
|
|
star: game && game.star,
|
|
|
onStarChange: onSaveTaskStar,
|
|
|
onCloseResult: onCloseResult
|
|
|
});
|
|
|
var repositoryOption = {
|
|
|
lastedGetTaskInfoTime: lastedGetTaskInfoTime,
|
|
|
isEditPath: isEditPath,
|
|
|
taskData: taskData,
|
|
|
codeRepData: codeRepData,
|
|
|
moveY: moveY,
|
|
|
evaluateMessage: evaluateMessage,
|
|
|
evaluateLoading: evaluateLoading,
|
|
|
isNotice: isNotice,
|
|
|
isHtml: isHtml,
|
|
|
onChangePath: onChangePath,
|
|
|
onResizeSetContainer: onResizeSetContainer,
|
|
|
onEditRepCode: onEditRepCode,
|
|
|
onUpdateCode: onUpdateCode,
|
|
|
onResizeYStart: onResizeYStart,
|
|
|
onShowDir: onShowDir,
|
|
|
onResetCode: onResetCode,
|
|
|
onResetGitCode: onResetGitCode,
|
|
|
onResizeCodeArea: onResizeCodeArea,
|
|
|
onResetPassedCode: onResetPassedCode,
|
|
|
onFinishDisplayHtml: onFinishDisplayHtml,
|
|
|
onShowNotice: onShowNotice
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(_react_17_0_2_react.Fragment, {
|
|
|
children: !loading ? /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "task-wrapper",
|
|
|
children: [showDragMask && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "draging-mask"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(header, {
|
|
|
difficulty: challenge === null || challenge === void 0 ? void 0 : challenge.difficulty,
|
|
|
mirror_description: mirror_description,
|
|
|
history: history,
|
|
|
git_url: git_url,
|
|
|
shixun: shixun,
|
|
|
taskData: taskData,
|
|
|
lastedGetTaskInfoTime: lastedGetTaskInfoTime,
|
|
|
onAddVncTime: onAddVncTime,
|
|
|
taskId: taskId,
|
|
|
isNotice: isNotice,
|
|
|
resetVncLoading: resetVncLoading,
|
|
|
onResetVnc: onResetVnc,
|
|
|
onResetGitCode: onResetGitCode,
|
|
|
vnc_url: vnc_url,
|
|
|
linux_vnc: taskData === null || taskData === void 0 ? void 0 : taskData.linux_vnc,
|
|
|
window_vnc_url: (taskData === null || taskData === void 0 ? void 0 : taskData.windows_vnc) || (taskData === null || taskData === void 0 ? void 0 : taskData.virtual_machine),
|
|
|
remaining_time: taskData === null || taskData === void 0 ? void 0 : taskData.remaining_time,
|
|
|
onShowNotice: onShowNotice,
|
|
|
game: game,
|
|
|
user: user,
|
|
|
st: st,
|
|
|
onUpdateCode: onUpdateCode,
|
|
|
onUpdateCostTime: onUpdateCostTime,
|
|
|
unity_3d_routes: unity_3d_routes && !with_code_file || (challenge === null || challenge === void 0 ? void 0 : challenge.thiry_party)
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "tasks-body2",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("section", {
|
|
|
className: "left-panel",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("ul", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
|
|
|
onClick: function onClick() {
|
|
|
return setShowTab(1);
|
|
|
},
|
|
|
className: showTab == 1 ? 'on' : '',
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "iconfont icon-huanjing"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: "\u73AF\u5883"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
|
|
|
onClick: function onClick() {
|
|
|
return setShowTab(2);
|
|
|
},
|
|
|
className: showTab == 2 ? 'on' : '',
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "iconfont icon-shujuwajue"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: "\u6570\u636E\u96C6"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
|
|
|
onClick: function onClick() {
|
|
|
return setShowTab(3);
|
|
|
},
|
|
|
className: showTab == 3 ? 'on' : '',
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "iconfont icon-a-chengyuan1"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: "\u5408\u4F5C\u8005"
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
|
id: "task-right-panel",
|
|
|
className: "right-panel ".concat(vnc_url || taskData !== null && taskData !== void 0 && taskData.windows_vnc || taskData !== null && taskData !== void 0 && taskData.linux_vnc || taskData !== null && taskData !== void 0 && taskData.virtual_machine ? 'vnc' : ''),
|
|
|
style: {
|
|
|
width: rightPanelWidth,
|
|
|
minWidth: '500px'
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
height: '100%'
|
|
|
// , overflow: 'auto'
|
|
|
},
|
|
|
className: showTab === 1 ? '' : 'hide',
|
|
|
children: [taskData.mirror_type === 'webssh' && /*#__PURE__*/(0,jsx_runtime.jsx)(xterm_panel, {
|
|
|
sshConfigData: taskData || {},
|
|
|
sid: 1
|
|
|
}), taskData.mirror_type === 'graph' && /*#__PURE__*/(0,jsx_runtime.jsx)(vnc_view, {
|
|
|
taskData: taskData,
|
|
|
evaluateMessage: evaluateMessage,
|
|
|
language: language,
|
|
|
evaluateLoading: evaluateLoading,
|
|
|
onEval: props.onEvalCode
|
|
|
}), (taskData.mirror_type === 'jupyterlab' || taskData.mirror_type === 'jupyternotebook') && /*#__PURE__*/(0,jsx_runtime.jsx)(Jupyter, {
|
|
|
taskData: taskData,
|
|
|
evaluateMessage: evaluateMessage,
|
|
|
language: language,
|
|
|
evaluateLoading: evaluateLoading,
|
|
|
onEval: props.onEvalCode
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: showTab === 2 ? 'data_env_lists' : 'hide',
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "data_header",
|
|
|
children: ["\u6570\u636E\u96C6 \uFF08", datas === null || datas === void 0 ? void 0 : datas.data_count, "\uFF09"]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
padding: 20
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(DataSetPane/* default */.Z, {
|
|
|
detail: datas
|
|
|
})
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: showTab === 3 ? 'data_env_lists' : 'hide',
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(Collaborate/* default */.Z, {})
|
|
|
})
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(drawer/* default */.Z, {
|
|
|
rootClassName: "setting-drawer",
|
|
|
title: null,
|
|
|
placement: "right",
|
|
|
width: 400,
|
|
|
closable: false,
|
|
|
open: showDocuments,
|
|
|
onClose: onHideDocuments,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(DirectoryTree, {
|
|
|
className: "dir-tree",
|
|
|
selectedKeys: ["".concat(currentPath)],
|
|
|
treeData: repos,
|
|
|
onSelect: onSelectRepo,
|
|
|
loadData: onLoadTreeData
|
|
|
})
|
|
|
})
|
|
|
})]
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)(Spinner/* default */.Z, {
|
|
|
message: "\u52AA\u529B\u8BF7\u6C42\u6570\u636E\u4E2D..",
|
|
|
className: "tpi-spin"
|
|
|
})
|
|
|
});
|
|
|
});
|
|
|
function UnLockTestTip(_ref6) {
|
|
|
var is_teacher = _ref6.is_teacher,
|
|
|
score = _ref6.score;
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(_react_17_0_2_react.Fragment, {
|
|
|
children: is_teacher ? /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: "\u5DF2\u7ECF\u8FC7\u804C\u4E1A\u8BA4\u8BC1\u7684\u6559\u5E08\u53EF\u4EE5\u514D\u91D1\u5E01\u67E5\u770B\u9690\u85CF\u6D4B\u8BD5\u96C6\u3002"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: "\u89E3\u9501\u672C\u5173\u6240\u6709\u6D4B\u8BD5\u96C6\u9700\u8981\u6263\u9664".concat(score * 2, "\u91D1\u5E01\uFF0C\u786E\u5B9A\u8981\u89E3\u9501\u5417\uFF1F")
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
href: "/account/certification",
|
|
|
"class": "to-certification-link",
|
|
|
target: "_blank",
|
|
|
children: "\u7ACB\u5373\u8BA4\u8BC1"
|
|
|
})]
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: "\u89E3\u9501\u672C\u5173\u6240\u6709\u6D4B\u8BD5\u96C6\u9700\u8981\u6263\u9664".concat(score * 2, "\u91D1\u5E01\uFF0C\u786E\u5B9A\u8981\u89E3\u9501\u5417\uFF1F")
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
function ResizeIcon(_ref7) {
|
|
|
var noDragging = _ref7.noDragging,
|
|
|
moveX = _ref7.moveX,
|
|
|
vnc_url = _ref7.vnc_url;
|
|
|
return /*#__PURE__*/_jsx(Fragment, {
|
|
|
children: noDragging ? /*#__PURE__*/_jsx("a", {
|
|
|
className: "trapezoid ".concat(moveX === 0.01 ? 'enlarge' : ''),
|
|
|
children: /*#__PURE__*/_jsx("img", {
|
|
|
src: moveX === 0.01 ? resizeEnlargeUrl : resizeSmallUrl,
|
|
|
alt: "resize-icon",
|
|
|
width: 20
|
|
|
})
|
|
|
}) : /*#__PURE__*/_jsx("a", {
|
|
|
className: "btn-resize",
|
|
|
draggable: false,
|
|
|
children: /*#__PURE__*/_jsx("svg", {
|
|
|
width: "16",
|
|
|
height: "13",
|
|
|
viewBox: "0 0 16 13",
|
|
|
draggable: false,
|
|
|
children: /*#__PURE__*/_jsx("path", {
|
|
|
draggable: false,
|
|
|
d: "M12.245 7.53H5.647v1.882h6.598v2.823L16 8.471l-3.755-3.765V7.53zM10.353 4.706H3.755v2.823L0 3.765 3.755 0v2.824h6.598v1.882z"
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 70754:
|
|
|
/*!**************************************************!*\
|
|
|
!*** ./src/pages/MoopCases/FormPanel/service.ts ***!
|
|
|
\**************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ $J: function() { return /* binding */ getMoopCase; },
|
|
|
/* harmony export */ JZ: function() { return /* binding */ removeAttachment; },
|
|
|
/* harmony export */ bN: function() { return /* binding */ updateMoopCase; },
|
|
|
/* harmony export */ jP: function() { return /* binding */ addMoopCase; },
|
|
|
/* harmony export */ rO: function() { return /* binding */ getLibraryTags; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js */ 7557);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js */ 41498);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
/* harmony import */ var _utils_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/fetch */ 49105);
|
|
|
|
|
|
|
|
|
|
|
|
function getMoopCase(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_2__/* .get */ .U2)("libraries/".concat(id, ".json"));
|
|
|
}
|
|
|
function getLibraryTags() {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_2__/* .get */ .U2)('library_tags.json');
|
|
|
}
|
|
|
function removeAttachment(_x) {
|
|
|
return _removeAttachment.apply(this, arguments);
|
|
|
}
|
|
|
function _removeAttachment() {
|
|
|
_removeAttachment = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default()().mark(function _callee(id) {
|
|
|
var response;
|
|
|
return _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
_context.next = 2;
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_2__/* .del */ .IV)("attachments/".concat(id, ".json"));
|
|
|
case 2:
|
|
|
response = _context.sent;
|
|
|
return _context.abrupt("return", response.status === 0);
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return _removeAttachment.apply(this, arguments);
|
|
|
}
|
|
|
function addMoopCase(params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_2__/* .post */ .v_)("libraries.json", params);
|
|
|
}
|
|
|
function updateMoopCase(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_2__/* .put */ .gz)("libraries/".concat(id, ".json"), params);
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 11125:
|
|
|
/*!*****************************!*\
|
|
|
!*** ./src/service/task.ts ***!
|
|
|
\*****************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ Jd: function() { return /* binding */ rebootEsc; },
|
|
|
/* harmony export */ a$: function() { return /* binding */ getDataSets; },
|
|
|
/* harmony export */ dU: function() { return /* binding */ getJupyterData; },
|
|
|
/* harmony export */ fi: function() { return /* binding */ syncCode; },
|
|
|
/* harmony export */ m_: function() { return /* binding */ resetWithTPI; },
|
|
|
/* harmony export */ rB: function() { return /* binding */ activeWithTPI; },
|
|
|
/* harmony export */ rV: function() { return /* binding */ getInfoWithTPI; },
|
|
|
/* harmony export */ x4: function() { return /* binding */ getTimeInfoWithTPI; },
|
|
|
/* harmony export */ zE: function() { return /* binding */ saveWithTPI; }
|
|
|
/* harmony export */ });
|
|
|
/* unused harmony export getLatexFileTree */
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js */ 82242);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js */ 7557);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js */ 41498);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2__);
|
|
|
/* harmony import */ var _utils_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/fetch */ 49105);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function saveWithTPI(_x) {
|
|
|
return _saveWithTPI.apply(this, arguments);
|
|
|
}
|
|
|
function _saveWithTPI() {
|
|
|
_saveWithTPI = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee(params) {
|
|
|
return _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
return _context.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/jupyters/save_with_tpi.json", {
|
|
|
method: 'Get',
|
|
|
params: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return _saveWithTPI.apply(this, arguments);
|
|
|
}
|
|
|
function getJupyterData(_x2) {
|
|
|
return _getJupyterData.apply(this, arguments);
|
|
|
}
|
|
|
function _getJupyterData() {
|
|
|
_getJupyterData = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee2(params) {
|
|
|
return _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
return _context2.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/tasks/".concat(params.identifier, "/jupyter.json"), {
|
|
|
method: 'Get',
|
|
|
params: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return _getJupyterData.apply(this, arguments);
|
|
|
}
|
|
|
function getInfoWithTPI(_x3) {
|
|
|
return _getInfoWithTPI.apply(this, arguments);
|
|
|
}
|
|
|
function _getInfoWithTPI() {
|
|
|
_getInfoWithTPI = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee3(params) {
|
|
|
return _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
return _context3.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/myshixuns/".concat(params.identifier, "/start.json"), {
|
|
|
method: 'Get',
|
|
|
params: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
return _getInfoWithTPI.apply(this, arguments);
|
|
|
}
|
|
|
function getTimeInfoWithTPI(_x4) {
|
|
|
return _getTimeInfoWithTPI.apply(this, arguments);
|
|
|
}
|
|
|
function _getTimeInfoWithTPI() {
|
|
|
_getTimeInfoWithTPI = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee4(params) {
|
|
|
return _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
return _context4.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/jupyters/timeinfo_with_tpi.json", {
|
|
|
method: 'Get',
|
|
|
params: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
}));
|
|
|
return _getTimeInfoWithTPI.apply(this, arguments);
|
|
|
}
|
|
|
function resetWithTPI(_x5) {
|
|
|
return _resetWithTPI.apply(this, arguments);
|
|
|
}
|
|
|
function _resetWithTPI() {
|
|
|
_resetWithTPI = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee5(params) {
|
|
|
return _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee5$(_context5) {
|
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
|
case 0:
|
|
|
return _context5.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/myshixuns/".concat(params.identifier, "/reset_pod.json"), {
|
|
|
method: 'Get'
|
|
|
// params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context5.stop();
|
|
|
}
|
|
|
}, _callee5);
|
|
|
}));
|
|
|
return _resetWithTPI.apply(this, arguments);
|
|
|
}
|
|
|
function activeWithTPI(_x6, _x7) {
|
|
|
return _activeWithTPI.apply(this, arguments);
|
|
|
}
|
|
|
function _activeWithTPI() {
|
|
|
_activeWithTPI = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee6(id, params) {
|
|
|
return _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee6$(_context6) {
|
|
|
while (1) switch (_context6.prev = _context6.next) {
|
|
|
case 0:
|
|
|
return _context6.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/myshixuns/".concat(id, "/active_pod.json"), {
|
|
|
method: 'Get',
|
|
|
params: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context6.stop();
|
|
|
}
|
|
|
}, _callee6);
|
|
|
}));
|
|
|
return _activeWithTPI.apply(this, arguments);
|
|
|
}
|
|
|
function syncCode(_x8) {
|
|
|
return _syncCode.apply(this, arguments);
|
|
|
}
|
|
|
function _syncCode() {
|
|
|
_syncCode = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee7(params) {
|
|
|
var p;
|
|
|
return _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee7$(_context7) {
|
|
|
while (1) switch (_context7.prev = _context7.next) {
|
|
|
case 0:
|
|
|
p = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0___default()({}, params);
|
|
|
delete p.identifier;
|
|
|
return _context7.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/myshixuns/".concat(params.identifier, "/sync_code.json"), {
|
|
|
method: 'Post',
|
|
|
body: p
|
|
|
}));
|
|
|
case 3:
|
|
|
case "end":
|
|
|
return _context7.stop();
|
|
|
}
|
|
|
}, _callee7);
|
|
|
}));
|
|
|
return _syncCode.apply(this, arguments);
|
|
|
}
|
|
|
function getDataSets(_x9) {
|
|
|
return _getDataSets.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
// 重启window 云主机
|
|
|
function _getDataSets() {
|
|
|
_getDataSets = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee8(params) {
|
|
|
return _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee8$(_context8) {
|
|
|
while (1) switch (_context8.prev = _context8.next) {
|
|
|
case 0:
|
|
|
return _context8.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/shixuns/".concat(params.identifier, "/get_data_sets.json"), {
|
|
|
method: 'Get',
|
|
|
params: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context8.stop();
|
|
|
}
|
|
|
}, _callee8);
|
|
|
}));
|
|
|
return _getDataSets.apply(this, arguments);
|
|
|
}
|
|
|
function rebootEsc(_x10) {
|
|
|
return _rebootEsc.apply(this, arguments);
|
|
|
}
|
|
|
function _rebootEsc() {
|
|
|
_rebootEsc = _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_2___default()( /*#__PURE__*/_root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().mark(function _callee9(params) {
|
|
|
return _root_workspace_ppte5yg23_local_v9_test4_node_modules_babel_runtime_7_23_6_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_1___default()().wrap(function _callee9$(_context9) {
|
|
|
while (1) switch (_context9.prev = _context9.next) {
|
|
|
case 0:
|
|
|
return _context9.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/tasks/".concat(params.identifier, "/reboot_esc.json"), {
|
|
|
method: 'post',
|
|
|
body: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context9.stop();
|
|
|
}
|
|
|
}, _callee9);
|
|
|
}));
|
|
|
return _rebootEsc.apply(this, arguments);
|
|
|
}
|
|
|
function getLatexFileTree(_x11) {
|
|
|
return _getLatexFileTree.apply(this, arguments);
|
|
|
}
|
|
|
function _getLatexFileTree() {
|
|
|
_getLatexFileTree = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(params) {
|
|
|
return _regeneratorRuntime().wrap(function _callee10$(_context10) {
|
|
|
while (1) switch (_context10.prev = _context10.next) {
|
|
|
case 0:
|
|
|
return _context10.abrupt("return", Fetch("/api/tasks/".concat(params.taskId, "/get_latex_file_tree.json"), {
|
|
|
method: 'Get',
|
|
|
params: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context10.stop();
|
|
|
}
|
|
|
}, _callee10);
|
|
|
}));
|
|
|
return _getLatexFileTree.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 43539:
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./src/assets/images/uploadImg.svg ***!
|
|
|
\*****************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
/* unused harmony export ReactComponent */
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
|
|
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
|
var __defProp = Object.defineProperty;
|
|
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
|
var __defNormalProp = function __defNormalProp(obj, key, value) {
|
|
|
return key in obj ? __defProp(obj, key, {
|
|
|
enumerable: true,
|
|
|
configurable: true,
|
|
|
writable: true,
|
|
|
value: value
|
|
|
}) : obj[key] = value;
|
|
|
};
|
|
|
var __spreadValues = function __spreadValues(a, b) {
|
|
|
for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
|
if (__getOwnPropSymbols) {
|
|
|
var _iterator = _createForOfIteratorHelper(__getOwnPropSymbols(b)),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var prop = _step.value;
|
|
|
if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
}
|
|
|
return a;
|
|
|
};
|
|
|
|
|
|
var SvgUploadImg = function SvgUploadImg(props) {
|
|
|
return /* @__PURE__ */React.createElement("svg", __spreadValues({
|
|
|
width: 14,
|
|
|
height: 14,
|
|
|
xmlns: "http://www.w3.org/2000/svg"
|
|
|
}, props), /* @__PURE__ */React.createElement("title", null, "\u5F62\u72B6"), /* @__PURE__ */React.createElement("path", {
|
|
|
d: "M10.354 3.5h-2.77v8.167H6.416V3.5H3.646L7 0l3.354 3.5ZM14 7h-1.167v5.833H1.167V7H0v7h14V7Z",
|
|
|
fill: "#3061D0",
|
|
|
fillRule: "nonzero"
|
|
|
}));
|
|
|
};
|
|
|
|
|
|
/* harmony default export */ __webpack_exports__.Z = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjM1NCAzLjVoLTIuNzd2OC4xNjdINi40MTZWMy41SDMuNjQ2TDcgMGwzLjM1NCAzLjVaTTE0IDdoLTEuMTY3djUuODMzSDEuMTY3VjdIMHY3aDE0VjdaIiBmaWxsPSIjMzA2MUQwIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 63955:
|
|
|
/*!****************************************************!*\
|
|
|
!*** ./src/components/tpi-code-setting/index.less ***!
|
|
|
\****************************************************/
|
|
|
/***/ (function() {
|
|
|
|
|
|
"use strict";
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 25769:
|
|
|
/*!**************************************************************************!*\
|
|
|
!*** ./node_modules/_copy-to-clipboard@3.3.3@copy-to-clipboard/index.js ***!
|
|
|
\**************************************************************************/
|
|
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
|
var deselectCurrent = __webpack_require__(/*! toggle-selection */ 98040);
|
|
|
|
|
|
var clipboardToIE11Formatting = {
|
|
|
"text/plain": "Text",
|
|
|
"text/html": "Url",
|
|
|
"default": "Text"
|
|
|
}
|
|
|
|
|
|
var defaultMessage = "Copy to clipboard: #{key}, Enter";
|
|
|
|
|
|
function format(message) {
|
|
|
var copyKey = (/mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl") + "+C";
|
|
|
return message.replace(/#{\s*key\s*}/g, copyKey);
|
|
|
}
|
|
|
|
|
|
function copy(text, options) {
|
|
|
var debug,
|
|
|
message,
|
|
|
reselectPrevious,
|
|
|
range,
|
|
|
selection,
|
|
|
mark,
|
|
|
success = false;
|
|
|
if (!options) {
|
|
|
options = {};
|
|
|
}
|
|
|
debug = options.debug || false;
|
|
|
try {
|
|
|
reselectPrevious = deselectCurrent();
|
|
|
|
|
|
range = document.createRange();
|
|
|
selection = document.getSelection();
|
|
|
|
|
|
mark = document.createElement("span");
|
|
|
mark.textContent = text;
|
|
|
// avoid screen readers from reading out loud the text
|
|
|
mark.ariaHidden = "true"
|
|
|
// reset user styles for span element
|
|
|
mark.style.all = "unset";
|
|
|
// prevents scrolling to the end of the page
|
|
|
mark.style.position = "fixed";
|
|
|
mark.style.top = 0;
|
|
|
mark.style.clip = "rect(0, 0, 0, 0)";
|
|
|
// used to preserve spaces and line breaks
|
|
|
mark.style.whiteSpace = "pre";
|
|
|
// do not inherit user-select (it may be `none`)
|
|
|
mark.style.webkitUserSelect = "text";
|
|
|
mark.style.MozUserSelect = "text";
|
|
|
mark.style.msUserSelect = "text";
|
|
|
mark.style.userSelect = "text";
|
|
|
mark.addEventListener("copy", function(e) {
|
|
|
e.stopPropagation();
|
|
|
if (options.format) {
|
|
|
e.preventDefault();
|
|
|
if (typeof e.clipboardData === "undefined") { // IE 11
|
|
|
debug && console.warn("unable to use e.clipboardData");
|
|
|
debug && console.warn("trying IE specific stuff");
|
|
|
window.clipboardData.clearData();
|
|
|
var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting["default"]
|
|
|
window.clipboardData.setData(format, text);
|
|
|
} else { // all other browsers
|
|
|
e.clipboardData.clearData();
|
|
|
e.clipboardData.setData(options.format, text);
|
|
|
}
|
|
|
}
|
|
|
if (options.onCopy) {
|
|
|
e.preventDefault();
|
|
|
options.onCopy(e.clipboardData);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
document.body.appendChild(mark);
|
|
|
|
|
|
range.selectNodeContents(mark);
|
|
|
selection.addRange(range);
|
|
|
|
|
|
var successful = document.execCommand("copy");
|
|
|
if (!successful) {
|
|
|
throw new Error("copy command was unsuccessful");
|
|
|
}
|
|
|
success = true;
|
|
|
} catch (err) {
|
|
|
debug && console.error("unable to copy using execCommand: ", err);
|
|
|
debug && console.warn("trying IE specific stuff");
|
|
|
try {
|
|
|
window.clipboardData.setData(options.format || "text", text);
|
|
|
options.onCopy && options.onCopy(window.clipboardData);
|
|
|
success = true;
|
|
|
} catch (err) {
|
|
|
debug && console.error("unable to copy using clipboardData: ", err);
|
|
|
debug && console.error("falling back to prompt");
|
|
|
message = format("message" in options ? options.message : defaultMessage);
|
|
|
window.prompt(message, text);
|
|
|
}
|
|
|
} finally {
|
|
|
if (selection) {
|
|
|
if (typeof selection.removeRange == "function") {
|
|
|
selection.removeRange(range);
|
|
|
} else {
|
|
|
selection.removeAllRanges();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (mark) {
|
|
|
document.body.removeChild(mark);
|
|
|
}
|
|
|
reselectPrevious();
|
|
|
}
|
|
|
|
|
|
return success;
|
|
|
}
|
|
|
|
|
|
module.exports = copy;
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 98040:
|
|
|
/*!************************************************************************!*\
|
|
|
!*** ./node_modules/_toggle-selection@1.0.6@toggle-selection/index.js ***!
|
|
|
\************************************************************************/
|
|
|
/***/ (function(module) {
|
|
|
|
|
|
|
|
|
module.exports = function () {
|
|
|
var selection = document.getSelection();
|
|
|
if (!selection.rangeCount) {
|
|
|
return function () {};
|
|
|
}
|
|
|
var active = document.activeElement;
|
|
|
|
|
|
var ranges = [];
|
|
|
for (var i = 0; i < selection.rangeCount; i++) {
|
|
|
ranges.push(selection.getRangeAt(i));
|
|
|
}
|
|
|
|
|
|
switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML
|
|
|
case 'INPUT':
|
|
|
case 'TEXTAREA':
|
|
|
active.blur();
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
active = null;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
selection.removeAllRanges();
|
|
|
return function () {
|
|
|
selection.type === 'Caret' &&
|
|
|
selection.removeAllRanges();
|
|
|
|
|
|
if (!selection.rangeCount) {
|
|
|
ranges.forEach(function(range) {
|
|
|
selection.addRange(range);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
active &&
|
|
|
active.focus();
|
|
|
};
|
|
|
};
|
|
|
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
}]); |