invite-passive-user.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. <template>
  2. <div>
  3. <!-- 微信环境提示浏览器打开 -->
  4. <WxPopTpis v-if="isWeChatBrowser" />
  5. <div class="padssive">
  6. <div class="bg-top-img-wrap" align="right">
  7. <img class="bg-top-img" src="~assets/image/activity/invite-user/invite-passive-user/bg.png" />
  8. </div>
  9. <div class="bright-wrap">
  10. <div class="bright-item mb-6">
  11. <div class="img-wrap">
  12. <img class="label-img" src="~assets/image/activity/invite-user/invite-passive-user/hosting.png" />
  13. </div>
  14. <div class="text-wrap">
  15. <p class="title-text">游戏托管</p>
  16. <p class="tips-text">自动刷资源</p>
  17. <p class="tips-text">秒升角色战力</p>
  18. </div>
  19. </div>
  20. <div class="bright-item mb-6">
  21. <div class="img-wrap">
  22. <img class="label-img" src="~assets/image/activity/invite-user/invite-passive-user/clone.png" />
  23. </div>
  24. <div class="text-wrap">
  25. <p class="title-text">应用分身</p>
  26. <p class="tips-text">无限多开群控</p>
  27. <p class="tips-text">小号多不用愁</p>
  28. </div>
  29. </div>
  30. <div class="bright-item">
  31. <div class="img-wrap">
  32. <img class="label-img" src="~assets/image/activity/invite-user/invite-passive-user/location.png" />
  33. </div>
  34. <div class="text-wrap">
  35. <p class="title-text">位置服务</p>
  36. <p class="tips-text">想去哪</p>
  37. <p class="tips-text">就去哪</p>
  38. </div>
  39. </div>
  40. <div class="bright-item">
  41. <div class="img-wrap">
  42. <img class="label-img" style="bottom:8px" src="~assets/image/activity/invite-user/invite-passive-user/multi.png" />
  43. </div>
  44. <div class="text-wrap">
  45. <p class="title-text">功能全面</p>
  46. <p class="tips-text">三端互通</p>
  47. <p class="tips-text">应有尽有</p>
  48. </div>
  49. </div>
  50. </div>
  51. <div class="input-wrap">
  52. <div class="input-cell">
  53. <div class="input-cell-label">
  54. <span class="required">*</span><span class="label-name">手机号</span>
  55. </div>
  56. <div class="input-cell-value">
  57. <input class="input" v-model.trim="value" type="number" placeholder="请输入11位手机号" />
  58. </div>
  59. <div class="input-error-msg">手机号码不正确,请重新输入!</div>
  60. </div>
  61. <div class="input-cell">
  62. <div class="input-cell-label">
  63. <span class="required">*</span><span class="label-name">短信验证</span>
  64. </div>
  65. <div class="code-cell">
  66. <div class="input-cell-value">
  67. <input class="input" v-model.trim="value" type="number" placeholder="请输入验证码" />
  68. </div>
  69. <div class="get-code ml-2">
  70. <span v-if="!codeObj.isDisable" @click="getCodeHandle">获取验证码</span>
  71. <van-count-down ref="countDown" @finish="codeObj.isDisable = false" :time="60000">
  72. <template #default="timeData">
  73. <span><span v-if="codeObj.isDisable" style="color: #999">{{ timeData.seconds }}秒后重试</span></span>
  74. </template>
  75. </van-count-down>
  76. </div>
  77. </div>
  78. <div class="input-error-msg">手机号码不正确,请重新输入!</div>
  79. </div>
  80. <div class="req-btn-wrap">
  81. <van-button class="mb-3" type="primary" round block color="#435EFB" text="注册并下载APP" />
  82. </div>
  83. <div class="tips">
  84. 通过登录即可完成注册,成为我们的新用户,登录后表示同意双子星云手机服务协议
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. </template>
  90. <script>
  91. import WxPopTpis from './components/WxPopTpis';
  92. export default {
  93. auth: false,
  94. name: 'InvitePassiveUser',
  95. head: {
  96. title: '受邀验证',
  97. },
  98. components: { WxPopTpis },
  99. data() {
  100. return {
  101. value: '',
  102. codeObj: {
  103. tips: '获取验证码',
  104. isDisable: false,
  105. time: 60,
  106. }
  107. }
  108. },
  109. computed: {
  110. // 是否为微信浏览器环境
  111. isWeChatBrowser() {
  112. return this.$userAgent.isWx;
  113. }
  114. },
  115. methods: {
  116. // 获取验证码
  117. getCodeHandle() {
  118. if (!this.value) {
  119. this.$toast('请输入手机号');
  120. return;
  121. }
  122. this.$refs.countDown.reset();
  123. this.codeObj.isDisable = true;
  124. }
  125. }
  126. }
  127. </script>
  128. <style lang="scss" scoped>
  129. .padssive{
  130. padding: 0 16px 16px 16px;
  131. height: 100vh;
  132. overflow: auto;
  133. background: linear-gradient(#D3E0FF, #F5F5F5);
  134. }
  135. .bg-top-img-wrap{
  136. .bg-top-img{
  137. width: 119px;
  138. height: 119px;
  139. }
  140. }
  141. .bright-wrap{
  142. display: flex;
  143. justify-content: space-around;
  144. align-items: center;
  145. flex-wrap: wrap;
  146. align-content: space-around;
  147. margin-bottom: 16px;
  148. .bright-item{
  149. width: 155px;
  150. height: 82px;
  151. background: linear-gradient( 160deg, #62A9FF 0%, #3370FF 100%);
  152. border-radius: 8px;
  153. display: flex;
  154. .img-wrap{
  155. position: relative;
  156. padding-left: 10px;
  157. .label-img{
  158. width: 48px;
  159. height: 53px;
  160. position: relative;
  161. left: 0;
  162. bottom: 5px;
  163. }
  164. }
  165. .text-wrap{
  166. margin-left: 15px;
  167. font-size: 12px;
  168. color: #c6c6c6;
  169. line-height: 18px;
  170. text-align: left;
  171. &>p{
  172. margin-bottom: 0;
  173. }
  174. .title-text{
  175. font-size: 16px;
  176. color: #fff;
  177. line-height: 35px;
  178. font-weight: 600;
  179. }
  180. }
  181. }
  182. }
  183. .input-wrap{
  184. background-color: #fff;
  185. padding: 16px;
  186. border-radius: 8px;
  187. .input-cell{
  188. margin-bottom: 16px;
  189. .input-cell-label{
  190. font-size: 14px;
  191. line-height: 20px;
  192. margin-bottom: 8px;
  193. .required{
  194. color: #FE5C5B;
  195. }
  196. .label-name{
  197. font-weight: 600;
  198. color: #242424;
  199. }
  200. }
  201. .input-cell-value{
  202. background-color: #F3F3F3;
  203. border-radius: 4px;
  204. display: flex;
  205. height: 48px;
  206. padding: 0 12px;
  207. align-items: center;
  208. flex: 1;
  209. position: relative;
  210. .input{
  211. flex: 1;
  212. background-color: transparent;
  213. border: none;
  214. outline: none;
  215. font-size: 14px;
  216. line-height: 20px;
  217. color: #242424;
  218. }
  219. }
  220. .input-error-msg{
  221. bottom: 0;
  222. left: 0;
  223. font-size: 12px;
  224. color: #FE5C5B
  225. }
  226. .code-cell{
  227. display: flex;
  228. .get-code{
  229. width: 80px;
  230. flex-shrink: 0;
  231. font-weight: 400;
  232. font-size: 14px;
  233. color: #3370FF;
  234. display: flex;
  235. align-items: center;
  236. }
  237. }
  238. }
  239. .req-btn-wrap{
  240. margin-top: 56px;
  241. }
  242. .tips{
  243. font-weight: 400;
  244. font-size: 14px;
  245. color: #979797;
  246. line-height: 20px;
  247. }
  248. }
  249. </style>