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