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/73718.async.js

1482 lines
67 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([[73718],{
/***/ 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 */ "Jd": function() { return /* binding */ rebootEsc; },
/* 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 */ "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 */ "am": function() { return /* binding */ resetEnvironment; },
/* harmony export */ "bD": function() { return /* binding */ deleteMyGitFile; },
/* harmony export */ "fA": function() { return /* binding */ closeWindowsVnc; },
/* harmony export */ "fY": function() { return /* binding */ getRemainingTime; },
/* 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 */ "lH": function() { return /* binding */ getAnswerInfo; },
/* harmony export */ "li": function() { return /* binding */ fetchCode; },
/* harmony export */ "n4": function() { return /* binding */ updateCode; },
/* harmony export */ "pU": function() { return /* binding */ fetchRepos; },
/* harmony export */ "qK": function() { return /* binding */ restoreCode; },
/* harmony export */ "sA": function() { return /* binding */ startInit; },
/* 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 getNoticeDetail, closeSSh, 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 getRemainingTime(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/get_remaining_time.json"));
}
function fetchPictures(id) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/picture_display.json"), 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 startInit(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/start.json"), params || {});
}
function closeSSh(id) {
return get("myshixuns/".concat(id, "/reset_pod.json"));
}
function resetEnvironment(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/reset_pod.json"), params);
}
// 重启云主机
function rebootEsc(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/tasks/".concat(id, "/reboot_esc.json"), {
method: 'post',
body: 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, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/active_pod.json"), params);
}
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, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/commit_files.json"), params);
}
function pullFiles(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/pull_files.json"), params);
}
function logOutput(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/log_output"), params);
}
function stopLogOutput(id, params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/stop_log_output.json"), params);
}
// 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);
/***/ }),
/***/ 27594:
/*!******************************************************************!*\
!*** ./src/pages/tasks/vnc-view/vnc-panel/index.tsx + 2 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/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/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/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/fullscreen.ts
var fullscreen = __webpack_require__(15994);
// EXTERNAL MODULE: ./src/pages/tasks/service/index.js
var service = __webpack_require__(66446);
// 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: ./src/utils/fetch.ts
var fetch = __webpack_require__(84519);
;// CONCATENATED MODULE: ./src/pages/tasks/vnc-view/vnc-panel/index.tsx
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 vnc_url = _ref.vnc_url,
window_vnc_url = _ref.window_vnc_url,
linux_vnc = _ref.linux_vnc,
virtual_machine = _ref.virtual_machine,
taskData = _ref.taskData,
shixun_environment_id = _ref.shixun_environment_id,
tab_type = _ref.tab_type,
instance_startup_type = _ref.instance_startup_type,
index_tab = _ref.index_tab,
tpi_type = _ref.tpi_type;
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 _useReducer = (0,react.useReducer)(reducer, initialState),
_useReducer2 = slicedToArray_default()(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
var _useState = (0,react.useState)(0),
_useState2 = slicedToArray_default()(_useState, 2),
linkNum = _useState2[0],
setLinkNum = _useState2[1];
var mes = state.mes,
loading = state.loading,
showClipBoardBox = state.showClipBoardBox,
isLarge = state.isLarge,
transferContent = state.transferContent;
var _useState3 = (0,react.useState)(0),
_useState4 = slicedToArray_default()(_useState3, 2),
percent = _useState4[0],
setPercent = _useState4[1];
var timeout = (0,react.useRef)();
var params = (0,_umi_production_exports.useParams)();
(0,react.useEffect)(function () {
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);
clearTimeout(reConnectRef.current);
};
}, []);
var fullChange = function fullChange() {
var _rfbRef$current;
if (instance_startup_type === 2) {
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 () {
document.addEventListener((0,fullscreen/* fullscreenChange */.gH)(), fullChange);
return function () {
document.removeEventListener((0,fullscreen/* fullscreenChange */.gH)(), fullChange);
};
}, []);
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 entry = _step.value;
if (instance_startup_type === 2) {
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 _taskData$myshixun, _res$data, _res$data$data_list;
var 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:
_context3.next = 2;
return (0,service/* startInit */.sA)((_taskData$myshixun = taskData.myshixun) === null || _taskData$myshixun === void 0 ? void 0 : _taskData$myshixun.identifier, objectSpread2_default()(objectSpread2_default()({}, params), {}, {
taskId: params.taskId,
shixun_environment_id: shixun_environment_id,
tab_type: tab_type
}));
case 2:
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 = 6;
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", Promise.reject());
case 6:
if (!((res === null || res === void 0 ? void 0 : res.status) === -3)) {
_context3.next = 8;
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)(params.taskId, res === null || res === void 0 ? void 0 : res.message);
case 4:
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 8:
if (!((res === null || res === void 0 ? void 0 : res.status) === -1)) {
_context3.next = 10;
break;
}
throw new String(res === null || res === void 0 ? void 0 : res.message);
case 10:
if (!((res === null || res === void 0 ? void 0 : res.status) === 0)) {
_context3.next = 15;
break;
}
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);
// mediator.publish('update-windows-time', {remaining_time: 98000})
mediator/* default.publish */.Z.publish('send-tabs-result-data', objectSpread2_default()(objectSpread2_default()({}, res === null || res === void 0 ? void 0 : res.data), {}, {
index_tab: index_tab
}));
return _context3.abrupt("return", res);
case 15:
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.unsubscribe(`send-ctrl-alt-delete-${index_tab}`)
// mediator.subscribe(`send-ctrl-alt-delete-${index_tab}`, () => {
// rfbRef.current?.sendCtrlAltDel()
// message.success('发送成功')
// })
}
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() {
if (window_vnc_url) {
dispatch({
type: Types.SET_LOADING,
payload: true
});
setLinkNum(linkNum + 1);
} else {
clearTimeout(reConnectRef.current);
if (loading) return;
reConnectRef.current = setTimeout(function () {
setLinkNum(linkNum + 1);
}, 6000);
}
}
(0,react.useEffect)(function () {
mediator/* default.subscribe */.Z.subscribe("reset-linux-windows-vnc-".concat(index_tab), function () {
setLinkNum(linkNum + 1);
});
if ((window_vnc_url || vnc_url || linux_vnc || virtual_machine) && el.current) {
clearTimeout(timeout.current);
if (instance_startup_type === 2) {
doResize();
}
new Promise( /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
var params, res, _res$data5, _res$data5$link_url, _res$data6, character, _res$data7, _res$data8, urlParser, protocol, searchParams, host;
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 = 11;
break;
}
character = res !== null && res !== void 0 && (_res$data5 = res.data) !== null && _res$data5 !== void 0 && (_res$data5$link_url = _res$data5.link_url) !== null && _res$data5$link_url !== void 0 && _res$data5$link_url.includes('?') ? "&" : "?";
iframeRef.current.src = (res === null || res === void 0 ? void 0 : (_res$data6 = res.data) === null || _res$data6 === void 0 ? void 0 : _res$data6.link_url) + character + 'time=' + Date.now();
dispatch({
type: Types.SET_LOADING,
payload: false
});
return _context4.abrupt("return");
case 11:
if (window_vnc_url) {
passwordRef.current = 'Edu123';
socketUrlRef.current = decodeURIComponent(res === null || res === void 0 ? void 0 : (_res$data7 = res.data) === null || _res$data7 === void 0 ? void 0 : _res$data7.link_url);
} else {
urlParser = new URL(decodeURIComponent(res === null || res === void 0 ? void 0 : (_res$data8 = res.data) === null || _res$data8 === void 0 ? void 0 : _res$data8.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 12:
if (!(instance_startup_type === 2)) {
_context4.next = 15;
break;
}
setTimeout(function () {
var _taskData$myshixun2;
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, "&envId=").concat(shixun_environment_id, "&tpiType=").concat(tpi_type);
dispatch({
type: Types.SET_LOADING,
payload: false
});
}, 5000);
return _context4.abrupt("return");
case 15:
toConnect();
case 16:
case "end":
return _context4.stop();
}
}, _callee4);
})));
var unsub = mediator/* default.subscribe */.Z.subscribe("vnc-reset-".concat(index_tab), function (text) {
if (text === '取消') {
dispatch({
type: Types.SET_LOADING,
payload: false
});
return;
}
setPercent(0);
dispatch({
type: Types.SET_STATE,
payload: {
loading: true,
mes: text || '实验环境重置中'
}
});
});
var unsub2 = mediator/* default.subscribe */.Z.subscribe("send-ctrl-alt-delete-".concat(index_tab), function () {
var _rfbRef$current2;
(_rfbRef$current2 = rfbRef.current) === null || _rfbRef$current2 === void 0 ? void 0 : _rfbRef$current2.sendCtrlAltDel();
message/* default.success */.ZP.success('发送成功');
});
var unSub3 = mediator/* default.subscribe */.Z.subscribe("show-clipboard-box-".concat(index_tab), 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();
el.current && ((_roRef$current = roRef.current) === null || _roRef$current === void 0 ? void 0 : _roRef$current.unobserve(el.current));
};
}
}, [vnc_url, window_vnc_url, linux_vnc, linkNum, shixun_environment_id, tab_type]);
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),
shixun_environment_id: shixun_environment_id
}
});
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 () {
if (loading) {
return 'none';
}
if (linux_vnc || virtual_machine || window_vnc_url && instance_startup_type === 2) {
return 'block';
} else {
return 'none';
}
}, [linux_vnc, loading, virtual_machine, window_vnc_url]);
return /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
children: [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: "100%",
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 ? 40 : 0,
width: "100%",
height: "calc(100% - ".concat(isLarge ? "100px" : "0px", ")")
},
frameBorder: "0",
ref: iframeRef,
allowFullScreen: true
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
position: isLarge ? "fixed" : "absolute",
left: 0,
top: isLarge ? 40 : 0,
zIndex: 5,
width: "100%",
height: "calc(100% - ".concat(isLarge ? "100px" : "0px", ")")
},
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/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(17061);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// 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/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/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: ./src/pages/tasks/service/index.js
var service = __webpack_require__(66446);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 8 modules
var _umi_production_exports = __webpack_require__(89214);
// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(85893);
;// CONCATENATED MODULE: ./src/pages/tasks/xterm-panel/index.jsx
var TimeTicket = 30000;
//建立 websockt 来交互
//根据容器大小计算行数和列数并做到自适应
//socket 与 term 需要分开初始化 因为socket 可能重置连接
//mediator 监听消息如果和id匹配则建立连接重置或关闭连接
/* harmony default export */ var xterm_panel = (function (_ref) {
var _ref$itemData = _ref.itemData,
itemData = _ref$itemData === void 0 ? {} : _ref$itemData,
game = _ref.game,
myshixun = _ref.myshixun;
var params = (0,_umi_production_exports.useParams)();
var _useState = (0,react.useState)(null),
_useState2 = slicedToArray_default()(_useState, 2),
term = _useState2[0],
setTerm = _useState2[1];
var _useState3 = (0,react.useState)({}),
_useState4 = slicedToArray_default()(_useState3, 2),
sshConfigData = _useState4[0],
setSshConfigData = _useState4[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);
var shixun_environment_id = itemData.shixun_environment_id,
position = itemData.position,
tab_type = itemData.tab_type,
index_tab = itemData.index_tab;
(0,react.useEffect)(function () {
getInitData();
}, []);
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-".concat(index_tab), {
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;
}
function getInitData() {
return _getInitData.apply(this, arguments);
} //term init
function _getInitData() {
_getInitData = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
var _response$data, _response$data$data_l;
var response, _response$data2, _response$data3;
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return (0,service/* startInit */.sA)(myshixun === null || myshixun === void 0 ? void 0 : myshixun.identifier, {
shixun_environment_id: shixun_environment_id,
tab_type: tab_type,
game_id: game.id
});
case 2:
response = _context3.sent;
if (!(response !== null && response !== void 0 && (_response$data = response.data) !== null && _response$data !== void 0 && (_response$data$data_l = _response$data.data_list) !== null && _response$data$data_l !== void 0 && _response$data$data_l.length)) {
_context3.next = 6;
break;
}
mediator/* default.publish */.Z.publish('pod-restrict-data', {
identifier: response === null || response === void 0 ? void 0 : (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.identifier,
data_list: response === null || response === void 0 ? void 0 : (_response$data3 = response.data) === null || _response$data3 === void 0 ? void 0 : _response$data3.data_list
});
return _context3.abrupt("return");
case 6:
if (!((response === null || response === void 0 ? void 0 : response.status) === -3)) {
_context3.next = 8;
break;
}
return _context3.abrupt("return", new Promise( /*#__PURE__*/function () {
var _ref2 = 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.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:
_context.next = 2;
return closeWindowsVnc(params.taskId, response === null || response === void 0 ? void 0 : response.message);
case 2:
init();
return _context.abrupt("return");
case 4:
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 _ref2.apply(this, arguments);
};
}()));
case 8:
if ((response === null || response === void 0 ? void 0 : response.status) === 0) {
mediator/* default.publish */.Z.publish('update-windows-time', response === null || response === void 0 ? void 0 : response.data);
mediator/* default.publish */.Z.publish('send-tabs-result-data', objectSpread2_default()(objectSpread2_default()({}, response === null || response === void 0 ? void 0 : response.data), {}, {
index_tab: index_tab
}));
setSshConfigData(response.data);
setTimeout(function () {
return mediator/* default.publish */.Z.publish("create-socket-".concat(index_tab));
}, 300);
}
case 9:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return _getInitData.apply(this, arguments);
}
(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
}));
}
}
});
_term.write('Connecting...');
setTerm(_term);
var ro = onLayout(_term, el.current);
return function () {
_term.dispose();
el.current && (ro === null || ro === void 0 ? void 0 : 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);
};
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);
};
var tid = setInterval(function () {
if (socket.current) {
var _socket$current;
(_socket$current = socket.current) === null || _socket$current === void 0 ? void 0 : _socket$current.send(JSON.stringify({
tp: 'h'
}));
}
}, TimeTicket);
socketInstance.onclose = function (evt) {
if (tid) {
clearInterval(tid);
}
console.log(tid, 'tid', index_tab);
term.write('\r\nconnection closed');
};
};
var unSubCreate = mediator/* default.subscribe */.Z.subscribe("create-socket-".concat(index_tab), function () {
createSocket();
});
var unSubResize = mediator/* default.subscribe */.Z.subscribe("ssh-xterm-resize-".concat(index_tab), function (option) {
if (socket.current && socket.current.readyState === 1) {
socket.current.send(JSON.stringify({
tp: 'resize',
data: objectSpread2_default()({}, option)
}));
}
});
return function () {
unSubCreate();
unSubResize();
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
/***/ })
}]);