Commit 2a880654d281ed414edada48232176bd76a8d543
1 parent
05dfd5ca
1、登录界面添加记住密码功能
Showing
3 changed files
with
111 additions
and
18 deletions
WebRoot/WEB-INF/jsp/sunvote/homework/homework_report.jsp
... | ... | @@ -64,7 +64,7 @@ |
64 | 64 | <td><div style="width:150px;text-align:center;">课程统计: ${fn:length(var.HOMEWORKS)}</div></td> |
65 | 65 | <td><div style="width:150px;text-align:center;">班级名册: ${var.CLASS_NAME}</div></td> |
66 | 66 | |
67 | - <td><div style="width:150px;text-align:center;"><span>学生人数: ${INDE.STUDENT_NUM}</span></div></td> | |
67 | + <td><div style="width:150px;text-align:center;"><span>学生人数: ${var.STUDENT_NUM}</span></div></td> | |
68 | 68 | <td></td> |
69 | 69 | |
70 | 70 | |
... | ... | @@ -125,22 +125,20 @@ |
125 | 125 | <td class="center"><div style="width:150px;"></div></td> |
126 | 126 | <td class="center"><div style="width:80px;"></div></td> |
127 | 127 | <c:forEach items="${var.HOMEWORKS}" var="var_h" varStatus="vs"> |
128 | - <td class="center"><div style="width:80px;margin:0 auto;">${var.AVG_SCORE}</div></td> | |
128 | + <td class="center"><div style="width:80px;margin:0 auto;">${var_h.GET_SCORE}</div></td> | |
129 | 129 | </c:forEach> |
130 | 130 | </tr> |
131 | 131 | <tr> |
132 | 132 | <td class="center"><div style="width:150px;">班级课程平均得分率</div></td> |
133 | 133 | <td class="center"><div style="width:150px;"></div></td> |
134 | 134 | <td class="center"><div style="width:80px;"></div></td> |
135 | - <c:forEach items="${testpaperList}" var="var" varStatus="vs"> | |
136 | - <td class="center"><div style="width:80px;margin:0 auto;"><fmt:formatNumber type="number" | |
137 | - value="${var.TOTAL_SCORE == 0 ? 0: (var.AVG_SCORE / var.TOTAL_SCORE * 100)}" | |
138 | - maxFractionDigits="2" />%</div></td> | |
135 | + <c:forEach items="${var.HOMEWORKS}" var="var_h" varStatus="vs"> | |
136 | + <td class="center"><div style="width:80px;margin:0 auto;">${var_h.GET_SCORE_PERSENT }</div></td> | |
139 | 137 | </c:forEach> |
140 | 138 | </tr> |
141 | 139 | |
142 | 140 | <c:choose> |
143 | - <c:when test="${not empty studentList}"> | |
141 | + <c:when test="${not empty $var.HOMEWORKS}"> | |
144 | 142 | <c:forEach items="${studentList}" var="var" varStatus="vs"> |
145 | 143 | <tr> |
146 | 144 | <%-- <td class="center"><a | ... | ... |
WebRoot/WEB-INF/jsp/system/index/login.jsp
... | ... | @@ -61,11 +61,25 @@ |
61 | 61 | </div> |
62 | 62 | <div class="content_b"> |
63 | 63 | <div class="form_box"> |
64 | - <form action="" method="post" name="loginbox" id="loginbox"> | |
65 | - <input type="text" name="loginname" id="loginname" value="" | |
66 | - placeholder="用户名" /> <input type="password" name="password" | |
67 | - id="password" placeholder="密 码" value="" /> <a href="#" | |
68 | - onclick="severCheck();" class="login_btn">登录</a> | |
64 | + <form action="" method="post" name="loginbox" id="loginbox" > | |
65 | + <div class="name_box"> | |
66 | + <input type="text" name="loginname" id="loginname" value="" placeholder="用户名" autoComplete="off"/> | |
67 | + <svg t="1554790328236" class="icon_down" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2161" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"><defs><style type="text/css"></style></defs><path d="M863.321996 251.674996 194.108395 251.674996 528.677333 621.186771Z" p-id="2162" fill="#333333"></path></svg> | |
68 | + </div> | |
69 | + <div class="psw_box"> | |
70 | + <input type="password" name="password" id="password" placeholder="密 码" value="" autoComplete="off"/> | |
71 | + <div class="rember"> | |
72 | + <input type="checkbox" id="rem_flag"/> | |
73 | + <span>记住密码</span> | |
74 | + </div> | |
75 | + </div> | |
76 | + <a href="#" onclick="severCheck();" class="login_btn">登录</a> | |
77 | + | |
78 | + <div class="history"> | |
79 | + <ul> | |
80 | + | |
81 | + </ul> | |
82 | + </div> | |
69 | 83 | </form> |
70 | 84 | |
71 | 85 | </div> |
... | ... | @@ -87,6 +101,33 @@ |
87 | 101 | severCheck(); |
88 | 102 | } |
89 | 103 | } |
104 | + | |
105 | + $(".icon_down").click(function(){ | |
106 | + $("#loginname").focus(); | |
107 | + | |
108 | + }); | |
109 | + $("#loginname").focus(function(){ | |
110 | + var _html=""; | |
111 | + var u_list=JSON.parse(storage.getItem('userNameList')); | |
112 | + for(var i=0;i<u_list.length;i++){ | |
113 | + _html+='<li>'+u_list[i]+'</li>'; | |
114 | + } | |
115 | + $(".history ul").html(_html); | |
116 | + $(".history").toggle(); | |
117 | + }); | |
118 | + | |
119 | + | |
120 | + $(document).on('hover','.history li',function(){ | |
121 | + var p_list=JSON.parse(storage.getItem('passWordList')); | |
122 | + $("#loginname").val($(this).text()); | |
123 | + $("#password").val(p_list[$(this).index()]); | |
124 | + //$(".history").hide(); | |
125 | + }) | |
126 | + $("#loginname").blur(function(){ | |
127 | + $(".history").hide(); | |
128 | + }) | |
129 | + | |
130 | + | |
90 | 131 | //客户端校验 |
91 | 132 | function check() { |
92 | 133 | |
... | ... | @@ -139,7 +180,8 @@ |
139 | 180 | cache: false, |
140 | 181 | success: function(data){ |
141 | 182 | if("success" == data.result){ |
142 | - saveCookie(); | |
183 | + if($("#rem_flag").prop("checked")) //如果选择了记住密码 | |
184 | + saveCookie(); | |
143 | 185 | if(data.teacher != null){ |
144 | 186 | window.location.href="main/teacher"; |
145 | 187 | }else if(data.admin != null){ |
... | ... | @@ -180,15 +222,58 @@ |
180 | 222 | } |
181 | 223 | } |
182 | 224 | |
225 | + var storage=window.localStorage; | |
226 | + var userNameList=[]; | |
227 | + var passWordList=[]; | |
228 | + | |
229 | + //console.log(JSON.parse(storage.getItem('userNameList'))); | |
230 | + | |
183 | 231 | function saveCookie() { |
184 | - if ($("#saveid").attr("checked")) { | |
185 | - $.cookie('loginname', $("#loginname").val(), { | |
232 | + if(!window.localStorage){ | |
233 | + alert("浏览器不支持localstorage"); | |
234 | + | |
235 | + }else{ | |
236 | + //主逻辑业务 | |
237 | + | |
238 | + userNameList=JSON.parse(storage.getItem('userNameList')); | |
239 | + passWordList=JSON.parse(storage.getItem('passWordList')); | |
240 | + | |
241 | + | |
242 | + if(userNameList==null){ | |
243 | + var userNameList=[]; | |
244 | + var passWordList=[]; | |
245 | + userNameList.push($("#loginname").val()); | |
246 | + passWordList.push($("#password").val()); | |
247 | + | |
248 | + storage.setItem('userNameList',JSON.stringify(userNameList)); | |
249 | + storage.setItem('passWordList',JSON.stringify(passWordList)); | |
250 | + }else{ | |
251 | + | |
252 | + if(userNameList.indexOf($("#loginname").val())>-1){ | |
253 | + return false; | |
254 | + }else{ | |
255 | + userNameList.push($("#loginname").val()); | |
256 | + passWordList.push($("#password").val()); | |
257 | + storage.setItem('userNameList',JSON.stringify(userNameList)); | |
258 | + storage.setItem('passWordList',JSON.stringify(passWordList)); | |
259 | + } | |
260 | + } | |
261 | + | |
262 | + | |
263 | + | |
264 | + //console.log(userNameList); | |
265 | + | |
266 | + | |
267 | + | |
268 | + } | |
269 | + | |
270 | + /*$.cookie('loginname', $("#loginname").val(), { | |
186 | 271 | expires : 7 |
187 | 272 | }); |
188 | 273 | $.cookie('password', $("#password").val(), { |
189 | 274 | expires : 7 |
190 | - }); | |
191 | - } | |
275 | + });*/ | |
276 | + | |
192 | 277 | } |
193 | 278 | </script> |
194 | 279 | <script type="text/javascript" | ... | ... |
WebRoot/static/login/style_login.css
... | ... | @@ -22,7 +22,17 @@ color: #666666; |
22 | 22 | .content{width:100%;height:100%;} |
23 | 23 | .content_t{background:#01a5a6;height:40%;position:relative;} |
24 | 24 | .content_t img{position:absolute;bottom:0;width:30%;left:35%;display:block;} |
25 | -.content_b .form_box{width:25%;margin:0 auto;margin-top:3%;} | |
25 | +.content_b .form_box {width:25%;margin:0 auto;margin-top:3%;} | |
26 | +.content_b .form_box #loginbox{position:relative;} | |
27 | +.content_b .form_box .name_box{position:relative;} | |
28 | +.content_b .form_box .icon_down{position:absolute;right:10px;top:9px;width:20px;} | |
26 | 29 | .content_b input{display:block;width:100%;height:50px;background:#f2f2f2;border:1px solid #cccccc;line-height:50px;box-sizing:border-box;padding:0 12px;outline-style:none;font-size:20px;} |
27 | 30 | .content_b input:nth-child(2){margin-top:15px;} |
28 | 31 | .content_b .login_btn{display:block;width:100%;background:#13b5b1;color:#fff;font-size:24px;text-align:center;padding:2% 0;margin-top:10%;text-decoration:none;} |
32 | +.history{width:100%;position:absolute;top:50px;height:auto;max-height:240px;background:#fff;overflow:auto;border:1px solid #ccc;display:none;} | |
33 | +.history ul{padding:0;margin:0;} | |
34 | +.history li{height:40px;border-bottom:1px solid #ccc;list-style:none;line-height:40px;padding:0 12px;font-size:20px;} | |
35 | +.history li:hover{background:#ccc;} | |
36 | +.rember{text-align:right;} | |
37 | +.rember input{width:16px;height:16px;display:inline;vertical-align:middle;margin:0;} | |
38 | +.rember span{vertical-align:middle;} | |
29 | 39 | \ No newline at end of file | ... | ... |