image-viewer.wxml 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <import src="../common/template/icon.wxml" />
  2. <wxs src="../common/utils.wxs" module="_" />
  3. <view
  4. wx:if="{{visible}}"
  5. id="{{classPrefix}}"
  6. class="{{classPrefix}} {{prefix}}-class"
  7. style="{{_._style([style, customStyle])}}"
  8. >
  9. <view
  10. class="{{classPrefix}}__mask"
  11. data-source="overlay"
  12. bind:tap="onClose"
  13. style="{{ 'background-color: ' + backgroundColor }}"
  14. />
  15. <block wx:if="{{images && images.length}}">
  16. <view slot="content" class="{{classPrefix}}__content">
  17. <swiper
  18. height="{{windowHeight * 2}}"
  19. class="swiper"
  20. autoplay="{{false}}"
  21. current="{{currentSwiperIndex}}"
  22. bindchange="onSwiperChange"
  23. >
  24. <swiper-item wx:for="{{images}}" wx:key="index" class="{{classPrefix}}__preview-image">
  25. <t-image
  26. t-class="t-image--external"
  27. style="{{imagesShape[index].style}}"
  28. mode="aspectFit"
  29. lazy
  30. src="{{item}}"
  31. data-index="{{index}}"
  32. class="{{classPrefix}}__image"
  33. bindload="onImageLoadSuccess"
  34. ></t-image>
  35. </swiper-item>
  36. </swiper>
  37. </view>
  38. <view class="{{classPrefix}}__nav">
  39. <view class="{{classPrefix}}__nav-close" catch:tap="onClose">
  40. <slot name="close-btn" />
  41. <template wx:if="{{_closeBtn}}" is="icon" data="{{ ..._closeBtn }}" />
  42. </view>
  43. <view wx:if="{{showIndex}}" class="{{classPrefix}}__nav-index">
  44. {{currentSwiperIndex + 1}}/{{images.length}}
  45. </view>
  46. <view class="{{classPrefix}}__nav-delete" bind:tap="onDelete">
  47. <slot name="delete-btn" />
  48. <template is="icon" data="{{ ..._deleteBtn }}" />
  49. </view>
  50. </view>
  51. </block>
  52. </view>