1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
4 <%
5 String path = request.getContextPath();
6 %>
7 <!DOCTYPE html>
8 <html lang="en">
9
10 <head>
11 <title>${pd.SYSNAME}</title>
12 <meta charset="UTF-8" />
13 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
14
15 <link rel="stylesheet" href="static/login/bootstrap.min.css" />
16 <link rel="stylesheet" href="static/login/css/camera.css" />
17 <link rel="stylesheet" href="static/login/bootstrap-responsive.min.css" />
18 <link rel="stylesheet" href="static/login/matrix-login.css" />
19 <link href="static/login/font-awesome.css" rel="stylesheet" />
20 <script type="text/javascript" src="static/js/jquery-1.5.1.min.js"></script>
21
22 </head>
23 <body>
24
25 <div style="width:100%;text-align: center;margin: 0 auto;position: absolute;">
26 <div id="loginbox">
27 <form action="" method="post" name="loginForm" id="loginForm">
28 <div class="control-group normal_text">
29 <h3>
30 <img src="static/login/logo.png" alt="Logo" />
31 </h3>
32 </div>
33 <div class="control-group">
34 <div class="controls">
35 <div class="main_input_box">
36 <span class="add-on bg_lg">
37 <i><img height="37" src="static/login/user.png" /></i>
38 </span><input type="text" name="loginname" id="loginname" value="" placeholder="请输入用户名" />
39 </div>
40 </div>
41 </div>
42 <div class="control-group">
43 <div class="controls">
44 <div class="main_input_box">
45 <span class="add-on bg_ly">
46 <i><img height="37" src="static/login/suo.png" /></i>
47 </span><input type="password" name="password" id="password" placeholder="请输入密码" value="" />
48 </div>
49 </div>
50 </div>
51 <div style="float:right;padding-right:10%;">
52 <div style="float: left;margin-top:3px;margin-right:2px;">
53 <font color="white">记住密码</font>
54 </div>
55 <div style="float: left;">
56 <input name="form-field-checkbox" id="saveid" type="checkbox"
57 onclick="savePaw();" style="padding-top:0px;" />
58 </div>
59 </div>
60 <div class="form-actions">
61 <div style="width:86%;padding-left:8%;">
62 <div style="float: left;">
63 <i><img src="static/login/yan.png" /></i>
64 </div>
65 <div style="float: left;" class="codediv">
66 <input type="text" name="code" id="code" class="login_code" style="height:16px; padding-top:0px;" />
67 </div>
68 <div style="float: left;">
69 <i><img style="height:22px;" id="codeImg" alt="点击更换" title="点击更换" src="" /></i>
70 </div>
71 <span class="pull-right" style="padding-right:3%;">
72 <a href="javascript:quxiao();" class="btn btn-success">取消</a>
73 </span>
74 <span class="pull-right">
75 <a onclick="severCheck();" class="flip-link btn btn-info" id="to-recover">登录</a>
76 </span>
77
78 </div>
79 </div>
80
81 </form>
82
83
84 <div class="controls">
85 <div class="main_input_box">
86 <font color="white"><span id="nameerr">Copyright © FH
87 2100</span></font>
88 </div>
89 </div>
90 </div>
91 </div>
92 <div id="templatemo_banner_slide" class="container_wapper">
93 <div class="camera_wrap camera_emboss" id="camera_slide">
94 <div data-src="static/login/images/banner_slide_01.jpg"></div>
95 <div data-src="static/login/images/banner_slide_02.jpg"></div>
96 <div data-src="static/login/images/banner_slide_03.jpg"></div>
97 </div>
98 <!-- #camera_wrap_3 -->
99 </div>
100
101 <script type="text/javascript">
102 /**
103 使用方法
104 * $(selector).tips({ //selector 为jquery选择器
105 * msg:'your messages!', //你的提示消息 必填
106 * side:1, //提示窗显示位置 1,2,3,4 分别代表 上右下左 默认为1(上) 可选
107 * color:'#FFF', //提示文字色 默认为白色 可选
108 * bg:'#F00',//提示窗背景色 默认为红色 可选
109 * time:2,//自动关闭时间 默认2秒 设置0则不自动关闭 可选
110 * x:0,//横向偏移 正数向右偏移 负数向左偏移 默认为0 可选
111 * y:0,//纵向偏移 正数向下偏移 负数向上偏移 默认为0 可选
112 * })
113 */
114 //服务器校验
115 function severCheck(){
116 if(check()){
117
118 var loginname = $("#loginname").val();
119 var password = $("#password").val();
120 var code = "qq313596790fh"+loginname+",fh,"+password+"QQ978336446fh"+",fh,"+$("#code").val();
121 $.ajax({
122 type: "POST",
123 url: 'login_login',
124 data: {KEYDATA:code,tm:new Date().getTime()},
125 dataType:'json',
126 cache: false,
127 success: function(data){
128 if("success" == data.result){
129 saveCookie();
130 window.location.href="main/index";
131 }else if("usererror" == data.result){
132 $("#loginname").tips({
133 side : 1,
134 msg : "用户名或密码有误",
135 bg : '#FF5080',
136 time : 15
137 });
138 $("#loginname").focus();
139 }else if("codeerror" == data.result){
140 $("#code").tips({
141 side : 1,
142 msg : "验证码输入有误",
143 bg : '#FF5080',
144 time : 15
145 });
146 $("#code").focus();
147 }else{
148 $("#loginname").tips({
149 side : 1,
150 msg : "缺少参数",
151 bg : '#FF5080',
152 time : 15
153 });
154 $("#loginname").focus();
155 }
156 }
157 });
158 }
159 }
160
161 $(document).ready(function() {
162 changeCode();
163 $("#codeImg").bind("click", changeCode);
164 });
165
166 $(document).keyup(function(event) {
167 if (event.keyCode == 13) {
168 $("#to-recover").trigger("click");
169 }
170 });
171
172 function genTimestamp() {
173 var time = new Date();
174 return time.getTime();
175 }
176
177 function changeCode() {
178 $("#codeImg").attr("src", "code.do?t=" + genTimestamp());
179 }
180
181 //客户端校验
182 function check() {
183
184 if ($("#loginname").val() == "") {
185
186 $("#loginname").tips({
187 side : 2,
188 msg : '用户名不得为空',
189 bg : '#AE81FF',
190 time : 3
191 });
192
193 $("#loginname").focus();
194 return false;
195 } else {
196 $("#loginname").val(jQuery.trim($('#loginname').val()));
197 }
198
199 if ($("#password").val() == "") {
200
201 $("#password").tips({
202 side : 2,
203 msg : '密码不得为空',
204 bg : '#AE81FF',
205 time : 3
206 });
207
208 $("#password").focus();
209 return false;
210 }
211 if ($("#code").val() == "") {
212
213 $("#code").tips({
214 side : 1,
215 msg : '验证码不得为空',
216 bg : '#AE81FF',
217 time : 3
218 });
219
220 $("#code").focus();
221 return false;
222 }
223
224 $("#loginbox").tips({
225 side : 1,
226 msg : '正在登录 , 请稍后 ...',
227 bg : '#68B500',
228 time : 10
229 });
230
231 return true;
232 }
233
234 function savePaw() {
235 if (!$("#saveid").attr("checked")) {
236 $.cookie('loginname', '', {
237 expires : -1
238 });
239 $.cookie('password', '', {
240 expires : -1
241 });
242 $("#loginname").val('');
243 $("#password").val('');
244 }
245 }
246
247 function saveCookie() {
248 if ($("#saveid").attr("checked")) {
249 $.cookie('loginname', $("#loginname").val(), {
250 expires : 7
251 });
252 $.cookie('password', $("#password").val(), {
253 expires : 7
254 });
255 }
256 }
257 function quxiao() {
258 $("#loginname").val('');
259 $("#password").val('');
260 }
261
262 jQuery(function() {
263 var loginname = $.cookie('loginname');
264 var password = $.cookie('password');
265 if (typeof(loginname) != "undefined"
266 && typeof(password) != "undefined") {
267 $("#loginname").val(loginname);
268 $("#password").val(password);
269 $("#saveid").attr("checked", true);
270 $("#code").focus();
271 }
272 });
273 </script>
274 <script>
275 //TOCMAT重启之后 点击左侧列表跳转登录首页
276 if (window != top) {
277 top.location.href = location.href;
278 }
279 </script>
280
281 <script src="static/js/bootstrap.min.js"></script>
282 <script src="static/js/jquery-1.7.2.js"></script>
283 <script src="static/login/js/jquery.easing.1.3.js"></script>
284 <script src="static/login/js/jquery.mobile.customized.min.js"></script>
285 <script src="static/login/js/camera.min.js"></script>
286 <script src="static/login/js/templatemo_script.js"></script>
287 <script type="text/javascript" src="static/js/jquery.tips.js"></script>
288 <script type="text/javascript" src="static/js/jquery.cookie.js"></script>
289 </body>
290
291 </html>
1 /**
2 * jquery tips 提示插件 jquery.tips.js v0.1beta
3 *
4 * 使用方法
5 * $(selector).tips({ //selector 为jquery选择器
6 * msg:'your messages!', //你的提示消息 必填
7 * side:1, //提示窗显示位置 1,2,3,4 分别代表 上右下左 默认为1(上) 可选
8 * color:'#FFF', //提示文字色 默认为白色 可选
9 * bg:'#F00',//提示窗背景色 默认为红色 可选
10 * time:2,//自动关闭时间 默认2秒 设置0则不自动关闭 可选
11 * x:0,//横向偏移 正数向右偏移 负数向左偏移 默认为0 可选
12 * y:0,//纵向偏移 正数向下偏移 负数向上偏移 默认为0 可选
13 * })
14 *
15 *
16 */
17 (function ($) {
18 $.fn.tips = function(options){
19 var defaults = {
20 side:1,
21 msg:'',
22 color:'#FFF',
23 bg:'#F00',
24 time:2,
25 x:0,
26 y:0
27 }
28 var options = $.extend(defaults, options);
29 if (!options.msg||isNaN(options.side)) {
30 throw new Error('params error');
31 }
32 if(!$('#jquery_tips_style').length){
33 var style='<style id="jquery_tips_style" type="text/css">';
34 style+='.jq_tips_box{padding:10px;position:absolute;overflow:hidden;display:inline;display:none;z-index:10176523;}';
35 style+='.jq_tips_arrow{display:block;width:0px;height:0px;position:absolute;}';
36 style+='.jq_tips_top{border-left:10px solid transparent;left:20px;bottom:0px;}';
37 style+='.jq_tips_left{border-top:10px solid transparent;right:0px;top:18px;}';
38 style+='.jq_tips_bottom{border-left:10px solid transparent;left:20px;top:0px;}';
39 style+='.jq_tips_right{border-top:10px solid transparent;left:0px;top:18px;}';
40 style+='.jq_tips_info{word-wrap: break-word;word-break:normal;border-radius:4px;padding:5px 8px;max-width:130px;overflow:hidden;box-shadow:1px 1px 1px #999;font-size:12px;cursor:pointer;}';
41 style+='</style>';
42 $(document.body).append(style);
43 }
44 this.each(function(){
45 var element=$(this);
46 var element_top=element.offset().top,element_left=element.offset().left,element_height=element.outerHeight(),element_width=element.outerWidth();
47 options.side=options.side<1?1:options.side>4?4:Math.round(options.side);
48 var sideName=options.side==1?'top':options.side==2?'right':options.side==3?'bottom':options.side==4?'left':'top';
49 var tips=$('<div class="jq_tips_box"><i class="jq_tips_arrow jq_tips_'+sideName+'"></i><div class="jq_tips_info">'+options.msg+'</div></div>').appendTo(document.body);
50 tips.find('.jq_tips_arrow').css('border-'+sideName,'10px solid '+options.bg);
51 tips.find('.jq_tips_info').css({
52 color:options.color,
53 backgroundColor:options.bg
54 });
55 switch(options.side){
56 case 1:
57 tips.css({
58 top:element_top-tips.outerHeight()+options.x,
59 left:element_left-10+options.y
60 });
61 break;
62 case 2:
63 tips.css({
64 top:element_top-20+options.x,
65 left:element_left+element_width+options.y
66 });
67 break;
68 case 3:
69 tips.css({
70 top:element_top+element_height+options.x,
71 left:element_left-10+options.y
72 });
73 break;
74 case 4:
75 tips.css({
76 top:element_top-20+options.x,
77 left:element_left-tips.outerWidth()+options.y
78 });
79 break;
80 default:
81 }
82 var closeTime;
83 tips.fadeIn('fast').click(function(){
84 clearTimeout(closeTime);
85 tips.fadeOut('fast',function(){
86 tips.remove();
87 })
88 })
89 if(options.time){
90 closeTime=setTimeout(function(){
91 tips.click();
92 },options.time*1000);
93 tips.hover(function(){
94 clearTimeout(closeTime);
95 },function(){
96 closeTime=setTimeout(function(){
97 tips.click();
98 },options.time*1000);
99 })
100 }
101 });
102 return this;
103 };
104 })(jQuery);