@aplus-frontend/ui
Version:
2 lines (1 loc) • 3.45 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),q=require("@ant-design/icons-vue"),s=require("@aplus-frontend/antdv"),x=require("@aplus-frontend/icon"),g=require("lodash-unified");require("../../config-provider/index.js");const A=require("../ap-file-preview/index.js"),O=require("./hooks/index.js"),S=require("./hooks/useStyle.js"),r=require("./utils/getFileInfo.js"),F=require("../../config-provider/hooks/use-locale.js"),v=require("../../config-provider/hooks/use-global-config.js"),I={key:0,class:"spin"},V={key:1,class:"icon"},z={class:"text"},L=e.defineComponent({name:"ApDownload",__name:"ap-download",props:{prefixCls:{},type:{default:"link"},htmlType:{},shape:{},size:{default:"middle"},loading:{type:[Boolean,Object]},disabled:{type:Boolean,default:!1},ghost:{type:Boolean},block:{type:Boolean},danger:{type:Boolean},icon:{},href:{},target:{},title:{},onClick:{},onMousedown:{},autoInsertSpace:{type:Boolean},iconPosition:{},color:{},variant:{},text:{},fileName:{},needName:{type:[Boolean,Object],default:void 0},getOssAccess:{},preview:{type:Boolean,default:!1}},emits:["downloadCallback"],setup(N,{emit:w}){const c=w,a=e.ref(!1),{lang:C,t:d}=F.useLocale(),y=e.useSlots(),k=e.computed(()=>C.value==="zh-cn"?"zh_CN":"en_US"),t=N,l=v.useGlobalConfig("apUpload"),u=v.useGlobalConfig("downloadCenterTriggerConfig"),p=e.computed(()=>t.disabled),b=e.computed(()=>t.size),i=e.computed(()=>t.preview&&(g.isArray(t.fileName)?t.fileName.length===1:!0)),{getInnerWrapperClass:h}=S.useStyle(b,p),B=e.computed(()=>t.getOssAccess||l.value?.getOssAccess),_=()=>{const o=r.getFileInfo(t.needName??l?.value?.needName,t.fileName)?.[0];A.ApFilePreview.createFilePreviewModal({src:o.path,fileName:o.fileName})},f=async()=>{if(!t.disabled){a.value=!0;try{if(u.value?.trigger){let n=r.getFileInfo(t.needName??l?.value?.needName,t.fileName).map(m=>({objectName:m.path,fileName:m.fileName}));await u.value?.trigger(n),c("downloadCallback",n)}else{const n=await(await O.useOssInit(B.value,e.unref(k))).downloadFile(r.getFileInfo(t.needName??l?.value?.needName,t.fileName));c("downloadCallback",n)}}catch(o){console.error(o)}finally{a.value=!1}}};return(o,n)=>(e.openBlock(),e.createBlock(e.unref(s.Button),e.mergeProps(e.unref(g.omit)(t,["getOssAccess","fileName","needName"]),{type:t.type,size:t.size,disabled:p.value,onClick:n[0]||(n[0]=()=>(i.value?_:f)())}),{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(h))},[a.value?(e.openBlock(),e.createElementBlock("span",I,[e.createVNode(e.unref(q.LoadingOutlined),{spin:!0})])):e.createCommentVNode("",!0),e.unref(y).icon?(e.openBlock(),e.createElementBlock("span",V,[e.renderSlot(o.$slots,"icon")])):e.createCommentVNode("",!0),e.createVNode(e.unref(s.Tooltip),null,e.createSlots({default:e.withCtx(()=>[e.createElementVNode("span",z,e.toDisplayString(o.text),1)]),_:2},[i.value?{name:"title",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(d)("ap.apAppendix.previewFile")),1)]),key:"0"}:void 0]),1024),i.value?(e.openBlock(),e.createElementBlock("span",{key:2,class:"preview-icon",onClick:e.withModifiers(f,["stop"])},[e.createVNode(e.unref(s.Tooltip),{title:e.unref(d)("ap.apAppendix.downloadFile")},{default:e.withCtx(()=>[e.createVNode(e.unref(x.IconApAdLineDownload))]),_:1},8,["title"])])):e.createCommentVNode("",!0)],2)]),_:3},16,["type","size","disabled"]))}});exports.default=L;