zview-plus
Version:
基于 Vue3 的 UI 组件库
2 lines (1 loc) • 1.17 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),s=require("./avatar.js"),p=require("../../icon/index.js"),d=["src","alt","srcset"],f={name:"ZAvatar"},m=e.defineComponent({...f,props:s.avatarProps,emits:s.avatarEmits,setup(o,{emit:n}){const t=o,a=e.ref(!1),l=e.computed(()=>({[`z-avatar-size--${t.size}`]:typeof t.size!="number",[`z-avatar--${t.shape}`]:t.shape,[`z-avatar-border--${t.border}`]:t.border})),c=e.computed(()=>{const{size:r}=t;return typeof r=="number"?{width:r+"px",height:r+"px"}:{}}),u=e.computed(()=>({objectFit:t.fit}));e.watch(()=>t.src,()=>a.value=!1);function i(r){a.value=!0,n("error",r)}return(r,v)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["z-avatar",e.unref(l)]),style:e.normalizeStyle(e.unref(c))},[(r.src||r.srcSet)&&!a.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:r.src,alt:r.alt,srcset:r.srcSet,style:e.normalizeStyle(e.unref(u)),onError:i},null,44,d)):r.icon?(e.openBlock(),e.createBlock(e.unref(p.default),{key:1,name:r.icon},null,8,["name"])):e.renderSlot(r.$slots,"default",{key:2})],6))}});exports.default=m;