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
24 KiB
1 line
24 KiB
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[13390],{946:function(n,e,t){t.d(e,{JW:function(){return B},Jd:function(){return C},Kl:function(){return D},L5:function(){return h},MH:function(){return L},MI:function(){return X},Qo:function(){return k},SO:function(){return v},Tf:function(){return y},VT:function(){return N},XO:function(){return f},Xy:function(){return g},Y0:function(){return j},Ye:function(){return $},Yv:function(){return M},ZH:function(){return W},am:function(){return R},bD:function(){return V},eA:function(){return b},fA:function(){return z},fY:function(){return E},g6:function(){return p},g7:function(){return q},gT:function(){return S},gn:function(){return G},h$:function(){return F},hG:function(){return w},i8:function(){return H},j3:function(){return U},lH:function(){return P},li:function(){return m},n4:function(){return _},pU:function(){return I},qK:function(){return x},sA:function(){return A},sP:function(){return Z},t$:function(){return O},wj:function(){return Q},zl:function(){return T}});var r=t(7557),o=t.n(r),c=t(41498),i=t.n(c),u=t(82242),s=t.n(u),a=t(82710),l=(0,t(95972).oP)(),d={};function f(n,e){return(0,a.U2)("tasks/".concat(n,".json"),s()(s()({},e),d))}function p(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.U2)("myshixuns/".concat(n,"/challenges.json"),s()({},e))}function v(n,e){return(0,a.U2)("myshixuns/".concat(n,"/subject_challenges.json"),e)}function h(n,e,t){return(0,a.U2)("tasks/".concat(n,"/star.json"),{shixun_id:e,star:t})}function m(n,e){return(0,a.U2)("tasks/".concat(n,"/rep_content.json"),s()(s()({},e),d))}function _(n,e){return(0,a.v_)("myshixuns/".concat(n,"/update_file.json"),s()(s()({},e),d))}function x(n,e){return(0,a.U2)("tasks/".concat(n,"/reset_original_code.json"),s()(s()({},e),d))}function y(n,e){return(0,a.v_)("myshixuns/".concat(n,"/reset_repository.json"),e)}function w(n,e){return(0,a.U2)("tasks/".concat(n,"/reset_passed_code.json"),s()(s()({},e),d))}function g(n,e){return(0,a.v_)("tasks/".concat(n,"/game_build.json"),s()(s()({},e),d))}function b(n){return(0,a.ZP)("http://localhost:49352/api/game_build",{method:"post",body:n})}function k(n,e){return(0,a.U2)("tasks/".concat(n,"/game_status.json"),s()(s()({},e),d))}function T(n,e){return(0,a.v_)("tasks/".concat(n,"/choose_build.json"),s()(s()({},e),d))}function E(n){return(0,a.U2)("myshixuns/".concat(n,"/get_remaining_time.json"))}function S(n){return(0,a.U2)("tasks/".concat(n,"/picture_display.json"),d)}function j(n){return(0,a.v_)("tasks/".concat(n,"/plus_or_cancel_praise.json"))}function I(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.v_)("myshixuns/".concat(n,"/repository.json"),e)}function A(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.U2)("myshixuns/".concat(n,"/start.json"),e)}function N(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.v_)("myshixuns/".concat(n,"/force_delete_pod.json"),e)}function R(n,e){return(0,a.U2)("myshixuns/".concat(n,"/reset_pod.json"),e)}function C(n,e){return(0,a.ZP)("/api/tasks/".concat(n,"/reboot_esc.json"),{method:"post",body:e})}function O(n){return(0,a.U2)("tasks/".concat(n,"/check_test_sets.json"))}function P(n){return(0,a.U2)("tasks/".concat(n,"/get_answer_info.json"))}function Z(n){return(0,a.U2)("tasks/".concat(n,"/get_choose_answer.json"))}function L(n){return(0,a.U2)("tasks/".concat(n,"/unlock_choose_answer.json"))}function U(n,e){return(0,a.U2)("tasks/".concat(n,"/unlock_answer.json"),{answer_id:e})}function B(n,e,t,r){return(0,a.v_)("tasks/".concat(n,"/set_games_status.json"),s()({result:e,data:t},r||{}))}function D(n,e){return(0,a.U2)("myshixuns/".concat(n,"/active_pod.json"),e)}function H(n,e){return(0,a.U2)("tasks/".concat(n,"/rank_list.json"),e)}function z(n,e){return(0,a.v_)("tasks/".concat(n,"/close_windows_vnc.json"),{tpi_id:e})}function W(n,e){return(0,a.U2)("tasks/".concat(n,"/commit_files.json"),e)}function G(n,e){return(0,a.U2)("tasks/".concat(n,"/pull_files.json"),e)}function F(n,e){return(0,a.v_)("tasks/".concat(n,"/log_output"),e)}function M(n,e){return(0,a.U2)("tasks/".concat(n,"/stop_log_output.json"),e)}function X(n){return J.apply(this,arguments)}function J(){return(J=i()(o()().mark((function n(e){return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",(0,a.ZP)("/api/myshixuns/".concat(e.id,"/add_file.json"),{method:"post",body:e}));case 1:case"end":return n.stop()}}),n)})))).apply(this,arguments)}function V(n){return Y.apply(this,arguments)}function Y(){return(Y=i()(o()().mark((function n(e){return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",(0,a.ZP)("/api/myshixuns/".concat(e.id,"/delete_git_file.json"),{method:"Delete",body:e}));case 1:case"end":return n.stop()}}),n)})))).apply(this,arguments)}function q(n){return K.apply(this,arguments)}function K(){return(K=i()(o()().mark((function n(e){return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",(0,a.ZP)("/api/myshixuns/".concat(e.id,"/mv_file.json"),{method:"post",body:e}));case 1:case"end":return n.stop()}}),n)})))).apply(this,arguments)}function $(n,e){return(0,a.ZP)("/api/shixuns/".concat(n,"/set_start_permanent.json"),{method:"put",body:e})}function Q(n){return nn.apply(this,arguments)}function nn(){return(nn=i()(o()().mark((function n(e){return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",(0,a.ZP)("/api/myshixuns/wuying_record.json",{method:"get",params:e}));case 1:case"end":return n.stop()}}),n)})))).apply(this,arguments)}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")},67229:function(n,e,t){t.d(e,{Z:function(){return L}});var r=t(7557),o=t.n(r),c=t(41498),i=t.n(c),u=t(91232),s=t.n(u),a=t(79800),l=t.n(a),d=t(82242),f=t.n(d),p=t(59301),v=t(43418),h=t(8591),m=t(93948),_=t(21791),x=t(76374),y=t(32552),w=t(79265),g=t(95972),b=t(92832),k=t(3113),T=t(37712),E=b.Z.TextArea,S=function(n){var e=n.onCancel,t=n.onSave,r=n.content,o=(0,p.useState)(r),c=l()(o,2),i=c[0],u=c[1];return(0,p.useEffect)((function(){u(r)}),[r]),(0,T.jsxs)("div",{className:"clipboard-box",children:[(0,T.jsx)("h3",{children:"实验环境剪切板:"}),(0,T.jsx)(E,{value:i,onChange:function(n){u(n.target.value)},className:"clipboard"}),(0,T.jsxs)("p",{children:[" ",(0,T.jsx)("b",{children:" 1.从外部复制内容到实验环境内: "})," 粘贴内容到上面文本框,点击保存,然后在实验环境中进行粘贴。 "]}),(0,T.jsxs)("p",{children:[" ",(0,T.jsx)("b",{children:" 2.获取实验环境中的内容: "})," 请先在环境中复制内容,复制动作完成后内容会显示在上面文本框,然后在上面文本框中再次复制。 "]}),(0,T.jsxs)("div",{className:"btn-action-container",children:[(0,T.jsx)(k.ZP,{type:"ghost",onClick:e,style:{marginRight:10},children:"取消"}),(0,T.jsx)(k.ZP,{type:"primary",onClick:function(){t(i)},children:"保存"})]})]})},j=t(52230),I=t(946),A=t(62013),N=t(34837),R=t(82710);function C(n){n||(n=window.location.search);var e=n.substr(1),t={};return e.split("&").forEach((function(n){var e=n.split("=");t[e[0]]=decodeURIComponent(e[1])})),t}var O={loading:!0,isLarge:!1,showClipBoardBox:!1,transferContent:"",mes:"实验环境准备中"},P=function(n){return n[n.SET_LOADING=0]="SET_LOADING",n[n.SET_IS_LARGE=1]="SET_IS_LARGE",n[n.SET_MES=2]="SET_MES",n[n.SET_STATE=3]="SET_STATE",n[n.SHOW_CLIPBOARD_BOX=4]="SHOW_CLIPBOARD_BOX",n[n.SET_TRANSFER_CONTENT=5]="SET_TRANSFER_CONTENT",n[n.UPDATE_ALL=6]="UPDATE_ALL",n}(P||{});function Z(n,e){switch(e.type){case P.SET_LOADING:return f()(f()({},n),{},{loading:e.payload});case P.SET_IS_LARGE:return f()({},f()(f()({},n),{},{isLarge:e.payload}));case P.SET_MES:return f()(f()({},n),{},{mes:e.payload});case P.SET_STATE:return f()(f()({},n),e.payload);case P.SET_TRANSFER_CONTENT:return f()(f()({},n),{},{transferContent:e.payload});case P.SHOW_CLIPBOARD_BOX:return f()(f()({},n),{},{showClipBoardBox:e.payload});case P.UPDATE_ALL:return f()({loading:n.loading},e.payload);default:throw new Error}}var L=function(n){var e=n.vnc_url,t=n.window_vnc_url,r=n.linux_vnc,c=n.virtual_machine,u=n.taskData,a=n.shixun_environment_id,d=n.tab_type,b=n.instance_startup_type,k=n.index_tab,E=n.tpi_type,L=(0,p.useRef)(),U=(0,p.useRef)(),B=(0,p.useRef)(),D=(0,p.useRef)(),H=(0,p.useRef)(),z=(0,p.useRef)(),W=(0,p.useRef)(),G=(0,p.useRef)(),F=(0,p.useReducer)(Z,O),M=l()(F,2),X=M[0],J=M[1],V=(0,p.useState)(0),Y=l()(V,2),q=Y[0],K=Y[1],$=X.mes,Q=X.loading,nn=X.showClipBoardBox,en=X.isLarge,tn=X.transferContent,rn=(0,p.useRef)(),on=(0,p.useRef)(),cn=(0,w.useSearchParams)(),un=l()(cn,1)[0],sn=(0,p.useState)(0),an=l()(sn,2),ln=an[0],dn=an[1],fn=(0,p.useRef)(),pn=(0,w.useParams)();(0,p.useEffect)((function(){return function(){var n,e;null===(n=U.current)||void 0===n||null===(e=n.disconnect)||void 0===e||e.call(n),clearTimeout(G.current),clearInterval(rn.current)}}),[]),(0,p.useEffect)((function(){on.current=X.loading}),[X.loading]);var vn=function(){var n;2===b?setTimeout((function(){kn()}),1500):void 0!==(null==B||null===(n=B.current)||void 0===n?void 0:n.resizeSession)&&((0,j.vp)()?B.current.resizeSession=!0:setTimeout((function(){}),900))};function hn(){J({type:P.SHOW_CLIPBOARD_BOX,payload:!1})}function mn(n){return L.current&&(D.current=new x.Z((function(e){var t,r=s()(e);try{for(r.s();!(t=r.n()).done;){var o,c=t.value;if(2===b&&kn(),(c.target.offsetHeight>0||c.target.offsetWidth>0)&&n)n.scaleViewport=!0,null==n||null===(o=n._eventHandlers)||void 0===o||o.windowResize()}}catch(n){r.e(n)}finally{r.f()}})),D.current.observe(L.current)),D.current}(0,p.useEffect)((function(){return document.addEventListener((0,j.gH)(),vn),function(){document.removeEventListener((0,j.gH)(),vn)}}),[]);var _n=function(){var n=i()(o()().mark((function n(){var e,t,r,s,l,p,h;return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r={},"exercises"===un.get("type")?r.exercise_id=un.get("exercisesId"):pn.courseId&&pn.homeworkId&&(r.homework_common_id=pn.homeworkId),n.next=4,(0,I.sA)(null===(e=u.myshixun)||void 0===e?void 0:e.identifier,f()(f()({},pn),{},{taskId:pn.taskId,shixun_environment_id:a,tab_type:d},r));case 4:if(null==(s=n.sent)||null===(t=s.data)||void 0===t||null===(t=t.data_list)||void 0===t||!t.length){n.next=8;break}return N.Z.publish("pod-restrict-data",{identifier:null==s||null===(l=s.data)||void 0===l?void 0:l.identifier,data_list:null==s||null===(p=s.data)||void 0===p?void 0:p.data_list}),n.abrupt("return",Promise.reject());case 8:if(-3!==(null==s?void 0:s.status)){n.next=10;break}return n.abrupt("return",new Promise(function(){var n=i()(o()().mark((function n(e,t){return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:v.Z.confirm({content:"检测到您已经开启了其他实验环境,请先关闭环境后,再连接",okText:"立即关闭",cancelText:"稍后关闭",onOk:function(){var n=i()(o()().mark((function n(){return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return clearTimeout(fn.current),dn(0),n.next=4,(0,I.fA)(pn.taskId,null==s?void 0:s.message);case 4:return K(q+1),n.abrupt("return");case 6:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}()});case 1:case"end":return n.stop()}}),n)})));return function(e,t){return n.apply(this,arguments)}}()));case 10:if(-1!==(null==s?void 0:s.status)){n.next=12;break}throw new String(null==s?void 0:s.message);case 12:if(0!==(null==s?void 0:s.status)){n.next=17;break}return c&&((0,g.d8)("PVEAuthCookie",null==s||null===(h=s.data)||void 0===h||null===(h=h.cookie_options)||void 0===h?void 0:h.cookies_value,1),(0,g.d8)("PVELangCookie","zh_CN",1)),N.Z.publish("update-windows-time",null==s?void 0:s.data),N.Z.publish("send-tabs-result-data",f()(f()({},null==s?void 0:s.data),{},{index_tab:k})),n.abrupt("return",s);case 17:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}();function xn(){dn(100),clearTimeout(fn.current),setTimeout((function(){J({type:P.SET_LOADING,payload:!1})}),1300),clearTimeout(rn.current)}var yn=function(){B.current=new A.Z(L.current,W.current,{credentials:{password:z.current},wsProtocols:["binary"],show_dot:!0}),B.current.removeEventListener("disconnect",gn),B.current.removeEventListener("connect",xn),B.current.removeEventListener("clipboard",wn),window.rfbs2=B.current,D.current=mn(B.current),B.current.viewOnly=pn.view_only||!1,B.current.scaleViewport=pn.scale||!0,B.current.showDotCursor=!0,B.current.resizeSession=!0,B.current.addEventListener("disconnect",gn),B.current.addEventListener("connect",xn),B.current.addEventListener("clipboard",wn)};function wn(n){var e=n.detail.text.replace(/\\u([\dA-Za-z]{4})/g,(function(n,e){return String.fromCharCode(parseInt("0x"+e))}));J({type:P.SET_TRANSFER_CONTENT,payload:e})}function gn(){if(t)J({type:P.SET_LOADING,payload:!0}),K(q+1);else{if(clearTimeout(G.current),on.current)return;G.current=setTimeout((function(){K(q+1)}),6e3)}setTimeout((function(){var n,e;null===(n=B.current)||void 0===n||null===(e=n.connect)||void 0===e||e.call(n)}),3e3)}function bn(){return(bn=i()(o()().mark((function n(t){var r,c,i;return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!e){n.next=8;break}return r=t,n.next=4,(0,R.ZP)("/api/tasks/".concat(pn.taskId,"/vnc_paste.json"),{method:"post",body:{content:Base64.encode(r),shixun_environment_id:a}});case 4:0===(null==(c=n.sent)?void 0:c.status)&&(J({type:P.SET_TRANSFER_CONTENT,payload:t}),h.ZP.success("保存成功!你可以在实验环境中粘贴该内容"),hn()),n.next=12;break;case 8:null===(i=B.current)||void 0===i||i.clipboardPasteFrom(t),J({type:P.SET_TRANSFER_CONTENT,payload:t}),h.ZP.success("保存成功!你可以在实验环境中粘贴该内容"),hn();case 12:case"end":return n.stop()}}),n)})))).apply(this,arguments)}function kn(){var n;n=Math.min(document.getElementById("task-right-panel").clientWidth/1920,document.getElementById("task-right-panel").clientHeight/1260),H.current.parentElement.className="wh1080p",H.current.parentElement.style.cssText="transform:scale(".concat(n,");transform-origin:center center"),L.current.style.cssText="translate(-50%, -50%) scale("+n+")"}(0,p.useEffect)((function(){if(N.Z.subscribe("reset-linux-windows-vnc-".concat(k),(function(){K(q+1)})),(t||e||r||c)&&L.current){clearTimeout(fn.current),2===b&&kn(),new Promise(i()(o()().mark((function n(){var e,i,s,l,d,f,p,v,h,m,_;return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return e=C(),n.next=3,_n();case 3:if(i=n.sent,!r&&!c){n.next=11;break}return d=null!=i&&null!==(s=i.data)&&void 0!==s&&null!==(s=s.link_url)&&void 0!==s&&s.includes("?")?"&":"?",H.current.src=(null==i||null===(l=i.data)||void 0===l?void 0:l.link_url)+d+"time="+Date.now(),J({type:P.SET_LOADING,payload:!1}),n.abrupt("return");case 11:t?(z.current="Edu123",W.current=decodeURIComponent(null==i||null===(f=i.data)||void 0===f?void 0:f.link_url)):(v=new URL(decodeURIComponent(null==i||null===(p=i.data)||void 0===p?void 0:p.link_url)),h=v.protocol,m=v.searchParams,_=v.host,z.current=m.get("password"),W.current="".concat("https:"===h?"wss":"ws","://").concat(_,"/").concat(e.path||"websockify"));case 12:if(2!==b){n.next=15;break}return setTimeout((function(){var n,e,t,r;mn(),H.current.style.cssText=H.current.style.cssText+"width:1920px;height:1080px;position:initial",H.current.src="/rdp.html?".concat(null!=i&&null!==(n=i.data)&&void 0!==n&&n.gpPort?"gpPort="+(null==i||null===(e=i.data)||void 0===e?void 0:e.gpPort)+"&password="+(null==i||null===(t=i.data)||void 0===t?void 0:t.password)+"&":"","tpiId=").concat(null==u||null===(r=u.myshixun)||void 0===r?void 0:r.id,"&envId=").concat(a,"&tpiType=").concat(E),J({type:P.SET_LOADING,payload:!1})}),5e3),n.abrupt("return");case 15:yn();case 16:case"end":return n.stop()}}),n)}))));var n=N.Z.subscribe("vnc-reset-".concat(k),(function(n){"取消"!==n?(dn(0),J({type:P.SET_STATE,payload:{loading:!0,mes:n||"实验环境重置中"}})):J({type:P.SET_LOADING,payload:!1})})),s=N.Z.subscribe("send-ctrl-alt-delete-".concat(k),(function(){var n;null===(n=B.current)||void 0===n||n.sendCtrlAltDel(),h.ZP.success("发送成功")})),l=N.Z.subscribe("show-clipboard-box-".concat(k),(function(){J({type:P.SHOW_CLIPBOARD_BOX,payload:!0})}));return dn(0),function(){var e,t,r,o;null===(e=B.current)||void 0===e||e.removeEventListener("disconnect",gn),null===(t=B.current)||void 0===t||t.removeEventListener("connect",xn),null===(r=B.current)||void 0===r||r.removeEventListener("clipboard",wn),n(),s(),l(),L.current&&(null===(o=D.current)||void 0===o||o.unobserve(L.current))}}}),[e,t,r,q,a,d]),(0,p.useEffect)((function(){0==ln&&(clearTimeout(fn.current),Tn())}),[ln]);var Tn=function n(){ln>99?ln=99:(ln+=1,fn.current=setTimeout((function(){n()}),1500)),ln<100&&dn(ln)},En=(0,p.useMemo)((function(){return Q?"none":r||c||t&&2===b?"block":"none"}),[r,Q,c,t]);return(0,T.jsxs)(p.Fragment,{children:[en&&(0,T.jsx)("a",{className:"btn-vnc-resize",onClick:function(){J({type:P.SET_IS_LARGE,payload:!en})},children:(0,T.jsx)("i",{className:"iconfont icon-tuichuquanping"})}),(0,T.jsx)("div",{style:{width:"100%",height:"100%",overflow:"hidden",position:"absolute",display:"block"===En?"flex":"none",alignItems:"center",justifyContent:"center",zIndex:6},children:(0,T.jsx)("div",{children:(0,T.jsx)("iframe",{style:{position:en?"fixed":"absolute",left:0,top:en?40:0,width:"100%",height:"calc(100% - ".concat(en?"100px":"0px",")")},frameBorder:"0",ref:H,allowFullScreen:!0})})}),(0,T.jsxs)("div",{style:{position:en?"fixed":"absolute",left:0,top:en?40:0,zIndex:5,width:"100%",height:"calc(100% - ".concat(en?"100px":"0px",")")},className:"".concat(t?"vnc-panel-wrapper-windows":"vnc-panel-wrapper"," ").concat(en?"full-screen":""),children:[Q?(0,T.jsx)(_.Z,{message:$,style:{color:"#0152d9"},children:(0,T.jsx)("div",{className:"tc",style:{width:500,margin:"0 auto",color:"#FFF"},children:(0,T.jsx)(m.Z,{percent:ln,format:function(n){return(0,T.jsxs)("span",{className:"c-white",children:[n,"%"]})}})})}):null,(0,T.jsx)("div",{ref:L,className:"vnc-panel ".concat(Q?"hidden zIndexf1":"animated fadeIn")})]}),(0,T.jsx)(y.Z,{children:(0,T.jsx)(v.Z,{title:"复制粘贴",centered:!0,maskClosable:!1,open:nn,onCancel:hn,footer:null,children:(0,T.jsx)(S,{onCancel:hn,onSave:function(n){return bn.apply(this,arguments)},content:tn})})})]})}},26187:function(n,e,t){t.d(e,{Z:function(){return T}});var r=t(7557),o=t.n(r),c=t(82242),i=t.n(c),u=t(41498),s=t.n(u),a=t(91232),l=t.n(a),d=t(79800),f=t.n(d),p=t(59301),v=t(24334),h=t(34376),m=(t(7485),"xterm-panel___XA0p9"),_=t(34837),x=t(76374),y=t(946),w=t(79265),g=t(95972),b=t(43418),k=t(37712),T=function(n){var e=n.itemData,t=void 0===e?{}:e,r=n.game,c=n.myshixun,u=(0,w.useParams)(),a=(0,p.useState)(null),d=f()(a,2),T=d[0],E=d[1],S=(0,p.useState)({}),j=f()(S,2),I=j[0],A=j[1],N=I.link_url,R=I.password,C=I.port,O=(0,p.useRef)(),P=(0,p.useRef)(),Z=(0,p.useRef)(!1),L=(0,p.useRef)(!1),U=(0,p.useRef)(!0),B=(0,g.oP)(),D=(0,w.useSearchParams)(),H=f()(D,1)[0],z=t.shixun_environment_id,W=(t.position,t.tab_type),G=t.index_tab,F=t.command_string;function M(n,e,t){var r=t._core._renderService.dimensions.actualCellWidth||9.5,o=t._core._renderService.dimensions.actualCellHeight||18,c=Math.floor(e/o);return[Math.floor(n/r),c]}function X(){return J.apply(this,arguments)}function J(){return J=s()(o()().mark((function n(){var e,t,a,l,d,f;return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return a={},"exercises"===H.get("type")?a.exercise_id=H.get("exercisesId"):u.courseId&&u.homeworkId&&(a.homework_common_id=u.homeworkId),n.next=4,(0,y.sA)(null==c?void 0:c.identifier,i()(i()({shixun_environment_id:z,tab_type:W,game_id:r.id},B),a));case 4:if(null==(l=n.sent)||null===(e=l.data)||void 0===e||null===(e=e.data_list)||void 0===e||!e.length){n.next=8;break}return _.Z.publish("pod-restrict-data",{identifier:null==l||null===(d=l.data)||void 0===d?void 0:d.identifier,data_list:null==l||null===(f=l.data)||void 0===f?void 0:f.data_list}),n.abrupt("return");case 8:if(-3!==(null==l?void 0:l.status)){n.next=10;break}return n.abrupt("return",new Promise(function(){var n=s()(o()().mark((function n(e,t){return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:b.Z.confirm({content:"检测到您已经开启了其他实验环境,请先关闭环境后,再连接",okText:"立即关闭",cancelText:"稍后关闭",onOk:function(){var n=s()(o()().mark((function n(){return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,closeWindowsVnc(u.taskId,null==l?void 0:l.message);case 2:return init(),n.abrupt("return");case 4:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}()});case 1:case"end":return n.stop()}}),n)})));return function(e,t){return n.apply(this,arguments)}}()));case 10:if(200036!==(null==l||null===(t=l.data)||void 0===t?void 0:t.code)){n.next=13;break}return b.Z.confirm({centered:!0,icon:null,width:430,okText:"确定",cancelText:"取消",title:"提示",cancelButtonProps:{style:{display:"none"}},content:(0,k.jsxs)("div",{className:"mb10",children:["由于上次的实验环境未正常关闭,无法再开启新的实验环境,",(0,k.jsx)("br",{}),(0,k.jsx)("span",{style:{color:"#fd4020"},children:"需强制删除旧实验环境再重新开启"})]}),onOk:function(){(0,y.VT)(null==c?void 0:c.identifier,{shixun_environment_id:z,tab_type:W,game_id:r.id}).then((function(n){0==(null==n?void 0:n.status)&&X()}))}}),n.abrupt("return");case 13:0===(null==l?void 0:l.status)&&(_.Z.publish("update-windows-time",null==l?void 0:l.data),_.Z.publish("send-tabs-result-data",i()(i()({},null==l?void 0:l.data),{},{index_tab:G})),A(l.data),setTimeout((function(){return _.Z.publish("create-socket-".concat(G))}),300));case 14:case"end":return n.stop()}}),n)}))),J.apply(this,arguments)}return(0,p.useEffect)((function(){X()}),[]),(0,p.useEffect)((function(){if(O.current&&N){var n=new h.Terminal({fontSize:16,rendererType:"dom",disableStdin:!0});n.open(O.current),n.onData((function(n){P.current&&1===P.current.readyState&&P.current.send(JSON.stringify({tp:"client",data:n}))})),n.write("Connecting..."),E(n);var e=function(n,e){var t=new x.Z((function(e){var t,r=l()(e);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,n),i=f()(c,2),u=i[0],s=i[1];console.log("cols, rows",u,s),_.Z.publish("ssh-xterm-resize-".concat(G),{columns:u,rows:s,width:o.target.offsetWidth,height:o.target.offsetHeight}),n.resize(u,s);var a=v.Base64.decode("IA=="),d=v.Base64.decode("CBtbSw==");n.write(a),n.write(d)}}}catch(n){r.e(n)}finally{r.f()}}));return t.observe(e),t}(n,O.current);return function(){n.dispose(),O.current&&(null==e||e.unobserve(O.current))}}}),[N,O.current]),(0,p.useEffect)((function(){if(T&&N){var n=function n(){var e=new WebSocket(N);P.current=e,e.onopen=function(){var n=T.element.parentElement;if(n){var t=n.offsetWidth,r=n.offsetHeight;console.log("init",{tp:"init",data:i()(i()({},I),{},{secret:R,width:t,height:r,rows:T.rows,columns:T.cols})}),e.send(JSON.stringify({tp:"init",data:i()(i()({},I),{},{secret:R,width:t,height:r,rows:T.rows,columns:T.cols})}))}T.focus()},e.onerror=function(n){console.log("------in socket error----",n,e,N)},e.onmessage=function(n){L.current=!1,Z.current||(T.write("\r"),setTimeout((function(){}),1e3)),Z.current=!0,console.log("event:",n);var e=v.Base64.decode(n.data.toString()),t=T._core._renderService.dimensions.actualCellWidth||9.5;console.log("data:",e,t,T),T.write(e),null!=F&&F.length?U.current&&(U.current=!1,setTimeout((function(){P.current.send(JSON.stringify({tp:"client",data:(null==F?void 0:F.join("\r"))+"\r"})),T.setOption("disableStdin",!1)}),1e3)):(U.current=!1,T.setOption("disableStdin",!1))};var t=setInterval((function(){var n;P.current&&(null===(n=P.current)||void 0===n||n.send(JSON.stringify({tp:"h"})))}),3e4);e.onclose=function(e){t&&clearInterval(t),console.log(t,"tid",G),L.current||T.write("\r\nconnection closed"),L.current=!0,setTimeout((function(){n()}),1e4)}},e=_.Z.subscribe("create-socket-".concat(G),(function(){n()})),t=_.Z.subscribe("ssh-xterm-resize-".concat(G),(function(n){P.current&&1===P.current.readyState&&P.current.send(JSON.stringify({tp:"resize",data:i()({},n)}))}));return function(){e(),t(),P.current&&(P.current.close(),Z.current=!1)}}}),[T,N,C]),(0,k.jsx)("div",{ref:O,className:m,children:N?null:(0,k.jsx)("p",{style:{color:"#fff"},children:"正在连接命令行服务..."})})}},63978:function(){}}]); |