login.blade.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  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.login.mobile')}}'">手机动态码登录<div class="b-line"></div></div>
  15. <div class="clear"></div>
  16. </div>
  17. <div class="split-block"></div>
  18. <form method="post" id="form_account" action="{{route($sub_site.'mobile.login')}}">
  19. {{ csrf_field() }}
  20. <div class="loging-input-group">
  21. <div class="group-list">
  22. <div class="g-close"></div>
  23. <input id="account" name="account" type="text" class="l-input j-l-input font14" placeholder="请输入用户名/手机/邮箱" autocomplete="off">
  24. </div>
  25. <div class="group-list pwd">
  26. <div class="g-close"></div>
  27. <input id="password" name="password" type="text" onfocus="this.type='password'" class="l-input j-l-input font14" placeholder="请输入密码" autocomplete="off">
  28. </div>
  29. </div>
  30. <div class="l-tool-bar list_height">
  31. <div class="auto-loging">
  32. <div class="for-checkbox active" id="for-checkbox">下次自动登录</div>
  33. </div>
  34. <div class="for-pwd link_gray6"><a href="{{route($sub_site.'mobile.password.request')}}">忘记密码</a></div>
  35. <div class="clear"></div>
  36. </div>
  37. <div id="pop" style="display:none"></div>
  38. <input type="hidden" name="autoLogin" id="autoLogin" value="1" >
  39. </form>
  40. <div class="btn-spacing login-account"><a id="loginBtn" href="javascript:;" class="qs-btn qs-btn-blue font18">登录</a></div>
  41. <div class="qs-center login-btn-group">
  42. <div class="login-btn-group-box">
  43. <a url="{{route($sub_site.'mobile.register.index')}}" class="qs-btn qs-btn-medium qs-btn-border-orange font14 register_user" url="{{route($sub_site.'register.index')}}" href="javascript:;" style="width: 2.45rem;">立即注册</a>
  44. <a href="{{route($sub_site.'mobile.login.company')}}" class="qs-btn qs-btn-medium qs-btn-border-blue font14" style="width: 2.45rem;margin-left: .5rem">企业用户登录</a>
  45. <div class="clear"></div>
  46. </div>
  47. </div>
  48. <div class="qs-center coop-title">使用合作账号登录/注册</div>
  49. <div class="coop-group qs-center" >
  50. <div class="coop-cell" id="other-thirdlogin">
  51. </div>
  52. <div class="clear"></div>
  53. </div>
  54. @endsection
  55. @section('script')
  56. @include('mobile.module.widgets.thirdlogin')
  57. <script>
  58. $(function () {
  59. var is_need_geetest=0;//全局,是否使用极验.
  60. var login_type=1;//登录模式,1用户账号登录,2用户手机登录,3企业登录.
  61. var gt_call_back=function(captchaObj) {
  62. captchaObj.onReady(function () {
  63. //极验加载完成
  64. });
  65. captchaObj.onSuccess(function () {
  66. ajax_login(login_type,captchaObj);
  67. });
  68. captchaObj.onError(function () {
  69. // qsToast({type:2,context: "请先进行验证"});
  70. });
  71. captchaObj.onClose(function () {
  72. // qsToast({type:2,context: "请先进行验证"});
  73. });
  74. $('.login-account').on('click', function () {
  75. var usernameValue = $.trim($('input[name=account]').val());
  76. var passwordValue = $.trim($('input[name=password]').val());
  77. if (usernameValue == '') {
  78. qsToast({type:2,context: '请输入用户名/手机号'});
  79. return false;
  80. }
  81. if (passwordValue == '') {
  82. qsToast({type:2,context: '请输入密码'});
  83. return false;
  84. }
  85. login_type=1;
  86. //clean_message();
  87. if (is_need_geetest==1){
  88. captchaObj.bindForm("#form_account");
  89. captchaObj.verify();
  90. }
  91. else{
  92. ajax_login(login_type,captchaObj);
  93. }
  94. });
  95. $('.login-mobile').on('click', function () {
  96. login_type=2;
  97. //clean_message();
  98. if (is_need_geetest==1){
  99. captchaObj.bindForm("#form_mobile");
  100. captchaObj.verify();
  101. }
  102. else{
  103. ajax_login(login_type,captchaObj);
  104. }
  105. });
  106. $(".register_user").click(function(){
  107. var url=$(this).attr("url")
  108. $.getJSON("{{route($sub_site.'register.status')}}", function (result) {
  109. if (result.status == 0) {
  110. qsToast({type:2,context: result.msg});
  111. } else{
  112. location.href=url;
  113. }
  114. });
  115. })
  116. $('.login-company').on('click', function () {
  117. login_type=3;
  118. //clean_message();
  119. if (is_need_geetest==1){
  120. captchaObj.bindForm("#form_company");
  121. captchaObj.verify();
  122. }
  123. else{
  124. ajax_login(login_type,captchaObj);
  125. }
  126. });
  127. };
  128. gt_init(gt_call_back);//初始化极验
  129. $(".input-login").keydown(function(ev){
  130. ev = ev || window.event;
  131. var code = (ev.keyCode || ev.which);
  132. if (code == 10 || code == 13) {
  133. $(this).closest("form").find(".btn-group").click();
  134. }
  135. });
  136. // 自动登录
  137. $('#for-checkbox').on('click', function() {
  138. $(this).toggleClass('active');
  139. if ($(this).hasClass('active')) {
  140. $('#autoLogin').val('1');
  141. } else {
  142. $('#autoLogin').val('0');
  143. }
  144. })
  145. $('.btn-getcode').on('click', function () {
  146. submit_data={
  147. "mobile":$("input[name='mobile']").val(),
  148. "type":"login"
  149. };
  150. $.ajax({
  151. method: 'post',
  152. url: '{{route('sms.send')}}',
  153. data: submit_data,
  154. beforeSend:function () {
  155. // console.log('请求开始');
  156. $(".errinfo").text("");
  157. $(".errinfo").removeClass("errinfo");
  158. },
  159. complete:function() {
  160. console.log('请求结束');
  161. },
  162. success: function (data) {
  163. // console.log(data);
  164. $("#message_mobile").addClass("successinfo");
  165. $("#message_mobile").text("发送成功,请注意查收");
  166. settime();
  167. },
  168. error: function (errorData) {
  169. // console.log(errorData);
  170. if (errorData.status==422) {//验证错误
  171. $.each(errorData.responseJSON.errors,function (key,val) {
  172. $("#"+key).addClass("errinfo");
  173. $("#"+key).text(val[0]);
  174. });
  175. }
  176. else if(errorData.status==400) {//业务错误
  177. $("#message_mobile").addClass("errinfo");
  178. $("#message_mobile").text(errorData.responseJSON.message);
  179. }
  180. }
  181. });
  182. });
  183. function ajax_login(type, captchaObj) {
  184. if (type==1) {
  185. $.ajax({
  186. type: 'post',
  187. url: $("#form_account").attr('action'),
  188. data: $("#form_account").serialize(),
  189. beforeSend:function () {
  190. //console.log('请求开始');
  191. },
  192. complete:function() {
  193. //console.log('请求结束');
  194. },
  195. success: function (data) {
  196. //console.log(data);
  197. qsToast({type:2,context: "登录成功, 正在跳转..."});
  198. location.href=data.data.redirect_url+'?token='+data.data.token;
  199. },
  200. error: function (errorData) {
  201. //console.log(errorData);
  202. var response=$.parseJSON(errorData.response);
  203. if (is_need_geetest==1){
  204. captchaObj.reset();
  205. }
  206. if (errorData.status==422) {//验证错误
  207. $.each(response.errors,function (key,val) {
  208. qsToast({type:2,context: val[0]});
  209. return false;
  210. });
  211. }
  212. else if(errorData.status==400) {//业务错误
  213. qsToast({type:2,context: response.message});
  214. is_need_geetest=response.errors.is_need_geetest;
  215. }
  216. }
  217. });
  218. }
  219. else if (type==2) {
  220. $.ajax({
  221. method: 'post',
  222. url: $("#form_mobile").attr('action'),
  223. data: $("#form_mobile").serialize(),
  224. beforeSend:function () {
  225. //console.log('请求开始');
  226. clean_message();
  227. $('.login-mobile').addClass("btn-disabled").prop('disabled', true);
  228. $('.login-mobile').val("登录中...");
  229. },
  230. complete:function() {
  231. //console.log('请求结束');
  232. $('.login-mobile').val("登录");
  233. $('.login-mobile').removeClass("btn-disabled").prop('disabled', false);
  234. },
  235. success: function (data) {
  236. //console.log(data);
  237. $("#message_mobile").addClass("successinfo");
  238. $("#message_mobile").text("登录成功, 正在跳转...");
  239. location.href=data.data.redirect_url+'?token='+data.data.token;
  240. },
  241. error: function (errorData) {
  242. //console.log(errorData);
  243. if (is_need_geetest==1){
  244. captchaObj.reset();
  245. }
  246. if (errorData.status==422) {//验证错误
  247. $.each(errorData.responseJSON.errors,function (key,val) {
  248. $("#"+key).addClass("errinfo");
  249. $("#"+key).text(val[0]);
  250. });
  251. }
  252. else if(errorData.status==400) {//业务错误
  253. $("#message_mobile").addClass("errinfo");
  254. $("#message_mobile").text(errorData.responseJSON.message);
  255. is_need_geetest=errorData.responseJSON.errors.is_need_geetest;
  256. }
  257. }
  258. });
  259. }
  260. else if (type==3){
  261. $.ajax({
  262. method: 'post',
  263. url: $("#form_company").attr('action'),
  264. data: $("#form_company").serialize(),
  265. beforeSend:function () {
  266. //console.log('请求开始');
  267. clean_message();
  268. $('.login-company').addClass("btn-disabled").prop('disabled', true);
  269. $('.login-company').val("登录中...");
  270. },
  271. complete:function() {
  272. //console.log('请求结束');
  273. $('.login-company').val("登录");
  274. $('.login-company').removeClass("btn-disabled").prop('disabled', false);
  275. },
  276. success: function (data) {
  277. //console.log(data);
  278. $("#message_company").addClass("successinfo");
  279. $("#message_company").text("登录成功, 正在跳转...");
  280. location.href=data.data.redirect_url+'?token='+data.data.token;
  281. },
  282. error: function (errorData) {
  283. //console.log(errorData);
  284. if (is_need_geetest==1){
  285. captchaObj.reset();
  286. }
  287. if (errorData.status==422) {//验证错误
  288. $.each(errorData.responseJSON.errors,function (key,val) {
  289. $("#"+key).addClass("errinfo");
  290. $("#"+key).text(val[0]);
  291. });
  292. }
  293. else if(errorData.status==400) {//业务错误
  294. $("#message_company").addClass("errinfo");
  295. $("#message_company").text(errorData.responseJSON.message);
  296. is_need_geetest=errorData.responseJSON.errors.is_need_geetest;
  297. }
  298. }
  299. });
  300. }
  301. };
  302. });
  303. // 倒计时
  304. var countdown = 60;
  305. function settime() {
  306. if (countdown == 0) {
  307. $('.btn-getcode').prop("disabled", false);
  308. $('.btn-getcode').removeClass('btn-disabled');
  309. $('.btn-getcode').val('获取验证码');
  310. countdown = 60;
  311. return;
  312. } else {
  313. $('.btn-getcode').prop("disabled", true);
  314. $('.btn-getcode').addClass('btn-disabled');
  315. $('.btn-getcode').val('重新发送' + countdown + '秒');
  316. countdown--;
  317. }
  318. setTimeout(function() {
  319. settime()
  320. },1000)
  321. }
  322. $('.gohome').on('click', function () {
  323. location.href="{{route($sub_site.'home')}}";
  324. });
  325. </script>
  326. @endsection