2 lines
3.6 KiB
JavaScript
2 lines
3.6 KiB
JavaScript
|
import{d as A,c5 as T,P as D,r,cq as F,O as R,i as M,o as c,c as u,k as p,m as _,y as f,e as h,Y as y,t as b,K as I,x as k,Z as q,aL as G,C as H,I as K}from"./index-ce293e15.js";import{E as P}from"./el-link-56dc02b5.js";import{E as Y}from"./el-upload-f5a4cf25.js";import"./el-progress-b748f709.js";import{l as Z,d as J}from"./index-da6bfb18.js";const Q={class:"upload-file"},W={key:0,class:"el-upload__tip"},X={style:{color:"#f56c6c"}},ee={style:{color:"#f56c6c"}},le={class:"el-icon-document"},te={class:"ele-upload-list__item-content-action"},se=A({__name:"index",props:{modelValue:[String,Object,Array],limit:T.number.def(5),fileSize:T.number.def(5),fileType:T.array.def(["doc","docx","xls","xlsx","ppt","pptx","txt","pdf"]),isShowTip:T.bool.def(!0)},emits:["update:modelValue"],setup(n,{emit:E}){const o=n,{proxy:l}=D(),m=r(0),g=r([]),U=r("/api"+"/resource/oss/upload"),V=r(F()),i=r([]),w=R(()=>o.isShowTip&&(o.fileType||o.fileSize)),S=r();M(()=>o.modelValue,async e=>{if(e){let s=1,t=[];Array.isArray(e)?t=e:t=(await Z(e)).data.map(d=>({name:d.originalName,url:d.url,ossId:d.ossId})),i.value=t.map(a=>(a={name:a.name,url:a.url,ossId:a.ossId},a.uid=a.uid||new Date().getTime()+s++,a))}else return i.value=[],[]},{deep:!0,immediate:!0});const z=e=>{if(o.fileType.length){const s=e.name.split("."),t=s[s.length-1];if(!(o.fileType.indexOf(t)>=0))return l==null||l.$modal.msgError(`文件格式不正确, 请上传${o.fileType.join("/")}格式文件!`),!1}return o.fileSize&&!(e.size/1024/1024<o.fileSize)?(l==null||l.$modal.msgError(`上传文件大小不能超过 ${o.fileSize} MB!`),!1):(l==null||l.$modal.loading("正在上传文件,请稍候..."),m.value++,!0)},B=()=>{l==null||l.$modal.msgError(`上传文件数量不能超过 ${o.limit} 个!`)},N=()=>{l==null||l.$modal.msgError("上传文件失败")},O=(e,s)=>{var t;e.code===200?(g.value.push({name:e.data.fileName,url:e.data.url,ossId:e.data.ossId}),$()):(m.value--,l==null||l.$modal.closeLoading(),l==null||l.$modal.msgError(e.msg),(t=S.value)==null||t.handleRemove(s),$())},C=e=>{let s=i.value[e].ossId;J(s),i.value.splice(e,1),E("update:modelValue",L(i.value))},$=()=>{m.value>0&&g.value.length===m.value&&(i.value=i.value.filter(e=>e.url!==void 0).concat(g.value),g.value=[],m.value=0,E("update:modelValue",L(i.value)),l==null||l.$modal.closeLoading())},x=e=>e.lastIndexOf("/")>-1?e.slice(e.lastIndexOf("/")+1):e,L=(e,s)=>{let t="";return s=s||",",e.forEach(a=>{a.ossId&&(t+=a.ossId+s)}),t!=""?t.substring(0,t.length-1):""};return(e,s)=>{const t=H,a=Y,d=P;return c(),u("div",Q,[p(a,{multiple:"",action:h(U),"before-upload":z,"file-list":h(i),limit:n.limit,"on-error":N,"on-exceed":B,"on-success":O,"show-file-list":!1,headers:h(V),class:"upload-file-uploader",ref_key:"fileUploadRef",ref:S},{default:_(()=>[p(t,{type:"primary"},{default:_(()=>[f("选取文件")]),_:1})]),_:1},8,["action","file-list","limit","headers"]),h(w)?(c(),u("div",W,[f(" 请上传 "),n.fileSize?(c(),u(y,{key:0},[f(" 大小不超过 "),b("b",X,I(n.fileSize)+"MB",1)],64)):k("",!0),n.fileType?(c(),u(y,{key:1},[f(" 格式为 "),b("b",ee,I(n.fileType.join("/")),1)],64)):k("",!0),f(" 的文件 ")])):k("",!0),p(G,{class:"upload-file-list el-upload-list el-upload-list--text",name:"el-fade-in-linear",tag:"ul"},{default:_(()=>[(c(!0),u(y,null,q(h(i),(v,j)=>(c(),u("li",{key:v.uid,class:"el-upload-list__item ele-upload-list__item-content"},[p(d,{href:`${v.url}`,underline:!1,target:"_blank"},{default:_(()=>[b("span",le,I(x(v.name)),1)]),_:2},1032,["href"]),b("div",te,[p(d,{underline:!1,onClick:oe=>C(j),type:"danger"},{default:_(()=>[f("删除")]),_:2},1032,["onClick"])])]))),128))]),_:1})])}}});const ue=K(se,[["__scopeId","data-v-d4cbff65"]]);export{ue as _};
|