2 lines
2.7 KiB
JavaScript
2 lines
2.7 KiB
JavaScript
import{a1 as P,a2 as V,Y as A}from"./element-plus-CFxTwCZ2.js";import{a as N,u as R,m as E,R as k,f as u,d as j}from"./index-DqzX0p3J.js";import{f as F,A as y,ak as i,I as p,a as b,aN as C,aq as I,G as q,J as f,F as D,ap as _,H as G}from"./@vue/runtime-core-C0pg79pw.js";import{o as m,u as H}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as J}from"./@vue/shared-mAAVTE9n.js";const O=F({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=H(),v=m(`${E.baseUrl}${E.urlPrefix}/upload/${e.type}`),c=y(()=>({token:g.token,version:h.config.version})),t=m(!1),a=m([]),o=()=>{t.value=!0};let l=0;const $=(r,n)=>{l++,l==a.value.length&&(l=0,a.value=[],s("allSuccess")),s("change",n),r.code==k.SUCCESS&&s("success",r),r.code==k.FAIL&&r.msg&&u.msgError(r.msg)},L=(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)},w=()=>{u.msgError(`超出上传上限${e.limit},请重新上传`)},U=()=>{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:$,handleError:L,handleExceed:w,handleClose:U}}}),Q={class:"upload"},Y={class:"file-list p-4"},z={class:"flex-1"};function K(e,s,g,h,d,v){const c=P,t=V,a=A;return i(),p("div",Q,[b(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(()=>[I(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(),q(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(()=>[f("div",Y,[(i(!0),p(D,null,_(e.fileList,(o,l)=>(i(),p("div",{key:l,class:"mb-5"},[f("div",null,J(o.name),1),f("div",z,[b(t,{percentage:parseInt(o.percentage)},null,8,["percentage"])])]))),128))])]),_:1},8,["modelValue","onClose"])):G("",!0)])}const x=j(O,[["render",K]]);export{x as U};
|