login.blade.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. @extends('auth.layouts')
  2. @section('title', trans('auth.login'))
  3. @section('css')
  4. <style type="text/css">
  5. @media screen and (max-height: 575px) {
  6. .g-recaptcha {
  7. -webkit-transform: scale(0.81);
  8. transform: scale(0.81);
  9. -webkit-transform-origin: 0 0;
  10. transform-origin: 0 0;
  11. }
  12. }
  13. .geetest_holder.geetest_wind {
  14. min-width: 245px !important;
  15. }
  16. </style>
  17. @endsection
  18. @section('content')
  19. <form action="/login" method="post" id="login-form">
  20. @if($errors->any())
  21. <div class="alert alert-danger">
  22. <span> {!! $errors->first() !!} </span>
  23. </div>
  24. @endif
  25. @if (Session::get('regSuccessMsg'))
  26. <div class="alert alert-success">
  27. <button class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span>
  28. <span class="sr-only">{{trans('auth.close')}}</span>
  29. </button>
  30. <span>{{Session::get('regSuccessMsg')}}</span>
  31. </div>
  32. @endif
  33. <div class="form-group form-material floating" data-plugin="formMaterial">
  34. <input type="email" class="form-control" name="username" value="{{Request::old('username')}}" required/>
  35. <label class="floating-label" for="username">{{trans('auth.username')}}</label>
  36. </div>
  37. <div class="form-group form-material floating" data-plugin="formMaterial">
  38. <input type="password" class="form-control" name="password" value="{{Request::old('password')}}" required/>
  39. <label class="floating-label" for="password">{{trans('auth.password')}}</label>
  40. <input type="hidden" name="_token" value="{{csrf_token()}}"/>
  41. </div>
  42. @switch(\App\Components\Helpers::systemConfig()['is_captcha'])
  43. @case(1)<!-- Default Captcha -->
  44. <div class="form-group form-material floating input-group" data-plugin="formMaterial">
  45. <input type="text" class="form-control" name="captcha" value=""/>
  46. <label class="floating-label" for="captcha">{{trans('auth.captcha')}}</label>
  47. <img src="{{captcha_src()}}" class="float-right" onclick="this.src='/captcha/default?'+Math.random()"
  48. alt="{{trans('auth.captcha')}}"/>
  49. </div>
  50. @break
  51. @case(2)<!-- Geetest -->
  52. <div class="form-group form-material floating" data-plugin="formMaterial">
  53. {!! Geetest::render() !!}
  54. </div>
  55. @break
  56. @case(3)<!-- Google noCAPTCHA -->
  57. <div class="form-group form-material floating" data-plugin="formMaterial">
  58. {!! NoCaptcha::display() !!}
  59. {!! NoCaptcha::renderJs(session::get('locale')) !!}
  60. </div>
  61. @break
  62. @default
  63. @endswitch
  64. <div class="form-group clearfix">
  65. <div class="checkbox-custom checkbox-inline checkbox-primary checkbox-lg float-left">
  66. <input type="checkbox" id="inputCheckbox" name="remember">
  67. <label for="inputCheckbox" for="remember">{{trans('auth.remember')}}</label>
  68. </div>
  69. <a class="float-right" href="/resetPassword">{{trans('auth.forget_password')}}</a>
  70. </div>
  71. <button type="submit" class="btn btn-primary btn-block btn-lg mt-40">{{trans('auth.login')}}</button>
  72. </form>
  73. @if(\App\Components\Helpers::systemConfig()['is_register'])
  74. <p>{{trans('auth.register_tip')}} <a href="/register">{{trans('auth.register')}}</a></p>
  75. @endif
  76. @endsection
  77. @section('script')
  78. <script type="text/javascript">
  79. $('#login-form').submit(function (event) {
  80. // 先检查Google reCAPTCHA有没有进行验证
  81. if ($('#g-recaptcha-response').val() === '') {
  82. Msg(false, "{{trans('login.required_captcha')}}", 'error');
  83. return false;
  84. }
  85. });
  86. // 生成提示
  87. function Msg(clear, msg, type) {
  88. if (!clear) $('.login-form .alert').remove();
  89. var typeClass = 'alert-danger',
  90. clear = clear ? clear : false,
  91. $elem = $('.login-form');
  92. type === 'error' ? typeClass = 'alert-danger' : typeClass = 'alert-success';
  93. const tpl = '<div class="alert ' + typeClass + '">' +
  94. '<button type="button" class="close" onclick="$(this).parent().remove();"></button>' +
  95. '<span> ' + msg + ' </span></div>';
  96. if (!clear) {
  97. $elem.prepend(tpl);
  98. } else {
  99. $('.login-form .alert').remove();
  100. }
  101. }
  102. </script>
  103. @endsection