register.wxml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <view class="container">
  2. <header text="活动报名" url="{{false}}"></header>
  3. <view class="content">
  4. <view class="register">
  5. <image class="register-img" src="/static/image/register/register-logo.png" mode="aspectFit" />
  6. <view class="from-ul">
  7. <!-- 手机号 -->
  8. <view class="from-li li-m0">
  9. <image class="from-li-img" src="/static/image/register/sjh.png" mode="aspectFit" />
  10. <van-field
  11. model:value="{{formData.phone}}"
  12. bind:input="onInput"
  13. data-field="phone"
  14. type="number"
  15. placeholder="请输入手机号"
  16. border="{{ false }}"
  17. />
  18. <view class="error-text">{{phoneError}}</view>
  19. </view>
  20. <!-- 验证码 -->
  21. <view class="from-li">
  22. <image class="from-li-img" src="/static/image/register/yzm.png" mode="aspectFit" />
  23. <van-field
  24. model:value="{{formData.captcha}}"
  25. bind:input="onInput"
  26. data-field="captcha"
  27. placeholder="请输入验证码"
  28. border="{{ false }}"
  29. >
  30. <view slot="button"
  31. class="from-code {{codeDisabled ? 'disabled' : ''}}"
  32. bindtap="getCode">{{codeText}}
  33. </view>
  34. </van-field>
  35. </view>
  36. <!-- 姓名 -->
  37. <view class="from-li">
  38. <image class="from-li-img img-w" src="/static/image/register/xm.png" mode="aspectFit" />
  39. <van-field
  40. model:value="{{formData.nickname}}"
  41. bind:input="onInput"
  42. data-field="nickname"
  43. placeholder="请输入姓名"
  44. border="{{ false }}"
  45. />
  46. </view>
  47. <!-- 性别选择 -->
  48. <view class="from-li" bindtap="onShowPicker">
  49. <image class="from-li-img img-w" src="/static/image/register/xb.png" mode="aspectFit" />
  50. <van-field
  51. readonly="{{true}}"
  52. model:value="{{formData.gender}}"
  53. placeholder="请选择性别"
  54. border="{{ false }}"
  55. >
  56. <view slot="right-icon">
  57. <van-icon name="arrow-down" class="from-icon" />
  58. </view>
  59. </van-field>
  60. </view>
  61. <!-- 身份证号 -->
  62. <view class="from-li">
  63. <image class="from-li-img img-w1" src="/static/image/register/sfz.png" mode="aspectFit" />
  64. <van-field
  65. model:value="{{formData.race_number}}"
  66. bind:input="onInput"
  67. data-field="race_number"
  68. placeholder="请输入身份证号"
  69. border="{{ false }}"
  70. />
  71. </view>
  72. <!-- 参赛号码 -->
  73. <!-- <view class="from-li">
  74. <image class="from-li-img img-w2" src="/static/image/register/cshm.png" mode="aspectFit" />
  75. <van-field
  76. model:value="{{formData.competition_no}}"
  77. bind:input="onInput"
  78. data-field="competition_no"
  79. placeholder="请输入参赛号码"
  80. border="{{ false }}"
  81. />
  82. </view> -->
  83. <!-- 上传图片 -->
  84. <view class="from-li">
  85. <image class="from-li-img img-w3" src="/static/image/register/sc.png" mode="aspectFit" />
  86. <view class="uploader">
  87. <van-uploader file-list="{{fileList}}" bind:after-read="afterRead" />
  88. </view>
  89. </view>
  90. </view>
  91. </view>
  92. <!-- 协议勾选 -->
  93. <view class="agree">
  94. <van-checkbox
  95. checked-color="#000000"
  96. icon-size="28rpx"
  97. value="{{checked}}"
  98. bind:change="onCheckbox"
  99. >
  100. 已读并承诺遵守
  101. </van-checkbox>
  102. <view>
  103. <text class="rules" data-type="rules" bindtap="showAgreement">《活动规则》</text>
  104. <text class="rules" data-type="liability" bindtap="showAgreement">《免责协议》</text>
  105. <text class="rules" data-type="privacy" bindtap="showAgreement">《隐私政策》</text>
  106. </view>
  107. </view>
  108. <!-- 提交按钮 -->
  109. <view
  110. class="submit"
  111. bindtap="onSubmit"
  112. hover-class="{{ canSubmit ? 'btn-hover' : '' }}"
  113. hover-start-time="50"
  114. >
  115. <image class="submit-img {{ canSubmit ? '' : 'disabled' }}" src="/static/image/register/submit.png" mode="aspectFit"/>
  116. </view>
  117. </view>
  118. <!-- 性别选择器 -->
  119. <van-popup show="{{showPicker}}" round position="bottom" close-on-click-overlay="{{false}}">
  120. <van-picker
  121. show-toolbar
  122. columns="{{genders}}"
  123. bind:change="onPickerChange"
  124. bind:cancel="onCancel"
  125. bind:confirm="onConfirm"
  126. />
  127. </van-popup>
  128. <!-- 提交成功弹框 -->
  129. <van-popup class="registration" show="{{showRegistrationSuccess}}" round close-on-click-overlay="{{false}}">
  130. <view class="pop-content">
  131. <image class="pop-img" src="/static/image/register/yhq-logo.png" mode="aspectFit"/>
  132. <image class="pop-yhq" src="/static/image/register/yhq.png" mode="aspectFit"/>
  133. <view class="pop-card">
  134. <image class="pop-card-img" src="/static/image/register/yhq-bg.png" mode="aspectFit"/>
  135. <view class="pop-card-cont">
  136. <view class="pop-card-cont-lf">菜品券</view>
  137. <view class="pop-card-cont-ri">
  138. <view>烤鸭券</view>
  139. <view class="pop-time">2025-01-01到期</view>
  140. </view>
  141. </view>
  142. </view>
  143. <view class="receive" bindtap="onReceive" hover-class="btn-hover" hover-start-time="50">
  144. <image class="receive-img" src="/static/image/register/receive.png" mode="aspectFit"/>
  145. </view>
  146. </view>
  147. </van-popup>
  148. <!-- 协议弹窗 -->
  149. <van-dialog
  150. confirm-button-class="confirm-btn"
  151. use-slot
  152. title="{{agreementTitle}}"
  153. show="{{showAgreementModal}}"
  154. show-cancel-button="{{false}}"
  155. >
  156. <view class="dialog-box">
  157. <rich-text nodes="{{agreementContent}}" />
  158. </view>
  159. </van-dialog>
  160. </view>