password_mobile.blade.php 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. @extends('mobile.module.layouts.content')
  2. @push('meta')
  3. @endpush
  4. @push('css')
  5. <link href="{{ theme_asset('mobile/css/members.css') }}" rel="stylesheet">
  6. @endpush
  7. @push('js')
  8. <script type="text/javascript" src="{{ theme_asset('gt/gt.js') }}"></script>
  9. <script type="text/javascript" src="{{ theme_asset('gt/gt.handle.js') }}"></script>
  10. @endpush
  11. @section('content')
  12. <div class="qs-top-nav x2 list_height">
  13. <div class="n-cell active">已验证手机找回<div class="b-line"></div></div>
  14. <div class="n-cell" onclick="javascript:location.href='{{route($sub_site.'mobile.password.request.email', ['utype'=>$utype])}}'">已绑定邮箱找回<div class="b-line"></div></div>
  15. <div class="clear"></div>
  16. </div>
  17. <div class="split-block"></div>
  18. <form id="getPassByMobileForm" action="{{route($sub_site."mobile.password.request")}}" method="post">
  19. {{csrf_field()}}
  20. <div class="loging-input-group">
  21. <div class="group-list mobile">
  22. <input id="mobile" name="mobile" type="text" class="l-input font14" placeholder="请输入手机号码" autocomplete="off">
  23. <a href="javascript:;" id="getVerfyCode" class="qs-btn qs-btn-inline qs-btn-medium qs-btn-border-gray font14">获取验证码</a>
  24. </div>
  25. <div class="group-list verfy">
  26. <input id="mobile_vcode" name="mobile_vcode" type="text" class="l-input font14" placeholder="请输入手机验证码" autocomplete="off">
  27. </div>
  28. </div>
  29. <div class="l-tool-bar list_height">
  30. <div class="for-pwd link_gray6"><a href="{{route("mobile.appeal")}}">账号申诉</a></div>
  31. <div class="clear"></div>
  32. </div>
  33. <input type="hidden" name="utype" value="{{$utype}}" />
  34. <input type="hidden" name="type" value="mobile" />
  35. <div id="pop" style="display:none"></div>
  36. </form>
  37. <div class="btn-spacing"><a id="nextBtn" href="javascript:;" class="qs-btn qs-btn-blue font18">下一步</a></div>
  38. @endsection
  39. @section('script')
  40. <script type="text/javascript" src="{{ theme_asset('app/js/regular.js') }}"></script>
  41. <script>
  42. //发送短信
  43. var handler = function(captchaObj) {
  44. captchaObj.appendTo("#popup-captcha");
  45. captchaObj.onSuccess(function() {
  46. var result = captchaObj.getValidate();
  47. toSetSms(result);
  48. });
  49. captchaObj.onError(function() {
  50. });
  51. $('#getVerfyCode').on('click', function () {
  52. if ($('#getVerfyCode').hasClass('qs-btn-border-disabled')) {
  53. return false;
  54. }
  55. var mobileValue = $.trim($('input[name=mobile]').val());
  56. if (mobileValue == '') {
  57. qsToast({type:2,context: '请输入手机号码'});
  58. return false;
  59. }
  60. if (mobileValue != "" && !regularMobile.test(mobileValue)) {
  61. qsToast({type:2,context: '手机号码格式不正确'});
  62. return false;
  63. }
  64. if (remoteValid('mobile',mobileValue)) {
  65. qsToast({type:2,context: '该手机号没有注册账号'});
  66. return false;
  67. }
  68. captchaObj.verify();
  69. });
  70. };
  71. gt_init(handler);
  72. // 发送手机验证码
  73. function toSetSms(geet_result) {
  74. var mobileValue = $.trim($('input[name=mobile]').val());
  75. function settime(countdown) {
  76. if (countdown == 0) {
  77. $('#getVerfyCode').removeClass('qs-btn-border-disabled');
  78. $('#getVerfyCode').text('获取验证码');
  79. countdown = 180;
  80. return;
  81. } else {
  82. $('#getVerfyCode').addClass('qs-btn-border-disabled');
  83. $('#getVerfyCode').text('重新发送' + countdown + '秒');
  84. countdown--;
  85. }
  86. setTimeout(function() {
  87. settime(countdown)
  88. },1000)
  89. }
  90. $('#getVerfyCode').prop("disabled", !0);
  91. $('#getVerfyCode').addClass('qs-btn-border-disabled');
  92. $('#getVerfyCode').text('发送中...');
  93. geet_result.mobile= mobileValue;
  94. geet_result.type= "check";
  95. $.ajax({
  96. url: "{{route('sms.send')}}",
  97. type: 'POST',
  98. dataType: 'json',
  99. data: geet_result,
  100. success: function (data) {
  101. // console.log(data);
  102. setTimeout(function() {
  103. qsToast({type:2,context: '验证码已发送,请注意查收'});
  104. // 开始倒计时
  105. var countdowns = 180;
  106. settime(countdowns);
  107. },1000)
  108. },
  109. error: function (errorData) {
  110. // console.log(errorData);
  111. var response=$.parseJSON(errorData.response);
  112. if (errorData.status==422) {//验证错误
  113. $.each(response.errors,function (key,val) {
  114. qsToast({type:2,context: val[0]});
  115. return false;
  116. });
  117. }
  118. else if(errorData.status==400) {//业务错误
  119. qsToast({type:2,context: response.message});
  120. }
  121. setTimeout(function() {
  122. $('#getVerfyCode').prop("disabled", 0);
  123. $('#getVerfyCode').removeClass('qs-btn-border-disabled');
  124. $('#getVerfyCode').text('获取验证码');
  125. },1500)
  126. }
  127. });
  128. }
  129. /**
  130. * 验证用户名等是否重复
  131. * @param validType 验证类型
  132. * @param validValue 值
  133. * @returns {boolean|*}
  134. */
  135. function remoteValid(validType, validValue){
  136. var result = false;
  137. $.ajax({
  138. url: "{{route('register.check', ['utype'=>$utype])}}",
  139. cache: false,
  140. async: false,
  141. type: 'post',
  142. dataType: 'json',
  143. data: { type: validType, param: validValue },
  144. success: function(json) {
  145. result= true;
  146. }
  147. });
  148. return result;
  149. }
  150. /**
  151. * 下一步
  152. */
  153. $('#nextBtn').on('click', function() {
  154. var mobileValue = $.trim($('input[name=mobile]').val());
  155. var mobile_vcodeValue = $.trim($('input[name=mobile_vcode]').val());
  156. if (mobileValue == '') {
  157. qsToast({type:2,context: '请输入手机号码'});
  158. return false;
  159. }
  160. if (mobileValue != "" && !regularMobile.test(mobileValue)) {
  161. qsToast({type:2,context: '手机号码格式不正确'});
  162. return false;
  163. }
  164. if (mobile_vcodeValue == '') {
  165. qsToast({type:2,context: '请输入手机验证码'});
  166. return false;
  167. }
  168. var url = "{{route($sub_site.'mobile.password.request')}}";
  169. $.ajax({
  170. url: url,
  171. type: 'POST',
  172. dataType: 'json',
  173. data: $('#getPassByMobileForm').serialize(),
  174. success: function (data) {
  175. //qsToast({type:2,context: "注册成功,正在为你跳转.."});
  176. setTimeout(function () {
  177. window.location.href = data.data.url;
  178. },1000)
  179. },
  180. error:function(errorData) {
  181. //$('#btnRegPersonal').text('注册个人会员').removeClass('btn_disabled').prop('disabled', 0);
  182. var response=$.parseJSON(errorData.response);
  183. if (errorData.status==422) {//验证错误
  184. $.each(response.errors,function (key,val) {
  185. qsToast({type:2,context: val[0]});
  186. return false;
  187. });
  188. }
  189. else if(errorData.status==400) {//业务错误
  190. qsToast({type:2,context: response.message});
  191. }
  192. }
  193. });
  194. })
  195. </script>
  196. @endsection