@@ -51,8 +51,15 @@ const Avatar = defineComponent({
5151 const { prefixCls } = useConfigInject ( 'avatar' , props ) ;
5252
5353 const groupSize = useInjectSize ( ) ;
54-
55- const screens = useBreakpoint ( ) ;
54+ const size = computed ( ( ) => {
55+ return props . size === 'default' ? groupSize . value : props . size ;
56+ } ) ;
57+ const needResponsive = computed ( ( ) =>
58+ Object . keys ( typeof size . value === 'object' ? size . value || { } : { } ) . some ( key =>
59+ [ 'xs' , 'sm' , 'md' , 'lg' , 'xl' , 'xxl' ] . includes ( key ) ,
60+ ) ,
61+ ) ;
62+ const screens = useBreakpoint ( needResponsive ) ;
5663 const responsiveSize = computed ( ( ) => {
5764 if ( typeof props . size !== 'object' ) {
5865 return undefined ;
@@ -126,27 +133,26 @@ const Avatar = defineComponent({
126133 } ) ;
127134
128135 return ( ) => {
129- const { shape, size : customSize , src, alt, srcset, draggable, crossOrigin } = props ;
136+ const { shape, src, alt, srcset, draggable, crossOrigin } = props ;
130137 const icon = getPropsSlot ( slots , props , 'icon' ) ;
131138 const pre = prefixCls . value ;
132- const size = customSize === 'default' ? groupSize . value : customSize ;
133139 const classString = {
134140 [ `${ attrs . class } ` ] : ! ! attrs . class ,
135141 [ pre ] : true ,
136- [ `${ pre } -lg` ] : size === 'large' ,
137- [ `${ pre } -sm` ] : size === 'small' ,
142+ [ `${ pre } -lg` ] : size . value === 'large' ,
143+ [ `${ pre } -sm` ] : size . value === 'small' ,
138144 [ `${ pre } -${ shape } ` ] : shape ,
139145 [ `${ pre } -image` ] : src && isImgExist . value ,
140146 [ `${ pre } -icon` ] : icon ,
141147 } ;
142148
143149 const sizeStyle : CSSProperties =
144- typeof size === 'number'
150+ typeof size . value === 'number'
145151 ? {
146- width : `${ size } px` ,
147- height : `${ size } px` ,
148- lineHeight : `${ size } px` ,
149- fontSize : icon ? `${ size / 2 } px` : '18px' ,
152+ width : `${ size . value } px` ,
153+ height : `${ size . value } px` ,
154+ lineHeight : `${ size . value } px` ,
155+ fontSize : icon ? `${ size . value / 2 } px` : '18px' ,
150156 }
151157 : { } ;
152158
@@ -173,9 +179,9 @@ const Avatar = defineComponent({
173179 transform : transformString ,
174180 } ;
175181 const sizeChildrenStyle =
176- typeof size === 'number'
182+ typeof size . value === 'number'
177183 ? {
178- lineHeight : `${ size } px` ,
184+ lineHeight : `${ size . value } px` ,
179185 }
180186 : { } ;
181187 childrenToRender = (
0 commit comments