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/8574.async.js

2 lines
12 KiB

"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8574],{18574:function(ie,J,m){m.d(J,{Z:function(){return Z}});var d=m(59301),ee=m(63144),B=m(8591),j=m(76265),te=m(1012),K=m(96171),G=m(47257),ne=m.n(G),ae={flex_box_center:"flex_box_center___kVqBh",flex_space_between:"flex_space_between___FMnNq",flex_box_vertical_center:"flex_box_vertical_center___meESe",flex_box_center_end:"flex_box_center_end___KFpOb",flex_box_column:"flex_box_column___GHIK9",video:"video___nn_cD"},H=m(33288),W=(S,k,F)=>new Promise(($,M)=>{var L=v=>{try{I(F.next(v))}catch(p){M(p)}},D=v=>{try{I(F.throw(v))}catch(p){M(p)}},I=v=>v.done?$(v.value):Promise.resolve(v.value).then(L,D);I((F=F.apply(S,k)).next())});const oe=function(k,F){const $=k.split(","),M=$[0].match(/:(.*?);/)[1],L=atob($[1]);let D=L.length;const I=new Uint8Array(D);for(;D--;)I[D]=L.charCodeAt(D);return new Blob([I],{type:M})};var Z=(0,d.forwardRef)(({time:S,number:k,supportCamera:F,take_photo:$,isExercise:M=!0,update:L,onUserMediaLoaded:D},I)=>{const v=(0,d.useRef)(),p=(0,d.useRef)(),Y=(0,ee.useParams)();let[Q,ue]=(0,d.useState)([]),[t,n]=(0,d.useState)(0);const[r,_]=(0,d.useState)("");let[i,e]=(0,d.useState)();const[E,g]=(0,d.useState)(0),y=(o,c)=>W(void 0,null,function*(){return(0,j.ZP)("/api/attachments.json",{method:"POST",body:{file_type:"base64",original_filename:o,file:c}})}),s=o=>W(void 0,null,function*(){const c=new Date().valueOf();if(o){const u=yield y(`\u7167\u7247${c}`,o);u.status||(yield(0,H.Ju)({container_id:Y.categoryId,container_type:"Exercise",attachment_id:u==null?void 0:u.id}))}});(0,d.useEffect)(()=>(h(),()=>{O(),f()}),[]),(0,d.useEffect)(()=>{t===2&&S&&k>0&&(a(),g(1))},[S]),(0,d.useEffect)(()=>{if(E!==0){if(E===2)clearInterval(i);else{let o=0,c=setInterval(()=>{Q.includes(o)&&C(),o++},1e3);e(c)}return()=>clearInterval(i)}},[E]),(0,d.useImperativeHandle)(I,()=>({handlePhoto:C,handleTakePhoto:U}));const f=()=>{g(2)},a=()=>{const o=S/k,c=[];function u(x,P){return parseInt(Math.floor(Math.random()*(P-x+1))+x)}new Array(k).fill(0).map((x,P)=>{$?c.push(u(o*P,o*(P+1))):P==0?c.push(0):c.push(u(o*P,o*(P+1)))}),Q=c,ue([...c]),console.log(c)},h=()=>{navigator.mediaDevices===void 0&&(navigator.mediaDevices={}),navigator.mediaDevices.getUserMedia===void 0&&(navigator.mediaDevices.getUserMedia=function(o){const c=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia;return c?new Promise(function(u,x){c.call(navigator,o,u,x)}):Promise.reject(new Error("getUserMedia is not implemented in this browser"))}),navigator.mediaDevices.getUserMedia({video:{width:640,height:480}}).then(function(o){w.current=o,F&&F(2),n(2),"srcObject"in v.current?v.current.srcObject=o:v.current.src=window.URL.createObjectURL(o),v.current.onloadedmetadata=function(c){v.current.play(),D&&D()},v.current.addEventListener("ended",function(){console.log("\u64AD\u653E\u7ED3\u675F"),f(),M&&B.ZP.error({content:"\u60A8\u5DF2\u7ECF\u5173\u95ED\u4E86\u6444\u50CF\u5934\uFF0C\u8BF7\u572810\u79D2\u949F\u5185\u6062\u590D\u6444\u50CF\u5934\uFF0C\u5426\u5219\u5C06\u63A8\u51FA\u8003\u8BD5",duration:10,key:9998})},!1)}).catch(function(o){n(1),F&&F(1),o.message==="Permission denied"||o.name==="NotAllowedError"?B.ZP.error("\u60A8\u5DF2\u62D2\u7EDD\u4E86\u83B7\u53D6\u6444\u50CF\u5934"):B.ZP.error("\u6444\u50CF\u5934\u83B7\u53D6\u5931\u8D25\uFF0C\u6216\u60A8\u5DF2\u62D2\u7EDD\u4E86\u83B7\u53D6\u6444\u50CF\u5934"),console.log("errname: "+o.name),console.log("err: "+o.message)})},C=()=>{try{p.current.width=v.current.videoWidth,p.current.height=v.current.videoHeight,p.current.getContext("2d").drawImage(v.current,0,0,p.current.width,p.current.height),_(p.current.toDataURL("image/png")),s(p.current.toDataURL("image/png")),N(p.current.toDataURL("image/png"))}catch(o){}},U=()=>{try{return p.current.width=v.current.videoWidth,p.current.height=v.current.videoHeight,p.current.getContext("2d").drawImage(v.current,0,0,p.current.width,p.current.height),p.current.toDataURL("image/png")}catch(o){}},w=(0,d.useRef)(),O=()=>{try{w.current.getTracks().forEach(function(u){u.stop()}),v.current.srcObject=null}catch(o){}},N=o=>W(void 0,null,function*(){var c,u,x,P,A,X,V;const l=yield(0,j.ZP)("/api/buckets/get_upload_token.json",{method:"get"});l.data=JSON.parse((0,K.pe)(l.data));const b=(0,te.Z)(),z=new(ne())({endpoint:(c=l==null?void 0:l.data)==null?void 0:c.end_point,region:(u=l==null?void 0:l.data)==null?void 0:u.region,accessKeyId:(x=l==null?void 0:l.data)==null?void 0:x.access_key_id,accessKeySecret:(P=l==null?void 0:l.data)==null?void 0:P.access_key_secret,bucket:(A=l==null?void 0:l.data)==null?void 0:A.bucket,stsToken:(X=l==null?void 0:l.data)==null?void 0:X.security_token}),R=oe(o,b);z.multipartUpload(`${b}.png`,R,{timeout:10*1e3,partSize:10485760,callback:{url:(V=l==null?void 0:l.data)==null?void 0:V.callback_url,host:l==null?void 0:l.data.bucket_host,body:"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var=${x:my_var}&login="+Y.login+"&container_id="+Y.categoryId+"&container_type=Exercise"}}).then(function(T){console.log("result:",T)}).catch(function(T){console.log("err:",T)})});return d.createElement(d.Fragment,null,t!==3&&d.createElement("aside",{className:ae.video,id:"screenshot"},t===0&&d.createElement("span",null,"\u6B63\u5728\u5F00\u542F\u6444\u50CF\u5934..."),t===1&&d.createElement("span",null,"\u6444\u50CF\u5934\u5F00\u542F\u5931\u8D25"),t===2&&d.createElement("div",null,d.createElement("video",{width:"288",ref:v,autoPlay:!0}),d.createElement("canvas",{style:{display:"none"},ref:p}))))})},96171:function(ie,J,m){m.d(J,{cT:function(){return Q},pe:function(){return v}});var d=m(59301),ee=m(46651),B=m(8591),j=m(76265),te=m(28209),K=m.n(te),G=m(1012),ne=m(63144),ae=m(47257),H=m.n(ae),W=Object.defineProperty,oe=Object.defineProperties,re=Object.getOwnPropertyDescriptors,Z=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,F=(t,n,r)=>n in t?W(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r,$=(t,n)=>{for(var r in n||(n={}))S.call(n,r)&&F(t,r,n[r]);if(Z)for(var r of Z(n))k.call(n,r)&&F(t,r,n[r]);return t},M=(t,n)=>oe(t,re(n)),L=(t,n)=>{var r={};for(var _ in t)S.call(t,_)&&n.indexOf(_)<0&&(r[_]=t[_]);if(t!=null&&Z)for(var _ of Z(t))n.indexOf(_)<0&&k.call(t,_)&&(r[_]=t[_]);return r},D=(t,n,r)=>new Promise((_,i)=>{var e=y=>{try{g(r.next(y))}catch(s){i(s)}},E=y=>{try{g(r.throw(y))}catch(s){i(s)}},g=y=>y.done?_(y.value):Promise.resolve(y.value).then(e,E);g((r=r.apply(t,n)).next())});const{Dragger:I}=ee.default,v=t=>{const n="bf3c199c2470cb477d907b1e0917c17b",r="5183666c72eec9e4";var _=K().enc.Utf8.parse(n);let i=K().enc.Utf8.parse(r);var e=K().AES.decrypt(t,_,{iv:i,mode:K().mode.CBC});return e.toString(K().enc.Utf8)};let p;const Y=t=>D(void 0,[t],function*({identifier:n,oldFilename:r,newFilename:_}){var i,e,E,g,y,s;const f=yield Fetch("/api/buckets/get_upload_token_for_big_files.json",{method:"get"});f.data=JSON.parse(v(f.data));const a=new OSS({endpoint:(i=f==null?void 0:f.data)==null?void 0:i.end_point,region:(e=f==null?void 0:f.data)==null?void 0:e.region,accessKeyId:(E=f==null?void 0:f.data)==null?void 0:E.access_key_id,accessKeySecret:(g=f==null?void 0:f.data)==null?void 0:g.access_key_secret,bucket:(y=f==null?void 0:f.data)==null?void 0:y.bucket,stsToken:(s=f==null?void 0:f.data)==null?void 0:s.security_token});return new Promise((h,C)=>{console.log(11111,`${n}/${r}`,`${n}/${_}`,f.data),a.copy(`/${n}/${r}`,`/${n}/${_}`).then(U=>{console.log("\u62F7\u8D1D\u6210\u529F",U)}).catch(U=>{console.log(U)})})}),Q=(t,n,r)=>D(void 0,null,function*(){var _,i,e,E,g,y;n.file_name=t.name;const s=yield(0,j.ZP)("/api/buckets/get_upload_token.json",{method:"get"});console.log("decrypt(res.data):",v(s.data)),s.data=JSON.parse(v(s.data));const f=t.name.split(".");f.pop();const a=n.realFileName?f.join(""):(0,G.Z)(),h=new(H())({endpoint:(_=s==null?void 0:s.data)==null?void 0:_.end_point,region:(i=s==null?void 0:s.data)==null?void 0:i.region,accessKeyId:(e=s==null?void 0:s.data)==null?void 0:e.access_key_id,accessKeySecret:(E=s==null?void 0:s.data)==null?void 0:E.access_key_secret,bucket:(g=s==null?void 0:s.data)==null?void 0:g.bucket,stsToken:(y=s==null?void 0:s.data)==null?void 0:y.security_token});return new Promise((C,U)=>{var w;h.multipartUpload(`${a}`,new Blob([t],{type:t.type}),M($({timeout:200*1e3,partSize:102400},r),{callback:{url:(w=s==null?void 0:s.data)==null?void 0:w.callback_url,host:s==null?void 0:s.data.bucket_host,body:"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var=${x:my_var}&"+(0,j.rz)(n)}})).then(function(O){var N;t.response=(N=O.data)==null?void 0:N.data,C(O==null?void 0:O.data)}).catch(function(O){U(O),console.log("err:",O)})})}),ue=t=>{var n=t,{user:r,cancelUpload:_}=n,i=L(n,["user","cancelUpload"]);const[e,E]=(0,d.useState)([]);let[g,y]=(0,d.useState)();const s={onRemove:a=>{E([...e.filter(h=>h.name!==a.name)]),i.onChange(e.filter(h=>h.name!==a.name))},disabled:i.disabled,multiple:!0,fileList:e==null?void 0:e.map(a=>a.file),customRequest:()=>{},beforeUpload:a=>D(void 0,null,function*(){let h=i.maxSize||1073741824;if(e.filter(C=>C.name===a.name).length){B.ZP.info(`${a.name}\u5DF2\u5B58\u5728\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9`);return}return(a==null?void 0:a.size)>h?(B.ZP.info(`\u6587\u4EF6\u8D85\u8FC7${h/1024/1024/1024}GB\uFF0C\u4E0D\u7B26\u5408\u4E0A\u4F20\u8981\u6C42`),!1):(e.push({name:a.name,file:a}),E([...e]),i.onChange(e),!1)})},f=(a,h)=>D(void 0,null,function*(){var C,U,w,O,N,o;h.file_name=a.name;const c=a.name,u=yield(0,j.ZP)("/api/buckets/get_upload_token_for_big_files.json",{method:"get"});if(u.data=JSON.parse(v(u.data)),(u==null?void 0:u.status)!==0){e[e.findIndex(A=>A.name===c)].status="error",e[e.findIndex(A=>A.name===c)].file.status="error",i.onChange(e),B.ZP.warning("\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u5C1D\u8BD5");return}g=new(H())({endpoint:(C=u==null?void 0:u.data)==null?void 0:C.end_point,region:(U=u==null?void 0:u.data)==null?void 0:U.region,accessKeyId:(w=u==null?void 0:u.data)==null?void 0:w.access_key_id,accessKeySecret:(O=u==null?void 0:u.data)==null?void 0:O.access_key_secret,bucket:(N=u==null?void 0:u.data)==null?void 0:N.bucket,stsToken:(o=u==null?void 0:u.data)==null?void 0:o.security_token}),console.log(a,"file"),y(g);const x=a.name.split(".");x.pop();const P=h.realFileName?x.join("."):(0,G.Z)();return new Promise((A,X)=>{var V;try{g.multipartUpload(`${i.identifier}/${P}${c.indexOf(".")>-1?"."+c.split(".").pop():""}`,new Blob([a.file],{type:a.file.type}),{timeout:3600*1e3,partSize:1002400,progress:(l,b,z)=>{try{console.log("\u8FDB\u5EA6",l,b,z);const R=e.findIndex(T=>T.name===c);e[R].file.percent=l*100,e[R].tempCheckpoint=b,E([...e])}catch(R){}},checkpoint:e[e.findIndex(l=>l.name===c)].tempCheckpoint,callback:{customValue:{id:c+""},url:(V=u==null?void 0:u.data)==null?void 0:V.callback_url,host:u==null?void 0:u.data.bucket_host,body:"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var=${x:my_var}&"+(0,j.rz)(h)}}).then(function(l){var b,z,R;const T=e.findIndex(q=>q.name===c);let le="done";if(((b=l.data)==null?void 0:b.status)===0){a.response=(z=l.data)==null?void 0:z.data;const q=e.findIndex(ce=>ce.name===c);e[q].status="done",e[q].file.status="done"}else B.ZP.warning((R=l.data)==null?void 0:R.message),le="error";e[T].status=le,e[T].file.status=le,i.onChange(e),A(l==null?void 0:l.data)}).catch(function(l){e[e.findIndex(b=>b.name===c)].status="error",e[e.findIndex(b=>b.name===c)].file.status="error",B.ZP.warning("\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u5C1D\u8BD5"),E([...e]),i.onChange(e),X(l),console.log("err:",l)})}catch(l){}})});return(0,d.useEffect)(()=>{e.every(a=>a==="done"||a==="error")&&i.onComplete(e)},[e]),(0,d.useEffect)(()=>{_&&(g==null||g.cancel())},[_]),(0,d.useEffect)(()=>{i.uploading&&e.map(a=>D(void 0,null,function*(){var h;if((!a.status||a.status==="error")&&!_){a.status="uploading",a.file.status="uploading";const C=yield f(a,{login:(h=r==null?void 0:r.userInfo)==null?void 0:h.login,container_type:i.container_type,container_id:i.container_id,description:i.description,realFileName:i.realFileName})}}))},[i.uploading]),d.createElement(I,M($({},s),{height:i.height,className:i.className}),d.createElement("p",{className:"ant-upload-hint"},i.text||"\u62D6\u62FD\u6587\u4EF6\u6216\u8005\u70B9\u51FB\u4E0A\u4F20"))};J.ZP=(0,ne.connect)(({loading:t,globalSetting:n,user:r})=>({globalSetting:n,loading:t.models.competitions,user:r}))(ue)}}]);