You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NewEduCoderBuild/31169.async.js

1521 lines
68 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"use strict";
(self["webpackChunk"] = self["webpackChunk"] || []).push([[31169],{
/***/ 66446:
/*!******************************************!*\
!*** ./src/pages/tasks/service/index.js ***!
\******************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "JW": function() { return /* binding */ setUnity3dStatus; },
/* harmony export */ "Kl": function() { return /* binding */ addVncTime; },
/* harmony export */ "L5": function() { return /* binding */ saveTaskStar; },
/* harmony export */ "MH": function() { return /* binding */ getChooseUnlockAnswer; },
/* harmony export */ "MI": function() { return /* binding */ addMyRepositoryFile; },
/* harmony export */ "Mu": function() { return /* binding */ openSSh; },
/* harmony export */ "OK": function() { return /* binding */ closeSSh; },
/* harmony export */ "Qo": function() { return /* binding */ getCodeGameStatus; },
/* harmony export */ "SO": function() { return /* binding */ fetchPathsTaskList; },
/* harmony export */ "Tf": function() { return /* binding */ resetGitCode; },
/* harmony export */ "XO": function() { return /* binding */ fetchTaskInfo; },
/* harmony export */ "Xy": function() { return /* binding */ codeGameBuild; },
/* harmony export */ "Y0": function() { return /* binding */ plusOrCancelPraise; },
/* harmony export */ "Yv": function() { return /* binding */ stopLogOutput; },
/* harmony export */ "ZH": function() { return /* binding */ commitFiles; },
/* harmony export */ "ZM": function() { return /* binding */ resetWindowsVnc; },
/* harmony export */ "bD": function() { return /* binding */ deleteMyGitFile; },
/* harmony export */ "fA": function() { return /* binding */ closeWindowsVnc; },
/* harmony export */ "g6": function() { return /* binding */ fetchTaskList; },
/* harmony export */ "g7": function() { return /* binding */ moveMyGitFile; },
/* harmony export */ "gT": function() { return /* binding */ fetchPictures; },
/* harmony export */ "gn": function() { return /* binding */ pullFiles; },
/* harmony export */ "h$": function() { return /* binding */ logOutput; },
/* harmony export */ "hG": function() { return /* binding */ resetPassedCode; },
/* harmony export */ "i8": function() { return /* binding */ getRanking; },
/* harmony export */ "j3": function() { return /* binding */ getUnlockAnswer; },
/* harmony export */ "ky": function() { return /* binding */ addWindowsVncTime; },
/* harmony export */ "lH": function() { return /* binding */ getAnswerInfo; },
/* harmony export */ "li": function() { return /* binding */ fetchCode; },
/* harmony export */ "n4": function() { return /* binding */ updateCode; },
/* harmony export */ "o4": function() { return /* binding */ openVmSSh; },
/* harmony export */ "pK": function() { return /* binding */ resetLinuxVnc; },
/* harmony export */ "pU": function() { return /* binding */ fetchRepos; },
/* harmony export */ "qK": function() { return /* binding */ restoreCode; },
/* harmony export */ "rt": function() { return /* binding */ resetVnc; },
/* harmony export */ "s9": function() { return /* binding */ addLinuxVncTime; },
/* harmony export */ "sP": function() { return /* binding */ getChooseAnswerInfo; },
/* harmony export */ "t$": function() { return /* binding */ unlockTestCase; },
/* harmony export */ "zl": function() { return /* binding */ evalateChooseGame; }
/* harmony export */ });
/* unused harmony exports updateCostTime, getNoticeDetail, getMyFileContent */
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js */ 17061);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator.js */ 17156);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/objectSpread2.js */ 42122);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _utils_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/fetch */ 84519);
/* harmony import */ var _utils_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/util */ 29427);
//判断是否来自教学课堂助教查看实训
var urlParamsAll = (0,_utils_util__WEBPACK_IMPORTED_MODULE_4__/* .getJsonFromUrl */ .oP)();
var urlParams = {};
if (urlParamsAll !== null && urlParamsAll !== void 0 && urlParamsAll.homework_common_id) {
urlParams.homework_common_id = urlParamsAll === null || urlParamsAll === void 0 ? void 0 : urlParamsAll.homework_common_id;
}
if (urlParamsAll !== null && urlParamsAll !== void 0 && urlParamsAll.exercisesId) {
urlParams.exercise_id = urlParamsAll === null || urlParamsAll === void 0 ? void 0 : urlParamsAll.exercisesId;
}
function fetchTaskInfo(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, ".json"), urlParams);
}
function fetchTaskList(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/challenges.json"));
}
function fetchPathsTaskList(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/subject_challenges.json"), params);
}
function saveTaskStar(id, shixunId, star) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/star.json"), {
shixun_id: shixunId,
star: star
});
}
function fetchCode(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/rep_content.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
}
function updateCode(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("myshixuns/".concat(id, "/update_file.json"), params);
}
function restoreCode(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/reset_original_code.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
}
function resetGitCode(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("myshixuns/".concat(id, "/reset_repository.json"), params);
}
function resetPassedCode(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/reset_passed_code.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
}
function codeGameBuild(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/game_build.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
}
function getCodeGameStatus(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/game_status.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
}
function evalateChooseGame(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/choose_build.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
}
function fetchPictures(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("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,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .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,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("myshixuns/".concat(id, "/repository.json"), params);
}
function openSSh(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/start.json"), params || {});
}
function openVmSSh(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/start.json"), params || {});
}
function closeSSh(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/reset_pod.json"));
}
function resetVnc(params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(params.myshixunId, "/reset_pod.json"), {
game_id: params.game_id
});
}
// 所有环境重置都可以使用此方法
function resetWindowsVnc(params) {
// return post(`tasks/${id}/reset_windows_vnc_link.json`);
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(params.myshixunId, "/reset_pod.json"), {
game_id: params.game_id
});
}
function resetLinuxVnc(params) {
var id = params.myshixunId;
delete params.myshixunId;
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/reset_pod.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({
game_id: params.game_id
}, params));
}
function unlockTestCase(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/check_test_sets.json"));
}
function getAnswerInfo(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/get_answer_info.json"));
}
function getChooseAnswerInfo(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/get_choose_answer.json"));
}
function getChooseUnlockAnswer(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/unlock_choose_answer.json"));
}
function getUnlockAnswer(id, aid) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/unlock_answer.json"), {
answer_id: aid
});
}
function setUnity3dStatus(id, result, data) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/set_games_status.json"), {
result: result,
data: data
});
}
function addVncTime(id, game_id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/active_pod.json"), {
game_id: game_id
});
}
// 所有延时都改成了此接口,旧接口依旧可用
function addWindowsVncTime(id, game_id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/myshixuns/".concat(id, "/active_pod.json"), {
method: 'get',
params: {
template_id: window.sessionStorage.imageId || '',
game_id: game_id
}
});
}
function addLinuxVncTime(id, game_id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/active_pod.json"), {
game_id: game_id
});
}
function getRanking(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/rank_list.json"), params);
}
function closeWindowsVnc(id, tpi_id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/close_windows_vnc.json"), {
tpi_id: tpi_id
});
}
function commitFiles(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/commit_files.json"));
}
function pullFiles(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/pull_files.json"));
}
function logOutput(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/log_output"), params);
}
function stopLogOutput(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/stop_log_output.json"));
}
// myshixuns start
function addMyRepositoryFile(_x) {
return _addMyRepositoryFile.apply(this, arguments);
}
function _addMyRepositoryFile() {
_addMyRepositoryFile = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default()().mark(function _callee(params) {
return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___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/myshixuns/".concat(params.id, "/add_file.json"), {
method: 'post',
body: params
}));
case 1:
case "end":
return _context.stop();
}
}, _callee);
}));
return _addMyRepositoryFile.apply(this, arguments);
}
function deleteMyGitFile(_x2) {
return _deleteMyGitFile.apply(this, arguments);
}
function _deleteMyGitFile() {
_deleteMyGitFile = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default()().mark(function _callee2(params) {
return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___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/myshixuns/".concat(params.id, "/delete_git_file.json"), {
method: 'Delete',
body: params
}));
case 1:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return _deleteMyGitFile.apply(this, arguments);
}
function moveMyGitFile(_x3) {
return _moveMyGitFile.apply(this, arguments);
}
function _moveMyGitFile() {
_moveMyGitFile = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default()().mark(function _callee3(params) {
return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___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.id, "/mv_file.json"), {
method: 'post',
body: params
}));
case 1:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return _moveMyGitFile.apply(this, arguments);
}
function getMyFileContent(_x4) {
return _getMyFileContent.apply(this, arguments);
}
function _getMyFileContent() {
_getMyFileContent = _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/tasks/".concat(params.id, "/rep_content.json"), {
method: 'get',
params: params
}));
case 1:
case "end":
return _context4.stop();
}
}, _callee4);
}));
return _getMyFileContent.apply(this, arguments);
}
/***/ }),
/***/ 12264:
/*!**********************************!*\
!*** ./src/components/modal.tsx ***!
\**********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "Z": function() { return /* binding */ Dialog; }
/* harmony export */ });
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck.js */ 56690);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass.js */ 89728);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits.js */ 61655);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createSuper.js */ 26389);
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ 67294);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-dom */ 73935);
var Dialog = /*#__PURE__*/function (_React$Component) {
_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default()(Dialog, _React$Component);
var _super = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default()(Dialog);
function Dialog(props) {
var _this;
_root_workspace_ppte5yg23_SJ5m_develop_node_modules_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_SJ5m_develop_node_modules_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);
/***/ }),
/***/ 43828:
/*!******************************************************************!*\
!*** ./src/pages/tasks/vnc-view/vnc-panel/index.tsx + 3 modules ***!
\******************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"Z": function() { return /* binding */ vnc_panel; }
});
// EXTERNAL MODULE: ./node_modules/antd/es/progress/style/index.js + 1 modules
var style = __webpack_require__(57273);
// EXTERNAL MODULE: ./node_modules/antd/es/progress/index.js + 10 modules
var progress = __webpack_require__(97910);
// EXTERNAL MODULE: ./node_modules/antd/es/row/style/index.js
var row_style = __webpack_require__(13062);
// EXTERNAL MODULE: ./node_modules/antd/es/row/index.js
var row = __webpack_require__(71230);
// EXTERNAL MODULE: ./node_modules/antd/es/button/style/index.js + 1 modules
var button_style = __webpack_require__(29913);
// EXTERNAL MODULE: ./node_modules/antd/es/button/index.js
var es_button = __webpack_require__(71577);
// EXTERNAL MODULE: ./node_modules/antd/es/col/style/index.js
var col_style = __webpack_require__(89032);
// EXTERNAL MODULE: ./node_modules/antd/es/col/index.js
var col = __webpack_require__(15746);
// EXTERNAL MODULE: ./node_modules/antd/es/message/style/index.js + 1 modules
var message_style = __webpack_require__(14934);
// EXTERNAL MODULE: ./node_modules/antd/es/message/index.js + 1 modules
var message = __webpack_require__(12461);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(17061);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/antd/es/modal/style/index.js + 1 modules
var modal_style = __webpack_require__(35611);
// EXTERNAL MODULE: ./node_modules/antd/es/modal/index.js + 7 modules
var modal = __webpack_require__(85402);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(17156);
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js
var createForOfIteratorHelper = __webpack_require__(74704);
var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(27424);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(42122);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(67294);
// EXTERNAL MODULE: ./src/components/Spinner/index.tsx + 1 modules
var Spinner = __webpack_require__(38054);
// EXTERNAL MODULE: ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js
var ResizeObserver_es = __webpack_require__(91033);
// EXTERNAL MODULE: ./src/components/modal.tsx
var components_modal = __webpack_require__(12264);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 8 modules
var _umi_production_exports = __webpack_require__(89214);
// EXTERNAL MODULE: ./src/utils/util.tsx
var util = __webpack_require__(29427);
// EXTERNAL MODULE: ./node_modules/@novnc/novnc/lib/rfb.js
var rfb = __webpack_require__(2176);
// EXTERNAL MODULE: ./src/components/mediator.js
var mediator = __webpack_require__(91562);
// EXTERNAL MODULE: ./node_modules/antd/es/input/style/index.js + 1 modules
var input_style = __webpack_require__(69463);
// EXTERNAL MODULE: ./node_modules/antd/es/input/index.js + 5 modules
var input = __webpack_require__(75008);
;// CONCATENATED MODULE: ./src/pages/tasks/vnc-view/clipboard-box/index.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(85893);
;// CONCATENATED MODULE: ./src/pages/tasks/vnc-view/clipboard-box/index.tsx
var TextArea = input/* default.TextArea */.Z.TextArea;
/* harmony default export */ var clipboard_box = (function (_ref) {
var onCancel = _ref.onCancel,
onSave = _ref.onSave,
content = _ref.content;
var _useState = (0,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.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 */.Z, {
type: "ghost",
onClick: onCancel,
style: {
marginRight: 10
},
children: "\u53D6\u6D88"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, {
type: "primary",
onClick: onSaveContent,
children: "\u4FDD\u5B58"
})]
})]
});
});
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(84519);
// EXTERNAL MODULE: ./src/pages/tasks/service/index.js
var service = __webpack_require__(66446);
// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/LoadingOutlined.js
var LoadingOutlined = __webpack_require__(79090);
// EXTERNAL MODULE: ./src/utils/fullscreen.ts
var fullscreen = __webpack_require__(15994);
;// CONCATENATED MODULE: ./src/pages/tasks/vnc-view/vnc-panel/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var vnc_panelmodules = ({"selectImage":"selectImage___GffZ_","container":"container___oEpZL"});
// EXTERNAL MODULE: ./node_modules/moment/moment.js
var moment = __webpack_require__(30381);
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
;// CONCATENATED MODULE: ./src/pages/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;
(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";
})(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_virt5;
var vnc_url = _ref.vnc_url,
window_vnc_url = _ref.window_vnc_url,
linux_vnc = _ref.linux_vnc,
virtual_machine = _ref.virtual_machine,
myshixunId = _ref.myshixunId,
taskId = _ref.taskId,
taskData = _ref.taskData;
var el = (0,react.useRef)();
var guacaRef = (0,react.useRef)();
var rfbRef = (0,react.useRef)();
var roRef = (0,react.useRef)();
var iframeRef = (0,react.useRef)();
var passwordRef = (0,react.useRef)();
var socketUrlRef = (0,react.useRef)();
var reConnectRef = (0,react.useRef)();
var _useState = (0,react.useState)(),
_useState2 = slicedToArray_default()(_useState, 2),
imageId = _useState2[0],
setImageId = _useState2[1];
var _useState3 = (0,react.useState)(false),
_useState4 = slicedToArray_default()(_useState3, 2),
showImage = _useState4[0],
setShowImage = _useState4[1];
var _useReducer = (0,react.useReducer)(reducer, initialState),
_useReducer2 = slicedToArray_default()(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
var _useState5 = (0,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.useState)(0),
_useState8 = slicedToArray_default()(_useState7, 2),
percent = _useState8[0],
setPercent = _useState8[1];
var timeout = (0,react.useRef)();
var params = (0,_umi_production_exports.useParams)();
var paramsd = params;
(0,react.useEffect)(function () {
window.addEventListener("visibilitychange", handleFocus);
return function () {
var _guacaRef$current, _guacaRef$current$dis;
(_guacaRef$current = guacaRef.current) === null || _guacaRef$current === void 0 ? void 0 : (_guacaRef$current$dis = _guacaRef$current.disconnect) === null || _guacaRef$current$dis === void 0 ? void 0 : _guacaRef$current$dis.call(_guacaRef$current);
window.removeEventListener("visibilitychange", handleFocus);
clearTimeout(reConnectRef.current);
};
}, []);
(0,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 ? 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 ? 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.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 (moment_default()(new Date()).diff(moment_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) {
if (el.current) {
roRef.current = 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 ? 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 ? void 0 : (_rfb$_eventHandlers = rfb._eventHandlers) === null || _rfb$_eventHandlers === void 0 ? void 0 : _rfb$_eventHandlers.windowResize();
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
});
roRef.current.observe(el.current);
}
return roRef.current;
}
var getWindowVnc = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
var _getJsonFromUrl, _getJsonFromUrl2, _taskData$myshixun, _res$data, _res$data$data_list;
var urlParams, res, _res$data2, _res$data3, _res$data4, _res$data4$cookie_opt;
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/myshixuns/".concat(myshixunId || ((_taskData$myshixun = taskData.myshixun) === null || _taskData$myshixun === void 0 ? void 0 : _taskData$myshixun.identifier), "/start.json"), {
method: "get",
params: objectSpread2_default()(objectSpread2_default()(objectSpread2_default()({}, params), urlParams), {}, {
template_id: imageId || "",
taskId: params.taskId || taskId
})
});
case 3:
res = _context3.sent;
if (!(res !== null && res !== void 0 && (_res$data = res.data) !== null && _res$data !== void 0 && (_res$data$data_list = _res$data.data_list) !== null && _res$data$data_list !== void 0 && _res$data$data_list.length)) {
_context3.next = 7;
break;
}
mediator/* default.publish */.Z.publish('pod-restrict-data', {
identifier: res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.identifier,
data_list: res === null || res === void 0 ? void 0 : (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.data_list
});
return _context3.abrupt("return");
case 7:
if (!((res === null || res === void 0 ? void 0 : res.status) === -3)) {
_context3.next = 9;
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:
modal/* default.confirm */.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 (0,service/* closeWindowsVnc */.fA)(taskId || 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 9:
if (!((res === null || res === void 0 ? void 0 : res.status) === -1)) {
_context3.next = 11;
break;
}
throw new String(res === null || res === void 0 ? void 0 : res.message);
case 11:
if (virtual_machine) {
(0,util/* setCookie */.d8)("PVEAuthCookie", res === null || res === void 0 ? void 0 : (_res$data4 = res.data) === null || _res$data4 === void 0 ? void 0 : (_res$data4$cookie_opt = _res$data4.cookie_options) === null || _res$data4$cookie_opt === void 0 ? void 0 : _res$data4$cookie_opt.cookies_value, 1);
(0,util/* setCookie */.d8)("PVELangCookie", "zh_CN", 1);
}
mediator/* default.publish */.Z.publish('update-windows-time', res === null || res === void 0 ? void 0 : res.data);
return _context3.abrupt("return", res);
case 14:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return function getWindowVnc() {
return _ref2.apply(this, arguments);
};
}();
function onConnect() {
setPercent(100);
clearTimeout(timeout.current);
setTimeout(function () {
rfbRef.current.resizeSession = false;
dispatch({
type: Types.SET_LOADING,
payload: false
});
}, 1300);
mediator/* default.subscribe */.Z.subscribe('send-ctrl-alt-delete', function () {
var _rfbRef$current2;
(_rfbRef$current2 = rfbRef.current) === null || _rfbRef$current2 === void 0 ? void 0 : _rfbRef$current2.sendCtrlAltDel();
});
}
var toConnect = function toConnect() {
rfbRef.current = new rfb/* default */.Z(el.current, socketUrlRef.current, {
credentials: {
password: passwordRef.current
},
wsProtocols: ['binary'],
resize: "scale",
show_dot: true
});
rfbRef.current.removeEventListener('disconnect', onDisconnect);
rfbRef.current.removeEventListener('connect', onConnect);
rfbRef.current.removeEventListener('clipboard', onClipboardReceive);
roRef.current = onLayout(rfbRef.current);
rfbRef.current.viewOnly = params.view_only || false;
if (window_vnc_url) {
rfbRef.current.scaleViewport = true;
} else {
rfbRef.current.scaleViewport = params.scale || false;
}
rfbRef.current.scaleViewport = params.scale || true;
rfbRef.current.showDotCursor = true;
rfbRef.current.resizeSession = true;
rfbRef.current.addEventListener('disconnect', onDisconnect);
rfbRef.current.addEventListener('connect', onConnect);
rfbRef.current.addEventListener('clipboard', onClipboardReceive);
};
function onClipboardReceive(e) {
var rs = unicodeUnEscape(e.detail.text);
dispatch({
type: Types.SET_TRANSFER_CONTENT,
payload: rs
});
}
function onDisconnect(e) {
if (window_vnc_url) {
message/* default.warn */.ZP.warn('由于长时间未操作连接失效正在重新连接Windows VNC服务');
dispatch({
type: Types.SET_LOADING,
payload: true
});
setLinkNum(linkNum + 1);
} else {
clearTimeout(reConnectRef.current);
if (loading) return;
reConnectRef.current = setTimeout(function () {
// toConnect()
setLinkNum(linkNum + 1);
}, 6000);
}
}
(0,react.useEffect)(function () {
mediator/* default.subscribe */.Z.subscribe('reset-linux-windows-loading', function () {
dispatch({
type: Types.SET_LOADING,
payload: true
});
});
mediator/* default.subscribe */.Z.subscribe('reset-linux-windos-vnc', function () {
setLinkNum(linkNum + 1);
});
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 ? 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 _taskData$shixun4;
var params, res, _res$data5, _res$data6, _res$data7, urlParser, protocol, searchParams, host, _taskData$myshixun2;
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
params = getJsonFromUrl();
_context4.next = 3;
return getWindowVnc();
case 3:
res = _context4.sent;
if (!(linux_vnc || virtual_machine)) {
_context4.next = 10;
break;
}
iframeRef.current.src = (res === null || res === void 0 ? void 0 : (_res$data5 = res.data) === null || _res$data5 === void 0 ? void 0 : _res$data5.link_url) + '&time=' + Date.now();
dispatch({
type: Types.SET_STATE,
payload: {
loading: false,
mes: '实验环境重置中'
}
});
return _context4.abrupt("return");
case 10:
if (window_vnc_url) {
passwordRef.current = 'Edu123';
socketUrlRef.current = decodeURIComponent(res === null || res === void 0 ? void 0 : (_res$data6 = res.data) === null || _res$data6 === void 0 ? void 0 : _res$data6.link_url);
} else {
urlParser = new URL(decodeURIComponent(res === null || res === void 0 ? void 0 : (_res$data7 = res.data) === null || _res$data7 === void 0 ? void 0 : _res$data7.link_url)); //no IE11 support
protocol = urlParser.protocol, searchParams = urlParser.searchParams, host = urlParser.host;
passwordRef.current = searchParams.get('password');
socketUrlRef.current = "".concat(protocol === 'https:' ? 'wss' : 'ws', "://").concat(host, "/").concat(params.path || 'websockify');
}
case 11:
if (!((taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun4 = taskData.shixun) === null || _taskData$shixun4 === void 0 ? void 0 : _taskData$shixun4.windows_connection_mode) === "rdp")) {
_context4.next = 17;
break;
}
onLayout();
iframeRef.current.style.cssText = iframeRef.current.style.cssText + "width:1920px;height:1080px;position:initial";
iframeRef.current.src = "/rdp.html?tpiId=".concat(taskData === null || taskData === void 0 ? void 0 : (_taskData$myshixun2 = taskData.myshixun) === null || _taskData$myshixun2 === void 0 ? void 0 : _taskData$myshixun2.id);
dispatch({
type: Types.SET_LOADING,
payload: false
});
return _context4.abrupt("return");
case 17:
toConnect();
case 18:
case "end":
return _context4.stop();
}
}, _callee4);
})));
var unsub = mediator/* default.subscribe */.Z.subscribe('vnc-reseting', function () {
setPercent(0);
dispatch({
type: Types.SET_STATE,
payload: {
loading: true,
mes: '实验环境重置中'
}
});
});
var unSub2 = mediator/* default.subscribe */.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.subscribe */.Z.subscribe('show-clipboard-box', function () {
dispatch({
type: Types.SHOW_CLIPBOARD_BOX,
payload: true
});
});
setPercent(0);
return function () {
var _rfbRef$current3, _rfbRef$current4, _rfbRef$current5, _roRef$current;
(_rfbRef$current3 = rfbRef.current) === null || _rfbRef$current3 === void 0 ? void 0 : _rfbRef$current3.removeEventListener('disconnect', onDisconnect);
(_rfbRef$current4 = rfbRef.current) === null || _rfbRef$current4 === void 0 ? void 0 : _rfbRef$current4.removeEventListener('connect', onConnect);
(_rfbRef$current5 = rfbRef.current) === null || _rfbRef$current5 === void 0 ? void 0 : _rfbRef$current5.removeEventListener('clipboard', onClipboardReceive);
unsub();
unSub2();
unSub3();
(_roRef$current = roRef.current) === null || _roRef$current === void 0 ? void 0 : _roRef$current.unobserve(el.current);
};
}
}, [vnc_url, window_vnc_url, linux_vnc, linkNum, imageId]);
(0,react.useEffect)(function () {
var _taskData$shixun_virt, _taskData$shixun_virt4;
if (virtual_machine && (taskData === null || taskData === void 0 ? 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, _taskData$shixun_virt3;
setImageId(taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun_virt2 = taskData.shixun_virtual_templates) === null || _taskData$shixun_virt2 === void 0 ? void 0 : (_taskData$shixun_virt3 = _taskData$shixun_virt2[0]) === null || _taskData$shixun_virt3 === void 0 ? void 0 : _taskData$shixun_virt3.template_id);
} else if (virtual_machine && (taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun_virt4 = taskData.shixun_virtual_templates) === null || _taskData$shixun_virt4 === void 0 ? void 0 : _taskData$shixun_virt4.length) > 1) {
setShowImage(true);
}
}, [virtual_machine]);
function clipboardSend(_x3) {
return _clipboardSend.apply(this, arguments);
}
function _clipboardSend() {
_clipboardSend = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5(content) {
var s, res, _rfbRef$current6;
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
while (1) switch (_context5.prev = _context5.next) {
case 0:
if (!vnc_url) {
_context5.next = 8;
break;
}
s = content;
_context5.next = 4;
return (0,fetch/* default */.ZP)("/api/tasks/".concat(params.taskId, "/vnc_paste.json"), {
method: "post",
body: {
content: Base64.encode(s)
}
});
case 4:
res = _context5.sent;
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
dispatch({
type: Types.SET_TRANSFER_CONTENT,
payload: content
});
message/* default.success */.ZP.success('保存成功!你可以在实验环境中粘贴该内容');
onCancelClipboardBox();
}
_context5.next = 12;
break;
case 8:
(_rfbRef$current6 = rfbRef.current) === null || _rfbRef$current6 === void 0 ? void 0 : _rfbRef$current6.clipboardPasteFrom(content);
dispatch({
type: Types.SET_TRANSFER_CONTENT,
payload: content
});
message/* default.success */.ZP.success('保存成功!你可以在实验环境中粘贴该内容');
onCancelClipboardBox();
case 12:
case "end":
return _context5.stop();
}
}, _callee5);
}));
return _clipboardSend.apply(this, arguments);
}
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.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.useMemo)(function () {
var _taskData$shixun5;
if (loading) {
return 'none';
}
if (linux_vnc || virtual_machine || window_vnc_url && (taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun5 = taskData.shixun) === null || _taskData$shixun5 === void 0 ? void 0 : _taskData$shixun5.windows_connection_mode) === "rdp") {
return 'block';
} else {
return 'none';
}
}, [linux_vnc, loading, virtual_machine, window_vnc_url]);
return /*#__PURE__*/(0,jsx_runtime.jsxs)(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 ? void 0 : (_taskData$shixun_virt5 = taskData.shixun_virtual_templates) === null || _taskData$shixun_virt5 === void 0 ? void 0 : _taskData$shixun_virt5.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 */.Z, {
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: isLarge ? 54 : 40,
zIndex: 5,
width: "100%",
height: "calc(100% - ".concat(isLarge ? "100px" : "45px", ")")
},
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)(components_modal/* default */.Z, {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(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
})
})
})]
});
});
/***/ }),
/***/ 77441:
/*!***********************************************************!*\
!*** ./src/pages/tasks/xterm-panel/index.jsx + 1 modules ***!
\***********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"Z": function() { return /* binding */ xterm_panel; }
});
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(42122);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(27424);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js
var createForOfIteratorHelper = __webpack_require__(74704);
var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper);
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(67294);
// EXTERNAL MODULE: ./node_modules/js-base64/base64.js
var base64 = __webpack_require__(19575);
// EXTERNAL MODULE: ./node_modules/xterm/lib/xterm.js
var xterm = __webpack_require__(12320);
// EXTERNAL MODULE: ./node_modules/xterm/css/xterm.css
var css_xterm = __webpack_require__(89629);
;// CONCATENATED MODULE: ./src/pages/tasks/xterm-panel/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var xterm_panelmodules = ({"xterm-panel":"xterm-panel___XA0p9"});
// EXTERNAL MODULE: ./src/components/mediator.js
var mediator = __webpack_require__(91562);
// EXTERNAL MODULE: ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js
var ResizeObserver_es = __webpack_require__(91033);
// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(85893);
;// CONCATENATED MODULE: ./src/pages/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) {
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.publish */.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.useState)(null),
_useState2 = slicedToArray_default()(_useState, 2),
term = _useState2[0],
setTerm = _useState2[1];
var link_url = sshConfigData.link_url,
password = sshConfigData.password,
port = sshConfigData.port;
var el = (0,react.useRef)();
var socket = (0,react.useRef)();
var isFirstConnected = (0,react.useRef)(false);
//term init
(0,react.useEffect)(function () {
if (el.current && link_url) {
var _term = new xterm.Terminal({
fontSize: 16,
rendererType: 'dom'
});
_term.open(el.current);
_term.onData(function (data) {
if (socket.current) {
if (socket.current.readyState === 1) {
socket.current.send(JSON.stringify({
tp: 'client',
data: data
}));
mediator/* default.publish */.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.dispose();
ro.unobserve(el.current);
};
}
}, [link_url, el.current]);
(0,react.useEffect)(function () {
if (term && link_url) {
var createSocket = function createSocket() {
var socketInstance = new WebSocket(link_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, link_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.subscribe */.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.subscribe */.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.subscribe */.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.subscribe */.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, link_url, port]);
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: el,
className: xterm_panelmodules["xterm-panel"],
children: !link_url ? /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
style: {
color: '#fff'
},
children: "\u6B63\u5728\u8FDE\u63A5\u547D\u4EE4\u884C\u670D\u52A1..."
}) : null
});
});
/***/ }),
/***/ 45954:
/*!*********************************************!*\
!*** ./src/pages/tasks/vnc-view/index.less ***!
\*********************************************/
/***/ (function() {
// extracted by mini-css-extract-plugin
/***/ })
}]);