myUpload-fd43131b.js 5.5 KB

1
  1. import{h as e}from"./http-816fbb40.js";import{d as a,k as t,z as i,r as l,o as s,c as o,f as p,F as c,q as d,s as n,j as u,a8 as r,w as m,e as f,t as h,a as y,ai as k,V as w,O as g,aj as v,ak as x,al as _,am as b,an as L,B as T,D as z,_ as C}from"./index-7ca814f1.js";const M={class:"upload_wrap"},S={key:0},D={key:0,class:"el-upload-list el-upload-list--picture-card"},B={key:0,class:"el-upload-list__item-actions el-upload-list__item-delete"},F={key:1,class:"template_list"},U={class:"documentName"},j={key:0},N={key:1,style:{paddingleft:"5px"}},R={key:0,class:"el-upload__text"},V=(e=>(T("data-v-6e6d629c"),e=e(),z(),e))((()=>f("span",null,"上传文件",-1))),$={key:1},I={class:"el-upload__tip"},q={key:0},A={key:1},O=["src"],P=C(a({__name:"myUpload",props:{acceptType:{default:".jpeg,.png"},isMultiple:{type:Boolean,default:!1},isCheckName:{type:Boolean,default:!1},limitNum:{default:10},isDisableUpload:{type:Boolean,default:!1},maxFileSize:{default:1},widthLimit:{default:690},heightLimit:{default:280},isLimitSize:{type:Boolean,default:!0},isShowTips:{type:Boolean,default:!0},action:{default:"/qiniu/upload/image"},formType:{default:"photo"},fileList:{default:[]},isDownLoad:{type:Boolean,default:!1},isCheckMM:{type:Boolean,default:!1},listType:{default:"picture-card"}},emits:["fileSuccess","fileRemove"],setup(a,{emit:T}){const z=a;let C=t([]);C.value=z.fileList;const P=t(""),E=t(!1),G=(e,a)=>{};i((()=>z.fileList),(()=>{z.fileList,C.value=z.fileList}));const H=async(a,t)=>{if(z.isCheckMM){if(!(await J(a)))return}if(!/^[0-9]+_/.test(a.name)&&z.isCheckName)return g.error("文件上传格式错误"),!1;const i=a.raw,l=z.acceptType.split(",");let s=l.map((e=>K(e)));i.type;const o=s.filter((e=>i.type.indexOf(e)>-1)),p=z.acceptType;if(o.length<1)return g.error(`仅支持格式为${p}的图片`),!1;if(i.size/1024/1024>z.maxFileSize&&z.isLimitSize){g.error(`文件大小不能超过${z.maxFileSize}MB!`);const e=[...C.value];return C.value=e.filter((e=>e.uid!=i.uid)),!1}{let t=new FormData;t.append(z.formType,i);const l=v.service({text:"正在上传",background:"rgba(0,0,0,.2)"}),s=z.action;e.post(s,t).then((async e=>{1e4==e.code?(l.close(),C.value.push({uid:a.uid,url:e.data}),T("fileSuccess",e.data)):(l.close(),g.warning("文件上传失败"))})).catch((()=>{l.close()}))}return!0},J=e=>new Promise((function(a,t){const i=new FileReader;i.onload=e=>{const i=new Image;i.onload=()=>{const{width:e,height:l,size:s}=i;e!==z.widthLimit||l!==z.heightLimit?t(i):a(i)},i.onerror=e=>{t(`图片加载错误:${e}`)},i.src=e.target.result},i.onerror=e=>{t(`文件读取错误:${e}`)},i.readAsDataURL(e.raw)})).then((e=>!0),(e=>(z.widthLimit,g.error({message:"上传文件的图片大小不合符标准,宽需要为"+z.widthLimit+"px,高需要为"+z.heightLimit+"px。当前上传图片的宽高分别为:"+e.width+"px和"+e.height+"px"}),!1))),K=e=>{let a="";switch(e){case".xls":a="excel";break;case".doc":a="word";break;case".pdf":a="pdf";break;case".zip":a="zip";break;case".xlsx":a="sheet";break;case".pptx":a="presentation";break;case".docx":a="document";break;case".text":a="text";break;case".jpeg":a="jpeg";break;case".png":a="png";break;case".gif":a="gif";break;case".mp4":a="mp4";break;case".mp3":a="mp3"}return a},Q=e=>{const a=[...C.value];C.value=a.filter((a=>a.uid!=e.uid)),C.value,T("fileRemove",e)};return(e,a)=>{const t=l("el-image"),i=l("el-icon"),g=l("el-upload"),v=l("el-dialog");return s(),o("div",M,[p(C).length>0?(s(),o("div",S,["picture-card"==e.listType||"picture"==e.listType?(s(),o("div",D,[(s(!0),o(c,null,d(p(C),((e,a)=>(s(),o("div",{class:"el-upload-list__item is-success",style:{width:"fit-content",height:"fit-content"},key:a},[y(t,{style:{width:"fit-content",height:"148px","min-width":"148px"},src:e.url,fit:"cover",lazy:!0},null,8,["src"]),z.isDisableUpload?n("",!0):(s(),o("div",B,[y(i,{class:"cursor-pointer",onClick:a=>Q(e)},{default:m((()=>[y(p(x))])),_:2},1032,["onClick"])]))])))),128))])):n("",!0),"text"==e.listType?(s(),o("div",F,[(s(!0),o(c,null,d(p(C),((a,t)=>(s(),o("div",{class:"template",key:t},[f("span",null,[y(i,null,{default:m((()=>[y(p(_))])),_:1})]),f("span",U,h(a.name),1),z.isDisableUpload?n("",!0):(s(),o("span",j,[y(i,{color:"#000000a6",size:"16",onClick:e=>Q(a)},{default:m((()=>[y(p(b))])),_:2},1032,["onClick"])])),e.isDownLoad?(s(),o("span",N,[y(i,{onClick:e=>(e=>{const a=window.location.href.split("#")[0],t=a.slice(0,a.length-1);window.location.href=t+e.ossFile})(a)},{default:m((()=>[y(p(L))])),_:2},1032,["onClick"])])):n("",!0)])))),128))])):n("",!0)])):(s(),u(g,{key:1,class:"w-auto upload",ref:"uploadRef","file-list":p(C),multiple:z.isMultiple,limit:z.limitNum,"list-type":e.listType,accept:z.acceptType,"auto-upload":!1,"show-file-list":!1,disabled:z.isDisableUpload,"on-change":H,"on-remove":G},r({default:m((()=>["text"==e.listType?(s(),o("div",R,[y(i,null,{default:m((()=>[y(p(k))])),_:1}),V])):(s(),o("div",$,[y(i,null,{default:m((()=>[y(p(w))])),_:1})]))])),_:2},[!z.isDisableUpload&&e.isShowTips?{name:"tip",fn:m((()=>[f("div",I,[f("span",null,"支持"+h(e.acceptType.replaceAll(",","/"))+";",1),e.isLimitSize?(s(),o("span",q," 文件大小不能超过"+h(z.maxFileSize)+"M; ",1)):n("",!0),e.isCheckMM?(s(),o("span",A," 尺寸:"+h(z.widthLimit)+"*"+h(z.heightLimit)+"px ",1)):n("",!0)])])),key:"0"}:void 0]),1032,["file-list","multiple","limit","list-type","accept","disabled"])),y(v,{modelValue:E.value,"onUpdate:modelValue":a[0]||(a[0]=e=>E.value=e)},{default:m((()=>[f("img",{"w-full":"",src:P.value,alt:"Preview Image"},null,8,O)])),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-6e6d629c"]]);export{P as _};