2 lines
2.6 KiB
JavaScript
2 lines
2.6 KiB
JavaScript
import{T as P,U as A,N as V}from"./element-plus-BluzIk5z.js";import{a as N,u as R,i as E,R as b,f as u,d as F}from"./index-CRoe5vjT.js";import{d as j,s as D,r as p,b as y,c as f,o as i,U as k,K as I,P as T,L as C,H as _,a as m,T as q,ab as H,S as K}from"./@vue-DjVelRet.js";const O=j({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","allSuccess"],setup(e,{emit:s}){const g=N(),h=R(),d=D(),v=p(`${E.baseUrl}${E.urlPrefix}/upload/${e.type}`),c=y(()=>({token:g.token,version:h.config.version})),t=p(!1),a=p([]),o=()=>{t.value=!0};let l=0;const L=(r,n)=>{l++,l==a.value.length&&(l=0,a.value=[],s("allSuccess")),s("change",n),r.code==b.SUCCESS&&s("success",r),r.code==b.FAIL&&r.msg&&u.msgError(r.msg)},U=(r,n)=>{var S;l++,l==a.value.length&&(l=0,a.value=[],s("allSuccess")),u.msgError(`${n.name}文件上传失败`),(S=d.value)==null||S.abort(n),t.value=!1,s("change",n),s("error",n)},$=()=>{u.msgError(`超出上传上限${e.limit},请重新上传`)},w=()=>{a.value=[],t.value=!1},B=y(()=>{switch(e.type){case"image":return".jpg,.png,.gif,.jpeg,.ico";case"video":return".wmv,.avi,.mpg,.mpeg,.3gp,.mov,.mp4,.flv,.rmvb,.mkv";default:return"*"}});return{uploadRefs:d,action:v,headers:c,visible:t,fileList:a,getAccept:B,handleProgress:o,handleSuccess:L,handleError:U,handleExceed:$,handleClose:w}}}),z={class:"upload"},G={class:"file-list p-4"},J={class:"flex-1"};function M(e,s,g,h,d,v){const c=P,t=A,a=V;return i(),f("div",z,[k(c,{"file-list":e.fileList,"onUpdate:fileList":s[0]||(s[0]=o=>e.fileList=o),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:C(()=>[_(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(),I(a,{key:0,modelValue:e.visible,"onUpdate:modelValue":s[1]||(s[1]=o=>e.visible=o),title:"上传进度","close-on-click-modal":!1,width:"500px",modal:!1,onClose:e.handleClose},{default:C(()=>[m("div",G,[(i(!0),f(q,null,H(e.fileList,(o,l)=>(i(),f("div",{key:l,class:"mb-5"},[m("div",null,K(o.name),1),m("div",J,[k(t,{percentage:parseInt(o.percentage)},null,8,["percentage"])])]))),128))])]),_:1},8,["modelValue","onClose"])):T("",!0)])}const Y=F(O,[["render",M]]);export{Y as U};
|