index.wxml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <view class="container">
  2. <view class="index">
  3. <swiper
  4. class="swiper-container"
  5. indicator-dots="{{true}}"
  6. interval="{{3000}}"
  7. duration="{{500}}"
  8. circular="{{true}}"
  9. autoplay="{{true}}"
  10. >
  11. <block wx:for="{{banners}}" wx:key="index">
  12. <swiper-item>
  13. <image
  14. class="swiper-image"
  15. src="{{item.img}}"
  16. mode="widthFix"
  17. lazy-load="true"
  18. />
  19. </swiper-item>
  20. </block>
  21. </swiper>
  22. <view class="bg-color">
  23. <view class="content">
  24. <view class="card-box">
  25. <!-- 活动规则 -->
  26. <view class="rules-bg">
  27. <view class="rules-item" bindtap="goPage" data-index="0">
  28. <image class="rules-img" src="/static/image/rules.png" mode="aspectFit"></image>
  29. <text>活动须知</text>
  30. </view>
  31. <view class="line"></view>
  32. <view class="rules-item" bindtap="goPage" data-index="1">
  33. <image class="rules-img" src="/static/image/rules.png" mode="aspectFit"></image>
  34. <text>隐私政策</text>
  35. </view>
  36. </view>
  37. <!-- 日历 -->
  38. <block wx:if="{{start_time && end_time}}">
  39. <view class="countdown">距离活动开跑剩余</view>
  40. <countdown end-time="{{start_time}}" />
  41. </block>
  42. </view>
  43. <!-- 报名 -->
  44. <view class="registration">
  45. <view class="registration-lf" bindtap="goRegister" data-action="register">
  46. <image class="lf-bg-img" src="{{baseUrl + '/static/image/registration.png'}}" mode="aspectFit" />
  47. <image class="registration-img" src="/static/image/lkbm.png" mode="aspectFit" />
  48. <button wx:if="{{!loggedIn}}" class="cover-btn" open-type="getPhoneNumber" bindgetphonenumber="onGetPhoneNumber" data-action="register"></button>
  49. </view>
  50. <view class="registration-ri" bindtap="goRegister" data-action="invite">
  51. <image class="ri-bg-img" src="{{baseUrl + '/static/image/invitation.png'}}" mode="aspectFit" />
  52. <image class="registration-img" src="/static/image/yqhy.png" mode="aspectFit"/>
  53. <button wx:if="{{!loggedIn}}" class="cover-btn" open-type="getPhoneNumber" bindgetphonenumber="onGetPhoneNumber" data-action="invite"></button>
  54. </view>
  55. </view>
  56. <view class="ad-img" bindtap="goRegister" data-action="register">
  57. <image class="ad-img" wx:if="{{ad_img}}" src="{{ad_img}}" mode="widthFix"/>
  58. <button wx:if="{{!loggedIn}}" class="cover-btn-ad" open-type="getPhoneNumber" bindgetphonenumber="onGetPhoneNumber" data-action="register"></button>
  59. </view>
  60. <rich-text style="width: 100%;" nodes="{{introduction}}" />
  61. </view>
  62. </view>
  63. </view>
  64. <!-- 弹窗 -->
  65. <van-popup show="{{showShare}}" position="bottom" round>
  66. <view class="share-container">
  67. <view class="share-options">
  68. <button class="share-item" open-type="share" data-type="friend">
  69. <image class="share-icon" src="/static/tabbar/weixin.png" mode="aspectFit" />
  70. <text class="share-text">微信好友</text>
  71. </button>
  72. <button class="share-item" bindtap="openPoster">
  73. <image class="share-icon" src="/static/tabbar/tp.png" mode="aspectFit" />
  74. <text class="share-text">海报转发</text>
  75. </button>
  76. </view>
  77. <view class="share-cancel" bindtap="onClose" hover-class="btn-hover" hover-start-time="50">
  78. <image class="share-cancel-img" src="/static/tabbar/cancel.png" mode="aspectFit"/>
  79. </view>
  80. </view>
  81. </van-popup>
  82. <!-- 海报 -->
  83. <view class="poster-container" wx:if="{{showPoster}}" bindtap="closePoster">
  84. <view class="poster-content">
  85. <van-loading wx:if="{{posterLoading}}" color="#FFA100" class="poster-loading">海报生成中...</van-loading>
  86. <canvas wx:if="{{posterLoading}}" canvas-id="posterCanvas"
  87. style="width:300px;height:600px;position:absolute;top:-9999px;"></canvas>
  88. <image
  89. wx:if="{{posterImg}}"
  90. src="{{posterImg}}"
  91. mode="aspectFit"
  92. class="poster-img"
  93. style="opacity: {{imageReady ? 1 : 0}}; transition: opacity 0.3s;"
  94. bindload="onImageLoad"
  95. />
  96. <view class="poster-actions" wx:if="{{posterImg && imageReady}}">
  97. <button class="poster-lf" bindtap="savePoster">保存到相册</button>
  98. <button class="poster-ri" bindtap="sendImg" data-type="poster">发送朋友</button>
  99. </view>
  100. </view>
  101. </view>
  102. </view>