2 lines
8.5 KiB
JavaScript
2 lines
8.5 KiB
JavaScript
import{d as fe,D as Z,r as g,a1 as Fe,c as _,e as f,k as B,i,x as me,g as l,f as T,F as ee,j as ue,n as le,t as E,h as o,p as P,y as L,S as te,l as A,m as he,T as se,z as ge,E as F,q as Ee,s as Ce,_ as ye}from"./index-ccab2584.js";import{u as ke}from"./upload-a8c669b8.js";function we(e,p){let t=e.length;const k=["type","name","size"];for(;t--;){const R=e[t];let C=0;const U=(w,m)=>C<k.length?w[k[C]]===m[k[C]]&&!!++C&&U(w,m):!0;if(U(R,p))return R}return null}function I(e){switch(!0){case e<1024:return e+" b";case e/1024<1024:return parseInt(e/1024+"")+" kb";default:return(e/1024/1024).toFixed(1)+" mb"}}function De(e){if(e.response&&e.response.response&&e.response.response.contentType.includes("image"))return e.response.response.url;if(e.response&&e.response.contentType.includes("image"))return e.response.url;if(e&&e.contentType&&e.contentType.includes("image"))return e.fileUrl;if(e&&e.type&&e.type.indexOf("image")===-1||e&&e.contentType&&e.contentType.indexOf("image")===-1)return"https://pic.616pic.com/ys_img/01/01/73/ofxoiudgdb.jpg";const p=window.URL.createObjectURL(e);return e.url=p,p}function ae(e){let p;for(;p=e.shift();)p.url&&window.URL.revokeObjectURL(p.url)}const oe=e=>(Ee("data-v-c42c96dd"),e=e(),Ce(),e),be={class:"files-uplaod"},Be={class:"upload-side"},Ae=oe(()=>l("h3",{class:"upload-title"},"\u6DFB\u52A0\u6587\u4EF6",-1)),Ue={class:"options-list"},Se=["onClick"],xe={class:"upload-area"},ze={class:"header"},Te={key:0},Le=oe(()=>l("span",null,"\u6E29\u99A8\u63D0\u793A:\u5C06\u6587\u4EF6\u6DFB\u52A0\u5230\u4E0A\u4F20\u961F\u5217, \u7136\u540E\u70B9\u51FB\u201C\u5F00\u59CB\u4E0A\u4F20\u201D\u6309\u94AE\u3002",-1)),Ie={key:1},Re={class:"upload-list"},Ve={class:"pictures"},Oe=["onClick"],$e=["src","alt"],je={class:"image-info"},Ne=["title"],Me={class:"upload-footer"},Pe={class:"file-info"},We={class:"size"},qe={class:"operate"},Je=["accept"],Ge="_Upload",He=fe({__name:"FilesUpload",props:{modelValue:{type:Boolean},maxFileSize:{default:5*1024*1024},maxTotalFileSize:{default:50*1024*1024},types:{},checkDuplicateFile:{type:Boolean,default:!0},timeout:{default:3e4},reset:{type:Boolean},files:{},beforeUpload:{}},emits:["update:modelValue","update:files"],setup(e,{emit:p}){var K;const t=e,k="http://47.104.132.250:9000",R=["\u5217\u8868","\u7F29\u7565\u56FE"],C=u=>{const a="primary",r="default";switch(u){case"add":return v.value?r:a;case"start":return v.value||!s.value.length?r:a;case"stop":return v.value?a:r;default:return r}},U=Z(()=>s.value.reduce((u,a)=>u+a.size,0)),w=Z(()=>t.maxTotalFileSize&&U.value>t.maxTotalFileSize),m=g(!1),S=g(0),V=g(0),O=g(0),x=g(0),v=g(!1),s=g((K=t.files)!=null&&K.length?t.files:[]),y=g([]),j=g([]),W=g(),ne=u=>{u.response?window.open(k+"/xmgl/file/preview?fileUrl="+u.response.url):F.error("\u6682\u65E0\u53EF\u4E0B\u8F7D\u6587\u4EF6")},ie=(u,a,r)=>{u.response?window.open(k+"/xmgl/file/preview?fileUrl="+u.response.url):F.error("\u6682\u65E0\u53EF\u4E0B\u8F7D\u6587\u4EF6")},q=()=>{var u;(u=W.value)==null||u.click()},ce=u=>{const a=u.target.files;if(!a)return;if(w.value)return F.warning("\u5DF2\u8D85\u51FA\u6700\u5927\u9650\u5236, \u8BF7\u4E0D\u8981\u7EE7\u7EED\u4E0A\u4F20");let r=!0;if(t.beforeUpload&&(r=t.beforeUpload(a)),r!==!0)return;let c=a.length;const d=[];for(;c--;){const h=a[c];if(t.maxFileSize&&h.size>t.maxFileSize){F.warning(`\u5355\u4E2A\u6587\u4EF6\u5927\u5C0F\u9650\u5236 ${I(t.maxFileSize)}`);break}if(t.types&&!t.types.includes(h.type)){F.warning("\u4E0D\u652F\u6301\u7684\u6587\u4EF6\u7C7B\u578B");break}if(t.checkDuplicateFile&&we(s.value,h)){F.warning("\u8BF7\u4E0D\u8981\u9009\u62E9\u91CD\u590D\u6587\u4EF6");break}h.id=Ge+Math.random().toString(16).substring(4),d.push(h)}d.length===a.length&&s.value.push(...d),u.target.value=""},N=u=>{if(v.value)return F.warning("\u4E0A\u4F20\u4E2D, \u8BF7\u4E0D\u8981\u6267\u884C\u4EFB\u4F55\u64CD\u4F5C");const a=s.value.indexOf(u);a>=0&&(s.value.splice(a,1),y.value.splice(a,1),u.url&&window.URL.revokeObjectURL(u.url))},re=u=>{V.value+=u.progress||0},J=()=>{if(!s.value.length)return F.warning("\u672A\u9009\u62E9\u4EFB\u4F55\u6587\u4EF6");if(w.value)return F.warning("\u6587\u4EF6\u5927\u5C0F\u8D85\u51FA\u9650\u5236, \u65E0\u6CD5\u4E0A\u4F20");if(O.value=0,x.value=s.value.length-y.value.length,!x.value)return F.warning("\u5F53\u524D\u6CA1\u6709\u53EF\u4EE5\u4E0A\u4F20\u7684\u4EFB\u52A1");const u=window.setTimeout(()=>{F.warning("\u8BF7\u6C42\u8D85\u65F6, \u8BF7\u7A0D\u540E\u518D\u8BD5"),$()},t.timeout);v.value=!0;let a=s.value.length,r=0,c=0;for(;a--;){const d=s.value[a];if(d.response)break;r++,d.uploading=!0,m.value=!m.value;const h=new FormData;h.append("file",d);const D=new AbortController;j.value.push(D),ke(h,{signal:D.signal,onUploadProgress:re,headers:{noLoading:!0}}).then(z=>{z.code=="200"&&(d.response=z.result,O.value++,y.value.push(d))}).finally(()=>{m.value=!m.value,c++,c===r&&(d.uploading=!1,v.value=!1,window.setTimeout(()=>{V.value=0},500),window.clearTimeout(u))})}},$=()=>{let u;for(;u=j.value.shift();)u.abort()},G=()=>{$(),ae(s.value),m.value=!1,v.value=!1,O.value=0,x.value=0,S.value=0,V.value=0,y.value=[],s.value=[],j.value=[]},de=()=>{y.value,p("update:files",[...y.value]),t.reset&&G()},pe=()=>{t.files&&t.files.length&&(s.value=[...t.files],y.value=[...t.files])},H=()=>{p("update:modelValue",!1)};return Fe(()=>{ae(s.value)}),(u,a)=>{const r=_("InfoFilled"),c=_("el-icon"),d=_("WarningFilled"),h=_("Close"),D=_("el-table-column"),z=_("CircleCheckFilled"),Q=_("Upload"),X=_("RemoveFilled"),ve=_("el-table"),M=_("el-button"),_e=_("el-dialog");return f(),B(_e,{style:{width:"60%","min-height":"450px"},modelValue:u.modelValue,"close-on-click-modal":!1,"show-close":!1,onOpen:pe,onClose:de},{default:i(()=>{var Y;return[me(u.$slots,"default",{getSystemFile:q,removeFile:N,handlerUpload:J,stopUpload:$,reset:G,close:H,files:s.value},()=>[l("div",be,[l("aside",Be,[Ae,l("div",Ue,[(f(),T(ee,null,ue(R,(n,b)=>l("div",{class:le(["options-item",{active:S.value===b}]),key:b,onClick:Ke=>S.value=b},E(n),11,Se)),64))])]),l("section",xe,[l("div",ze,[s.value.length?P("",!0):(f(),T("p",Te,[o(c,{class:"info"},{default:i(()=>[o(r)]),_:1}),Le])),w.value?(f(),T("p",Ie,[o(c,{class:"error"},{default:i(()=>[o(d)]),_:1}),l("span",null,"\u6587\u4EF6\u5927\u5C0F\u9519\u8BEF: \u6587\u4EF6\u5927\u5C0F\u4E0D\u8D85\u8FC7 "+E(L(I)(u.maxTotalFileSize)),1)])):P("",!0),o(c,{class:"close",onClickCapture:H},{default:i(()=>[o(h)]),_:1})]),l("div",Re,[te(o(ve,{data:s.value,style:{width:"100%",height:"100%"},"header-cell-style":{backgroundColor:"#f5f7fa"},onRowClick:ie},{default:i(()=>[o(D,{"class-name":"name",prop:"name",label:"\u6587\u4EF6\u540D"}),o(D,{"header-align":"center",align:"right",prop:"size",label:"\u5927\u5C0F",width:"90"},{default:i(({row:n})=>[A(E(L(I)(n.size)),1)]),_:1}),o(D,{width:"40"},{default:i(({row:n})=>[A(E((m.value,""))+" ",1),n.response?(f(),B(c,{key:0,class:"success"},{default:i(()=>[o(z)]),_:1})):n.uploading?(f(),B(c,{key:1,class:"uploading"},{default:i(()=>[o(Q)]),_:1})):P("",!0),o(c,{class:"remove",onClick:he(b=>N(n),["stop"])},{default:i(()=>[o(X)]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"]),[[se,S.value===0]]),te(l("div",Ve,[(f(!0),T(ee,null,ue(s.value,n=>(f(),T("div",{class:"picture",key:n.id,onClick:b=>ne(n)},[A(E((m.value,""))+" ",1),l("img",{class:"image",src:L(De)(n),alt:n.name},null,8,$e),l("div",je,[l("p",{title:n.name},E(n.name),9,Ne),l("p",null,E(L(I)(n.size)),1)]),n.response?(f(),B(c,{key:0,class:"success"},{default:i(()=>[o(z)]),_:1})):n.uploading?(f(),B(c,{key:1,class:"uploading"},{default:i(()=>[o(Q)]),_:1})):(f(),B(c,{key:2,class:"remove",onClickCapture:b=>N(n)},{default:i(()=>[o(X)]),_:2},1032,["onClickCapture"]))],8,Oe))),128))],512),[[se,S.value===1]])]),l("footer",Me,[l("div",Pe,[l("span",We,E(s.value.length?L(I)(U.value):"\u672A\u9009\u62E9"),1),l("div",{class:"progress",style:ge({"--progress":`${parseInt(V.value/x.value*100+"")}%`})},null,4),l("span",{class:le(["uploaded",{active:v.value}])},E(`\u5DF2\u4E0A\u4F20 ${O.value}/${x.value} \u4E2A\u6587\u4EF6`),3)]),l("div",qe,[o(M,{type:C("add"),disabled:v.value,onClickCapture:q},{default:i(()=>[A("\u6DFB\u52A0\u6587\u4EF6 ")]),_:1},8,["type","disabled"]),o(M,{type:C("start"),disabled:v.value||!s.value.length,onClickCapture:J},{default:i(()=>[A(" \u5F00\u59CB\u4E0A\u4F20 ")]),_:1},8,["type","disabled"]),o(M,{type:C("stop"),disabled:!v.value,onClick:$},{default:i(()=>[A(" \u505C\u6B62\u4E0A\u4F20 ")]),_:1},8,["type","disabled"])])])])])],!0),l("input",{ref_key:"fileRef",ref:W,type:"file",multiple:"",style:{display:"none"},accept:(Y=u.types)!=null&&Y.length?u.types.join(","):"*",onChange:ce},null,40,Je)]}),_:3},8,["modelValue"])}}});const Ye=ye(He,[["__scopeId","data-v-c42c96dd"]]);export{Ye as F};
|