@aplus-frontend/ui
Version:
2 lines (1 loc) • 5.65 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),ae=require("@ant-design/icons-vue"),c=require("@aplus-frontend/antdv");require("../../../config-provider/index.js");const ne=require("../../../config-provider/hooks/use-token.js"),R=require("../assets/single-file-icon.png.js"),T=require("../hooks/useOss.js"),oe=require("../style/index.js"),O=require("../utils/accept.js"),w=require("../utils/returnData.js"),se=require("../../../config-provider/hooks/use-locale.js"),le=require("../../../config-provider/hooks/use-namespace.js"),re=["accept"],ce={key:0,class:"state-un"},ue=["src"],ie={class:"state-un-title"},pe={class:"state-un-subtitle"},de={key:1,class:"state-ing"},fe={class:"left"},ve=["src"],me={class:"center"},ge={class:"center-progress"},he=e.defineComponent({__name:"SingleFile",setup(ke,{expose:P}){const{t:s}=se.useLocale(),{b:U}=le.useNamespace("ap-upload-single-file"),L=oe.default("ap-upload"),{put:I}=T.useOss(),$=e.inject("dirName"),G=e.inject("baseDirName"),m=e.inject("accept")||"*",g=e.inject("maxSize")??500,W=e.inject("title")||s("ap.apUpload.clickOrDragUpload"),h=e.inject("subTitle"),{token:C}=ne.useToken(),l=e.inject("value"),k=e.inject("needName"),i=e.inject("uploadingCount"),S=e.inject("beforeUpload"),b=e.inject("customRequest"),j=e.inject("getOssAccess"),H=e.inject("maxSizeErrorMsg"),J=e.inject("acceptErrorMsg"),F=e.inject("onRemove"),_=e.inject("showUploadErrorMsg"),V=e.inject("bucket"),n=e.ref(null);let q;e.watch(()=>l?.value,function(t){n.value===null&&t&&B(t)},{immediate:!0});function B(t){t?setTimeout(()=>{const a=w.getName(k,t);o.value=3,n.value=new File([t],a,{}),l.value=t}):(o.value=1,n.value=null,l.value=void 0)}P({setValue:B});const o=e.ref(1),d=e.ref(0),f=e.ref(null),x=e.computed(()=>n.value&&l?.value);function K(){o.value===1&&f.value?.click()}function z(t){t.preventDefault(),t.stopPropagation()}function Q(t){t.dataTransfer.dropEffect="copy",t.preventDefault(),t.stopPropagation()}function X(t){A(t)}function Y(t){if(t.preventDefault(),t.stopPropagation(),o.value!==1)return;var a=t.dataTransfer,u=[],r=0,M=a.files.length;function p(){r===M-1&&X(u),r++}if(a.items!==void 0)for(var y=0;y<a.items.length;y++){var N=a.items[y];if(N.kind==="file"&&N.webkitGetAsEntry().isFile){var te=N.getAsFile();u.push(te),p()}}else for(let D=0;D<M;D++){var v=a.files[D];if(v.type)u.push(v),p();else try{var E=new FileReader;E.readAsDataURL(v.slice(0,3)),E.addEventListener("load",function(){u.push(v),p()},!1),E.addEventListener("error",function(){c.message.warning(s("ap.apUpload.foldersNotSupported")),p()},!1)}catch{c.message.warning(s("ap.apUpload.foldersNotSupported")),p()}}}async function Z(t){const a=t.target;await A(a?.files),f.value&&(f.value.value="")}async function A(t){if(t?.length){if(t[0].size>g*1024*1024){c.message.warning(H||s("ap.apUpload.maxUploadFileSize",{maxSize:g}));return}if(!O.fileMatchesAccept(t[0],m)){c.message.warning(J||s("ap.apUpload.fileFormatNotSupported"));return}if(typeof S=="function"&&await S(t[0])===!1)return;if(n.value=t[0],o.value=2,d.value=0,i.value++,typeof b=="function"){b({onProgress:a=>{d.value=a},onError:a=>{_&&c.message.warning(a||s("ap.apUpload.networkAnomaly")),o.value=1,n.value=null,i.value--},onSuccess:a=>{l.value=w.getReturnData(k,a,n.value.name),o.value=3,i.value--},file:t[0]});return}try{const a=await(V?j(V):j()),u=await T.getOssInstance(async()=>a);q=u,I({file:n.value,dirName:$,oss:u,successCallBack(r){l.value=w.getReturnData(k,r,n.value.name),o.value=3,i.value--},errorCallBack(r){_&&c.message.warning(r||s("ap.apUpload.networkAnomaly")),o.value=1,n.value=null,i.value--},progressCallBack(r){d.value=r},baseDirName:G,bucket:a?.bucket})}catch(a){_&&c.message.warning(typeof a?.message=="string"?a.message:s("ap.apUpload.networkAnomaly")),o.value=1,n.value=null,i.value--}}}function ee(){F&&F?.(n.value),n.value&&!l?.value&&q?.pauseUpload?.(),o.value=1,n.value=null,l.value=void 0}return(t,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({[e.unref(U)()]:!0,[e.unref(U)("un")]:o.value===1,[e.unref(L)??""]:!0}),onClick:K,onDragenter:z,onDragover:Q,onDragleave:z,onDrop:Y},[e.createElementVNode("input",{ref_key:"fileRef",ref:f,style:{display:"none"},type:"file",accept:e.unref(m),onChange:Z},null,40,re),o.value===1?(e.openBlock(),e.createElementBlock("div",ce,[e.createElementVNode("img",{class:"state-un-icon",src:e.unref(R.default)},null,8,ue),e.createElementVNode("div",ie,e.toDisplayString(e.unref(W)),1),e.createElementVNode("div",pe,e.toDisplayString(typeof e.unref(h)=="string"&&e.unref(h).length>0?e.unref(h):`${e.unref(s)("ap.apUpload.supportExtension")}:${e.unref(O.getAcceptText)(e.unref(m))},${e.unref(s)("ap.apUpload.maxWarnUploadFileSize",{maxSize:e.unref(g)})}`),1)])):e.createCommentVNode("",!0),[2,3].includes(o.value)?(e.openBlock(),e.createElementBlock("div",de,[e.createElementVNode("div",fe,[e.createElementVNode("img",{src:e.unref(R.default)},null,8,ve)]),e.createElementVNode("div",me,[e.createElementVNode("div",{class:"center-title",style:e.normalizeStyle({color:x.value?"#0070FF":"#182948"})},e.toDisplayString(n.value?.name),5),e.createElementVNode("div",ge,[x.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(c.Progress),{key:0,percent:d.value,size:4,"show-info":!1,"trail-color":e.unref(C).borderColorBase,"stroke-color":e.unref(C).colorPrimary},null,8,["percent","trail-color","stroke-color"]))])]),e.createElementVNode("div",{class:"right",onClick:e.withModifiers(ee,["stop"])},[e.createVNode(e.unref(ae.DeleteOutlined))])])):e.createCommentVNode("",!0)],34))}});exports.default=he;