|
|
@@ -1,130 +1,176 @@
|
|
|
-@extends('layouts.app')
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
|
|
+<head>
|
|
|
+ <meta charset="utf-8">
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
+ <link rel="icon" href="{{asset('icon/faviconc.ico')}}" type="image/x-icon"/>
|
|
|
+ <!-- CSRF Token -->
|
|
|
+ <meta name="csrf-token" content="{{ csrf_token() }}">
|
|
|
+ <title>宝时SWAS</title>
|
|
|
|
|
|
-@section('content')
|
|
|
- <div class="container-fluid" id="list">
|
|
|
- <div class="row justify-content-center">
|
|
|
- <div class="col-md-12">
|
|
|
- <div class="card">
|
|
|
- <div class="card-header">登录</div>
|
|
|
- <div class="card-body">
|
|
|
- <div class="row">
|
|
|
- <div class="col-md-6 text-md-right">
|
|
|
- <img src="{{asset('images/login/bg1.jpg')}}" alt="" class="img-fluid">
|
|
|
- </div>
|
|
|
- <div class="col-md-6"><form method="POST" action="{{ route('login') .'?rand='.microtime(true)}}">
|
|
|
- @csrf
|
|
|
- <label for="name" class="col-form-label text-md-right">用户名</label>
|
|
|
- <div class="form-group row">
|
|
|
+ <link href="{{ mix('css/app.css') }}" rel="stylesheet">
|
|
|
+ <link href="{{ mix('css/reset.css') }}" rel="stylesheet">
|
|
|
+ <link href="{{ mix('css/swiper-bundle.min.css') }}" rel="stylesheet">
|
|
|
|
|
|
- <div class="col-md-8">
|
|
|
- <input id="name" type="text" class="form-control" :class="[errors.name?'is-invalid':'']"
|
|
|
- oninput="setTimeout(function(){vue.errors.name=''},10)"
|
|
|
- name="name" v-model="inputting.name" required autocomplete="name" autofocus>
|
|
|
+<!--[if lt IE 9]>
|
|
|
+<script type="text/javascript" src="{{mix('js/login/html5.js')}}"></script>
|
|
|
+<script type="text/javascript" src="{{mix('js/login/respond.min.js')}}"></script>
|
|
|
+<script type="text/javascript" src="{{mix('js/login/PIE_IE678.js')}}"></script>
|
|
|
+<![endif]-->
|
|
|
|
|
|
- <span class="invalid-feedback" v-if="errors.name">
|
|
|
- <strong v-for="msg in errors.name">@{{ msg }}</strong>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <script type="text/javascript" src="{{mix('js/login/jquery-1.9.min.js')}}"></script>
|
|
|
+ <script type="text/javascript" src="{{mix('js/login/swiper-bundle.min.js')}}"></script>
|
|
|
+</head>
|
|
|
+<body>
|
|
|
|
|
|
- <label for="password" class="col-form-label text-md-right">密码</label>
|
|
|
- <div class="form-group row">
|
|
|
-
|
|
|
- <div class="col-md-8">
|
|
|
- <input id="password" type="password" class="form-control " :class="[errors.password?'is-invalid':'']"
|
|
|
- @keypress="passwordInput($event)"
|
|
|
- v-model="inputting.password" name="password" required autocomplete="current-password">
|
|
|
-
|
|
|
- <span class="invalid-feedback" v-if="errors.password">
|
|
|
- <strong v-for="msg in errors.password">@{{ msg }}</strong>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="form-group row">
|
|
|
- <div class="col-md-6">
|
|
|
- <div class="form-check">
|
|
|
- <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
|
|
|
+<div class="lgoinbox" id="list">
|
|
|
+ <div class="left swiper-container">
|
|
|
+ <div class="swiper-wrapper">
|
|
|
+ <div class="swiper-slide" style="background-image: url({{url('images/login/log01.jpg')}});"><a href="#"></a>
|
|
|
+ </div>
|
|
|
+ <div class="swiper-slide" style="background-image: url({{url('images/login/log01.jpg')}});"><a href="#"></a>
|
|
|
+ </div>
|
|
|
+ <div class="swiper-slide" style="background-image: url({{url('images/login/log01.jpg')}});"><a href="#"></a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- Add Pagination -->
|
|
|
+ <div class="swiper-pagination"></div>
|
|
|
+ </div>
|
|
|
+ <div class="right">
|
|
|
+ <div class="formbox">
|
|
|
+ <div class="logo"><img src="{{url('images/login/loglogo.png')}}" alt=""></div>
|
|
|
+ <ul>
|
|
|
+ <li v-if="message"><div class="text-primary">
|
|
|
+ @{{ message }}
|
|
|
+ </div></li>
|
|
|
|
|
|
- <label class="form-check-label" for="remember">
|
|
|
- 记住我
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <li v-if="errorMessage">
|
|
|
+ <div class="text-danger">
|
|
|
+ @{{ errorMessage }}
|
|
|
+ </div>
|
|
|
+ </li>
|
|
|
|
|
|
- <div class="form-group row mb-0">
|
|
|
- <div class="col-md-8">
|
|
|
- <button type="button" class="btn btn-primary form-control" onclick="loginSubmit()">
|
|
|
- 登录
|
|
|
- </button>
|
|
|
+ <li>
|
|
|
+ <input class="input" name="" type="text" placeholder="用户名/邮箱/手机号" v-model="inputting.name" @click="errorMessage =null">
|
|
|
+ <div class="bar"></div>
|
|
|
|
|
|
- {{-- @if (Route::has('password.request'))--}}
|
|
|
- {{-- <a class="btn btn-link" href="{{ route('password.request') }}">--}}
|
|
|
- {{-- {{ __('Forgot Your Password?') }}--}}
|
|
|
- {{-- </a>--}}
|
|
|
- {{-- @endif--}}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </form>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <input class="input" name="" type="password" placeholder="密码" v-model="inputting.password" @click="errorMessage =null">
|
|
|
+ <div class="bar"></div>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <button class="inbtn" type="button" value="登录" @click="login">
|
|
|
+ 登录
|
|
|
+ </button>
|
|
|
+{{-- <input class="inbtn" name="" type="button" value="登录" onclick="loginSubmit"></li>--}}
|
|
|
+{{-- <li class="lia"><a href="#" class="a1">立即注册</a><a class="a2" href="#">忘记密码?</a></li>--}}
|
|
|
+ </ul>
|
|
|
</div>
|
|
|
+ <div class="banquan">沪ICP备123456789号-1 Copyright © 2021</div>
|
|
|
</div>
|
|
|
-@endsection
|
|
|
+</div>
|
|
|
|
|
|
-@section('lastScript')
|
|
|
- <script>
|
|
|
- let vue=new Vue({
|
|
|
- el:"#list",
|
|
|
- mounted:function(){
|
|
|
- $('.invalid-feedback').addClass('d-block')
|
|
|
- },
|
|
|
- data:{
|
|
|
- inputting:{name:'',password:'',is_json:true},
|
|
|
- errors: {name:'',password:'',},
|
|
|
- },
|
|
|
- methods:{
|
|
|
- passwordInput:function(e){
|
|
|
- setTimeout(function(){vue.errors.password=''},10);
|
|
|
- if(e.key==='Enter'){
|
|
|
- loginSubmit()
|
|
|
- }
|
|
|
- },
|
|
|
+<script type="text/javascript" src="{{mix('js/app.js')}}"></script>
|
|
|
+<script>
|
|
|
+
|
|
|
+</script>
|
|
|
+<script>
|
|
|
+ let vue = new Vue({
|
|
|
+ el: "#list",
|
|
|
+ data: {
|
|
|
+ inputting: {name: '', password: '', is_json: true},
|
|
|
+ errors: {name: [], password: [],},
|
|
|
+ message:null,
|
|
|
+ errorMessage:null,
|
|
|
+ bannerSwiper:null,
|
|
|
+ },
|
|
|
+ mounted: function () {
|
|
|
+ this.bannerSwiper = new Swiper('.swiper-container', {
|
|
|
+ pagination: '.swiper-pagination',
|
|
|
+ paginationClickable: true,
|
|
|
+ autoplay: 2500,
|
|
|
+ autoplayDisableOnInteraction: false,
|
|
|
+ loop: true,
|
|
|
+ });
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ passwordInput: function (e) {
|
|
|
+ setTimeout(function () {
|
|
|
+ vue.errors.password = ''
|
|
|
+ }, 10);
|
|
|
+ if (e.key === 'Enter') {
|
|
|
+ loginSubmit()
|
|
|
}
|
|
|
- }
|
|
|
- )
|
|
|
- function loginSubmit() {
|
|
|
- tempTip.setDuration(99999);
|
|
|
- tempTip.waitingTip('提交中');
|
|
|
- axios.post('{{ route('login') .'?rand='.microtime(true)}}',vue.inputting).then(function (response) {
|
|
|
- tempTip.setDuration(2000);
|
|
|
- tempTip.cancelWaitingTip();
|
|
|
- if(response.data.success!==true){
|
|
|
- if(response.data.errors){
|
|
|
- vue.errors=response.data.errors;
|
|
|
- return;
|
|
|
- }
|
|
|
- if(response.data.message){
|
|
|
- tempTip.show(response.data.message)
|
|
|
- return;
|
|
|
+ },
|
|
|
+ login(){
|
|
|
+ window.tempTip.setDuration(99999);
|
|
|
+ window.tempTip.setIndex(10);
|
|
|
+ window.tempTip.waitingTip('提交中');
|
|
|
+ this.message = '正在登录';
|
|
|
+ window.axios.post('{{ route('login') .'?rand='.microtime(true)}}',this.inputting).then(res=>{
|
|
|
+ window.tempTip.setDuration(2000);
|
|
|
+ window.tempTip.cancelWaitingTip();
|
|
|
+ this.message = null;
|
|
|
+ if (res.data.success !== true) {
|
|
|
+ if (res.data.errors) {
|
|
|
+ let message = null;
|
|
|
+ for (const resKey in res.data.errors) {
|
|
|
+ if (message) break;
|
|
|
+ if (res.data.errors[`${resKey}`]){
|
|
|
+ message = res.data.errors[`${resKey}`][0];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.errorMessage = message;
|
|
|
+ // this.errors = res.data.errors;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (res.data.message) {
|
|
|
+ this.errorMessage = res.data.message;
|
|
|
+ // window.tempTip.show(res.data.message)
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ tempTip.setDuration(99999);
|
|
|
+ tempTip.waitingTip('页面跳转中');
|
|
|
+ localStorage.setItem("menus", JSON.stringify(res.data.menus));
|
|
|
+ location = res.data.url;
|
|
|
}
|
|
|
- }else{
|
|
|
- tempTip.setDuration(99999);
|
|
|
- tempTip.waitingTip('页面跳转中');
|
|
|
- localStorage.setItem("menus",JSON.stringify(response.data.menus));
|
|
|
- location=response.data.url;
|
|
|
- }
|
|
|
- }).catch(function(response){
|
|
|
- tempTip.setDuration(6000);
|
|
|
- tempTip.waitingTip('错误');
|
|
|
- console.log(response)
|
|
|
- //alert('页面过期或网络异常,请在刷新后重新登录');
|
|
|
- //window.location.reload();
|
|
|
- })
|
|
|
+ }).catch(err=>{
|
|
|
+ tempTip.setDuration(6000);
|
|
|
+ tempTip.waitingTip('错误');
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
- </script>
|
|
|
-@endsection
|
|
|
+ });
|
|
|
+ function loginSubmit() {
|
|
|
+ console.log(123);
|
|
|
+ tempTip.setDuration(99999);
|
|
|
+ tempTip.waitingTip('提交中');
|
|
|
+ axios.post('{{ route('login') .'?rand='.microtime(true)}}', vue.inputting).then(function (response) {
|
|
|
+ tempTip.setDuration(2000);
|
|
|
+ tempTip.cancelWaitingTip();
|
|
|
+ if (response.data.success !== true) {
|
|
|
+ if (response.data.errors) {
|
|
|
+ vue.errors = response.data.errors;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (response.data.message) {
|
|
|
+ tempTip.show(response.data.message)
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ tempTip.setDuration(99999);
|
|
|
+ tempTip.waitingTip('页面跳转中');
|
|
|
+ localStorage.setItem("menus", JSON.stringify(response.data.menus));
|
|
|
+ location = response.data.url;
|
|
|
+ }
|
|
|
+ }).catch(function (response) {
|
|
|
+ tempTip.setDuration(6000);
|
|
|
+ tempTip.waitingTip('错误');
|
|
|
+ })
|
|
|
+ }
|
|
|
+</script>
|
|
|
+</body>
|
|
|
+</html>
|