UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 2.52 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),q=require("@aplus-frontend/antdv"),N=require("@ant-design/icons-vue"),n=require("./hooks/useOss.js");require("../../config-provider/index.js");const y=require("./imgs/admin-fallback.jpg.js"),_=require("./imgs/aplus-fallback.jpg.js"),A=require("lodash-unified"),B=require("../../config-provider/hooks/use-namespace.js"),c=require("../../config-provider/hooks/use-global-config.js"),S=require("../../config-provider/hooks/use-locale.js"),F=e.defineComponent({__name:"ApImage",props:{getOssAccess:{},width:{},height:{},alt:{},fallback:{},src:{},fileName:{},preview:{type:[Boolean,Object],default:!0}},setup(d){const{b:l}=B.useNamespace("ap-image"),r=d,i={aplus:_.default,admin:y.default},f=c.useGlobalConfig("uiMode"),p=c.useGlobalConfig("apUpload"),u=c.useGlobalConfig("downloadCenterTriggerConfig"),{t:g,lang:m}=S.useLocale(),b=e.computed(()=>r.getOssAccess||p.value?.getOssAccess),v=e.computed(()=>i[f.value]||i.aplus),k=e.computed(()=>r?.fallback||v.value),s=e.ref("");n.injectLocaleToOss(g,m),e.watchEffect(async()=>{if(!r?.src){s.value="";return}if(!r.src?.startsWith("Frontend-Upload")){s.value=r.src;return}try{const o=await n.getOssInstance(b.value),a=await n.getSignatureUrl({oss:o,fileName:r.src});a&&(s.value=a)}catch{s.value=""}});async function C(){if(!r?.src)return;const o=r.src,a=r.fileName??r.src;if(!r.src?.startsWith("Frontend-Upload")){h(o,a);return}if(u.value?.trigger){let t=[{objectName:o,fileName:a}];await u.value?.trigger(t)}}const h=(o,a)=>{const t=document.createElement("a");t.href=o,t.rel="noopener noreferrer",t.setAttribute("download",a),document.body.appendChild(t),t.click(),document.body.removeChild(t)};return(o,a)=>(e.openBlock(),e.createBlock(e.unref(q.Image),e.mergeProps({class:[e.unref(l)()]},{...e.unref(A.omit)(r,["src","getOssAccess"]),fallback:k.value,src:s.value}),{toolbarRender:e.withCtx(t=>[e.renderSlot(o.$slots,"toolbarRender",e.normalizeProps(e.guardReactiveProps({...t})),()=>[e.createElementVNode("div",{class:e.normalizeClass([e.unref(l)("toolbar")])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.originalNodes,(w,O)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w),e.mergeProps({ref_for:!0},r,{key:O}),null,16))),128)),e.createElementVNode("div",{class:"ant-image-preview-operations-operation",onClick:C},[e.createVNode(e.unref(N.DownloadOutlined))])],2)])]),_:3},16,["class"]))}});exports.default=F;