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