You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
33 KiB
1 line
33 KiB
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[65111],{75742:function(e,n,t){t.d(n,{Z:function(){return u}});var r=t(1565),o=t(59301),c={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"},i=t(68475),s=function(e,n){return o.createElement(i.Z,(0,r.Z)({},e,{ref:n,icon:c}))};var u=o.forwardRef(s)},89136:function(e,n,t){t.d(n,{Z:function(){return u}});var r=t(1565),o=t(59301),c={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"}}]},name:"eye",theme:"outlined"},i=t(68475),s=function(e,n){return o.createElement(i.Z,(0,r.Z)({},e,{ref:n,icon:c}))};var u=o.forwardRef(s)},57391:function(e,n,t){t.d(n,{JW:function(){return z},Jd:function(){return P},Kl:function(){return B},L5:function(){return v},MH:function(){return A},MI:function(){return G},Qo:function(){return k},SO:function(){return m},Tf:function(){return g},XO:function(){return f},Xy:function(){return y},Y0:function(){return T},Ye:function(){return Q},Yv:function(){return W},ZH:function(){return D},am:function(){return Z},bD:function(){return q},eA:function(){return b},fA:function(){return U},fY:function(){return S},g6:function(){return p},g7:function(){return V},gT:function(){return j},gn:function(){return M},h$:function(){return H},hG:function(){return w},i8:function(){return F},j3:function(){return L},lH:function(){return N},li:function(){return h},n4:function(){return _},pU:function(){return C},qK:function(){return x},sA:function(){return O},sP:function(){return R},t$:function(){return I},zl:function(){return E}});var r=t(7557),o=t.n(r),c=t(41498),i=t.n(c),s=t(82242),u=t.n(s),a=t(51136),l=(0,t(6457).oP)(),d={};function f(e,n){return(0,a.U2)("tasks/".concat(e,".json"),u()(u()({},n),d))}function p(e){return(0,a.U2)("myshixuns/".concat(e,"/challenges.json"))}function m(e,n){return(0,a.U2)("myshixuns/".concat(e,"/subject_challenges.json"),n)}function v(e,n,t){return(0,a.U2)("tasks/".concat(e,"/star.json"),{shixun_id:n,star:t})}function h(e,n){return(0,a.U2)("tasks/".concat(e,"/rep_content.json"),u()(u()({},n),d))}function _(e,n){return(0,a.v_)("myshixuns/".concat(e,"/update_file.json"),n)}function x(e,n){return(0,a.U2)("tasks/".concat(e,"/reset_original_code.json"),u()(u()({},n),d))}function g(e,n){return(0,a.v_)("myshixuns/".concat(e,"/reset_repository.json"),n)}function w(e,n){return(0,a.U2)("tasks/".concat(e,"/reset_passed_code.json"),u()(u()({},n),d))}function y(e,n){return(0,a.v_)("tasks/".concat(e,"/game_build.json"),u()(u()({},n),d))}function b(e){return(0,a.ZP)("http://localhost:49352/api/game_build",{method:"post",body:e})}function k(e,n){return(0,a.U2)("tasks/".concat(e,"/game_status.json"),u()(u()({},n),d))}function E(e,n){return(0,a.v_)("tasks/".concat(e,"/choose_build.json"),u()(u()({},n),d))}function S(e){return(0,a.U2)("myshixuns/".concat(e,"/get_remaining_time.json"))}function j(e){return(0,a.U2)("tasks/".concat(e,"/picture_display.json"),d)}function T(e){return(0,a.v_)("tasks/".concat(e,"/plus_or_cancel_praise.json"))}function C(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.v_)("myshixuns/".concat(e,"/repository.json"),n)}function O(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.U2)("myshixuns/".concat(e,"/start.json"),n)}function Z(e,n){return(0,a.U2)("myshixuns/".concat(e,"/reset_pod.json"),n)}function P(e,n){return(0,a.ZP)("/api/tasks/".concat(e,"/reboot_esc.json"),{method:"post",body:n})}function I(e){return(0,a.U2)("tasks/".concat(e,"/check_test_sets.json"))}function N(e){return(0,a.U2)("tasks/".concat(e,"/get_answer_info.json"))}function R(e){return(0,a.U2)("tasks/".concat(e,"/get_choose_answer.json"))}function A(e){return(0,a.U2)("tasks/".concat(e,"/unlock_choose_answer.json"))}function L(e,n){return(0,a.U2)("tasks/".concat(e,"/unlock_answer.json"),{answer_id:n})}function z(e,n,t){return(0,a.v_)("tasks/".concat(e,"/set_games_status.json"),{result:n,data:t})}function B(e,n){return(0,a.U2)("myshixuns/".concat(e,"/active_pod.json"),n)}function F(e,n){return(0,a.U2)("tasks/".concat(e,"/rank_list.json"),n)}function U(e,n){return(0,a.v_)("tasks/".concat(e,"/close_windows_vnc.json"),{tpi_id:n})}function D(e,n){return(0,a.U2)("tasks/".concat(e,"/commit_files.json"),n)}function M(e,n){return(0,a.U2)("tasks/".concat(e,"/pull_files.json"),n)}function H(e,n){return(0,a.v_)("tasks/".concat(e,"/log_output"),n)}function W(e,n){return(0,a.U2)("tasks/".concat(e,"/stop_log_output.json"),n)}function G(e){return $.apply(this,arguments)}function $(){return($=i()(o()().mark((function e(n){return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,a.ZP)("/api/myshixuns/".concat(n.id,"/add_file.json"),{method:"post",body:n}));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function q(e){return X.apply(this,arguments)}function X(){return(X=i()(o()().mark((function e(n){return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,a.ZP)("/api/myshixuns/".concat(n.id,"/delete_git_file.json"),{method:"Delete",body:n}));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function V(e){return J.apply(this,arguments)}function J(){return(J=i()(o()().mark((function e(n){return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,a.ZP)("/api/myshixuns/".concat(n.id,"/mv_file.json"),{method:"post",body:n}));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Q(e,n){return(0,a.ZP)("/api/shixuns/".concat(e,"/set_start_permanent.json"),{method:"put",body:n})}null!=l&&l.homework_common_id&&(d.homework_common_id=null==l?void 0:l.homework_common_id),null!=l&&l.exercisesId&&(d.exercise_id=null==l?void 0:l.exercisesId),console.log(l,d,"urlParamsAll")},96962:function(e,n,t){t.d(n,{Z:function(){return s}});var r=t(7880),o="ldsRing___mpBZC",c="idsRingWrapper___Of9_n",i=t(37712),s=function(e){var n=e.message,t=e.className,s=e.children,u=e.style,a=void 0===u?{}:u;return(0,i.jsxs)("div",{className:"custom-spinner ".concat(c," ").concat(t),children:[(0,i.jsxs)("div",{className:o,children:[(0,i.jsx)("div",{}),(0,i.jsx)("div",{}),(0,i.jsx)("div",{}),(0,i.jsx)("div",{})]}),n?(0,i.jsx)("p",{style:a,children:n}):null,s,(0,i.jsx)(r.Outlet,{})]})}},27308:function(e,n,t){t.d(n,{Z:function(){return p}});var r=t(82100),o=t.n(r),c=t(29186),i=t.n(c),s=t(80619),u=t.n(s),a=t(47074),l=t.n(a),d=t(59301),f=t(4676),p=function(e){u()(t,e);var n=l()(t);function t(e){var r;o()(this,t),r=n.call(this,e);var c=window.document;return r.node=c.createElement("div"),c.body.appendChild(r.node),r}return i()(t,[{key:"render",value:function(){var e=this.props.children;return(0,f.createPortal)(e,this.node)}},{key:"componentWillUnmount",value:function(){window.document.body.removeChild(this.node)}}]),t}(d.Component)},27201:function(e,n,t){t.r(n);var r=t(7557),o=t.n(r),c=t(82242),i=t.n(c),s=t(41498),u=t.n(s),a=t(79800),l=t.n(a),d=t(59301),f=t(7880),p=t(89860),m=t(51873),v=(t(17306),t(30929)),h=t(51136),_=t(37712);n.default=(0,f.connect)((function(e){var n=e.classroomList,t=e.loading;return{classroomList:n,globalSetting:e.globalSetting,loading:t.models.classroomList}}))((function(e){e.classroomList,e.globalSetting,e.loading,e.dispatch;var n,t=(0,d.useState)({}),r=l()(t,2),c=r[0],s=r[1],a=(0,d.useState)({}),x=l()(a,2),g=x[0],w=x[1],y=((0,f.useParams)(),(0,f.useSearchParams)()),b=l()(y,1)[0],k="68yrbx3ech4a";switch(b.get("type")){case"windows":k="hvp5tzfof4wl";break;case"vnc":k="m3ifqz82epo9"}(0,d.useEffect)((function(){E()}),[]),(0,d.useEffect)((function(){c.host&&setTimeout((function(){v.Z.publish("create-socket",1)}),500)}),[c]);var E=function(){var e=u()(o()().mark((function e(){var n,t,r,c;return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,h.ZP)("/api/tasks/".concat(b.get("taskId")||k||"68yrbx3ech4a",".json"),{method:"get"});case 2:if(n=e.sent,w(i()({},n)),"terminal"!==b.get("type")){e.next=9;break}return e.next=7,(0,h.ZP)("/api/myshixuns/".concat(null==n||null===(t=n.myshixun)||void 0===t?void 0:t.identifier,"/start.json"),{method:"get",game_id:null==n||null===(r=n.game)||void 0===r?void 0:r.id});case 7:c=e.sent,s(i()({},(null==c?void 0:c.data)||{}));case 9:b.get("type");case 10:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,_.jsxs)("section",{style:{position:"fixed",width:"100%",height:"100%",zIndex:22,top:0,right:0,bottom:0,left:0},children:["terminal"===b.get("type")&&(0,_.jsx)(p.Z,{sshConfigData:c,sid:1}),"terminal"!==b.get("type")&&(null==g?void 0:g.challenge)&&(0,_.jsx)(m.Z,{taskId:k,myshixunId:null==g||null===(n=g.myshixun)||void 0===n?void 0:n.identifier,vnc_url:"vnc"===b.get("type"),window_vnc_url:"windows"===b.get("type"),taskData:g})]})}))},51873:function(e,n,t){t.d(n,{Z:function(){return L}});var r=t(7557),o=t.n(r),c=t(41498),i=t.n(c),s=t(91232),u=t.n(s),a=t(79800),l=t.n(a),d=t(82242),f=t.n(d),p=t(59301),m=t(43418),v=t(8591),h=t(93948),_=t(96962),x=t(76374),g=t(27308),w=t(7880),y=t(6457),b=t(98135),k=t(3113),E=t(37712),S=b.Z.TextArea,j=function(e){var n=e.onCancel,t=e.onSave,r=e.content,o=(0,p.useState)(r),c=l()(o,2),i=c[0],s=c[1];return(0,p.useEffect)((function(){s(r)}),[r]),(0,E.jsxs)("div",{className:"clipboard-box",children:[(0,E.jsx)("h3",{children:"实验环境剪切板:"}),(0,E.jsx)(S,{value:i,onChange:function(e){s(e.target.value)},className:"clipboard"}),(0,E.jsxs)("p",{children:[" ",(0,E.jsx)("b",{children:" 1.从外部复制内容到实验环境内: "})," 粘贴内容到上面文本框,点击保存,然后在实验环境中进行粘贴。 "]}),(0,E.jsxs)("p",{children:[" ",(0,E.jsx)("b",{children:" 2.获取实验环境中的内容: "})," 请先在环境中复制内容,复制动作完成后内容会显示在上面文本框,然后在上面文本框中再次复制。 "]}),(0,E.jsxs)("div",{className:"btn-action-container",children:[(0,E.jsx)(k.ZP,{type:"ghost",onClick:n,style:{marginRight:10},children:"取消"}),(0,E.jsx)(k.ZP,{type:"primary",onClick:function(){t(i)},children:"保存"})]})]})},T=t(3883),C=t(57391),O=t(62013),Z=t(30929),P=t(51136);function I(e){e||(e=window.location.search);var n=e.substr(1),t={};return n.split("&").forEach((function(e){var n=e.split("=");t[n[0]]=decodeURIComponent(n[1])})),t}var N={loading:!0,isLarge:!1,showClipBoardBox:!1,transferContent:"",mes:"实验环境准备中"},R=function(e){return e[e.SET_LOADING=0]="SET_LOADING",e[e.SET_IS_LARGE=1]="SET_IS_LARGE",e[e.SET_MES=2]="SET_MES",e[e.SET_STATE=3]="SET_STATE",e[e.SHOW_CLIPBOARD_BOX=4]="SHOW_CLIPBOARD_BOX",e[e.SET_TRANSFER_CONTENT=5]="SET_TRANSFER_CONTENT",e[e.UPDATE_ALL=6]="UPDATE_ALL",e}(R||{});function A(e,n){switch(n.type){case R.SET_LOADING:return f()(f()({},e),{},{loading:n.payload});case R.SET_IS_LARGE:return f()({},f()(f()({},e),{},{isLarge:n.payload}));case R.SET_MES:return f()(f()({},e),{},{mes:n.payload});case R.SET_STATE:return f()(f()({},e),n.payload);case R.SET_TRANSFER_CONTENT:return f()(f()({},e),{},{transferContent:n.payload});case R.SHOW_CLIPBOARD_BOX:return f()(f()({},e),{},{showClipBoardBox:n.payload});case R.UPDATE_ALL:return f()({loading:e.loading},n.payload);default:throw new Error}}var L=function(e){var n=e.vnc_url,t=e.window_vnc_url,r=e.linux_vnc,c=e.virtual_machine,s=e.taskData,a=e.shixun_environment_id,d=e.tab_type,b=e.instance_startup_type,k=e.index_tab,S=e.tpi_type,L=(0,p.useRef)(),z=(0,p.useRef)(),B=(0,p.useRef)(),F=(0,p.useRef)(),U=(0,p.useRef)(),D=(0,p.useRef)(),M=(0,p.useRef)(),H=(0,p.useRef)(),W=(0,p.useReducer)(A,N),G=l()(W,2),$=G[0],q=G[1],X=(0,p.useState)(0),V=l()(X,2),J=V[0],Q=V[1],Y=$.mes,K=$.loading,ee=$.showClipBoardBox,ne=$.isLarge,te=$.transferContent,re=(0,p.useRef)(),oe=(0,p.useRef)(),ce=(0,w.useSearchParams)(),ie=l()(ce,1)[0],se=(0,p.useState)(0),ue=l()(se,2),ae=ue[0],le=ue[1],de=(0,p.useRef)(),fe=(0,w.useParams)();(0,p.useEffect)((function(){return function(){var e,n;null===(e=z.current)||void 0===e||null===(n=e.disconnect)||void 0===n||n.call(e),clearTimeout(H.current),clearInterval(re.current)}}),[]),(0,p.useEffect)((function(){oe.current=$.loading}),[$.loading]);var pe=function(){var e;2===b?setTimeout((function(){be()}),1500):void 0!==(null==B||null===(e=B.current)||void 0===e?void 0:e.resizeSession)&&((0,T.vp)()?B.current.resizeSession=!0:setTimeout((function(){B.current.resizeSession=!1}),900))};function me(){q({type:R.SHOW_CLIPBOARD_BOX,payload:!1})}function ve(e){return L.current&&(F.current=new x.Z((function(n){var t,r=u()(n);try{for(r.s();!(t=r.n()).done;){var o=t.value;2===b&&be(),(o.target.offsetHeight>0||o.target.offsetWidth>0)&&(e.scaleViewport=!0)}}catch(e){r.e(e)}finally{r.f()}})),F.current.observe(L.current)),F.current}(0,p.useEffect)((function(){return document.addEventListener((0,T.gH)(),pe),function(){document.removeEventListener((0,T.gH)(),pe)}}),[]);var he=function(){var e=i()(o()().mark((function e(){var n,t,r,u,l,p,v;return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r={},"exercises"===ie.get("type")?r.exercise_id=ie.get("exercisesId"):fe.courseId&&fe.homeworkId&&(r.homework_common_id=fe.homeworkId),e.next=4,(0,C.sA)(null===(n=s.myshixun)||void 0===n?void 0:n.identifier,f()(f()({},fe),{},{taskId:fe.taskId,shixun_environment_id:a,tab_type:d},r));case 4:if(null==(u=e.sent)||null===(t=u.data)||void 0===t||null===(t=t.data_list)||void 0===t||!t.length){e.next=8;break}return Z.Z.publish("pod-restrict-data",{identifier:null==u||null===(l=u.data)||void 0===l?void 0:l.identifier,data_list:null==u||null===(p=u.data)||void 0===p?void 0:p.data_list}),e.abrupt("return",Promise.reject());case 8:if(-3!==(null==u?void 0:u.status)){e.next=10;break}return e.abrupt("return",new Promise(function(){var e=i()(o()().mark((function e(n,t){return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:m.Z.confirm({content:"检测到您已经开启了其他实验环境,请先关闭环境后,再连接",okText:"立即关闭",cancelText:"稍后关闭",onOk:function(){var e=i()(o()().mark((function e(){return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(de.current),le(0),e.next=4,(0,C.fA)(fe.taskId,null==u?void 0:u.message);case 4:return Q(J+1),e.abrupt("return");case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()});case 1:case"end":return e.stop()}}),e)})));return function(n,t){return e.apply(this,arguments)}}()));case 10:if(-1!==(null==u?void 0:u.status)){e.next=12;break}throw new String(null==u?void 0:u.message);case 12:if(0!==(null==u?void 0:u.status)){e.next=17;break}return c&&((0,y.d8)("PVEAuthCookie",null==u||null===(v=u.data)||void 0===v||null===(v=v.cookie_options)||void 0===v?void 0:v.cookies_value,1),(0,y.d8)("PVELangCookie","zh_CN",1)),Z.Z.publish("update-windows-time",null==u?void 0:u.data),Z.Z.publish("send-tabs-result-data",f()(f()({},null==u?void 0:u.data),{},{index_tab:k})),e.abrupt("return",u);case 17:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();function _e(){le(100),clearTimeout(de.current),setTimeout((function(){B.current.resizeSession=!1,q({type:R.SET_LOADING,payload:!1})}),1300),clearTimeout(re.current)}var xe=function(){B.current=new O.Z(L.current,M.current,{credentials:{password:D.current},wsProtocols:["binary"],show_dot:!0}),B.current.removeEventListener("disconnect",we),B.current.removeEventListener("connect",_e),B.current.removeEventListener("clipboard",ge),window.rfbs2=B.current,F.current=ve(B.current),B.current.viewOnly=fe.view_only||!1,B.current.scaleViewport=fe.scale||!0,B.current.showDotCursor=!0,B.current.resizeSession=!0,B.current.addEventListener("disconnect",we),B.current.addEventListener("connect",_e),B.current.addEventListener("clipboard",ge)};function ge(e){var n=e.detail.text.replace(/\\u([\dA-Za-z]{4})/g,(function(e,n){return String.fromCharCode(parseInt("0x"+n))}));q({type:R.SET_TRANSFER_CONTENT,payload:n})}function we(){if(t)q({type:R.SET_LOADING,payload:!0}),Q(J+1);else{if(clearTimeout(H.current),oe.current)return;H.current=setTimeout((function(){Q(J+1)}),6e3)}setTimeout((function(){var e,n;null===(e=B.current)||void 0===e||null===(n=e.connect)||void 0===n||n.call(e)}),3e3)}function ye(){return(ye=i()(o()().mark((function e(t){var r,c,i;return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n){e.next=8;break}return r=t,e.next=4,(0,P.ZP)("/api/tasks/".concat(fe.taskId,"/vnc_paste.json"),{method:"post",body:{content:Base64.encode(r),shixun_environment_id:a}});case 4:0===(null==(c=e.sent)?void 0:c.status)&&(q({type:R.SET_TRANSFER_CONTENT,payload:t}),v.ZP.success("保存成功!你可以在实验环境中粘贴该内容"),me()),e.next=12;break;case 8:null===(i=B.current)||void 0===i||i.clipboardPasteFrom(t),q({type:R.SET_TRANSFER_CONTENT,payload:t}),v.ZP.success("保存成功!你可以在实验环境中粘贴该内容"),me();case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function be(){var e;e=Math.min(document.getElementById("task-right-panel").clientWidth/1920,document.getElementById("task-right-panel").clientHeight/1260),U.current.parentElement.className="wh1080p",U.current.parentElement.style.cssText="transform:scale(".concat(e,");transform-origin:center center"),L.current.style.cssText="translate(-50%, -50%) scale("+e+")"}(0,p.useEffect)((function(){if(Z.Z.subscribe("reset-linux-windows-vnc-".concat(k),(function(){Q(J+1)})),(t||n||r||c)&&L.current){clearTimeout(de.current),2===b&&be(),new Promise(i()(o()().mark((function e(){var n,i,u,l,d,f,p,m,v,h,_;return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=I(),e.next=3,he();case 3:if(i=e.sent,!r&&!c){e.next=11;break}return d=null!=i&&null!==(u=i.data)&&void 0!==u&&null!==(u=u.link_url)&&void 0!==u&&u.includes("?")?"&":"?",U.current.src=(null==i||null===(l=i.data)||void 0===l?void 0:l.link_url)+d+"time="+Date.now(),q({type:R.SET_LOADING,payload:!1}),e.abrupt("return");case 11:t?(D.current="Edu123",M.current=decodeURIComponent(null==i||null===(f=i.data)||void 0===f?void 0:f.link_url)):(m=new URL(decodeURIComponent(null==i||null===(p=i.data)||void 0===p?void 0:p.link_url)),v=m.protocol,h=m.searchParams,_=m.host,D.current=h.get("password"),M.current="".concat("https:"===v?"wss":"ws","://").concat(_,"/").concat(n.path||"websockify"));case 12:if(2!==b){e.next=15;break}return setTimeout((function(){var e;ve(),U.current.style.cssText=U.current.style.cssText+"width:1920px;height:1080px;position:initial",U.current.src="/rdp.html?tpiId=".concat(null==s||null===(e=s.myshixun)||void 0===e?void 0:e.id,"&envId=").concat(a,"&tpiType=").concat(S),q({type:R.SET_LOADING,payload:!1})}),5e3),e.abrupt("return");case 15:xe();case 16:case"end":return e.stop()}}),e)}))));var e=Z.Z.subscribe("vnc-reset-".concat(k),(function(e){"取消"!==e?(le(0),q({type:R.SET_STATE,payload:{loading:!0,mes:e||"实验环境重置中"}})):q({type:R.SET_LOADING,payload:!1})})),u=Z.Z.subscribe("send-ctrl-alt-delete-".concat(k),(function(){var e;null===(e=B.current)||void 0===e||e.sendCtrlAltDel(),v.ZP.success("发送成功")})),l=Z.Z.subscribe("show-clipboard-box-".concat(k),(function(){q({type:R.SHOW_CLIPBOARD_BOX,payload:!0})}));return le(0),function(){var n,t,r,o;null===(n=B.current)||void 0===n||n.removeEventListener("disconnect",we),null===(t=B.current)||void 0===t||t.removeEventListener("connect",_e),null===(r=B.current)||void 0===r||r.removeEventListener("clipboard",ge),e(),u(),l(),L.current&&(null===(o=F.current)||void 0===o||o.unobserve(L.current))}}}),[n,t,r,J,a,d]),(0,p.useEffect)((function(){0==ae&&(clearTimeout(de.current),ke())}),[ae]);var ke=function e(){ae>99?ae=99:(ae+=1,de.current=setTimeout((function(){e()}),1500)),ae<100&&le(ae)},Ee=(0,p.useMemo)((function(){return K?"none":r||c||t&&2===b?"block":"none"}),[r,K,c,t]);return(0,E.jsxs)(p.Fragment,{children:[ne&&(0,E.jsx)("a",{className:"btn-vnc-resize",onClick:function(){q({type:R.SET_IS_LARGE,payload:!ne})},children:(0,E.jsx)("i",{className:"iconfont icon-tuichuquanping"})}),(0,E.jsx)("div",{style:{width:"100%",height:"100%",overflow:"hidden",position:"absolute",display:"block"===Ee?"flex":"none",alignItems:"center",justifyContent:"center",zIndex:6},children:(0,E.jsx)("div",{children:(0,E.jsx)("iframe",{style:{position:ne?"fixed":"absolute",left:0,top:ne?40:0,width:"100%",height:"calc(100% - ".concat(ne?"100px":"0px",")")},frameBorder:"0",ref:U,allowFullScreen:!0})})}),(0,E.jsxs)("div",{style:{position:ne?"fixed":"absolute",left:0,top:ne?40:0,zIndex:5,width:"100%",height:"calc(100% - ".concat(ne?"100px":"0px",")")},className:"".concat(t?"vnc-panel-wrapper-windows":"vnc-panel-wrapper"," ").concat(ne?"full-screen":""),children:[K?(0,E.jsx)(_.Z,{message:Y,style:{color:"#0152d9"},children:(0,E.jsx)("div",{className:"tc",style:{width:500,margin:"0 auto",color:"#FFF"},children:(0,E.jsx)(h.Z,{percent:ae,format:function(e){return(0,E.jsxs)("span",{className:"c-white",children:[e,"%"]})}})})}):null,(0,E.jsx)("div",{ref:L,className:"vnc-panel ".concat(K?"hidden zIndexf1":"animated fadeIn")})]}),(0,E.jsx)(g.Z,{children:(0,E.jsx)(m.Z,{title:"复制粘贴",centered:!0,maskClosable:!1,open:ee,onCancel:me,footer:null,children:(0,E.jsx)(j,{onCancel:me,onSave:function(e){return ye.apply(this,arguments)},content:te})})})]})}},89860:function(e,n,t){t.d(n,{Z:function(){return k}});var r=t(7557),o=t.n(r),c=t(82242),i=t.n(c),s=t(41498),u=t.n(s),a=t(91232),l=t.n(a),d=t(79800),f=t.n(d),p=t(59301),m=t(24334),v=t(34376),h=(t(86148),"xterm-panel___XA0p9"),_=t(30929),x=t(76374),g=t(57391),w=t(7880),y=t(6457),b=t(37712),k=function(e){var n=e.itemData,t=void 0===n?{}:n,r=e.game,c=e.myshixun,s=(0,w.useParams)(),a=(0,p.useState)(null),d=f()(a,2),k=d[0],E=d[1],S=(0,p.useState)({}),j=f()(S,2),T=j[0],C=j[1],O=T.link_url,Z=T.password,P=T.port,I=(0,p.useRef)(),N=(0,p.useRef)(),R=(0,p.useRef)(!1),A=(0,p.useRef)(!1),L=(0,y.oP)(),z=(0,w.useSearchParams)(),B=f()(z,1)[0],F=t.shixun_environment_id,U=(t.position,t.tab_type),D=t.index_tab;function M(e,n,t){var r=t._core._renderService.dimensions.actualCellWidth||9.5,o=t._core._renderService.dimensions.actualCellHeight||18,c=Math.floor(n/o);return[Math.floor(e/r),c]}function H(){return H=u()(o()().mark((function e(){var n,t,a,l,d;return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t={},"exercises"===B.get("type")?t.exercise_id=B.get("exercisesId"):s.courseId&&s.homeworkId&&(t.homework_common_id=s.homeworkId),e.next=4,(0,g.sA)(null==c?void 0:c.identifier,i()(i()({shixun_environment_id:F,tab_type:U,game_id:r.id},L),t));case 4:if(null==(a=e.sent)||null===(n=a.data)||void 0===n||null===(n=n.data_list)||void 0===n||!n.length){e.next=8;break}return _.Z.publish("pod-restrict-data",{identifier:null==a||null===(l=a.data)||void 0===l?void 0:l.identifier,data_list:null==a||null===(d=a.data)||void 0===d?void 0:d.data_list}),e.abrupt("return");case 8:if(-3!==(null==a?void 0:a.status)){e.next=10;break}return e.abrupt("return",new Promise(function(){var e=u()(o()().mark((function e(n,t){return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Modal.confirm({content:"检测到您已经开启了其他实验环境,请先关闭环境后,再连接",okText:"立即关闭",cancelText:"稍后关闭",onOk:function(){var e=u()(o()().mark((function e(){return o()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,closeWindowsVnc(s.taskId,null==a?void 0:a.message);case 2:return init(),e.abrupt("return");case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()});case 1:case"end":return e.stop()}}),e)})));return function(n,t){return e.apply(this,arguments)}}()));case 10:0===(null==a?void 0:a.status)&&(_.Z.publish("update-windows-time",null==a?void 0:a.data),_.Z.publish("send-tabs-result-data",i()(i()({},null==a?void 0:a.data),{},{index_tab:D})),C(a.data),setTimeout((function(){return _.Z.publish("create-socket-".concat(D))}),300));case 11:case"end":return e.stop()}}),e)}))),H.apply(this,arguments)}return(0,p.useEffect)((function(){!function(){H.apply(this,arguments)}()}),[]),(0,p.useEffect)((function(){if(I.current&&O){var e=new v.Terminal({fontSize:16,rendererType:"dom"});e.open(I.current),e.onData((function(e){N.current&&1===N.current.readyState&&N.current.send(JSON.stringify({tp:"client",data:e}))})),e.write("Connecting..."),E(e);var n=function(e,n){var t=new x.Z((function(n){var t,r=l()(n);try{for(r.s();!(t=r.n()).done;){var o=t.value;if(o.target.offsetHeight>0||o.target.offsetWidth>0){var c=M(o.target.offsetWidth,o.target.offsetHeight,e),i=f()(c,2),s=i[0],u=i[1];console.log("cols, rows",s,u),_.Z.publish("ssh-xterm-resize-".concat(D),{columns:s,rows:u,width:o.target.offsetWidth,height:o.target.offsetHeight}),e.resize(s,u);var a=m.Base64.decode("IA=="),d=m.Base64.decode("CBtbSw==");e.write(a),e.write(d)}}}catch(e){r.e(e)}finally{r.f()}}));return t.observe(n),t}(e,I.current);return function(){e.dispose(),I.current&&(null==n||n.unobserve(I.current))}}}),[O,I.current]),(0,p.useEffect)((function(){if(k&&O){var e=function e(){var n=new WebSocket(O);N.current=n,n.onopen=function(){var e=k.element.parentElement;if(e){var t=e.offsetWidth,r=e.offsetHeight;console.log("init",{tp:"init",data:i()(i()({},T),{},{secret:Z,width:t,height:r,rows:k.rows,columns:k.cols})}),n.send(JSON.stringify({tp:"init",data:i()(i()({},T),{},{secret:Z,width:t,height:r,rows:k.rows,columns:k.cols})}))}k.focus()},n.onerror=function(e){console.log("------in socket error----",e,n,O)},n.onmessage=function(e){A.current=!1,R.current||(k.write("\r"),setTimeout((function(){}),1e3)),R.current=!0,console.log("event:",e);var n=m.Base64.decode(e.data.toString()),t=k._core._renderService.dimensions.actualCellWidth||9.5;console.log("data:",n,t,k),k.write(n)};var t=setInterval((function(){var e;N.current&&(null===(e=N.current)||void 0===e||e.send(JSON.stringify({tp:"h"})))}),3e4);n.onclose=function(n){t&&clearInterval(t),console.log(t,"tid",D),A.current||k.write("\r\nconnection closed"),A.current=!0,setTimeout((function(){e()}),1e4)}},n=_.Z.subscribe("create-socket-".concat(D),(function(){e()})),t=_.Z.subscribe("ssh-xterm-resize-".concat(D),(function(e){N.current&&1===N.current.readyState&&N.current.send(JSON.stringify({tp:"resize",data:i()({},e)}))}));return function(){n(),t(),N.current&&(N.current.close(),R.current=!1)}}}),[k,O,P]),(0,b.jsx)("div",{ref:I,className:h,children:O?null:(0,b.jsx)("p",{style:{color:"#fff"},children:"正在连接命令行服务..."})})}},3883:function(e,n,t){function r(e){try{e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullScreen&&e.webkitRequestFullScreen()}catch(e){console.log(e,":e")}}function o(){window.top.document.webkitExitFullscreen?window.top.document.webkitExitFullscreen():document.exitFullscreen?window.top.document.exitFullscreen():document.msExitFullscreen?window.top.document.msExitFullscreen():document.mozCancelFullScreen&&window.top.document.mozCancelFullScreen()}t.d(n,{BU:function(){return o},Dj:function(){return r},gH:function(){return c},vp:function(){return i}});var c=function(){return document.webkitExitFullscreen?"webkitfullscreenchange":document.exitFullscreen?"fullscreenchange":document.msExitFullscreen?"msfullscreenchange":document.mozCancelFullScreen?"mozfullscreenchange":void 0};function i(){var e=window.top.document.fullscreenElement||window.top.document.mozFullscreenElement||window.top.document.webkitFullscreenElement;document.fullscreenEnabled||document.mozFullscreenEnabled||document.webkitFullscreenEnabled;return console.log("fullscreenElement",e),null!=e}},17306:function(){},98135:function(e,n,t){t.d(n,{Z:function(){return N}});var r=t(92310),o=t.n(r),c=t(59301),i=t(36355),s=t(32441),u=t(9937);var a=e=>{const{getPrefixCls:n,direction:t}=(0,c.useContext)(i.E_),{prefixCls:r,className:a}=e,l=n("input-group",r),d=n("input"),[f,p]=(0,u.ZP)(d),m=o()(l,{[`${l}-lg`]:"large"===e.size,[`${l}-sm`]:"small"===e.size,[`${l}-compact`]:e.compact,[`${l}-rtl`]:"rtl"===t},p,a),v=(0,c.useContext)(s.aM),h=(0,c.useMemo)((()=>Object.assign(Object.assign({},v),{isFormItemInput:!1})),[v]);return f(c.createElement("span",{className:m,style:e.style,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onFocus:e.onFocus,onBlur:e.onBlur},c.createElement(s.aM.Provider,{value:h},e.children)))},l=t(9432),d=t(1565),f={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z"}},{tag:"path",attrs:{d:"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z"}}]},name:"eye-invisible",theme:"outlined"},p=t(68475),m=function(e,n){return c.createElement(p.Z,(0,d.Z)({},e,{ref:n,icon:f}))};var v=c.forwardRef(m),h=t(89136),_=t(70521),x=t(16863),g=t(59412),w=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)n.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(t[r[o]]=e[r[o]])}return t};const y=e=>e?c.createElement(h.Z,null):c.createElement(v,null),b={click:"onClick",hover:"onMouseOver"};var k=c.forwardRef(((e,n)=>{const{visibilityToggle:t=!0}=e,r="object"==typeof t&&void 0!==t.visible,[s,u]=(0,c.useState)((()=>!!r&&t.visible)),a=(0,c.useRef)(null);c.useEffect((()=>{r&&u(t.visible)}),[r,t]);const d=(0,g.Z)(a),f=()=>{const{disabled:n}=e;n||(s&&d(),u((e=>{var n;const r=!e;return"object"==typeof t&&(null===(n=t.onVisibleChange)||void 0===n||n.call(t,r)),r})))},{className:p,prefixCls:m,inputPrefixCls:v,size:h}=e,k=w(e,["className","prefixCls","inputPrefixCls","size"]),{getPrefixCls:E}=c.useContext(i.E_),S=E("input",v),j=E("input-password",m),T=t&&(n=>{const{action:t="click",iconRender:r=y}=e,o=b[t]||"",i=r(s),u={[o]:f,className:`${n}-icon`,key:"passwordIcon",onMouseDown:e=>{e.preventDefault()},onMouseUp:e=>{e.preventDefault()}};return c.cloneElement(c.isValidElement(i)?i:c.createElement("span",null,i),u)})(j),C=o()(j,p,{[`${j}-${h}`]:!!h}),O=Object.assign(Object.assign({},(0,_.Z)(k,["suffix","iconRender","visibilityToggle"])),{type:s?"text":"password",className:C,prefixCls:S,suffix:T});return h&&(O.size=h),c.createElement(l.Z,Object.assign({ref:(0,x.sQ)(n,a)},O))})),E=t(11013),S=t(92343),j=t(3113),T=t(19716),C=t(33234),O=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)n.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(t[r[o]]=e[r[o]])}return t};var Z=c.forwardRef(((e,n)=>{const{prefixCls:t,inputPrefixCls:r,className:s,size:u,suffix:a,enterButton:d=!1,addonAfter:f,loading:p,disabled:m,onSearch:v,onChange:h,onCompositionStart:_,onCompositionEnd:g}=e,w=O(e,["prefixCls","inputPrefixCls","className","size","suffix","enterButton","addonAfter","loading","disabled","onSearch","onChange","onCompositionStart","onCompositionEnd"]),{getPrefixCls:y,direction:b}=c.useContext(i.E_),k=c.useRef(!1),Z=y("input-search",t),P=y("input",r),{compactSize:I}=(0,C.ri)(Z,b),N=(0,T.Z)((e=>{var n;return null!==(n=null!=u?u:I)&&void 0!==n?n:e})),R=c.useRef(null),A=e=>{var n;document.activeElement===(null===(n=R.current)||void 0===n?void 0:n.input)&&e.preventDefault()},L=e=>{var n,t;v&&v(null===(t=null===(n=R.current)||void 0===n?void 0:n.input)||void 0===t?void 0:t.value,e,{source:"input"})},z="boolean"==typeof d?c.createElement(E.Z,null):null,B=`${Z}-button`;let F;const U=d||{},D=U.type&&!0===U.type.__ANT_BUTTON;F=D||"button"===U.type?(0,S.Tm)(U,Object.assign({onMouseDown:A,onClick:e=>{var n,t;null===(t=null===(n=null==U?void 0:U.props)||void 0===n?void 0:n.onClick)||void 0===t||t.call(n,e),L(e)},key:"enterButton"},D?{className:B,size:N}:{})):c.createElement(j.ZP,{className:B,type:d?"primary":void 0,size:N,disabled:m,key:"enterButton",onMouseDown:A,onClick:L,loading:p,icon:z},d),f&&(F=[F,(0,S.Tm)(f,{key:"addonAfter"})]);const M=o()(Z,{[`${Z}-rtl`]:"rtl"===b,[`${Z}-${N}`]:!!N,[`${Z}-with-button`]:!!d},s);return c.createElement(l.Z,Object.assign({ref:(0,x.sQ)(R,n),onPressEnter:e=>{k.current||p||L(e)}},w,{size:N,onCompositionStart:e=>{k.current=!0,null==_||_(e)},onCompositionEnd:e=>{k.current=!1,null==g||g(e)},prefixCls:P,addonAfter:F,suffix:a,onChange:e=>{e&&e.target&&"click"===e.type&&v&&v(e.target.value,e,{source:"clear"}),h&&h(e)},className:M,disabled:m}))})),P=t(1643);const I=l.Z;I.Group=a,I.Search=Z,I.TextArea=P.Z,I.Password=k;var N=I}}]); |