You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
2.6 KiB
JavaScript

import{V as B,W as U,L as w}from"./element-plus.54d22a26.js";import{a as V,j as p,R as C,f,d as D}from"./index.73351f2d.js";import{d as P,s as R,r as m,b as F,o as i,c as g,U as b,L as y,H as j,K as N,a as v,T as I,a9 as _,S as q,Q as H}from"./@vue.90bde458.js";const K=P({components:{},props:{type:{type:String,default:"image"},multiple:{type:Boolean,default:!0},limit:{type:Number,default:10},data:{type:Object,default:()=>({})},showProgress:{type:Boolean,default:!1}},emits:["change","error","success"],setup(e,{emit:a}){const h=V(),u=R(),E=m(`${p.baseUrl}${p.urlPrefix}/upload/${e.type}`),L=F(()=>({token:h.token,version:p.version})),r=m(!1),o=m([]),d=(l,t,n)=>{r.value=!0};let s=0;const c=(l,t,n)=>{s++,s==o.value.length&&(s=0,o.value=[]),a("change",t),l.code==C.SUCCESS&&a("success",l),l.code==C.FAIL&&l.msg&&f.msgError(l.msg)},S=(l,t)=>{var n;s++,s==o.value.length&&(s=0,o.value=[]),f.msgError(`${t.name}\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25`),(n=u.value)==null||n.abort(t),r.value=!1,a("change",t),a("error",t)},k=()=>{f.msgError(`\u8D85\u51FA\u4E0A\u4F20\u4E0A\u9650${e.limit}\uFF0C\u8BF7\u91CD\u65B0\u4E0A\u4F20`)},A=()=>{o.value=[],r.value=!1},$=F(()=>{switch(e.type){case"image":return".jpg,.png,.gif,.jpeg";case"video":return".wmv,.avi,.mpg,.mpeg,.3gp,.mov,.mp4,.flv,.rmvb,.mkv";default:return"*"}});return{uploadRefs:u,action:E,headers:L,visible:r,fileList:o,getAccept:$,handleProgress:d,handleSuccess:c,handleError:S,handleExceed:k,handleClose:A}}}),O={class:"upload"},Q={class:"file-list p-4"},T={class:"flex-1"};function W(e,a,h,u,E,L){const r=B,o=U,d=w;return i(),g("div",O,[b(r,{"file-list":e.fileList,"onUpdate:fileList":a[0]||(a[0]=s=>e.fileList=s),ref:"uploadRefs",action:e.action,multiple:e.multiple,limit:e.limit,"show-file-list":!1,headers:e.headers,data:e.data,"on-progress":e.handleProgress,"on-success":e.handleSuccess,"on-exceed":e.handleExceed,"on-error":e.handleError,accept:e.getAccept},{default:y(()=>[j(e.$slots,"default")]),_:3},8,["file-list","action","multiple","limit","headers","data","on-progress","on-success","on-exceed","on-error","accept"]),e.showProgress&&e.fileList.length?(i(),N(d,{key:0,modelValue:e.visible,"onUpdate:modelValue":a[1]||(a[1]=s=>e.visible=s),title:"\u4E0A\u4F20\u8FDB\u5EA6","close-on-click-modal":!1,width:"500px",modal:!1,onClose:e.handleClose},{default:y(()=>[v("div",Q,[(i(!0),g(I,null,_(e.fileList,(s,c)=>(i(),g("div",{key:c,class:"mb-5"},[v("div",null,q(s.name),1),v("div",T,[b(o,{percentage:parseInt(s.percentage)},null,8,["percentage"])])]))),128))])]),_:1},8,["modelValue","onClose"])):H("",!0)])}const M=D(K,[["render",W]]);export{M as U};