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