|
|
"use strict";
|
|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[31169],{
|
|
|
|
|
|
/***/ 66446:
|
|
|
/*!******************************************!*\
|
|
|
!*** ./src/pages/tasks/service/index.js ***!
|
|
|
\******************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ "JW": function() { return /* binding */ setUnity3dStatus; },
|
|
|
/* harmony export */ "Kl": function() { return /* binding */ addVncTime; },
|
|
|
/* harmony export */ "L5": function() { return /* binding */ saveTaskStar; },
|
|
|
/* harmony export */ "MH": function() { return /* binding */ getChooseUnlockAnswer; },
|
|
|
/* harmony export */ "MI": function() { return /* binding */ addMyRepositoryFile; },
|
|
|
/* harmony export */ "Mu": function() { return /* binding */ openSSh; },
|
|
|
/* harmony export */ "OK": function() { return /* binding */ closeSSh; },
|
|
|
/* harmony export */ "Qo": function() { return /* binding */ getCodeGameStatus; },
|
|
|
/* harmony export */ "SO": function() { return /* binding */ fetchPathsTaskList; },
|
|
|
/* harmony export */ "Tf": function() { return /* binding */ resetGitCode; },
|
|
|
/* harmony export */ "XO": function() { return /* binding */ fetchTaskInfo; },
|
|
|
/* harmony export */ "Xy": function() { return /* binding */ codeGameBuild; },
|
|
|
/* harmony export */ "Y0": function() { return /* binding */ plusOrCancelPraise; },
|
|
|
/* harmony export */ "Yv": function() { return /* binding */ stopLogOutput; },
|
|
|
/* harmony export */ "ZH": function() { return /* binding */ commitFiles; },
|
|
|
/* harmony export */ "ZM": function() { return /* binding */ resetWindowsVnc; },
|
|
|
/* harmony export */ "bD": function() { return /* binding */ deleteMyGitFile; },
|
|
|
/* harmony export */ "fA": function() { return /* binding */ closeWindowsVnc; },
|
|
|
/* harmony export */ "g6": function() { return /* binding */ fetchTaskList; },
|
|
|
/* harmony export */ "g7": function() { return /* binding */ moveMyGitFile; },
|
|
|
/* harmony export */ "gT": function() { return /* binding */ fetchPictures; },
|
|
|
/* harmony export */ "gn": function() { return /* binding */ pullFiles; },
|
|
|
/* harmony export */ "h$": function() { return /* binding */ logOutput; },
|
|
|
/* harmony export */ "hG": function() { return /* binding */ resetPassedCode; },
|
|
|
/* harmony export */ "i8": function() { return /* binding */ getRanking; },
|
|
|
/* harmony export */ "j3": function() { return /* binding */ getUnlockAnswer; },
|
|
|
/* harmony export */ "ky": function() { return /* binding */ addWindowsVncTime; },
|
|
|
/* harmony export */ "lH": function() { return /* binding */ getAnswerInfo; },
|
|
|
/* harmony export */ "li": function() { return /* binding */ fetchCode; },
|
|
|
/* harmony export */ "n4": function() { return /* binding */ updateCode; },
|
|
|
/* harmony export */ "o4": function() { return /* binding */ openVmSSh; },
|
|
|
/* harmony export */ "pK": function() { return /* binding */ resetLinuxVnc; },
|
|
|
/* harmony export */ "pU": function() { return /* binding */ fetchRepos; },
|
|
|
/* harmony export */ "qK": function() { return /* binding */ restoreCode; },
|
|
|
/* harmony export */ "rt": function() { return /* binding */ resetVnc; },
|
|
|
/* harmony export */ "s9": function() { return /* binding */ addLinuxVncTime; },
|
|
|
/* harmony export */ "sP": function() { return /* binding */ getChooseAnswerInfo; },
|
|
|
/* harmony export */ "t$": function() { return /* binding */ unlockTestCase; },
|
|
|
/* harmony export */ "zl": function() { return /* binding */ evalateChooseGame; }
|
|
|
/* harmony export */ });
|
|
|
/* unused harmony exports updateCostTime, getNoticeDetail, getMyFileContent */
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js */ 17061);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator.js */ 17156);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/objectSpread2.js */ 42122);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2__);
|
|
|
/* harmony import */ var _utils_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/fetch */ 84519);
|
|
|
/* harmony import */ var _utils_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/util */ 29427);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//判断是否来自教学课堂助教查看实训
|
|
|
var urlParamsAll = (0,_utils_util__WEBPACK_IMPORTED_MODULE_4__/* .getJsonFromUrl */ .oP)();
|
|
|
var urlParams = {};
|
|
|
if (urlParamsAll !== null && urlParamsAll !== void 0 && urlParamsAll.homework_common_id) {
|
|
|
urlParams.homework_common_id = urlParamsAll === null || urlParamsAll === void 0 ? void 0 : urlParamsAll.homework_common_id;
|
|
|
}
|
|
|
if (urlParamsAll !== null && urlParamsAll !== void 0 && urlParamsAll.exercisesId) {
|
|
|
urlParams.exercise_id = urlParamsAll === null || urlParamsAll === void 0 ? void 0 : urlParamsAll.exercisesId;
|
|
|
}
|
|
|
function fetchTaskInfo(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, ".json"), urlParams);
|
|
|
}
|
|
|
function fetchTaskList(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/challenges.json"));
|
|
|
}
|
|
|
function fetchPathsTaskList(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/subject_challenges.json"), params);
|
|
|
}
|
|
|
function saveTaskStar(id, shixunId, star) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/star.json"), {
|
|
|
shixun_id: shixunId,
|
|
|
star: star
|
|
|
});
|
|
|
}
|
|
|
function fetchCode(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/rep_content.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
|
|
|
}
|
|
|
function updateCode(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("myshixuns/".concat(id, "/update_file.json"), params);
|
|
|
}
|
|
|
function restoreCode(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/reset_original_code.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
|
|
|
}
|
|
|
function resetGitCode(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("myshixuns/".concat(id, "/reset_repository.json"), params);
|
|
|
}
|
|
|
function resetPassedCode(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/reset_passed_code.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
|
|
|
}
|
|
|
function codeGameBuild(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/game_build.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
|
|
|
}
|
|
|
function getCodeGameStatus(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/game_status.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
|
|
|
}
|
|
|
function evalateChooseGame(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/choose_build.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({}, params), urlParams));
|
|
|
}
|
|
|
function fetchPictures(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/picture_display.json"), urlParams);
|
|
|
}
|
|
|
function updateCostTime(id, params) {
|
|
|
return get("tasks/".concat(id, "/cost_time.json"), _objectSpread(_objectSpread({}, params), urlParams));
|
|
|
}
|
|
|
function getNoticeDetail(id, params) {
|
|
|
return get("courses/".concat(id, "/inform_detail.json"), params);
|
|
|
}
|
|
|
function plusOrCancelPraise(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/plus_or_cancel_praise.json"));
|
|
|
}
|
|
|
function fetchRepos(id) {
|
|
|
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("myshixuns/".concat(id, "/repository.json"), params);
|
|
|
}
|
|
|
function openSSh(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/start.json"), params || {});
|
|
|
}
|
|
|
function openVmSSh(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/start.json"), params || {});
|
|
|
}
|
|
|
function closeSSh(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/reset_pod.json"));
|
|
|
}
|
|
|
function resetVnc(params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(params.myshixunId, "/reset_pod.json"), {
|
|
|
game_id: params.game_id
|
|
|
});
|
|
|
}
|
|
|
// 所有环境重置都可以使用此方法
|
|
|
function resetWindowsVnc(params) {
|
|
|
// return post(`tasks/${id}/reset_windows_vnc_link.json`);
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(params.myshixunId, "/reset_pod.json"), {
|
|
|
game_id: params.game_id
|
|
|
});
|
|
|
}
|
|
|
function resetLinuxVnc(params) {
|
|
|
var id = params.myshixunId;
|
|
|
delete params.myshixunId;
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/reset_pod.json"), _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2___default()({
|
|
|
game_id: params.game_id
|
|
|
}, params));
|
|
|
}
|
|
|
function unlockTestCase(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/check_test_sets.json"));
|
|
|
}
|
|
|
function getAnswerInfo(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/get_answer_info.json"));
|
|
|
}
|
|
|
function getChooseAnswerInfo(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/get_choose_answer.json"));
|
|
|
}
|
|
|
function getChooseUnlockAnswer(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/unlock_choose_answer.json"));
|
|
|
}
|
|
|
function getUnlockAnswer(id, aid) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/unlock_answer.json"), {
|
|
|
answer_id: aid
|
|
|
});
|
|
|
}
|
|
|
function setUnity3dStatus(id, result, data) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/set_games_status.json"), {
|
|
|
result: result,
|
|
|
data: data
|
|
|
});
|
|
|
}
|
|
|
function addVncTime(id, game_id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/active_pod.json"), {
|
|
|
game_id: game_id
|
|
|
});
|
|
|
}
|
|
|
// 所有延时都改成了此接口,旧接口依旧可用
|
|
|
function addWindowsVncTime(id, game_id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/myshixuns/".concat(id, "/active_pod.json"), {
|
|
|
method: 'get',
|
|
|
params: {
|
|
|
template_id: window.sessionStorage.imageId || '',
|
|
|
game_id: game_id
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function addLinuxVncTime(id, game_id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("myshixuns/".concat(id, "/active_pod.json"), {
|
|
|
game_id: game_id
|
|
|
});
|
|
|
}
|
|
|
function getRanking(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/rank_list.json"), params);
|
|
|
}
|
|
|
function closeWindowsVnc(id, tpi_id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/close_windows_vnc.json"), {
|
|
|
tpi_id: tpi_id
|
|
|
});
|
|
|
}
|
|
|
function commitFiles(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/commit_files.json"));
|
|
|
}
|
|
|
function pullFiles(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/pull_files.json"));
|
|
|
}
|
|
|
function logOutput(id, params) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .post */ .v_)("tasks/".concat(id, "/log_output"), params);
|
|
|
}
|
|
|
function stopLogOutput(id) {
|
|
|
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* .get */ .U2)("tasks/".concat(id, "/stop_log_output.json"));
|
|
|
}
|
|
|
|
|
|
// myshixuns start
|
|
|
function addMyRepositoryFile(_x) {
|
|
|
return _addMyRepositoryFile.apply(this, arguments);
|
|
|
}
|
|
|
function _addMyRepositoryFile() {
|
|
|
_addMyRepositoryFile = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default()().mark(function _callee(params) {
|
|
|
return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
return _context.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/myshixuns/".concat(params.id, "/add_file.json"), {
|
|
|
method: 'post',
|
|
|
body: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return _addMyRepositoryFile.apply(this, arguments);
|
|
|
}
|
|
|
function deleteMyGitFile(_x2) {
|
|
|
return _deleteMyGitFile.apply(this, arguments);
|
|
|
}
|
|
|
function _deleteMyGitFile() {
|
|
|
_deleteMyGitFile = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default()().mark(function _callee2(params) {
|
|
|
return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
return _context2.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/myshixuns/".concat(params.id, "/delete_git_file.json"), {
|
|
|
method: 'Delete',
|
|
|
body: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return _deleteMyGitFile.apply(this, arguments);
|
|
|
}
|
|
|
function moveMyGitFile(_x3) {
|
|
|
return _moveMyGitFile.apply(this, arguments);
|
|
|
}
|
|
|
function _moveMyGitFile() {
|
|
|
_moveMyGitFile = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default()().mark(function _callee3(params) {
|
|
|
return _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_regeneratorRuntime_js__WEBPACK_IMPORTED_MODULE_0___default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
return _context3.abrupt("return", (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP)("/api/myshixuns/".concat(params.id, "/mv_file.json"), {
|
|
|
method: 'post',
|
|
|
body: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
return _moveMyGitFile.apply(this, arguments);
|
|
|
}
|
|
|
function getMyFileContent(_x4) {
|
|
|
return _getMyFileContent.apply(this, arguments);
|
|
|
}
|
|
|
function _getMyFileContent() {
|
|
|
_getMyFileContent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(params) {
|
|
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
return _context4.abrupt("return", Fetch("/api/tasks/".concat(params.id, "/rep_content.json"), {
|
|
|
method: 'get',
|
|
|
params: params
|
|
|
}));
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
}));
|
|
|
return _getMyFileContent.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 12264:
|
|
|
/*!**********************************!*\
|
|
|
!*** ./src/components/modal.tsx ***!
|
|
|
\**********************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ "Z": function() { return /* binding */ Dialog; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck.js */ 56690);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass.js */ 89728);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits.js */ 61655);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2__);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createSuper.js */ 26389);
|
|
|
/* harmony import */ var _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3__);
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ 67294);
|
|
|
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-dom */ 73935);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Dialog = /*#__PURE__*/function (_React$Component) {
|
|
|
_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_inherits_js__WEBPACK_IMPORTED_MODULE_2___default()(Dialog, _React$Component);
|
|
|
var _super = _root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createSuper_js__WEBPACK_IMPORTED_MODULE_3___default()(Dialog);
|
|
|
function Dialog(props) {
|
|
|
var _this;
|
|
|
_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_classCallCheck_js__WEBPACK_IMPORTED_MODULE_0___default()(this, Dialog);
|
|
|
_this = _super.call(this, props);
|
|
|
var doc = window.document;
|
|
|
_this.node = doc.createElement('div');
|
|
|
doc.body.appendChild(_this.node);
|
|
|
return _this;
|
|
|
}
|
|
|
_root_workspace_ppte5yg23_SJ5m_develop_node_modules_babel_runtime_helpers_createClass_js__WEBPACK_IMPORTED_MODULE_1___default()(Dialog, [{
|
|
|
key: "render",
|
|
|
value: function render() {
|
|
|
var children = this.props.children;
|
|
|
return /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_5__.createPortal)(children, this.node);
|
|
|
}
|
|
|
}, {
|
|
|
key: "componentWillUnmount",
|
|
|
value: function componentWillUnmount() {
|
|
|
window.document.body.removeChild(this.node);
|
|
|
}
|
|
|
}]);
|
|
|
return Dialog;
|
|
|
}(react__WEBPACK_IMPORTED_MODULE_4__.Component);
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 43828:
|
|
|
/*!******************************************************************!*\
|
|
|
!*** ./src/pages/tasks/vnc-view/vnc-panel/index.tsx + 3 modules ***!
|
|
|
\******************************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
"Z": function() { return /* binding */ vnc_panel; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/progress/style/index.js + 1 modules
|
|
|
var style = __webpack_require__(57273);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/progress/index.js + 10 modules
|
|
|
var progress = __webpack_require__(97910);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/row/style/index.js
|
|
|
var row_style = __webpack_require__(13062);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/row/index.js
|
|
|
var row = __webpack_require__(71230);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/button/style/index.js + 1 modules
|
|
|
var button_style = __webpack_require__(29913);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/button/index.js
|
|
|
var es_button = __webpack_require__(71577);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/col/style/index.js
|
|
|
var col_style = __webpack_require__(89032);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/col/index.js
|
|
|
var col = __webpack_require__(15746);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/message/style/index.js + 1 modules
|
|
|
var message_style = __webpack_require__(14934);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/message/index.js + 1 modules
|
|
|
var message = __webpack_require__(12461);
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js
|
|
|
var regeneratorRuntime = __webpack_require__(17061);
|
|
|
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/modal/style/index.js + 1 modules
|
|
|
var modal_style = __webpack_require__(35611);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/modal/index.js + 7 modules
|
|
|
var modal = __webpack_require__(85402);
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js
|
|
|
var asyncToGenerator = __webpack_require__(17156);
|
|
|
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js
|
|
|
var createForOfIteratorHelper = __webpack_require__(74704);
|
|
|
var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper);
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(27424);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectSpread2.js
|
|
|
var objectSpread2 = __webpack_require__(42122);
|
|
|
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
|
|
|
// EXTERNAL MODULE: ./node_modules/react/index.js
|
|
|
var react = __webpack_require__(67294);
|
|
|
// EXTERNAL MODULE: ./src/components/Spinner/index.tsx + 1 modules
|
|
|
var Spinner = __webpack_require__(38054);
|
|
|
// EXTERNAL MODULE: ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js
|
|
|
var ResizeObserver_es = __webpack_require__(91033);
|
|
|
// EXTERNAL MODULE: ./src/components/modal.tsx
|
|
|
var components_modal = __webpack_require__(12264);
|
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 8 modules
|
|
|
var _umi_production_exports = __webpack_require__(89214);
|
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
|
var util = __webpack_require__(29427);
|
|
|
// EXTERNAL MODULE: ./node_modules/@novnc/novnc/lib/rfb.js
|
|
|
var rfb = __webpack_require__(2176);
|
|
|
// EXTERNAL MODULE: ./src/components/mediator.js
|
|
|
var mediator = __webpack_require__(91562);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/input/style/index.js + 1 modules
|
|
|
var input_style = __webpack_require__(69463);
|
|
|
// EXTERNAL MODULE: ./node_modules/antd/es/input/index.js + 5 modules
|
|
|
var input = __webpack_require__(75008);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/vnc-view/clipboard-box/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(85893);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/vnc-view/clipboard-box/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var TextArea = input/* default.TextArea */.Z.TextArea;
|
|
|
/* harmony default export */ var clipboard_box = (function (_ref) {
|
|
|
var onCancel = _ref.onCancel,
|
|
|
onSave = _ref.onSave,
|
|
|
content = _ref.content;
|
|
|
var _useState = (0,react.useState)(content),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
value = _useState2[0],
|
|
|
setValue = _useState2[1];
|
|
|
function onChangeValue(e) {
|
|
|
setValue(e.target.value);
|
|
|
}
|
|
|
function onSaveContent() {
|
|
|
onSave(value);
|
|
|
}
|
|
|
(0,react.useEffect)(function () {
|
|
|
setValue(content);
|
|
|
}, [content]);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "clipboard-box",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("h3", {
|
|
|
children: "\u5B9E\u9A8C\u73AF\u5883\u526A\u5207\u677F\uFF1A"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {
|
|
|
value: value,
|
|
|
onChange: onChangeValue,
|
|
|
className: "clipboard"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("b", {
|
|
|
children: " 1.\u4ECE\u5916\u90E8\u590D\u5236\u5185\u5BB9\u5230\u5B9E\u9A8C\u73AF\u5883\u5185\uFF1A "
|
|
|
}), " \u7C98\u8D34\u5185\u5BB9\u5230\u4E0A\u9762\u6587\u672C\u6846\uFF0C\u70B9\u51FB\u4FDD\u5B58\uFF0C\u7136\u540E\u5728\u5B9E\u9A8C\u73AF\u5883\u4E2D\u8FDB\u884C\u7C98\u8D34\u3002 "]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("p", {
|
|
|
children: [" ", /*#__PURE__*/(0,jsx_runtime.jsx)("b", {
|
|
|
children: " 2.\u83B7\u53D6\u5B9E\u9A8C\u73AF\u5883\u4E2D\u7684\u5185\u5BB9\uFF1A "
|
|
|
}), " \u8BF7\u5148\u5728\u73AF\u5883\u4E2D\u590D\u5236\u5185\u5BB9\uFF0C\u590D\u5236\u52A8\u4F5C\u5B8C\u6210\u540E\u5185\u5BB9\u4F1A\u663E\u793A\u5728\u4E0A\u9762\u6587\u672C\u6846\uFF0C\u7136\u540E\u5728\u4E0A\u9762\u6587\u672C\u6846\u4E2D\u518D\u6B21\u590D\u5236\u3002 "]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "btn-action-container",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, {
|
|
|
type: "ghost",
|
|
|
onClick: onCancel,
|
|
|
style: {
|
|
|
marginRight: 10
|
|
|
},
|
|
|
children: "\u53D6\u6D88"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, {
|
|
|
type: "primary",
|
|
|
onClick: onSaveContent,
|
|
|
children: "\u4FDD\u5B58"
|
|
|
})]
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(84519);
|
|
|
// EXTERNAL MODULE: ./src/pages/tasks/service/index.js
|
|
|
var service = __webpack_require__(66446);
|
|
|
// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/LoadingOutlined.js
|
|
|
var LoadingOutlined = __webpack_require__(79090);
|
|
|
// EXTERNAL MODULE: ./src/utils/fullscreen.ts
|
|
|
var fullscreen = __webpack_require__(15994);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/vnc-view/vnc-panel/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var vnc_panelmodules = ({"selectImage":"selectImage___GffZ_","container":"container___oEpZL"});
|
|
|
// EXTERNAL MODULE: ./node_modules/moment/moment.js
|
|
|
var moment = __webpack_require__(30381);
|
|
|
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/vnc-view/vnc-panel/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var antIcon = /*#__PURE__*/(0,jsx_runtime.jsx)(LoadingOutlined/* default */.Z, {
|
|
|
style: {
|
|
|
fontSize: 24
|
|
|
},
|
|
|
spin: true
|
|
|
});
|
|
|
function unicodeUnEscape(str) {
|
|
|
return str.replace(/\\u([\dA-Za-z]{4})/g, function (_, m1) {
|
|
|
return String.fromCharCode(parseInt("0x" + m1));
|
|
|
});
|
|
|
}
|
|
|
function getJsonFromUrl(url) {
|
|
|
if (!url) url = window.location.search;
|
|
|
var query = url.substr(1);
|
|
|
var result = {};
|
|
|
query.split('&').forEach(function (part) {
|
|
|
var item = part.split('=');
|
|
|
result[item[0]] = decodeURIComponent(item[1]);
|
|
|
});
|
|
|
return result;
|
|
|
}
|
|
|
var initialState = {
|
|
|
loading: true,
|
|
|
isLarge: false,
|
|
|
showClipBoardBox: false,
|
|
|
transferContent: '',
|
|
|
mes: '实验环境准备中'
|
|
|
};
|
|
|
var Types;
|
|
|
(function (Types) {
|
|
|
Types[Types["SET_LOADING"] = 0] = "SET_LOADING";
|
|
|
Types[Types["SET_IS_LARGE"] = 1] = "SET_IS_LARGE";
|
|
|
Types[Types["SET_MES"] = 2] = "SET_MES";
|
|
|
Types[Types["SET_STATE"] = 3] = "SET_STATE";
|
|
|
Types[Types["SHOW_CLIPBOARD_BOX"] = 4] = "SHOW_CLIPBOARD_BOX";
|
|
|
Types[Types["SET_TRANSFER_CONTENT"] = 5] = "SET_TRANSFER_CONTENT";
|
|
|
Types[Types["UPDATE_ALL"] = 6] = "UPDATE_ALL";
|
|
|
})(Types || (Types = {}));
|
|
|
function reducer(state, action) {
|
|
|
switch (action.type) {
|
|
|
case Types.SET_LOADING:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
loading: action.payload
|
|
|
});
|
|
|
case Types.SET_IS_LARGE:
|
|
|
return objectSpread2_default()({}, objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
isLarge: action.payload
|
|
|
}));
|
|
|
case Types.SET_MES:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
mes: action.payload
|
|
|
});
|
|
|
case Types.SET_STATE:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case Types.SET_TRANSFER_CONTENT:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
transferContent: action.payload
|
|
|
});
|
|
|
case Types.SHOW_CLIPBOARD_BOX:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showClipBoardBox: action.payload
|
|
|
});
|
|
|
case Types.UPDATE_ALL:
|
|
|
return objectSpread2_default()({
|
|
|
loading: state.loading
|
|
|
}, action.payload);
|
|
|
default:
|
|
|
throw new Error();
|
|
|
}
|
|
|
}
|
|
|
/* harmony default export */ var vnc_panel = (function (_ref) {
|
|
|
var _taskData$shixun_virt5;
|
|
|
var vnc_url = _ref.vnc_url,
|
|
|
window_vnc_url = _ref.window_vnc_url,
|
|
|
linux_vnc = _ref.linux_vnc,
|
|
|
virtual_machine = _ref.virtual_machine,
|
|
|
myshixunId = _ref.myshixunId,
|
|
|
taskId = _ref.taskId,
|
|
|
taskData = _ref.taskData;
|
|
|
var el = (0,react.useRef)();
|
|
|
var guacaRef = (0,react.useRef)();
|
|
|
var rfbRef = (0,react.useRef)();
|
|
|
var roRef = (0,react.useRef)();
|
|
|
var iframeRef = (0,react.useRef)();
|
|
|
var passwordRef = (0,react.useRef)();
|
|
|
var socketUrlRef = (0,react.useRef)();
|
|
|
var reConnectRef = (0,react.useRef)();
|
|
|
var _useState = (0,react.useState)(),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
imageId = _useState2[0],
|
|
|
setImageId = _useState2[1];
|
|
|
var _useState3 = (0,react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
showImage = _useState4[0],
|
|
|
setShowImage = _useState4[1];
|
|
|
var _useReducer = (0,react.useReducer)(reducer, initialState),
|
|
|
_useReducer2 = slicedToArray_default()(_useReducer, 2),
|
|
|
state = _useReducer2[0],
|
|
|
dispatch = _useReducer2[1];
|
|
|
var _useState5 = (0,react.useState)(0),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
linkNum = _useState6[0],
|
|
|
setLinkNum = _useState6[1];
|
|
|
var mes = state.mes,
|
|
|
loading = state.loading,
|
|
|
showClipBoardBox = state.showClipBoardBox,
|
|
|
isLarge = state.isLarge,
|
|
|
transferContent = state.transferContent;
|
|
|
var _useState7 = (0,react.useState)(0),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
percent = _useState8[0],
|
|
|
setPercent = _useState8[1];
|
|
|
var timeout = (0,react.useRef)();
|
|
|
var params = (0,_umi_production_exports.useParams)();
|
|
|
var paramsd = params;
|
|
|
(0,react.useEffect)(function () {
|
|
|
window.addEventListener("visibilitychange", handleFocus);
|
|
|
return function () {
|
|
|
var _guacaRef$current, _guacaRef$current$dis;
|
|
|
(_guacaRef$current = guacaRef.current) === null || _guacaRef$current === void 0 ? void 0 : (_guacaRef$current$dis = _guacaRef$current.disconnect) === null || _guacaRef$current$dis === void 0 ? void 0 : _guacaRef$current$dis.call(_guacaRef$current);
|
|
|
window.removeEventListener("visibilitychange", handleFocus);
|
|
|
clearTimeout(reConnectRef.current);
|
|
|
};
|
|
|
}, []);
|
|
|
(0,react.useEffect)(function () {
|
|
|
window.sessionStorage.imageId = imageId;
|
|
|
return function () {
|
|
|
window.sessionStorage.removeItem("imageId");
|
|
|
};
|
|
|
}, [imageId]);
|
|
|
var fullChange = function fullChange() {
|
|
|
var _taskData$shixun, _rfbRef$current;
|
|
|
// setIsFull(IsFull())
|
|
|
if ((taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun = taskData.shixun) === null || _taskData$shixun === void 0 ? void 0 : _taskData$shixun.windows_connection_mode) === "rdp") {
|
|
|
setTimeout(function () {
|
|
|
doResize();
|
|
|
}, 1500);
|
|
|
} else if ((rfbRef === null || rfbRef === void 0 ? void 0 : (_rfbRef$current = rfbRef.current) === null || _rfbRef$current === void 0 ? void 0 : _rfbRef$current.resizeSession) !== undefined) {
|
|
|
if ((0,fullscreen/* IsFull */.vp)()) {
|
|
|
rfbRef.current.resizeSession = true;
|
|
|
} else {
|
|
|
setTimeout(function () {
|
|
|
rfbRef.current.resizeSession = false;
|
|
|
}, 900);
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
(0,react.useEffect)(function () {
|
|
|
window.addEventListener("visibilitychange", handleFocus);
|
|
|
document.addEventListener((0,fullscreen/* fullscreenChange */.gH)(), fullChange);
|
|
|
return function () {
|
|
|
document.removeEventListener((0,fullscreen/* fullscreenChange */.gH)(), fullChange);
|
|
|
window.removeEventListener("visibilitychange", handleFocus);
|
|
|
};
|
|
|
}, []);
|
|
|
var handleFocus = function handleFocus(e) {
|
|
|
if (document.visibilityState === 'visible') {
|
|
|
var time = sessionStorage.vncPageLeaveTime;
|
|
|
if (moment_default()(new Date()).diff(moment_default()(time), "minutes") > 2) setLinkNum(new Date().getTime());
|
|
|
sessionStorage.removeItem("vncPageLeaveTime");
|
|
|
} else {
|
|
|
sessionStorage.vncPageLeaveTime = new Date();
|
|
|
}
|
|
|
};
|
|
|
function onCancelClipboardBox() {
|
|
|
dispatch({
|
|
|
type: Types.SHOW_CLIPBOARD_BOX,
|
|
|
payload: false
|
|
|
});
|
|
|
}
|
|
|
function onResizeSet() {
|
|
|
dispatch({
|
|
|
type: Types.SET_IS_LARGE,
|
|
|
payload: !isLarge
|
|
|
});
|
|
|
}
|
|
|
function onLayout(rfb) {
|
|
|
if (el.current) {
|
|
|
roRef.current = new ResizeObserver_es/* default */.Z(function (entries) {
|
|
|
var _iterator = createForOfIteratorHelper_default()(entries),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var _taskData$shixun2;
|
|
|
var entry = _step.value;
|
|
|
if ((taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun2 = taskData.shixun) === null || _taskData$shixun2 === void 0 ? void 0 : _taskData$shixun2.windows_connection_mode) === "rdp") {
|
|
|
doResize();
|
|
|
}
|
|
|
if (entry.target.offsetHeight > 0 || entry.target.offsetWidth > 0) {
|
|
|
var _rfb$_eventHandlers;
|
|
|
rfb === null || rfb === void 0 ? void 0 : (_rfb$_eventHandlers = rfb._eventHandlers) === null || _rfb$_eventHandlers === void 0 ? void 0 : _rfb$_eventHandlers.windowResize();
|
|
|
}
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
});
|
|
|
roRef.current.observe(el.current);
|
|
|
}
|
|
|
return roRef.current;
|
|
|
}
|
|
|
var getWindowVnc = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
|
|
|
var _getJsonFromUrl, _getJsonFromUrl2, _taskData$myshixun, _res$data, _res$data$data_list;
|
|
|
var urlParams, res, _res$data2, _res$data3, _res$data4, _res$data4$cookie_opt;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
urlParams = (_getJsonFromUrl = getJsonFromUrl()) !== null && _getJsonFromUrl !== void 0 && _getJsonFromUrl.homework_common_id ? {
|
|
|
homework_common_id: (_getJsonFromUrl2 = getJsonFromUrl()) === null || _getJsonFromUrl2 === void 0 ? void 0 : _getJsonFromUrl2.homework_common_id
|
|
|
} : {};
|
|
|
_context3.next = 3;
|
|
|
return (0,fetch/* default */.ZP)("/api/myshixuns/".concat(myshixunId || ((_taskData$myshixun = taskData.myshixun) === null || _taskData$myshixun === void 0 ? void 0 : _taskData$myshixun.identifier), "/start.json"), {
|
|
|
method: "get",
|
|
|
params: objectSpread2_default()(objectSpread2_default()(objectSpread2_default()({}, params), urlParams), {}, {
|
|
|
template_id: imageId || "",
|
|
|
taskId: params.taskId || taskId
|
|
|
})
|
|
|
});
|
|
|
case 3:
|
|
|
res = _context3.sent;
|
|
|
if (!(res !== null && res !== void 0 && (_res$data = res.data) !== null && _res$data !== void 0 && (_res$data$data_list = _res$data.data_list) !== null && _res$data$data_list !== void 0 && _res$data$data_list.length)) {
|
|
|
_context3.next = 7;
|
|
|
break;
|
|
|
}
|
|
|
mediator/* default.publish */.Z.publish('pod-restrict-data', {
|
|
|
identifier: res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.identifier,
|
|
|
data_list: res === null || res === void 0 ? void 0 : (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.data_list
|
|
|
});
|
|
|
return _context3.abrupt("return");
|
|
|
case 7:
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) === -3)) {
|
|
|
_context3.next = 9;
|
|
|
break;
|
|
|
}
|
|
|
return _context3.abrupt("return", new Promise( /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2(resolve, reject) {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
modal/* default.confirm */.Z.confirm({
|
|
|
content: "检测到您已经开启了其他实验环境,请先关闭环境后,再连接",
|
|
|
okText: "立即关闭",
|
|
|
cancelText: "稍后关闭",
|
|
|
onOk: function () {
|
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
clearTimeout(timeout.current);
|
|
|
setPercent(0);
|
|
|
_context.next = 4;
|
|
|
return (0,service/* closeWindowsVnc */.fA)(taskId || params.taskId, res === null || res === void 0 ? void 0 : res.message);
|
|
|
case 4:
|
|
|
// resolve(await getWindowVnc());
|
|
|
setLinkNum(linkNum + 1);
|
|
|
return _context.abrupt("return");
|
|
|
case 6:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function (_x, _x2) {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}()));
|
|
|
case 9:
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) === -1)) {
|
|
|
_context3.next = 11;
|
|
|
break;
|
|
|
}
|
|
|
throw new String(res === null || res === void 0 ? void 0 : res.message);
|
|
|
case 11:
|
|
|
if (virtual_machine) {
|
|
|
(0,util/* setCookie */.d8)("PVEAuthCookie", res === null || res === void 0 ? void 0 : (_res$data4 = res.data) === null || _res$data4 === void 0 ? void 0 : (_res$data4$cookie_opt = _res$data4.cookie_options) === null || _res$data4$cookie_opt === void 0 ? void 0 : _res$data4$cookie_opt.cookies_value, 1);
|
|
|
(0,util/* setCookie */.d8)("PVELangCookie", "zh_CN", 1);
|
|
|
}
|
|
|
mediator/* default.publish */.Z.publish('update-windows-time', res === null || res === void 0 ? void 0 : res.data);
|
|
|
return _context3.abrupt("return", res);
|
|
|
case 14:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
return function getWindowVnc() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
function onConnect() {
|
|
|
setPercent(100);
|
|
|
clearTimeout(timeout.current);
|
|
|
setTimeout(function () {
|
|
|
rfbRef.current.resizeSession = false;
|
|
|
dispatch({
|
|
|
type: Types.SET_LOADING,
|
|
|
payload: false
|
|
|
});
|
|
|
}, 1300);
|
|
|
mediator/* default.subscribe */.Z.subscribe('send-ctrl-alt-delete', function () {
|
|
|
var _rfbRef$current2;
|
|
|
(_rfbRef$current2 = rfbRef.current) === null || _rfbRef$current2 === void 0 ? void 0 : _rfbRef$current2.sendCtrlAltDel();
|
|
|
});
|
|
|
}
|
|
|
var toConnect = function toConnect() {
|
|
|
rfbRef.current = new rfb/* default */.Z(el.current, socketUrlRef.current, {
|
|
|
credentials: {
|
|
|
password: passwordRef.current
|
|
|
},
|
|
|
wsProtocols: ['binary'],
|
|
|
resize: "scale",
|
|
|
show_dot: true
|
|
|
});
|
|
|
rfbRef.current.removeEventListener('disconnect', onDisconnect);
|
|
|
rfbRef.current.removeEventListener('connect', onConnect);
|
|
|
rfbRef.current.removeEventListener('clipboard', onClipboardReceive);
|
|
|
roRef.current = onLayout(rfbRef.current);
|
|
|
rfbRef.current.viewOnly = params.view_only || false;
|
|
|
if (window_vnc_url) {
|
|
|
rfbRef.current.scaleViewport = true;
|
|
|
} else {
|
|
|
rfbRef.current.scaleViewport = params.scale || false;
|
|
|
}
|
|
|
rfbRef.current.scaleViewport = params.scale || true;
|
|
|
rfbRef.current.showDotCursor = true;
|
|
|
rfbRef.current.resizeSession = true;
|
|
|
rfbRef.current.addEventListener('disconnect', onDisconnect);
|
|
|
rfbRef.current.addEventListener('connect', onConnect);
|
|
|
rfbRef.current.addEventListener('clipboard', onClipboardReceive);
|
|
|
};
|
|
|
function onClipboardReceive(e) {
|
|
|
var rs = unicodeUnEscape(e.detail.text);
|
|
|
dispatch({
|
|
|
type: Types.SET_TRANSFER_CONTENT,
|
|
|
payload: rs
|
|
|
});
|
|
|
}
|
|
|
function onDisconnect(e) {
|
|
|
if (window_vnc_url) {
|
|
|
message/* default.warn */.ZP.warn('由于长时间未操作,连接失效,正在重新连接Windows VNC服务');
|
|
|
dispatch({
|
|
|
type: Types.SET_LOADING,
|
|
|
payload: true
|
|
|
});
|
|
|
setLinkNum(linkNum + 1);
|
|
|
} else {
|
|
|
clearTimeout(reConnectRef.current);
|
|
|
if (loading) return;
|
|
|
reConnectRef.current = setTimeout(function () {
|
|
|
// toConnect()
|
|
|
setLinkNum(linkNum + 1);
|
|
|
}, 6000);
|
|
|
}
|
|
|
}
|
|
|
(0,react.useEffect)(function () {
|
|
|
mediator/* default.subscribe */.Z.subscribe('reset-linux-windows-loading', function () {
|
|
|
dispatch({
|
|
|
type: Types.SET_LOADING,
|
|
|
payload: true
|
|
|
});
|
|
|
});
|
|
|
mediator/* default.subscribe */.Z.subscribe('reset-linux-windos-vnc', function () {
|
|
|
setLinkNum(linkNum + 1);
|
|
|
});
|
|
|
if ((window_vnc_url || vnc_url || linux_vnc || virtual_machine && imageId) && el.current) {
|
|
|
var _taskData$shixun3;
|
|
|
clearTimeout(timeout.current);
|
|
|
if ((taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun3 = taskData.shixun) === null || _taskData$shixun3 === void 0 ? void 0 : _taskData$shixun3.windows_connection_mode) === "rdp") {
|
|
|
doResize();
|
|
|
}
|
|
|
new Promise( /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
|
|
|
var _taskData$shixun4;
|
|
|
var params, res, _res$data5, _res$data6, _res$data7, urlParser, protocol, searchParams, host, _taskData$myshixun2;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
params = getJsonFromUrl();
|
|
|
_context4.next = 3;
|
|
|
return getWindowVnc();
|
|
|
case 3:
|
|
|
res = _context4.sent;
|
|
|
if (!(linux_vnc || virtual_machine)) {
|
|
|
_context4.next = 10;
|
|
|
break;
|
|
|
}
|
|
|
iframeRef.current.src = (res === null || res === void 0 ? void 0 : (_res$data5 = res.data) === null || _res$data5 === void 0 ? void 0 : _res$data5.link_url) + '&time=' + Date.now();
|
|
|
dispatch({
|
|
|
type: Types.SET_STATE,
|
|
|
payload: {
|
|
|
loading: false,
|
|
|
mes: '实验环境重置中'
|
|
|
}
|
|
|
});
|
|
|
return _context4.abrupt("return");
|
|
|
case 10:
|
|
|
if (window_vnc_url) {
|
|
|
passwordRef.current = 'Edu123';
|
|
|
socketUrlRef.current = decodeURIComponent(res === null || res === void 0 ? void 0 : (_res$data6 = res.data) === null || _res$data6 === void 0 ? void 0 : _res$data6.link_url);
|
|
|
} else {
|
|
|
urlParser = new URL(decodeURIComponent(res === null || res === void 0 ? void 0 : (_res$data7 = res.data) === null || _res$data7 === void 0 ? void 0 : _res$data7.link_url)); //no IE11 support
|
|
|
protocol = urlParser.protocol, searchParams = urlParser.searchParams, host = urlParser.host;
|
|
|
passwordRef.current = searchParams.get('password');
|
|
|
socketUrlRef.current = "".concat(protocol === 'https:' ? 'wss' : 'ws', "://").concat(host, "/").concat(params.path || 'websockify');
|
|
|
}
|
|
|
case 11:
|
|
|
if (!((taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun4 = taskData.shixun) === null || _taskData$shixun4 === void 0 ? void 0 : _taskData$shixun4.windows_connection_mode) === "rdp")) {
|
|
|
_context4.next = 17;
|
|
|
break;
|
|
|
}
|
|
|
onLayout();
|
|
|
iframeRef.current.style.cssText = iframeRef.current.style.cssText + "width:1920px;height:1080px;position:initial";
|
|
|
iframeRef.current.src = "/rdp.html?tpiId=".concat(taskData === null || taskData === void 0 ? void 0 : (_taskData$myshixun2 = taskData.myshixun) === null || _taskData$myshixun2 === void 0 ? void 0 : _taskData$myshixun2.id);
|
|
|
dispatch({
|
|
|
type: Types.SET_LOADING,
|
|
|
payload: false
|
|
|
});
|
|
|
return _context4.abrupt("return");
|
|
|
case 17:
|
|
|
toConnect();
|
|
|
case 18:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
})));
|
|
|
var unsub = mediator/* default.subscribe */.Z.subscribe('vnc-reseting', function () {
|
|
|
setPercent(0);
|
|
|
dispatch({
|
|
|
type: Types.SET_STATE,
|
|
|
payload: {
|
|
|
loading: true,
|
|
|
mes: '实验环境重置中'
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
var unSub2 = mediator/* default.subscribe */.Z.subscribe('vnc-enlarge', function (data) {
|
|
|
// if (data) {
|
|
|
// state.isLarge = !state.isLarge;
|
|
|
// }else{
|
|
|
// state.isLarge = true;
|
|
|
// }
|
|
|
// dispatch({
|
|
|
// type: Types.SET_IS_LARGE,
|
|
|
// payload:state.isLarge
|
|
|
// })
|
|
|
});
|
|
|
var unSub3 = mediator/* default.subscribe */.Z.subscribe('show-clipboard-box', function () {
|
|
|
dispatch({
|
|
|
type: Types.SHOW_CLIPBOARD_BOX,
|
|
|
payload: true
|
|
|
});
|
|
|
});
|
|
|
setPercent(0);
|
|
|
return function () {
|
|
|
var _rfbRef$current3, _rfbRef$current4, _rfbRef$current5, _roRef$current;
|
|
|
(_rfbRef$current3 = rfbRef.current) === null || _rfbRef$current3 === void 0 ? void 0 : _rfbRef$current3.removeEventListener('disconnect', onDisconnect);
|
|
|
(_rfbRef$current4 = rfbRef.current) === null || _rfbRef$current4 === void 0 ? void 0 : _rfbRef$current4.removeEventListener('connect', onConnect);
|
|
|
(_rfbRef$current5 = rfbRef.current) === null || _rfbRef$current5 === void 0 ? void 0 : _rfbRef$current5.removeEventListener('clipboard', onClipboardReceive);
|
|
|
unsub();
|
|
|
unSub2();
|
|
|
unSub3();
|
|
|
(_roRef$current = roRef.current) === null || _roRef$current === void 0 ? void 0 : _roRef$current.unobserve(el.current);
|
|
|
};
|
|
|
}
|
|
|
}, [vnc_url, window_vnc_url, linux_vnc, linkNum, imageId]);
|
|
|
(0,react.useEffect)(function () {
|
|
|
var _taskData$shixun_virt, _taskData$shixun_virt4;
|
|
|
if (virtual_machine && (taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun_virt = taskData.shixun_virtual_templates) === null || _taskData$shixun_virt === void 0 ? void 0 : _taskData$shixun_virt.length) === 1) {
|
|
|
var _taskData$shixun_virt2, _taskData$shixun_virt3;
|
|
|
setImageId(taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun_virt2 = taskData.shixun_virtual_templates) === null || _taskData$shixun_virt2 === void 0 ? void 0 : (_taskData$shixun_virt3 = _taskData$shixun_virt2[0]) === null || _taskData$shixun_virt3 === void 0 ? void 0 : _taskData$shixun_virt3.template_id);
|
|
|
} else if (virtual_machine && (taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun_virt4 = taskData.shixun_virtual_templates) === null || _taskData$shixun_virt4 === void 0 ? void 0 : _taskData$shixun_virt4.length) > 1) {
|
|
|
setShowImage(true);
|
|
|
}
|
|
|
}, [virtual_machine]);
|
|
|
function clipboardSend(_x3) {
|
|
|
return _clipboardSend.apply(this, arguments);
|
|
|
}
|
|
|
function _clipboardSend() {
|
|
|
_clipboardSend = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5(content) {
|
|
|
var s, res, _rfbRef$current6;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
|
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
|
case 0:
|
|
|
if (!vnc_url) {
|
|
|
_context5.next = 8;
|
|
|
break;
|
|
|
}
|
|
|
s = content;
|
|
|
_context5.next = 4;
|
|
|
return (0,fetch/* default */.ZP)("/api/tasks/".concat(params.taskId, "/vnc_paste.json"), {
|
|
|
method: "post",
|
|
|
body: {
|
|
|
content: Base64.encode(s)
|
|
|
}
|
|
|
});
|
|
|
case 4:
|
|
|
res = _context5.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
dispatch({
|
|
|
type: Types.SET_TRANSFER_CONTENT,
|
|
|
payload: content
|
|
|
});
|
|
|
message/* default.success */.ZP.success('保存成功!你可以在实验环境中粘贴该内容');
|
|
|
onCancelClipboardBox();
|
|
|
}
|
|
|
_context5.next = 12;
|
|
|
break;
|
|
|
case 8:
|
|
|
(_rfbRef$current6 = rfbRef.current) === null || _rfbRef$current6 === void 0 ? void 0 : _rfbRef$current6.clipboardPasteFrom(content);
|
|
|
dispatch({
|
|
|
type: Types.SET_TRANSFER_CONTENT,
|
|
|
payload: content
|
|
|
});
|
|
|
message/* default.success */.ZP.success('保存成功!你可以在实验环境中粘贴该内容');
|
|
|
onCancelClipboardBox();
|
|
|
case 12:
|
|
|
case "end":
|
|
|
return _context5.stop();
|
|
|
}
|
|
|
}, _callee5);
|
|
|
}));
|
|
|
return _clipboardSend.apply(this, arguments);
|
|
|
}
|
|
|
function doResize() {
|
|
|
// function doResize(event, ui) {
|
|
|
var scale, origin;
|
|
|
scale = Math.min(document.getElementById("task-right-panel").clientWidth / 1920, document.getElementById("task-right-panel").clientHeight / 1260);
|
|
|
iframeRef.current.parentElement.className = "wh1080p";
|
|
|
iframeRef.current.parentElement.style.cssText = "transform:scale(".concat(scale, ");transform-origin:center center");
|
|
|
el.current.style.cssText = "translate(-50%, -50%) " + "scale(" + scale + ")";
|
|
|
}
|
|
|
(0,react.useEffect)(function () {
|
|
|
if (percent == 0) {
|
|
|
clearTimeout(timeout.current);
|
|
|
increase();
|
|
|
}
|
|
|
}, [percent]);
|
|
|
var increase = function increase() {
|
|
|
if (percent > 99) {
|
|
|
percent = 99;
|
|
|
} else {
|
|
|
percent = percent + 1;
|
|
|
timeout.current = setTimeout(function () {
|
|
|
increase();
|
|
|
}, 1500);
|
|
|
}
|
|
|
if (percent < 100) setPercent(percent);
|
|
|
};
|
|
|
var showIframe = (0,react.useMemo)(function () {
|
|
|
var _taskData$shixun5;
|
|
|
if (loading) {
|
|
|
return 'none';
|
|
|
}
|
|
|
if (linux_vnc || virtual_machine || window_vnc_url && (taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun5 = taskData.shixun) === null || _taskData$shixun5 === void 0 ? void 0 : _taskData$shixun5.windows_connection_mode) === "rdp") {
|
|
|
return 'block';
|
|
|
} else {
|
|
|
return 'none';
|
|
|
}
|
|
|
}, [linux_vnc, loading, virtual_machine, window_vnc_url]);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(react.Fragment, {
|
|
|
children: [showImage && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: vnc_panelmodules.selectImage,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
|
|
|
className: vnc_panelmodules.container,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("h1", {
|
|
|
children: "\u9009\u62E9\u89D2\u8272"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("aside", {
|
|
|
children: taskData === null || taskData === void 0 ? void 0 : (_taskData$shixun_virt5 = taskData.shixun_virtual_templates) === null || _taskData$shixun_virt5 === void 0 ? void 0 : _taskData$shixun_virt5.map(function (item, key) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
align: "middle",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
flex: "1",
|
|
|
children: item.template_name
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.Z, {
|
|
|
type: "primary",
|
|
|
onClick: function onClick() {
|
|
|
setImageId(item.template_id);
|
|
|
setShowImage(false);
|
|
|
},
|
|
|
children: "\u5F00\u59CB\u5B9E\u9A8C"
|
|
|
})
|
|
|
})]
|
|
|
}, key);
|
|
|
})
|
|
|
})]
|
|
|
})
|
|
|
}), isLarge && /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
className: "btn-vnc-resize",
|
|
|
onClick: onResizeSet,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tuichuquanping"
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
style: {
|
|
|
width: "100%",
|
|
|
height: "calc(100% - 50px)",
|
|
|
overflow: "hidden",
|
|
|
position: "absolute",
|
|
|
display: showIframe === "block" ? "flex" : "none",
|
|
|
alignItems: "center",
|
|
|
justifyContent: "center",
|
|
|
zIndex: 6
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", {
|
|
|
style: {
|
|
|
position: isLarge ? "fixed" : "absolute",
|
|
|
left: 0,
|
|
|
top: isLarge ? 54 : 40,
|
|
|
width: "100%",
|
|
|
height: "calc(100% - ".concat(isLarge ? "100px" : "45px", ")")
|
|
|
},
|
|
|
frameBorder: "0",
|
|
|
ref: iframeRef,
|
|
|
allowFullScreen: true
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
style: {
|
|
|
position: isLarge ? "fixed" : "absolute",
|
|
|
left: 0,
|
|
|
top: isLarge ? 54 : 40,
|
|
|
zIndex: 5,
|
|
|
width: "100%",
|
|
|
height: "calc(100% - ".concat(isLarge ? "100px" : "45px", ")")
|
|
|
},
|
|
|
className: "".concat(window_vnc_url ? "vnc-panel-wrapper-windows" : "vnc-panel-wrapper", " ").concat(isLarge ? 'full-screen' : ''),
|
|
|
children: [loading ? /*#__PURE__*/(0,jsx_runtime.jsx)(Spinner/* default */.Z, {
|
|
|
message: mes,
|
|
|
style: {
|
|
|
color: '#0152d9'
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "tc",
|
|
|
style: {
|
|
|
width: 500,
|
|
|
margin: "0 auto",
|
|
|
color: "#FFF"
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(progress/* default */.Z, {
|
|
|
percent: percent,
|
|
|
format: function format(p) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "c-white",
|
|
|
children: [p, "%"]
|
|
|
});
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
}) : null, /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
ref: el,
|
|
|
className: "vnc-panel ".concat(loading ? "hidden zIndexf1" : "animated fadeIn")
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(components_modal/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
title: "\u590D\u5236\u7C98\u8D34",
|
|
|
centered: true,
|
|
|
maskClosable: false,
|
|
|
open: showClipBoardBox,
|
|
|
onCancel: onCancelClipboardBox,
|
|
|
footer: null,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(clipboard_box, {
|
|
|
onCancel: onCancelClipboardBox,
|
|
|
onSave: clipboardSend,
|
|
|
content: transferContent
|
|
|
})
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 77441:
|
|
|
/*!***********************************************************!*\
|
|
|
!*** ./src/pages/tasks/xterm-panel/index.jsx + 1 modules ***!
|
|
|
\***********************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
|
|
|
// EXPORTS
|
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
|
"Z": function() { return /* binding */ xterm_panel; }
|
|
|
});
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectSpread2.js
|
|
|
var objectSpread2 = __webpack_require__(42122);
|
|
|
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js
|
|
|
var slicedToArray = __webpack_require__(27424);
|
|
|
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
|
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js
|
|
|
var createForOfIteratorHelper = __webpack_require__(74704);
|
|
|
var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper);
|
|
|
// EXTERNAL MODULE: ./node_modules/react/index.js
|
|
|
var react = __webpack_require__(67294);
|
|
|
// EXTERNAL MODULE: ./node_modules/js-base64/base64.js
|
|
|
var base64 = __webpack_require__(19575);
|
|
|
// EXTERNAL MODULE: ./node_modules/xterm/lib/xterm.js
|
|
|
var xterm = __webpack_require__(12320);
|
|
|
// EXTERNAL MODULE: ./node_modules/xterm/css/xterm.css
|
|
|
var css_xterm = __webpack_require__(89629);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/xterm-panel/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var xterm_panelmodules = ({"xterm-panel":"xterm-panel___XA0p9"});
|
|
|
// EXTERNAL MODULE: ./src/components/mediator.js
|
|
|
var mediator = __webpack_require__(91562);
|
|
|
// EXTERNAL MODULE: ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js
|
|
|
var ResizeObserver_es = __webpack_require__(91033);
|
|
|
// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(85893);
|
|
|
;// CONCATENATED MODULE: ./src/pages/tasks/xterm-panel/index.jsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getColsAndRows(width, height, term) {
|
|
|
var w = term._core._renderService.dimensions.actualCellWidth || 9.5;
|
|
|
var h = term._core._renderService.dimensions.actualCellHeight || 18;
|
|
|
var rows = Math.floor(height / h);
|
|
|
var cols = Math.floor(width / w);
|
|
|
return [cols, rows];
|
|
|
}
|
|
|
function onLayout(term, el) {
|
|
|
var ro = new ResizeObserver_es/* default */.Z(function (entries) {
|
|
|
var _iterator = createForOfIteratorHelper_default()(entries),
|
|
|
_step;
|
|
|
try {
|
|
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
|
var entry = _step.value;
|
|
|
if (entry.target.offsetHeight > 0 || entry.target.offsetWidth > 0) {
|
|
|
var _getColsAndRows = getColsAndRows(entry.target.offsetWidth, entry.target.offsetHeight, term),
|
|
|
_getColsAndRows2 = slicedToArray_default()(_getColsAndRows, 2),
|
|
|
cols = _getColsAndRows2[0],
|
|
|
rows = _getColsAndRows2[1];
|
|
|
console.log('cols, rows', cols, rows);
|
|
|
mediator/* default.publish */.Z.publish('ssh-xterm-resize', {
|
|
|
columns: cols,
|
|
|
rows: rows,
|
|
|
width: entry.target.offsetWidth,
|
|
|
height: entry.target.offsetHeight
|
|
|
});
|
|
|
term.resize(cols, rows);
|
|
|
var data1 = base64.Base64.decode('IA==');
|
|
|
var data = base64.Base64.decode('CBtbSw==');
|
|
|
term.write(data1);
|
|
|
term.write(data);
|
|
|
}
|
|
|
}
|
|
|
} catch (err) {
|
|
|
_iterator.e(err);
|
|
|
} finally {
|
|
|
_iterator.f();
|
|
|
}
|
|
|
});
|
|
|
ro.observe(el);
|
|
|
return ro;
|
|
|
}
|
|
|
var TimeTicket = 30000;
|
|
|
|
|
|
//建立 websockt 来交互
|
|
|
//根据容器大小计算行数和列数并做到自适应
|
|
|
//socket 与 term 需要分开初始化 因为socket 可能重置连接
|
|
|
//mediator 监听消息,如果和id匹配,则建立连接,重置,或关闭连接
|
|
|
|
|
|
/* harmony default export */ var xterm_panel = (function (_ref) {
|
|
|
var sshConfigData = _ref.sshConfigData,
|
|
|
sid = _ref.sid;
|
|
|
var _useState = (0,react.useState)(null),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
term = _useState2[0],
|
|
|
setTerm = _useState2[1];
|
|
|
var link_url = sshConfigData.link_url,
|
|
|
password = sshConfigData.password,
|
|
|
port = sshConfigData.port;
|
|
|
var el = (0,react.useRef)();
|
|
|
var socket = (0,react.useRef)();
|
|
|
var isFirstConnected = (0,react.useRef)(false);
|
|
|
|
|
|
//term init
|
|
|
(0,react.useEffect)(function () {
|
|
|
if (el.current && link_url) {
|
|
|
var _term = new xterm.Terminal({
|
|
|
fontSize: 16,
|
|
|
rendererType: 'dom'
|
|
|
});
|
|
|
_term.open(el.current);
|
|
|
_term.onData(function (data) {
|
|
|
if (socket.current) {
|
|
|
if (socket.current.readyState === 1) {
|
|
|
socket.current.send(JSON.stringify({
|
|
|
tp: 'client',
|
|
|
data: data
|
|
|
}));
|
|
|
mediator/* default.publish */.Z.publish('on-operating-ssh'); //有操作则自动延时
|
|
|
} else {
|
|
|
//断开连接后重连
|
|
|
// socket.current = null
|
|
|
// mediator.publish('create-socket', sid)
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
_term.write('Connecting...');
|
|
|
setTerm(_term);
|
|
|
var ro = onLayout(_term, el.current);
|
|
|
return function () {
|
|
|
_term.dispose();
|
|
|
ro.unobserve(el.current);
|
|
|
};
|
|
|
}
|
|
|
}, [link_url, el.current]);
|
|
|
(0,react.useEffect)(function () {
|
|
|
if (term && link_url) {
|
|
|
var createSocket = function createSocket() {
|
|
|
var socketInstance = new WebSocket(link_url);
|
|
|
socket.current = socketInstance;
|
|
|
socketInstance.onopen = function () {
|
|
|
var container = term.element.parentElement;
|
|
|
if (container) {
|
|
|
var width = container.offsetWidth;
|
|
|
var height = container.offsetHeight;
|
|
|
console.log('init', {
|
|
|
tp: 'init',
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, sshConfigData), {}, {
|
|
|
secret: password,
|
|
|
width: width,
|
|
|
height: height,
|
|
|
rows: term.rows,
|
|
|
columns: term.cols
|
|
|
})
|
|
|
});
|
|
|
socketInstance.send(JSON.stringify({
|
|
|
tp: 'init',
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, sshConfigData), {}, {
|
|
|
secret: password,
|
|
|
width: width,
|
|
|
height: height,
|
|
|
rows: term.rows,
|
|
|
columns: term.cols
|
|
|
})
|
|
|
}));
|
|
|
}
|
|
|
term.focus();
|
|
|
};
|
|
|
socketInstance.onerror = function (error) {
|
|
|
console.log('------in socket error----', error, socketInstance, link_url);
|
|
|
//连接报错后,重新请求资源
|
|
|
// mediator.publish('on-recreate-socket')
|
|
|
};
|
|
|
|
|
|
socketInstance.onmessage = function (event) {
|
|
|
if (!isFirstConnected.current) {
|
|
|
term.write('\r');
|
|
|
// term.focus()
|
|
|
setTimeout(function () {
|
|
|
// term.clear();
|
|
|
}, 1000);
|
|
|
}
|
|
|
isFirstConnected.current = true;
|
|
|
console.log('event:', event);
|
|
|
var data = base64.Base64.decode(event.data.toString());
|
|
|
var w = term._core._renderService.dimensions.actualCellWidth || 9.5;
|
|
|
console.log('data:', data, w, term);
|
|
|
term.write(data);
|
|
|
};
|
|
|
socketInstance.onclose = function (evt) {
|
|
|
if (tid) {
|
|
|
clearInterval(tid);
|
|
|
}
|
|
|
term.write('\r\nconnection closed');
|
|
|
};
|
|
|
};
|
|
|
var tid = setInterval(function () {
|
|
|
if (socket.current) {
|
|
|
socket.current.send(JSON.stringify({
|
|
|
tp: 'h'
|
|
|
}));
|
|
|
}
|
|
|
}, TimeTicket);
|
|
|
var unSubCreate = mediator/* default.subscribe */.Z.subscribe('create-socket', function (id) {
|
|
|
if (sid == id) {
|
|
|
if (socket.current && socket.current.readyState === 1) {
|
|
|
term.focus();
|
|
|
} else {
|
|
|
createSocket();
|
|
|
}
|
|
|
term.focus();
|
|
|
}
|
|
|
});
|
|
|
var unSubClose = mediator/* default.subscribe */.Z.subscribe('close-socket', function (id) {
|
|
|
if (sid === id) {
|
|
|
if (socket.current) {
|
|
|
socket.current.close();
|
|
|
isFirstConnected.current = false;
|
|
|
term.clear();
|
|
|
}
|
|
|
socket.current = null;
|
|
|
}
|
|
|
});
|
|
|
var unSubResize = mediator/* default.subscribe */.Z.subscribe('ssh-xterm-resize', function (option) {
|
|
|
if (socket.current && socket.current.readyState === 1) {
|
|
|
socket.current.send(JSON.stringify({
|
|
|
tp: 'resize',
|
|
|
data: objectSpread2_default()({}, option)
|
|
|
}));
|
|
|
}
|
|
|
});
|
|
|
var unSubAddTime = mediator/* default.subscribe */.Z.subscribe('ssh-add-connect-time', function () {
|
|
|
if (socket.current && socket.current.readyState === 1) {
|
|
|
socket.current.send(JSON.stringify({
|
|
|
tp: 'overtime'
|
|
|
}));
|
|
|
}
|
|
|
});
|
|
|
return function () {
|
|
|
unSubClose();
|
|
|
unSubCreate();
|
|
|
unSubResize();
|
|
|
unSubAddTime();
|
|
|
if (socket.current) {
|
|
|
socket.current.close();
|
|
|
isFirstConnected.current = false;
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
}, [term, link_url, port]);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
ref: el,
|
|
|
className: xterm_panelmodules["xterm-panel"],
|
|
|
children: !link_url ? /*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
style: {
|
|
|
color: '#fff'
|
|
|
},
|
|
|
children: "\u6B63\u5728\u8FDE\u63A5\u547D\u4EE4\u884C\u670D\u52A1..."
|
|
|
}) : null
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 45954:
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./src/pages/tasks/vnc-view/index.less ***!
|
|
|
\*********************************************/
|
|
|
/***/ (function() {
|
|
|
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
}]); |