zhanghua
21 小时以前 fc0646f5a7d8ff66470fc3228ac7cff24497d54c
1
import{d as A,a9 as b,P as D,r as u,an as M,M as F,i as J,o as _,c as g,k as v,m as S,y as h,e as f,I as C,t as E,N as j,x as w,J as Q,ap as Y,C as W,H as x,j as Z,a0 as ee,X as le,aa as se,W as ae,D as oe,F as te}from"./index.js";import{E as ne}from"./el-link.js";import{a as H}from"./el-upload.js";import{a as X,d as q}from"./index28.js";const ie={class:"upload-file"},de={key:0,class:"el-upload__tip"},ue={style:{color:"#f56c6c"}},ce={style:{color:"#f56c6c"}},re={class:"el-icon-document"},fe={class:"ele-upload-list__item-content-action"},me=A({__name:"index",props:{modelValue:[String,Object,Array],limit:b.number.def(5),fileSize:b.number.def(150),fileType:b.array.def(["mp4","mov","3gp","mpeg-4","avi"]),isShowTip:b.bool.def(!0)},emits:["update:modelValue"],setup(d,{emit:y}){const n=d,{proxy:e}=D(),m=u(0),i=u([]),$=u("/prod-api"+"/resource/oss/upload"),R=u(M()),p=u([]),L=F(()=>n.isShowTip&&(n.fileType||n.fileSize)),c=u();J(()=>n.modelValue,async t=>{if(t){let o=1,l=[];Array.isArray(t)?l=t:l=(await X(t)).data.map(a=>({name:a.originalName,url:a.url,ossId:a.ossId})),p.value=l.map(s=>(s={name:s.name,url:s.url,ossId:s.ossId},s.uid=s.uid||new Date().getTime()+o++,s))}else return p.value=[],[]},{deep:!0,immediate:!0});const V=t=>{if(n.fileType.length){const o=t.name.split("."),l=o[o.length-1];if(!(n.fileType.indexOf(l)>=0))return e==null||e.$modal.msgError(`文件格式不正确, 请上传${n.fileType.join("/")}格式文件!`),!1}return n.fileSize&&!(t.size/1024/1024<n.fileSize)?(e==null||e.$modal.msgError(`上传文件大小不能超过 ${n.fileSize} MB!`),!1):(e==null||e.$modal.loading("正在上传文件,请稍候..."),m.value++,!0)},T=()=>{e==null||e.$modal.msgError(`上传文件数量不能超过 ${n.limit} 个!`)},N=()=>{e==null||e.$modal.msgError("上传文件失败")},O=(t,o)=>{var l;t.code===200?(i.value.push({name:t.data.fileName,url:t.data.url,ossId:t.data.ossId}),k()):(m.value--,e==null||e.$modal.closeLoading(),e==null||e.$modal.msgError(t.msg),(l=c.value)==null||l.handleRemove(o),k())},B=t=>{let o=p.value[t].ossId;q(o),p.value.splice(t,1),y("update:modelValue",U(p.value))},k=()=>{m.value>0&&i.value.length===m.value&&(p.value=p.value.filter(t=>t.url!==void 0).concat(i.value),i.value=[],m.value=0,y("update:modelValue",U(p.value)),e==null||e.$modal.closeLoading())},z=t=>t.lastIndexOf("/")>-1?t.slice(t.lastIndexOf("/")+1):t,U=(t,o)=>{let l="";return o=o||",",t.forEach(s=>{s.ossId&&(l+=s.ossId+o)}),l!=""?l.substring(0,l.length-1):""};return(t,o)=>{const l=W,s=H,a=ne;return _(),g("div",ie,[v(s,{multiple:"",action:f($),"before-upload":V,"file-list":f(p),limit:d.limit,"on-error":N,"on-exceed":T,"on-success":O,"show-file-list":!1,headers:f(R),class:"upload-file-uploader",ref_key:"fileUploadRef",ref:c},{default:S(()=>[v(l,{type:"primary"},{default:S(()=>[h("选取文件")]),_:1})]),_:1},8,["action","file-list","limit","headers"]),f(L)?(_(),g("div",de,[h(" 请上传 "),d.fileSize?(_(),g(C,{key:0},[h(" 大小不超过 "),E("b",ue,j(d.fileSize)+"MB",1)],64)):w("",!0),d.fileType?(_(),g(C,{key:1},[h(" 格式为 "),E("b",ce,j(d.fileType.join("/")),1)],64)):w("",!0),h(" 的文件 ")])):w("",!0),v(Y,{class:"upload-file-list el-upload-list el-upload-list--text",name:"el-fade-in-linear",tag:"ul"},{default:S(()=>[(_(!0),g(C,null,Q(f(p),(r,P)=>(_(),g("li",{key:r.uid,class:"el-upload-list__item ele-upload-list__item-content"},[v(a,{href:`${r.url}`,underline:!1,target:"_blank"},{default:S(()=>[E("span",re,j(z(r.name)),1)]),_:2},1032,["href"]),E("div",fe,[v(a,{underline:!1,onClick:G=>B(P),type:"danger"},{default:S(()=>[h("删除")]),_:2},1032,["onClick"])])]))),128))]),_:1})])}}});const Le=x(me,[["__scopeId","data-v-f8aa5383"]]),pe={class:"component-upload-image"},_e={key:0,class:"el-upload__tip"},ge={style:{color:"#f56c6c"}},he={style:{color:"#f56c6c"}},ve=["src"],be=A({__name:"index",props:{modelValue:[String,Object,Array],limit:b.number.def(5),fileSize:b.number.def(5),fileType:b.array.def(["png","jpg","jpeg"]),isShowTip:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(d,{emit:y}){const n=d,{proxy:e}=D(),m=u(0),i=u([]),I=u(""),$=u(!1),p=u("/prod-api"+"/resource/oss/upload"),L=u(M()),c=u([]),V=F(()=>n.isShowTip&&(n.fileType||n.fileSize)),T=u();J(()=>n.modelValue,async l=>{if(l){let s=[];Array.isArray(l)?s=l:s=(await X(l)).data,c.value=s.map(a=>{let r;return typeof a=="string"?r={name:a,url:a}:r={name:a.ossId,url:a.url,ossId:a.ossId},r})}else return c.value=[],[]},{deep:!0,immediate:!0});const N=l=>{let s=!1;if(n.fileType.length){let a="";l.name.lastIndexOf(".")>-1&&(a=l.name.slice(l.name.lastIndexOf(".")+1)),s=n.fileType.some(r=>!!(l.type.indexOf(r)>-1||a&&a.indexOf(r)>-1))}else s=l.type.indexOf("image")>-1;if(!s)return e==null||e.$modal.msgError(`文件格式不正确, 请上传${n.fileType.join("/")}图片格式文件!`),!1;if(n.fileSize&&!(l.size/1024/1024<n.fileSize))return e==null||e.$modal.msgError(`上传头像图片大小不能超过 ${n.fileSize} MB!`),!1;e==null||e.$modal.loading("正在上传图片,请稍候..."),m.value++},O=()=>{e==null||e.$modal.msgError(`上传文件数量不能超过 ${n.limit} 个!`)},B=(l,s)=>{var a;l.code===200?(i.value.push({name:l.data.fileName,url:l.data.url,ossId:l.data.ossId}),z()):(m.value--,e==null||e.$modal.closeLoading(),e==null||e.$modal.msgError(l.msg),(a=T.value)==null||a.handleRemove(s),z())},k=l=>{const s=c.value.map(a=>a.name).indexOf(l.name);if(s>-1&&i.value.length===m.value){let a=c.value[s].ossId;return q(a),c.value.splice(s,1),y("update:modelValue",o(c.value)),!1}return!0},z=()=>{m.value>0&&i.value.length===m.value&&(c.value=c.value.filter(l=>l.url!==void 0).concat(i.value),i.value=[],m.value=0,y("update:modelValue",o(c.value)),e==null||e.$modal.closeLoading())},U=()=>{e==null||e.$modal.msgError("上传图片失败"),e==null||e.$modal.closeLoading()},t=l=>{I.value=l.url,$.value=!0},o=(l,s)=>{let a="";s=s||",";for(let r in l)l[r].ossId!==void 0&&l[r].url.indexOf("blob:")!==0&&(a+=l[r].ossId+s);return a!=""?a.substring(0,a.length-1):""};return(l,s)=>{const a=Z("plus"),r=se,P=H,G=ae;return _(),g("div",pe,[v(P,{multiple:"",action:f(p),"list-type":"picture-card","on-success":B,"before-upload":N,limit:d.limit,"on-error":U,"on-exceed":O,ref:"imageUpload","before-remove":k,"show-file-list":!0,headers:f(L),"file-list":f(c),"on-preview":t,class:ee({hide:f(c).length>=d.limit})},{default:S(()=>[v(r,{class:"avatar-uploader-icon"},{default:S(()=>[v(a)]),_:1})]),_:1},8,["action","limit","headers","file-list","class"]),f(V)?(_(),g("div",_e,[h(" 请上传 "),d.fileSize?(_(),g(C,{key:0},[h(" 大小不超过 "),E("b",ge,j(d.fileSize)+"MB",1)],64)):w("",!0),d.fileType?(_(),g(C,{key:1},[h(" 格式为 "),E("b",he,j(d.fileType.join("/")),1)],64)):w("",!0),h(" 的文件 ")])):w("",!0),v(G,{modelValue:f($),"onUpdate:modelValue":s[0]||(s[0]=K=>le($)?$.value=K:null),title:"预览",width:"800px","append-to-body":""},{default:S(()=>[E("img",{src:f(I),style:{display:"block","max-width":"100%",margin:"0 auto"}},null,8,ve)]),_:1},8,["modelValue"])])}}});const Ve=x(be,[["__scopeId","data-v-80fe2097"]]),$e=d=>(oe("data-v-2ef77f5b"),d=d(),te(),d),Se={class:"upload-file"},Ie={key:0,class:"el-upload__tip"},Te=$e(()=>E("span",null,"上传文件大小不能超过200MB",-1)),Ee=[Te],ye=A({__name:"index",props:{modelValue:[String,Object,Array],limit:b.number.def(1),fileSize:b.number.def(200),fileType:b.array.def(["doc","docx","xlsx","xls","ppt","txt","pdf"]),isShowTip:b.bool.def(!0)},emits:["update:modelValue","closePopup","openPopup"],setup(d,{expose:y,emit:n}){const e=d;let m;const{proxy:i}=D(),I=u(0),$=u([]),p=u("/prod-api"+"/resource/oss/upload"),L=u(M()),c=u([]),V=F(()=>e.isShowTip&&e.fileSize),T=u();u(0),y({handleCilck:async()=>{console.log("子组件方法"),await T.value.submit()}});const O=o=>e.fileSize&&!(o.size/1024/1024<e.fileSize)?(i==null||i.$modal.msgError(`上传文件大小不能超过 ${e.fileSize} MB!`),!1):(I.value++,!0),B=()=>{i==null||i.$modal.msgError(`上传文件数量不能超过 ${e.limit} 个!`)},k=o=>{console.log("handleUploadProgress?")},z=(o,l)=>{var s;console.log(o,"resresres"),o.code===200?(i==null||i.$modal.msgSuccess("上传文件成功"),setTimeout(()=>{n("closePopup",o)},1e3),console.log("调用父组件",o),T.value.clearFiles(),m.close(),U()):o.code==401?location.reload():(I.value--,i==null||i.$modal.msgError(o.msg),(s=T.value)==null||s.handleRemove(l),U())},U=()=>{I.value>0&&$.value.length===I.value&&(c.value=c.value.filter(o=>o.url!==void 0).concat($.value),$.value=[],I.value=0,n("update:modelValue",t(c.value)),i==null||i.$modal.closeLoading())},t=(o,l)=>{let s="";return l=l||",",o.forEach(a=>{a.ossId&&(s+=a.ossId+l)}),s!=""?s.substring(0,s.length-1):""};return(o,l)=>{const s=W,a=H;return _(),g("div",Se,[v(a,{multiple:"",action:f(p),"on-success":z,limit:d.limit,"on-progress":k,"show-file-list":!0,headers:f(L),class:"upload-file-uploader",ref_key:"fileUploadRef",ref:T,"auto-upload":!1,"on-exceed":B,"before-upload":O},{default:S(()=>[v(s,{type:"primary"},{default:S(()=>[h("选取文件")]),_:1})]),_:1},8,["action","limit","headers"]),f(V)?(_(),g("div",Ie,Ee)):w("",!0)])}}});const Oe=x(ye,[["__scopeId","data-v-2ef77f5b"]]);export{Oe as _,Ve as a,Le as b};