"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 /***/ }) }]);