per_login.blade.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. <div class="modal_login_box">
  2. <!--个人会员登录-->
  3. <div class="login-box-per-body">
  4. <div class="login-form">
  5. <div class="form-l">
  6. <div class="switch-title">
  7. <span class="active" data-type="1">普通账户登录</span>
  8. <span data-type="2">手机动态码登录</span>
  9. </div>
  10. <!--普通用户登录-->
  11. <div class="login-type user-login">
  12. <form id="form_account" action="{{route('login.account')}}" method="post">
  13. {{ csrf_field() }}
  14. <div id="account"></div>
  15. <div id="message_account"></div>
  16. <div class="form-group yhm">
  17. <div class="imgbg"></div>
  18. <input class="input-login" type="text" value="" name="account" placeholder="请输入用户名"/>
  19. </div>
  20. <div id="password"></div>
  21. <div class="form-group mm">
  22. <div class="imgbg"></div>
  23. <input class="input-login" type="password" value="" name="password" placeholder="请输入密码"/>
  24. </div>
  25. <div class="txt-group">
  26. <input type="checkbox" name="autoLogin" value="1" checked />
  27. <span class="check-box yes" onclick="checkAutoLogin()">下次自动登录</span>
  28. <span class="txt-r"><a href="{{route('password.request')}}">忘记密码?</a></span>
  29. </div>
  30. <div class="btn-group login-account" >
  31. 登录
  32. </div>
  33. </form>
  34. </div>
  35. <!--手机登录-->
  36. <div class="login-type mob-login" style="display: none;">
  37. <form id="form_mobile" action="{{route('login.sms')}}" method="post">
  38. {{ csrf_field() }}
  39. <div id="mobile"></div>
  40. <div id="message_mobile"></div>
  41. <div class="form-group yhm">
  42. <div class="imgbg"></div>
  43. <input class="input-login" type="text" value="" name="mobile" placeholder="请输入手机号"/>
  44. </div>
  45. <div id="code"></div>
  46. <div class="form-group mm">
  47. <div class="imgbg"></div>
  48. <input class="input-login code" type="text" value="" name="code" placeholder="请输入手机验证码"/>
  49. <input type="button" class="btn-getcode" value="获取验证码"/>
  50. </div>
  51. <div class="txt-group">
  52. <input type="checkbox" name="autoLogin" value="1" checked />
  53. <span class="check-box yes" onclick="checkAutoLogin(this)">下次自动登录</span>
  54. <span class="txt-r"><a href="{{route('password.request')}}">忘记密码?</a></span>
  55. </div>
  56. <div class="btn-group login-mobile" >
  57. 登录
  58. </div>
  59. </form>
  60. </div>
  61. <div class="reg-link-box">
  62. 还没有账号?<a class="reg-txt" href="{{route('register.index')}}">立刻注册</a>
  63. </div>
  64. </div>
  65. <div class="form-r">
  66. <div id="thirdlogin-wechat-web" class="qr-code">
  67. </div>
  68. <div class="appsparent">
  69. <p class="txt">使用合作账号直接登录</p>
  70. <a class="app-icon qq" href=""></a>
  71. </div>
  72. <div class="other-user">
  73. <a href="{{route('login')}}">其他用户登录>></a>
  74. </div>
  75. </div>
  76. <div class="clear"></div>
  77. </div>
  78. </div>
  79. </div>
  80. <script type="text/javascript" src="{{ theme_asset('gt/gt.js') }}"></script>
  81. <script type="text/javascript" src="{{ theme_asset('gt/gt.handle.js') }}"></script>
  82. @include('module.widgets.thirdlogin', ['redirect_url'=>$redirect_url])
  83. <script>
  84. $(function () {
  85. var is_need_geetest=0;//全局,是否使用极验.
  86. var login_type=1;//登录模式,1用户账号登录,2用户手机登录,3企业登录.
  87. var gt_call_back=function(captchaObj) {
  88. captchaObj.onReady(function () {
  89. //极验加载完成
  90. });
  91. captchaObj.onSuccess(function () {
  92. ajax_login(login_type,captchaObj);
  93. });
  94. captchaObj.onError(function () {
  95. show_error(login_type,"请先进行验证");
  96. });
  97. captchaObj.onClose(function () {
  98. show_error(login_type,"请先进行验证");
  99. });
  100. $('.login-account').on('click', function () {
  101. login_type=1;
  102. clean_message();
  103. if (is_need_geetest==1){
  104. captchaObj.bindForm("#form_account");
  105. captchaObj.verify();
  106. }
  107. else{
  108. ajax_login(login_type,captchaObj);
  109. }
  110. });
  111. $('.login-mobile').on('click', function () {
  112. login_type=2;
  113. clean_message();
  114. if (is_need_geetest==1){
  115. captchaObj.bindForm("#form_mobile");
  116. captchaObj.verify();
  117. }
  118. else{
  119. ajax_login(login_type,captchaObj);
  120. }
  121. });
  122. $('.login-company').on('click', function () {
  123. login_type=3;
  124. clean_message();
  125. if (is_need_geetest==1){
  126. captchaObj.bindForm("#form_company");
  127. captchaObj.verify();
  128. }
  129. else{
  130. ajax_login(login_type,captchaObj);
  131. }
  132. });
  133. };
  134. gt_init(gt_call_back);//初始化极验
  135. $(document).on("click",".switch-title span",function () {
  136. var index = $(this).index();
  137. $(this).addClass("active").siblings("span").removeClass("active");
  138. $(".login-type").eq(index).show().siblings(".login-type").hide();
  139. });
  140. $(".rightab").click(function () {
  141. $(".login-box-per-body").toggle();
  142. $(".login-box-com-body").toggle();
  143. });
  144. $('.btn-getcode').on('click', function () {
  145. submit_data={
  146. "mobile":$("input[name='mobile']").val(),
  147. "type":"login"
  148. };
  149. $.ajax({
  150. method: 'get',
  151. url: '{{url('api/common/sms/send')}}',
  152. data: submit_data,
  153. beforeSend:function () {
  154. // console.log('请求开始');
  155. $(".errinfo").text("");
  156. $(".errinfo").removeClass("errinfo");
  157. },
  158. complete:function() {
  159. console.log('请求结束');
  160. },
  161. success: function (data) {
  162. // console.log(data);
  163. $("#message_mobile").addClass("successinfo");
  164. $("#message_mobile").text("发送成功,请注意查收");
  165. settime();
  166. },
  167. error: function (errorData) {
  168. // console.log(errorData);
  169. if (errorData.status==422) {//验证错误
  170. $.each(errorData.responseJSON.errors,function (key,val) {
  171. $("#"+key).addClass("errinfo");
  172. $("#"+key).text(val[0]);
  173. });
  174. }
  175. else if(errorData.status==400) {//业务错误
  176. $("#message_mobile").addClass("errinfo");
  177. $("#message_mobile").text(errorData.responseJSON.message);
  178. }
  179. }
  180. });
  181. });
  182. function ajax_login(type, captchaObj) {
  183. if (type==1) {
  184. $.ajax({
  185. method: 'post',
  186. url: $("#form_account").attr('action'),
  187. data: $("#form_account").serialize(),
  188. beforeSend:function () {
  189. //console.log('请求开始');
  190. clean_message();
  191. },
  192. complete:function() {
  193. //console.log('请求结束');
  194. },
  195. success: function (data) {
  196. //console.log(data);
  197. //location.href=data.data.redirect_url;
  198. window.location.reload();
  199. },
  200. error: function (errorData) {
  201. if (is_need_geetest==1){
  202. captchaObj.reset();
  203. }
  204. if (errorData.status==422) {//验证错误
  205. $.each(errorData.responseJSON.errors,function (key,val) {
  206. $("#"+key).addClass("errinfo");
  207. $("#"+key).text(val[0]);
  208. });
  209. }
  210. else if(errorData.status==400) {//业务错误
  211. $("#message_account").addClass("errinfo");
  212. $("#message_account").text(errorData.responseJSON.message);
  213. is_need_geetest=errorData.responseJSON.errors.is_need_geetest;
  214. }
  215. }
  216. });
  217. }
  218. else if (type==2) {
  219. $.ajax({
  220. method: 'post',
  221. url: $("#form_mobile").attr('action'),
  222. data: $("#form_mobile").serialize(),
  223. beforeSend:function () {
  224. //console.log('请求开始');
  225. clean_message();
  226. },
  227. complete:function() {
  228. //console.log('请求结束');
  229. },
  230. success: function (data) {
  231. //console.log(data);
  232. //location.href=data.data.redirect_url;
  233. window.location.reload();
  234. },
  235. error: function (errorData) {
  236. //console.log(errorData);
  237. if (is_need_geetest==1){
  238. captchaObj.reset();
  239. }
  240. if (errorData.status==422) {//验证错误
  241. $.each(errorData.responseJSON.errors,function (key,val) {
  242. $("#"+key).addClass("errinfo");
  243. $("#"+key).text(val[0]);
  244. });
  245. }
  246. else if(errorData.status==400) {//业务错误
  247. $("#message_mobile").addClass("errinfo");
  248. $("#message_mobile").text(errorData.responseJSON.message);
  249. is_need_geetest=errorData.responseJSON.errors.is_need_geetest;
  250. }
  251. }
  252. });
  253. }
  254. else if (type==3){
  255. $.ajax({
  256. method: 'post',
  257. url: $("#form_company").attr('action'),
  258. data: $("#form_company").serialize(),
  259. beforeSend:function () {
  260. //console.log('请求开始');
  261. clean_message();
  262. },
  263. complete:function() {
  264. //console.log('请求结束');
  265. },
  266. success: function (data) {
  267. //console.log(data);
  268. //location.href=data.data.redirect_url;
  269. window.location.reload();
  270. },
  271. error: function (errorData) {
  272. //console.log(errorData);
  273. if (is_need_geetest==1){
  274. captchaObj.reset();
  275. }
  276. if (errorData.status==422) {//验证错误
  277. $.each(errorData.responseJSON.errors,function (key,val) {
  278. $("#"+key).addClass("errinfo");
  279. $("#"+key).text(val[0]);
  280. });
  281. }
  282. else if(errorData.status==400) {//业务错误
  283. $("#message_company").addClass("errinfo");
  284. $("#message_company").text(errorData.responseJSON.message);
  285. is_need_geetest=errorData.responseJSON.errors.is_need_geetest;
  286. }
  287. }
  288. });
  289. }
  290. };
  291. function show_error(type,message) {
  292. if (type==1) {
  293. $("#message_account").addClass("errinfo");
  294. $("#message_account").text(message);
  295. }
  296. else if (type==2) {
  297. $("#message_mobile").addClass("errinfo");
  298. $("#message_mobile").text(message);
  299. }
  300. else if (type==3){
  301. $("#message_company").addClass("errinfo");
  302. $("#message_company").text(message);
  303. }
  304. };
  305. function clean_message() {
  306. $(".errinfo").text("");
  307. $(".errinfo").removeClass("errinfo");
  308. $(".successinfo").text("");
  309. $(".successinfo").removeClass("successinfo");
  310. }
  311. });
  312. function checkAutoLogin() {
  313. var isCheck = $(".check-box").hasClass("yes");
  314. if (isCheck) {
  315. $(".check-box").removeClass("yes");
  316. $(".check-box").closest(".txt-group").find("input[name=autoLogin]").prop("checked", false);
  317. } else {
  318. $(".check-box").addClass("yes");
  319. $(".check-box").closest(".txt-group").find("input[name=autoLogin]").prop("checked", true);
  320. }
  321. }
  322. // 倒计时
  323. var countdown = 60;
  324. function settime() {
  325. if (countdown == 0) {
  326. $('.btn-getcode').prop("disabled", false);
  327. $('.btn-getcode').removeClass('btn-disabled');
  328. $('.btn-getcode').val('获取验证码');
  329. countdown = 60;
  330. return;
  331. } else {
  332. $('.btn-getcode').prop("disabled", true);
  333. $('.btn-getcode').addClass('btn-disabled');
  334. $('.btn-getcode').val('重新发送' + countdown + '秒');
  335. countdown--;
  336. }
  337. setTimeout(function() {
  338. settime()
  339. },1000)
  340. }
  341. </script>