register.wxml 5.7 KB

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