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