| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 1 | <!DOCTYPE html> |
| Tang Cheng | 5ef0576 | 2019-04-22 13:07:00 +0800 | [diff] [blame] | 2 | |
| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 3 | <html xmlns:th="http://www.thymeleaf.org"> |
| 4 | |
| 5 | <head> |
| 6 | <title>用户登录</title> |
| Tang Cheng | 5ef0576 | 2019-04-22 13:07:00 +0800 | [diff] [blame] | 7 | <meta name="_csrf" th:content="${_csrf.token}" /> |
| 8 | <!-- default header name is X-CSRF-TOKEN --> |
| 9 | <meta name="_csrf_header" th:content="${_csrf.headerName}" /> |
| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 10 | <link rel="stylesheet" type="text/css" th:href="@{/static/libs/layui/css/layui.css}" /> |
| Xia Kaixiang | 8b3261b | 2019-04-22 16:00:05 +0800 | [diff] [blame] | 11 | <link rel="stylesheet" type="text/css" th:href="@{/static/custom/css/login.css}" /> |
| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 12 | </head> |
| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 13 | <body> |
| 14 | <div class="login-wrapper"> |
| 15 | |
| 16 | <div class="login-header"> |
| Xia Kaixiang | 8b3261b | 2019-04-22 16:00:05 +0800 | [diff] [blame] | 17 | <img th:src="@{/static/custom/images/logo.png}"> logo |
| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 18 | </div> |
| 19 | |
| 20 | <div class=" login-body"> |
| 21 | <div class="layui-card"> |
| 22 | <div class="layui-card-header"> |
| 23 | <i class="layui-icon layui-icon-engine"></i> 用户登录 |
| 24 | </div> |
| 25 | <div class="layui-card-body layui-form layui-form-pane"> |
| 26 | <div class="layui-form-item"> |
| 27 | <label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label> |
| 28 | <div class="layui-input-block"> |
| 29 | <input name="username" type="text" lay-verify="required" placeholder="账号" |
| 30 | class="layui-input"> |
| Tang Cheng | 5ef0576 | 2019-04-22 13:07:00 +0800 | [diff] [blame] | 31 | <input type="hidden" |
| 32 | th:name="${_csrf.parameterName}" |
| 33 | th:value="${_csrf.token}"/> |
| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 34 | </div> |
| 35 | </div> |
| 36 | <div class="layui-form-item"> |
| 37 | <label class="layui-form-label"><i class="layui-icon layui-icon-password"></i></label> |
| 38 | <div class="layui-input-block"> |
| 39 | <input name="password" type="password" lay-verify="required" placeholder="密码" |
| 40 | class="layui-input"> |
| 41 | </div> |
| 42 | </div> |
| 43 | <div class="layui-form-item"> |
| 44 | <label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label> |
| 45 | <div class="layui-input-block"> |
| 46 | <div class="layui-row inline-block"> |
| 47 | <div class="layui-col-xs7"> |
| 48 | <input name="imageCode" type="text" placeholder="验证码" |
| 49 | class="layui-input"> |
| 50 | </div> |
| 51 | <div class="layui-col-xs5" style="padding-left: 10px;"> |
| Xia Kaixiang | 48b7bd0 | 2019-04-22 09:50:40 +0800 | [diff] [blame] | 52 | <img width="100px" height="35px" class="login-captcha" th:src="@{/code/image}"> |
| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 53 | </div> |
| 54 | </div> |
| 55 | </div> |
| 56 | </div> |
| 57 | <div class="layui-form-item"> |
| 58 | <!--<a href="javascript:;" class="layui-link">帐号注册</a>--> |
| 59 | <a href="javascript:;" class="layui-link pull-right">忘记密码?</a> |
| 60 | </div> |
| 61 | <div class="layui-form-item"> |
| 62 | <button lay-filter="login-submit" class="layui-btn layui-btn-fluid" lay-submit>登 录</button> |
| 63 | </div> |
| 64 | <!--<div class="layui-form-item login-other">--> |
| 65 | <!--<label>第三方登录</label>--> |
| 66 | <!--<a href="javascript:;"><i class="layui-icon layui-icon-login-qq"></i></a>--> |
| 67 | <!--<a href="javascript:;"><i class="layui-icon layui-icon-login-wechat"></i></a>--> |
| 68 | <!--<a href="javascript:;"><i class="layui-icon layui-icon-login-weibo"></i></a>--> |
| 69 | <!--</div>--> |
| 70 | </div> |
| 71 | </div> |
| 72 | </div> |
| 73 | |
| 74 | <div class="login-footer"> |
| 75 | <p>© 2019 <a href="javascript:;" target="_blank">上海树维信息科技有限公司 版权所有</a></p> |
| 76 | <!--<p>--> |
| 77 | <!--<span><a href="javascript:;" target="_blank">前往github</a></span>--> |
| 78 | <!--<span><a href="https://gitee.com/andyzy/zy-admin.git" target="_blank">前往gitee</a></span>--> |
| 79 | <!--<span><a href="javascript:;" target="_blank">文档说明</a></span>--> |
| 80 | <!--</p>--> |
| 81 | </div> |
| 82 | </div> |
| 83 | |
| 84 | <script type="text/javascript" th:src="@{/static/libs/layui/layui.js}" ></script> |
| 85 | <script> |
| 86 | layui.config({ |
| Xia Kaixiang | 8b3261b | 2019-04-22 16:00:05 +0800 | [diff] [blame] | 87 | base: 'custom/module/' |
| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 88 | }).use(['form'], function () { |
| 89 | var $ = layui.jquery; |
| 90 | var form = layui.form; |
| 91 | // 表单提交 |
| 92 | form.on('submit(login-submit)', function (obj) { |
| 93 | var field = obj.field; |
| 94 | layer.load(2); |
| 95 | $.ajax({ |
| 96 | url: '/login/form', |
| 97 | data: field, |
| 98 | type: 'POST', |
| 99 | success: function (data) { |
| qiaowei | f298fbc | 2019-05-08 15:55:30 +0800 | [diff] [blame] | 100 | console.log(data); |
| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 101 | if (200 == data.code) { |
| 102 | layer.msg('登录成功', {icon: 1, time: 1500}, function () { |
| 103 | location.replace('./'); |
| 104 | }); |
| 105 | } else { |
| 106 | layer.closeAll('loading'); |
| 107 | layer.msg(data.msg, {icon: 5}); |
| 108 | $('.login-captcha').trigger('click'); |
| 109 | } |
| 110 | }, |
| 111 | error: function (xhr) { |
| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 112 | console.log(xhr); |
| 113 | layer.closeAll('loading'); |
| qiaowei | f298fbc | 2019-05-08 15:55:30 +0800 | [diff] [blame] | 114 | layer.msg('登录失败', {icon: 5}); |
| Xia Kaixiang | 72373d8 | 2019-04-18 13:52:36 +0800 | [diff] [blame] | 115 | } |
| 116 | }); |
| 117 | }); |
| 118 | |
| 119 | // 图形验证码 |
| 120 | $('.login-captcha').click(function () { |
| 121 | this.src = this.src + '?t=' + (new Date).getTime(); |
| 122 | }); |
| 123 | }); |
| 124 | </script> |
| 125 | </body> |
| 126 | </html> |