You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NewEduCoderBuild/4209.fba4ffca.async.js

3 lines
17 KiB

"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4209],{46411:function(){},9472:function(Ze,he,l){l.d(he,{Z:function(){return Be}});var n=l(59301),_=l(43418),te=l(8591),Re=l(74987),ge=l(87516),x=l(76374),Ce=l(89767),ne=l(71471),re=l(16427),Fe=l(92832),ue=l(3113);const J=Fe.default.TextArea;var ye=({onCancel:e,onSave:t,content:o})=>{const[F,y]=(0,n.useState)(o);function I(P){y(P.target.value)}function L(){t(F)}return(0,n.useEffect)(()=>{y(o)},[o]),n.createElement("div",{className:"clipboard-box"},n.createElement("h3",null,"\u5B9E\u9A8C\u73AF\u5883\u526A\u5207\u677F\uFF1A"),n.createElement(J,{value:F,onChange:I,className:"clipboard"}),n.createElement("p",null," ",n.createElement("b",null," 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 "),n.createElement("p",null," ",n.createElement("b",null," 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 "),n.createElement("div",{className:"btn-action-container"},n.createElement(ue.ZP,{type:"ghost",onClick:e,style:{marginRight:10}},"\u53D6\u6D88"),n.createElement(ue.ZP,{type:"primary",onClick:L},"\u4FDD\u5B58")))},oe=l(45992),de=l(56167),fe=l(62013),N=l(50535),Ae=l(40117),g=l(59301),j=Object.defineProperty,se=Object.defineProperties,le=Object.getOwnPropertyDescriptors,ve=Object.getOwnPropertySymbols,De=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable,m=(e,t,o)=>t in e?j(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,s=(e,t)=>{for(var o in t||(t={}))De.call(t,o)&&m(e,o,t[o]);if(ve)for(var o of ve(t))D.call(t,o)&&m(e,o,t[o]);return e},S=(e,t)=>se(e,le(t)),f=(e,t,o)=>new Promise((F,y)=>{var I=b=>{try{P(o.next(b))}catch(H){y(H)}},L=b=>{try{P(o.throw(b))}catch(H){y(H)}},P=b=>b.done?F(b.value):Promise.resolve(b.value).then(I,L);P((o=o.apply(e,t)).next())});function ae(e){return e.replace(/\\u([\dA-Za-z]{4})/g,function(t,o){return String.fromCharCode(parseInt("0x"+o))})}function G(e){e||(e=window.location.search);let t=e.substr(1),o={};return t.split("&").forEach(function(F){let y=F.split("=");o[y[0]]=decodeURIComponent(y[1])}),o}const X={loading:!0,isLarge:!1,showClipBoardBox:!1,transferContent:"",mes:"\u5B9E\u9A8C\u73AF\u5883\u51C6\u5907\u4E2D"};var C=(e=>(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))(C||{});function W(e,t){switch(t.type){case 0:return S(s({},e),{loading:t.payload});case 1:return s({},S(s({},e),{isLarge:t.payload}));case 2:return S(s({},e),{mes:t.payload});case 3:return s(s({},e),t.payload);case 5:return S(s({},e),{transferContent:t.payload});case 4:return S(s({},e),{showClipBoardBox:t.payload});case 6:return s({loading:e.loading},t.payload);default:throw new Error}}var Be=({vnc_url:e,window_vnc_url:t,linux_vnc:o,virtual_machine:F,taskData:y,shixun_environment_id:I,tab_type:L,instance_startup_type:P,index_tab:b,tpi_type:H})=>{const B=(0,n.useRef)(),q=(0,n.useRef)(),c=(0,n.useRef)(),K=(0,n.useRef)(),T=(0,n.useRef)(),v=(0,n.useRef)(),w=(0,n.useRef)(),A=(0,n.useRef)(),[E,a]=(0,n.useReducer)(W,X),[i,u]=(0,n.useState)(0),{mes:O,loading:Q,showClipBoardBox:$e,isLarge:Z,transferContent:ke}=E,Oe=(0,n.useRef)(),Te=(0,n.useRef)(),[Ie]=(0,ne.useSearchParams)();let[$,ie]=(0,n.useState)(0),ce=(0,n.useRef)();const k=(0,ne.useParams)();(0,n.useEffect)(()=>()=>{var r,p;(p=(r=q.current)==null?void 0:r.disconnect)==null||p.call(r),clearTimeout(A.current),clearInterval(Oe.current)},[]),(0,n.useEffect)(()=>{Te.current=E.loading},[E.loading]);const xe=()=>{var r;P===2?setTimeout(()=>{be()},1500):((r=c==null?void 0:c.current)==null?void 0:r.resizeSession)!==void 0&&((0,oe.vp)()?c.current.resizeSession=!0:setTimeout(()=>{},900))};(0,n.useEffect)(()=>(document.addEventListener((0,oe.gH)(),xe),()=>{document.removeEventListener((0,oe.gH)(),xe)}),[]);function me(){a({type:4,payload:!1})}function ze(){a({type:1,payload:!Z})}function Ne(r){return B.current&&(K.current=new x.Z(p=>{var z;for(let h of p)P===2&&be(),(h.target.offsetHeight>0||h.target.offsetWidth>0)&&r&&(r.scaleViewport=!0,(z=r==null?void 0:r._eventHandlers)==null||z.windowResize())}),K.current.observe(B.current)),K.current}const je=()=>f(void 0,null,function*(){var r,p,z,h,V,U,M;let ee={};Ie.get("type")==="exercises"?ee.exercise_id=Ie.get("exercisesId"):k.courseId&&k.homeworkId&&(ee.homework_common_id=k.homeworkId);const d=yield(0,de.sA)((r=y.myshixun)==null?void 0:r.identifier,s(S(s({},k),{taskId:k.taskId,shixun_environment_id:I,tab_type:L}),ee));if((z=(p=d==null?void 0:d.data)==null?void 0:p.data_list)!=null&&z.length)return N.Z.publish("pod-restrict-data",{identifier:(h=d==null?void 0:d.data)==null?void 0:h.identifier,data_list:(V=d==null?void 0:d.data)==null?void 0:V.data_list}),Promise.reject();if((d==null?void 0:d.status)===-3)return new Promise((R,Y)=>f(void 0,null,function*(){_.default.confirm({content:"\u68C0\u6D4B\u5230\u60A8\u5DF2\u7ECF\u5F00\u542F\u4E86\u5176\u4ED6\u5B9E\u9A8C\u73AF\u5883\uFF0C\u8BF7\u5148\u5173\u95ED\u73AF\u5883\u540E\uFF0C\u518D\u8FDE\u63A5",okText:"\u7ACB\u5373\u5173\u95ED",cancelText:"\u7A0D\u540E\u5173\u95ED",onOk:()=>f(void 0,null,function*(){clearTimeout(ce.current),ie(0),yield(0,de.fA)(k.taskId,d==null?void 0:d.message),u(i+1)})})}));if((d==null?void 0:d.status)===-1)throw new String(d==null?void 0:d.message);if((d==null?void 0:d.status)===0)return F&&((0,re.d8)("PVEAuthCookie",(M=(U=d==null?void 0:d.data)==null?void 0:U.cookie_options)==null?void 0:M.cookies_value,1),(0,re.d8)("PVELangCookie","zh_CN",1)),N.Z.publish("update-windows-time",d==null?void 0:d.data),N.Z.publish("send-tabs-result-data",S(s({},d==null?void 0:d.data),{index_tab:b})),d});function we(){ie(100),clearTimeout(ce.current),setTimeout(()=>{a({type:0,payload:!1})},1300),clearTimeout(Oe.current)}const We=()=>{c.current=new fe.Z(B.current,w.current,{credentials:{password:v.current},wsProtocols:["binary"],show_dot:!0}),c.current.removeEventListener("disconnect",Pe),c.current.removeEventListener("connect",we),c.current.removeEventListener("clipboard",Se),window.rfbs2=c.current,K.current=Ne(c.current),c.current.viewOnly=k.view_only||!1,c.current.scaleViewport=k.scale||!0,c.current.showDotCursor=!0,c.current.resizeSession=!0,c.current.addEventListener("disconnect",Pe),c.current.addEventListener("connect",we),c.current.addEventListener("clipboard",Se)};function Se(r){const p=ae(r.detail.text);a({type:5,payload:p})}function Pe(){if(t)a({type:0,payload:!0}),u(i+1);else{if(clearTimeout(A.current),Te.current)return;A.current=setTimeout(()=>{u(i+1)},6e3)}setTimeout(()=>{var r,p;(p=(r=c.current)==null?void 0:r.connect)==null||p.call(r)},3e3)}(0,n.useEffect)(()=>{if(N.Z.subscribe(`reset-linux-windows-vnc-${b}`,()=>{u(i+1)}),(t||e||o||F)&&B.current){clearTimeout(ce.current),P===2&&be(),new Promise(()=>f(void 0,null,function*(){var h,V,U,M,ee;const d=G();let R=yield je();if(o||F){const Y=(V=(h=R==null?void 0:R.data)==null?void 0:h.link_url)!=null&&V.includes("?")?"&":"?";T.current.src=((U=R==null?void 0:R.data)==null?void 0:U.link_url)+Y+"time="+Date.now(),a({type:0,payload:!1});return}else if(t)v.current="Edu123",w.current=decodeURIComponent((M=R==null?void 0:R.data)==null?void 0:M.link_url);else{const Y=new URL(decodeURIComponent((ee=R==null?void 0:R.data)==null?void 0:ee.link_url)),{protocol:pe,searchParams:Ee,host:Ue}=Y;v.current=Ee.get("password"),w.current=`${pe==="https:"?"wss":"ws"}://${Ue}/${d.path||"websockify"}`}if(P===2){setTimeout(()=>{var Y,pe,Ee;Ne(),T.current.style.cssText=T.current.style.cssText+"width:1920px;height:1080px;position:initial",T.current.src=T.current.src=`/rdp.html?${(Y=R==null?void 0:R.data)!=null&&Y.gpPort?"gpPort="+((pe=R==null?void 0:R.data)==null?void 0:pe.gpPort)+"&":""}tpiId=${(Ee=y==null?void 0:y.myshixun)==null?void 0:Ee.id}&envId=${I}&tpiType=${H}`,a({type:0,payload:!1})},5e3);return}We()}));const r=N.Z.subscribe(`vnc-reset-${b}`,h=>{if(h==="\u53D6\u6D88"){a({type:0,payload:!1});return}ie(0),a({type:3,payload:{loading:!0,mes:h||"\u5B9E\u9A8C\u73AF\u5883\u91CD\u7F6E\u4E2D"}})}),p=N.Z.subscribe(`send-ctrl-alt-delete-${b}`,()=>{var h;(h=c.current)==null||h.sendCtrlAltDel(),te.ZP.success("\u53D1\u9001\u6210\u529F")}),z=N.Z.subscribe(`show-clipboard-box-${b}`,()=>{a({type:4,payload:!0})});return ie(0),()=>{var h,V,U,M;(h=c.current)==null||h.removeEventListener("disconnect",Pe),(V=c.current)==null||V.removeEventListener("connect",we),(U=c.current)==null||U.removeEventListener("clipboard",Se),r(),p(),z(),B.current&&((M=K.current)==null||M.unobserve(B.current))}}},[e,t,o,i,I,L]);function Me(){var r,p;(p=(r=c.current)==null?void 0:r.sendKey)==null||p.call(r,135)}function He(r){return f(this,null,function*(){var p;if(e){const z=r,h=yield(0,Ae.ZP)(`/api/tasks/${k.taskId}/vnc_paste.json`,{method:"post",body:{content:Base64.encode(z),shixun_environment_id:I}});(h==null?void 0:h.status)===0&&(a({type:5,payload:r}),te.ZP.success("\u4FDD\u5B58\u6210\u529F\uFF01\u4F60\u53EF\u4EE5\u5728\u5B9E\u9A8C\u73AF\u5883\u4E2D\u7C98\u8D34\u8BE5\u5185\u5BB9"),me())}else(p=c.current)==null||p.clipboardPasteFrom(r),a({type:5,payload:r}),te.ZP.success("\u4FDD\u5B58\u6210\u529F\uFF01\u4F60\u53EF\u4EE5\u5728\u5B9E\u9A8C\u73AF\u5883\u4E2D\u7C98\u8D34\u8BE5\u5185\u5BB9"),me()})}function be(){var r,p;r=Math.min(document.getElementById("task-right-panel").clientWidth/1920,document.getElementById("task-right-panel").clientHeight/1260),T.current.parentElement.className="wh1080p",T.current.parentElement.style.cssText=`transform:scale(${r});transform-origin:center center`,B.current.style.cssText="translate(-50%, -50%) scale("+r+")"}(0,n.useEffect)(()=>{$==0&&(clearTimeout(ce.current),Le())},[$]);const Le=()=>{$>99?$=99:($=$+1,ce.current=setTimeout(()=>{Le()},1500)),$<100&&ie($)},Ve=(0,n.useMemo)(()=>Q?"none":o||F||t&&P===2?"block":"none",[o,Q,F,t]);return g.createElement(n.Fragment,null,Z&&g.createElement("a",{className:"btn-vnc-resize",onClick:ze},g.createElement("i",{className:"iconfont icon-tuichuquanping"})),g.createElement("div",{style:{width:"100%",height:"100%",overflow:"hidden",position:"absolute",display:Ve==="block"?"flex":"none",alignItems:"center",justifyContent:"center",zIndex:6}},g.createElement("div",null,g.createElement("iframe",{style:{position:Z?"fixed":"absolute",left:0,top:Z?40:0,width:"100%",height:`calc(100% - ${Z?"100px":"0px"})`},frameBorder:"0",ref:T,allowFullScreen:!0}))),g.createElement("div",{style:{position:Z?"fixed":"absolute",left:0,top:Z?40:0,zIndex:5,width:"100%",height:`calc(100% - ${Z?"100px":"0px"})`},className:`${t?"vnc-panel-wrapper-windows":"vnc-panel-wrapper"} ${Z?"full-screen":""}`},Q?g.createElement(ge.Z,{message:O,style:{color:"#0152d9"}},g.createElement("div",{className:"tc",style:{width:500,margin:"0 auto",color:"#FFF"}},g.createElement(Re.Z,{percent:$,format:r=>g.createElement("span",{className:"c-white"},r,"%")}))):null,g.createElement("div",{ref:B,className:`vnc-panel ${Q?"hidden zIndexf1":"animated fadeIn"}`})),g.createElement(Ce.Z,null,g.createElement(_.default,{title:"\u590D\u5236\u7C98\u8D34",centered:!0,maskClosable:!1,open:$e,onCancel:me,footer:null},g.createElement(ye,{onCancel:me,onSave:He,content:ke}))))}},67823:function(Ze,he,l){l.d(he,{Z:function(){return De}});var n=l(59301),_=l(24334),te=l(34376),Re=l(45367),ge={"xterm-panel":"xterm-panel___XA0p9"},x=l(50535),Ce=l(76374),ne=l(56167),re=l(71471),Fe=l(16427),ue=l(43418),J=l(59301),ye=Object.defineProperty,oe=Object.defineProperties,de=Object.getOwnPropertyDescriptors,fe=Object.getOwnPropertySymbols,N=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable,g=(D,m,s)=>m in D?ye(D,m,{enumerable:!0,configurable:!0,writable:!0,value:s}):D[m]=s,j=(D,m)=>{for(var s in m||(m={}))N.call(m,s)&&g(D,s,m[s]);if(fe)for(var s of fe(m))Ae.call(m,s)&&g(D,s,m[s]);return D},se=(D,m)=>oe(D,de(m)),le=(D,m,s)=>new Promise((S,f)=>{var ae=C=>{try{X(s.next(C))}catch(W){f(W)}},G=C=>{try{X(s.throw(C))}catch(W){f(W)}},X=C=>C.done?S(C.value):Promise.resolve(C.value).then(ae,G);X((s=s.apply(D,m)).next())});const ve=3e4;var De=({itemData:D={},game:m,myshixun:s})=>{const S=(0,re.useParams)(),[f,ae]=(0,n.useState)(null),[G,X]=(0,n.useState)({}),{link_url:C,password:W,port:Be}=G,e=(0,n.useRef)(),t=(0,n.useRef)(),o=(0,n.useRef)(!1),F=(0,n.useRef)(!1),y=(0,n.useRef)(!0),I=(0,Fe.oP)(),[L]=(0,re.useSearchParams)(),{shixun_environment_id:P,position:b,tab_type:H,index_tab:B,command_string:q}=D;(0,n.useEffect)(()=>{T()},[]);function c(v,w,A){let E=A._core._renderService.dimensions.actualCellWidth||9.5,a=A._core._renderService.dimensions.actualCellHeight||18;const i=Math.floor(w/a);return[Math.floor(v/E),i]}function K(v,w){const A=new Ce.Z(E=>{for(let a of E)if(a.target.offsetHeight>0||a.target.offsetWidth>0){const[i,u]=c(a.target.offsetWidth,a.target.offsetHeight,v);console.log("cols, rows",i,u),x.Z.publish(`ssh-xterm-resize-${B}`,{columns:i,rows:u,width:a.target.offsetWidth,height:a.target.offsetHeight}),v.resize(i,u);const O=_.Base64.decode("IA=="),Q=_.Base64.decode("CBtbSw==");v.write(O),v.write(Q)}});return A.observe(w),A}function T(){return le(this,null,function*(){var v,w,A,E,a;let i={};L.get("type")==="exercises"?i.exercise_id=L.get("exercisesId"):S.courseId&&S.homeworkId&&(i.homework_common_id=S.homeworkId);const u=yield(0,ne.sA)(s==null?void 0:s.identifier,j(j({shixun_environment_id:P,tab_type:H,game_id:m.id},I),i));if((w=(v=u==null?void 0:u.data)==null?void 0:v.data_list)!=null&&w.length){x.Z.publish("pod-restrict-data",{identifier:(A=u==null?void 0:u.data)==null?void 0:A.identifier,data_list:(E=u==null?void 0:u.data)==null?void 0:E.data_list});return}if((u==null?void 0:u.status)===-3)return new Promise((O,Q)=>le(this,null,function*(){ue.default.confirm({content:"\u68C0\u6D4B\u5230\u60A8\u5DF2\u7ECF\u5F00\u542F\u4E86\u5176\u4ED6\u5B9E\u9A8C\u73AF\u5883\uFF0C\u8BF7\u5148\u5173\u95ED\u73AF\u5883\u540E\uFF0C\u518D\u8FDE\u63A5",okText:"\u7ACB\u5373\u5173\u95ED",cancelText:"\u7A0D\u540E\u5173\u95ED",onOk:()=>le(this,null,function*(){yield closeWindowsVnc(S.taskId,u==null?void 0:u.message),init()})})}));if(((a=u==null?void 0:u.data)==null?void 0:a.code)===200036){ue.default.confirm({centered:!0,icon:null,width:430,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",title:"\u63D0\u793A",cancelButtonProps:{style:{display:"none"}},content:J.createElement("div",{className:"mb10"},"\u7531\u4E8E\u4E0A\u6B21\u7684\u5B9E\u9A8C\u73AF\u5883\u672A\u6B63\u5E38\u5173\u95ED\uFF0C\u65E0\u6CD5\u518D\u5F00\u542F\u65B0\u7684\u5B9E\u9A8C\u73AF\u5883,",J.createElement("br",null),J.createElement("span",{style:{color:"#fd4020"}},"\u9700\u5F3A\u5236\u5220\u9664\u65E7\u5B9E\u9A8C\u73AF\u5883\u518D\u91CD\u65B0\u5F00\u542F")),onOk:()=>{(0,ne.VT)(s==null?void 0:s.identifier,{shixun_environment_id:P,tab_type:H,game_id:m.id}).then(O=>{(O==null?void 0:O.status)==0&&T()})}});return}(u==null?void 0:u.status)===0&&(x.Z.publish("update-windows-time",u==null?void 0:u.data),x.Z.publish("send-tabs-result-data",se(j({},u==null?void 0:u.data),{index_tab:B})),X(u.data),setTimeout(()=>x.Z.publish(`create-socket-${B}`),300))})}return(0,n.useEffect)(()=>{if(e.current&&C){const v=new te.Terminal({fontSize:16,rendererType:"dom",disableStdin:!0});v.open(e.current),v.onData(A=>{t.current&&t.current.readyState===1&&t.current.send(JSON.stringify({tp:"client",data:A}))}),v.write("Connecting..."),ae(v);const w=K(v,e.current);return()=>{v.dispose(),e.current&&(w==null||w.unobserve(e.current))}}},[C,e.current]),(0,n.useEffect)(()=>{if(f&&C){let v=function(){const E=new WebSocket(C);t.current=E,E.onopen=()=>{let i=f.element.parentElement;if(i){let u=i.offsetWidth,O=i.offsetHeight;console.log("init",{tp:"init",data:se(j({},G),{secret:W,width:u,height:O,rows:f.rows,columns:f.cols})}),E.send(JSON.stringify({tp:"init",data:se(j({},G),{secret:W,width:u,height:O,rows:f.rows,columns:f.cols})}))}f.focus()},E.onerror=i=>{console.log("------in socket error----",i,E,C)},E.onmessage=i=>{F.current=!1,o.current||(f.write("\r"),setTimeout(()=>{},1e3)),o.current=!0,console.log("event:",i);const u=_.Base64.decode(i.data.toString());let O=f._core._renderService.dimensions.actualCellWidth||9.5;console.log("data:",u,O,f),f.write(u),q!=null&&q.length?y.current&&(y.current=!1,setTimeout(()=>{t.current.send(JSON.stringify({tp:"client",data:(q==null?void 0:q.join("\r"))+"\r"})),f.setOption("disableStdin",!1)},1e3)):(y.current=!1,f.setOption("disableStdin",!1))};const a=setInterval(()=>{var i;t.current&&((i=t.current)==null||i.send(JSON.stringify({tp:"h"})))},ve);E.onclose=i=>{a&&clearInterval(a),console.log(a,"tid",B),F.current||f.write(`\r
connection closed`),F.current=!0,setTimeout(()=>{v()},1e4)}};const w=x.Z.subscribe(`create-socket-${B}`,()=>{v()}),A=x.Z.subscribe(`ssh-xterm-resize-${B}`,E=>{t.current&&t.current.readyState===1&&t.current.send(JSON.stringify({tp:"resize",data:j({},E)}))});return()=>{w(),A(),t.current&&(t.current.close(),o.current=!1)}}},[f,C,Be]),J.createElement("div",{ref:e,className:ge["xterm-panel"]},C?null:J.createElement("p",{style:{color:"#fff"}},"\u6B63\u5728\u8FDE\u63A5\u547D\u4EE4\u884C\u670D\u52A1..."))}}}]);