avatar.wxml 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <import src="../common/template/icon.wxml" />
  2. <wxs src="../common/utils.wxs" module="_" />
  3. <wxs src="./avatar.wxs" module="this" />
  4. <view
  5. class="{{classPrefix}}__wrapper class {{prefix}}-class"
  6. style="{{_._style([this.getStyles(isShow, zIndex), style, customStyle])}}"
  7. >
  8. <t-badge
  9. color="{{badgeProps.color || ''}}"
  10. content="{{badgeProps.content || ''}}"
  11. count="{{badgeProps.count || 0}}"
  12. dot="{{badgeProps.dot || false}}"
  13. max-count="{{badgeProps.maxCount || 99}}"
  14. offset="{{badgeProps.offset || []}}"
  15. shape="{{badgeProps.shape || 'circle'}}"
  16. show-zero="{{badgeProps.showZero || false}}"
  17. size="{{badgeProps.size || 'medium'}}"
  18. t-class="{{badgeProps.tClass}}"
  19. t-class-content="{{badgeProps.tClassContent}}"
  20. t-class-count="{{badgeProps.tClassCount}}"
  21. >
  22. <view
  23. class="{{this.getClass(classPrefix, size, shape, bordered)}} {{prefix}}-class-image"
  24. style="{{this.getSize(size)}}"
  25. aria-label="{{ ariaLabel || alt ||'头像'}}"
  26. aria-role="{{ ariaRole || 'img'}}"
  27. aria-hidden="{{ ariaHidden }}"
  28. >
  29. <t-image
  30. wx:if="{{image}}"
  31. t-class="{{prefix}}-image {{classPrefix}}__image"
  32. t-class-load="{{prefix}}-class-alt"
  33. style="{{imageProps.style || ''}}"
  34. src="{{image}}"
  35. mode="{{imageProps.mode || 'aspectFill'}}"
  36. lazy="{{imageProps.lazy || false}}"
  37. loading="{{imageProps.loading || 'default'}}"
  38. shape="{{imageProps.shape || 'round'}}"
  39. webp="{{imageProps.webp || false}}"
  40. error="{{alt || 'default'}}"
  41. bind:error="onLoadError"
  42. />
  43. <template
  44. wx:elif="{{iconName || _.isNoEmptyObj(iconData)}}"
  45. is="icon"
  46. data="{{class: classPrefix + '__icon', tClass: prefix + '-class-icon', name: iconName, ...iconData}}"
  47. />
  48. <view wx:else class="{{classPrefix}}__text {{prefix}}-class-content">
  49. <slot />
  50. </view>
  51. </view>
  52. </t-badge>
  53. </view>