@aplus-frontend/ui
Version:
2 lines (1 loc) • 5.25 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../../../config-provider/index.js");const h=require("../utils/returnData.js"),C=require("../hooks/useOss.js"),i=require("@aplus-frontend/antdv"),q=require("@ant-design/icons-vue"),T=require("../utils/accept.js"),G=require("../style/index.js"),W=require("../../../config-provider/hooks/use-global-config.js"),H=require("../../../config-provider/hooks/use-locale.js"),J=require("../../../config-provider/hooks/use-namespace.js"),K={class:"multiple-file-context"},Q={key:0},X={key:1},Y=e.defineComponent({__name:"MultipleFile",setup(Z,{expose:F}){const y=W.useGlobalConfig("downloadCenterTriggerConfig"),{t:a}=H.useLocale(),{b:R}=J.useNamespace("ap-upload-multiple-file"),A=G.default("ap-upload"),{put:B}=C.useOss(),I=e.inject("dirName"),w=e.inject("accept")||"*",k=e.inject("maxSize")??500,M=e.inject("title")||a("ap.apUpload.uploadFile"),d=e.inject("subTitle"),r=e.inject("maxCount")??10,c=e.inject("uploadingCount"),j=e.inject("beforeUpload"),E=e.inject("customRequest"),N=e.inject("getOssAccess"),S=e.inject("maxSizeErrorMsg"),L=e.inject("maxCountErrorMsg"),O=e.inject("acceptErrorMsg"),U=e.inject("onRemove"),x=e.inject("showUploadErrorMsg"),s=e.inject("value"),l=[],m=e.inject("needName"),p=e.ref(null);e.watch(()=>s?.value,function(t){!p?.value?.fileList?.length&&t&&b(t)},{immediate:!0});function b(t){if(!t){u=[],p.value.fileList=[],s.value=void 0,l.splice(0,l.length);return}e.nextTick(()=>{const o=t.map(n=>{const g=h.getPath(m,n),$=h.getName(m,n),v=new File([n],$,{});return v.response=g,v.uid=g,v.status="done",v});if(r&&o.length>r){i.message.warning(a("ap.apUpload.fileInitializationException",{maxCount:r}));return}o.forEach(n=>{u.push(n),l.push({uid:n.uid,path:n.response})}),p.value.fileList=o,s.value=t})}F({setValue:b});let u=[],_;function f(t){setTimeout(()=>{const o=p.value.fileList.findIndex(n=>n.uid===t.uid);o>=0&&p.value.fileList.splice(o,1)})}async function V(t){if(r&&r>1&&u.length>=r)return clearTimeout(_),_=setTimeout(()=>{i.message.warning(L||a("ap.apUpload.maxUploadFiles",{maxCount:r}))}),f(t),!1;if(t.size>k*1024*1024)return i.message.warning(S||a("ap.apUpload.maxUploadFileSize",{maxSize:k})),f(t),!1;if(!T.fileMatchesAccept(t,w))return i.message.warning(O||a("ap.apUpload.fileFormatNotSupported")),f(t),!1;if(typeof j=="function"&&await j(t)===!1)return f(t),!1;r&&r===1&&(u=[],s.value=void 0),u.push(t)}async function D(t){if(c.value++,typeof E=="function"){E({onProgress:o=>{setTimeout(()=>{t.onProgress({percent:o})})},onError:o=>{x&&i.message.warning(o||a("ap.apUpload.networkAnomaly")),setTimeout(()=>{t.onError({name:o,message:o})}),c.value--},onSuccess:o=>{setTimeout(()=>{t.onSuccess(o)}),s.value=[...s.value||[],h.getReturnData(m,o,t.file.name)],l.push({uid:t.file.uid,path:o}),c.value--},file:t.file});return}try{const o=await C.getOssInstance(N);t.file.oss=o,B({file:t.file,dirName:I,oss:o,successCallBack(n){t.onSuccess(n),s.value=[...s.value||[],h.getReturnData(m,n,t.file.name)],l.push({uid:t.file.uid,path:n}),c.value--},errorCallBack(n){x&&i.message.warning(n||a("ap.apUpload.networkAnomaly")),t.onError({name:n,message:n}),c.value--},progressCallBack(n){t.onProgress({percent:n})}})}catch(o){x&&i.message.warning(typeof o?.message=="string"?o.message:a("ap.apUpload.networkAnomaly")),t.onError({name:o?.message||a("ap.apUpload.networkAnomaly"),message:o?.message||a("ap.apUpload.networkAnomaly")}),c.value--}}function z(t){if(U&&U?.(t),t.response){if(Array.isArray(s.value)){const n=l.findIndex(g=>g.uid===t.uid);n>=0&&(s?.value.splice(n,1),l.splice(n,1)),s.value.length===0&&(s.value=void 0)}}else t?.oss?.pauseUpload();const o=u.findIndex(n=>n.uid===t.uid);return u.splice(o,1),Promise.resolve(!0)}const P=async t=>{if(y.value?.trigger){let o=[t].map(n=>({objectName:n.response,fileName:n.name}));y.value?.trigger?.(o)}else(await C.getOssInstance(N)).downloadFile([{path:t.response,fileName:t.name}])};return(t,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({[e.unref(R)()]:!0,[e.unref(A)??""]:!0})},[e.createVNode(e.unref(i.Upload),{ref_key:"uploadRef",ref:p,accept:e.unref(w),multiple:"","max-count":e.unref(r),progress:{strokeWidth:3,showInfo:!1,strokeColor:"#0070FF"},"before-upload":V,"custom-request":D,"show-upload-list":{showDownloadIcon:!0,showRemoveIcon:!0},onRemove:z,onDownload:P},{downloadIcon:e.withCtx(()=>[e.createVNode(e.unref(q.VerticalAlignBottomOutlined))]),default:e.withCtx(()=>[e.createElementVNode("div",K,[e.createVNode(e.unref(i.Button),{class:"file-btn"},{default:e.withCtx(()=>[e.createVNode(e.unref(q.UploadOutlined)),e.createTextVNode(" "+e.toDisplayString(e.unref(M)),1)]),_:1}),e.createElementVNode("div",{class:"sub-title",onClick:o[0]||(o[0]=e.withModifiers(()=>{},["stop"]))},[typeof e.unref(d)=="string"?(e.openBlock(),e.createElementBlock("div",Q,e.toDisplayString(e.unref(d)||`${e.unref(a)("ap.apUpload.supportExtension")}:${e.unref(T.getAcceptText)(e.unref(w))}`),1)):e.unref(d)?(e.openBlock(),e.createElementBlock("div",X,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(d))))])):e.createCommentVNode("",!0)])])]),_:1},8,["accept","max-count"])],2))}});exports.default=Y;