Commit b5cf92b7abfd93c905d660a0b1db0b52e795a073
1 parent
9452be31
批量上传学生名单
添加高斯反馈
Showing
29 changed files
with
296 additions
and
257 deletions
WebRoot/WEB-INF/jsp/sunvote/classroster/classroster_list.jsp
| ... | ... | @@ -34,22 +34,13 @@ |
| 34 | 34 | <form action="classroster/list.do" method="post" name="Form" id="Form"> |
| 35 | 35 | <table style="margin-top:5px;"> |
| 36 | 36 | <tr> |
| 37 | - <td> | |
| 38 | - <div class="nav-search"> | |
| 39 | - <span class="input-icon"> | |
| 40 | - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/> | |
| 41 | - <i class="ace-icon fa fa-search nav-search-icon"></i> | |
| 42 | - </span> | |
| 43 | - </div> | |
| 44 | - </td> | |
| 45 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td> | |
| 46 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td> | |
| 47 | 37 | <td style="vertical-align:top;padding-left:2px;"> |
| 48 | - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 38 | + <select class="chosen-select form-control" name="SCLASS_ID" id="SCLASS_ID" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 49 | 39 | <option value=""></option> |
| 50 | 40 | <option value="">全部</option> |
| 51 | - <option value="">1</option> | |
| 52 | - <option value="">2</option> | |
| 41 | + <c:forEach var="item" items="${classList}"> | |
| 42 | + <option value="${item.ID}" >${item.CLASS_NAME}</option> | |
| 43 | + </c:forEach> | |
| 53 | 44 | </select> |
| 54 | 45 | </td> |
| 55 | 46 | <c:if test="${QX.cha == 1 }"> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/classtype/classtype_list.jsp
| ... | ... | @@ -33,27 +33,6 @@ |
| 33 | 33 | <form action="classtype/list.do" method="post" name="Form" id="Form"> |
| 34 | 34 | <table style="margin-top:5px;"> |
| 35 | 35 | <tr> |
| 36 | - <td> | |
| 37 | - <div class="nav-search"> | |
| 38 | - <span class="input-icon"> | |
| 39 | - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/> | |
| 40 | - <i class="ace-icon fa fa-search nav-search-icon"></i> | |
| 41 | - </span> | |
| 42 | - </div> | |
| 43 | - </td> | |
| 44 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td> | |
| 45 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td> | |
| 46 | - <td style="vertical-align:top;padding-left:2px;"> | |
| 47 | - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 48 | - <option value=""></option> | |
| 49 | - <option value="">全部</option> | |
| 50 | - <option value="">1</option> | |
| 51 | - <option value="">2</option> | |
| 52 | - </select> | |
| 53 | - </td> | |
| 54 | - <c:if test="${QX.cha == 1 }"> | |
| 55 | - <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td> | |
| 56 | - </c:if> | |
| 57 | 36 | <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if> |
| 58 | 37 | </tr> |
| 59 | 38 | </table> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/grade/grade_list.jsp
| ... | ... | @@ -33,27 +33,6 @@ |
| 33 | 33 | <form action="grade/list.do" method="post" name="Form" id="Form"> |
| 34 | 34 | <table style="margin-top:5px;"> |
| 35 | 35 | <tr> |
| 36 | - <td> | |
| 37 | - <div class="nav-search"> | |
| 38 | - <span class="input-icon"> | |
| 39 | - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/> | |
| 40 | - <i class="ace-icon fa fa-search nav-search-icon"></i> | |
| 41 | - </span> | |
| 42 | - </div> | |
| 43 | - </td> | |
| 44 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td> | |
| 45 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td> | |
| 46 | - <td style="vertical-align:top;padding-left:2px;"> | |
| 47 | - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 48 | - <option value=""></option> | |
| 49 | - <option value="">全部</option> | |
| 50 | - <option value="">1</option> | |
| 51 | - <option value="">2</option> | |
| 52 | - </select> | |
| 53 | - </td> | |
| 54 | - <c:if test="${QX.cha == 1 }"> | |
| 55 | - <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td> | |
| 56 | - </c:if> | |
| 57 | 36 | <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if> |
| 58 | 37 | </tr> |
| 59 | 38 | </table> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/school/school_list.jsp
| ... | ... | @@ -33,27 +33,6 @@ |
| 33 | 33 | <form action="school/list.do" method="post" name="Form" id="Form"> |
| 34 | 34 | <table style="margin-top:5px;"> |
| 35 | 35 | <tr> |
| 36 | - <td> | |
| 37 | - <div class="nav-search"> | |
| 38 | - <span class="input-icon"> | |
| 39 | - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/> | |
| 40 | - <i class="ace-icon fa fa-search nav-search-icon"></i> | |
| 41 | - </span> | |
| 42 | - </div> | |
| 43 | - </td> | |
| 44 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td> | |
| 45 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td> | |
| 46 | - <td style="vertical-align:top;padding-left:2px;"> | |
| 47 | - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 48 | - <option value=""></option> | |
| 49 | - <option value="">全部</option> | |
| 50 | - <option value="">1</option> | |
| 51 | - <option value="">2</option> | |
| 52 | - </select> | |
| 53 | - </td> | |
| 54 | - <c:if test="${QX.cha == 1 }"> | |
| 55 | - <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td> | |
| 56 | - </c:if> | |
| 57 | 36 | <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if> |
| 58 | 37 | </tr> |
| 59 | 38 | </table> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/sclass/sclass_list.jsp
| ... | ... | @@ -35,22 +35,31 @@ |
| 35 | 35 | <form action="sclass/list.do" method="post" name="Form" id="Form"> |
| 36 | 36 | <table style="margin-top:5px;"> |
| 37 | 37 | <tr> |
| 38 | - <td> | |
| 39 | - <div class="nav-search"> | |
| 40 | - <span class="input-icon"> | |
| 41 | - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/> | |
| 42 | - <i class="ace-icon fa fa-search nav-search-icon"></i> | |
| 43 | - </span> | |
| 44 | - </div> | |
| 38 | + <td style="vertical-align:top;padding-left:2px;"> | |
| 39 | + <select class="chosen-select form-control" name="SCHOOL_ID" id="SCHOOL_ID" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 40 | + <option value=""></option> | |
| 41 | + <option value="">全部</option> | |
| 42 | + <c:forEach var="item" items="${schools}"> | |
| 43 | + <option value="${item.ID}" >${item.NAME}</option> | |
| 44 | + </c:forEach> | |
| 45 | + </select> | |
| 46 | + </td> | |
| 47 | + <td style="vertical-align:top;padding-left:2px;"> | |
| 48 | + <select class="chosen-select form-control" name="GRADE_ID" id="GRADE_ID" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 49 | + <option value=""></option> | |
| 50 | + <option value="">全部</option> | |
| 51 | + <c:forEach var="item" items="${grades}"> | |
| 52 | + <option value="${item.ID}">${item.NAME}</option> | |
| 53 | + </c:forEach> | |
| 54 | + </select> | |
| 45 | 55 | </td> |
| 46 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td> | |
| 47 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td> | |
| 48 | 56 | <td style="vertical-align:top;padding-left:2px;"> |
| 49 | - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 57 | + <select class="chosen-select form-control" name="CLASS_TYPE" id="CLASS_TYPE" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 50 | 58 | <option value=""></option> |
| 51 | 59 | <option value="">全部</option> |
| 52 | - <option value="">1</option> | |
| 53 | - <option value="">2</option> | |
| 60 | + <c:forEach var="item" items="${classTypes}"> | |
| 61 | + <option value="${item.ID}">${item.NAME}</option> | |
| 62 | + </c:forEach> | |
| 54 | 63 | </select> |
| 55 | 64 | </td> |
| 56 | 65 | <c:if test="${QX.cha == 1 }"> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/student/student_list.jsp
| ... | ... | @@ -41,16 +41,7 @@ |
| 41 | 41 | </span> |
| 42 | 42 | </div> |
| 43 | 43 | </td> |
| 44 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td> | |
| 45 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td> | |
| 46 | - <td style="vertical-align:top;padding-left:2px;"> | |
| 47 | - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 48 | - <option value=""></option> | |
| 49 | - <option value="">全部</option> | |
| 50 | - <option value="">1</option> | |
| 51 | - <option value="">2</option> | |
| 52 | - </select> | |
| 53 | - </td> | |
| 44 | + | |
| 54 | 45 | <c:if test="${QX.cha == 1 }"> |
| 55 | 46 | <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td> |
| 56 | 47 | </c:if> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/student/student_list2.jsp
| ... | ... | @@ -102,6 +102,7 @@ |
| 102 | 102 | <tr> |
| 103 | 103 | <td style="vertical-align:top;"> |
| 104 | 104 | <a class="btn btn-mini btn-success" onclick="add();">新增</a> |
| 105 | + <a class="btn btn-mini btn-success" onclick="upload();">批量上传</a> | |
| 105 | 106 | <a class="btn btn-mini btn-danger" onclick="makeAll('确定要删除选中的数据吗?');" title="批量删除" ><i class='ace-icon fa fa-trash-o bigger-120'></i></a> |
| 106 | 107 | </td> |
| 107 | 108 | <td style="vertical-align:top;"><div class="pagination" style="float: right;padding-top: 0px;margin-top: 0px;">${page.pageStr}</div></td> |
| ... | ... | @@ -220,6 +221,28 @@ |
| 220 | 221 | diag.show(); |
| 221 | 222 | } |
| 222 | 223 | |
| 224 | + function upload(){ | |
| 225 | + top.jzts(); | |
| 226 | + var diag = new top.Dialog(); | |
| 227 | + diag.Drag=true; | |
| 228 | + diag.Title ="EXCEL导入学生名单"; | |
| 229 | + diag.URL = '<%=basePath%>student/goUploadExcel.do?class_id=${pd.CLASS_ID}&term_id=${pd.TERM_ID}'; | |
| 230 | + diag.Width = 300; | |
| 231 | + diag.Height = 150; | |
| 232 | + diag.CancelEvent = function(){ //关闭事件 | |
| 233 | + if(diag.innerFrame.contentWindow.document.getElementById('zhongxin').style.display == 'none'){ | |
| 234 | + if('${page.currentPage}' == '0'){ | |
| 235 | + top.jzts(); | |
| 236 | + setTimeout("self.location.reload()",100); | |
| 237 | + }else{ | |
| 238 | + nextPage(${page.currentPage}); | |
| 239 | + } | |
| 240 | + } | |
| 241 | + diag.close(); | |
| 242 | + }; | |
| 243 | + diag.show(); | |
| 244 | + } | |
| 245 | + | |
| 223 | 246 | //删除 |
| 224 | 247 | function del(Id){ |
| 225 | 248 | bootbox.confirm("确定要删除吗?", function(result) { | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/subject/subject_list.jsp
| ... | ... | @@ -33,27 +33,7 @@ |
| 33 | 33 | <form action="subject/list.do" method="post" name="Form" id="Form"> |
| 34 | 34 | <table style="margin-top:5px;"> |
| 35 | 35 | <tr> |
| 36 | - <td> | |
| 37 | - <div class="nav-search"> | |
| 38 | - <span class="input-icon"> | |
| 39 | - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/> | |
| 40 | - <i class="ace-icon fa fa-search nav-search-icon"></i> | |
| 41 | - </span> | |
| 42 | - </div> | |
| 43 | - </td> | |
| 44 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td> | |
| 45 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td> | |
| 46 | - <td style="vertical-align:top;padding-left:2px;"> | |
| 47 | - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 48 | - <option value=""></option> | |
| 49 | - <option value="">全部</option> | |
| 50 | - <option value="">1</option> | |
| 51 | - <option value="">2</option> | |
| 52 | - </select> | |
| 53 | - </td> | |
| 54 | - <c:if test="${QX.cha == 1 }"> | |
| 55 | - <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td> | |
| 56 | - </c:if> | |
| 36 | + | |
| 57 | 37 | <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if> |
| 58 | 38 | </tr> |
| 59 | 39 | </table> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_list.jsp
| ... | ... | @@ -34,22 +34,13 @@ |
| 34 | 34 | <form action="teacher/list.do" method="post" name="Form" id="Form"> |
| 35 | 35 | <table style="margin-top:5px;"> |
| 36 | 36 | <tr> |
| 37 | - <td> | |
| 38 | - <div class="nav-search"> | |
| 39 | - <span class="input-icon"> | |
| 40 | - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/> | |
| 41 | - <i class="ace-icon fa fa-search nav-search-icon"></i> | |
| 42 | - </span> | |
| 43 | - </div> | |
| 44 | - </td> | |
| 45 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td> | |
| 46 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td> | |
| 47 | - <td style="vertical-align:top;padding-left:2px;"> | |
| 48 | - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 37 | + <td style="vertical-align:top;padding-left:2px;"> | |
| 38 | + <select class="chosen-select form-control" name="SCHOOL_ID" id="SCHOOL_ID" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 49 | 39 | <option value=""></option> |
| 50 | 40 | <option value="">全部</option> |
| 51 | - <option value="">1</option> | |
| 52 | - <option value="">2</option> | |
| 41 | + <c:forEach var="item" items="${schools}"> | |
| 42 | + <option value="${item.ID}" <c:if test="${pd.SCHOOL_ID==item.ID}">selected="true"</c:if>>${item.NAME}</option> | |
| 43 | + </c:forEach> | |
| 53 | 44 | </select> |
| 54 | 45 | </td> |
| 55 | 46 | <c:if test="${QX.cha == 1 }"> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp
| ... | ... | @@ -94,7 +94,7 @@ |
| 94 | 94 | </div> |
| 95 | 95 | <c:forEach items="${pd.TEACHER}" var="var" varStatus="vs"> |
| 96 | 96 | <div class="class"> |
| 97 | - <p><a href="javascript:chooseClass(${var.CLASS_ID},'${var.TERM_ID}');">${var.GRADE_NAME}${var.SUBJECT_NAME} <span>${var.CLASS_NAME}</span></a></p> | |
| 97 | + <p><a href="javascript:chooseClass('${var.CLASS_ID}','${var.TERM_ID}');">${var.GRADE_NAME}${var.SUBJECT_NAME} <span>${var.CLASS_NAME}</span></a></p> | |
| 98 | 98 | </div> |
| 99 | 99 | </c:forEach> |
| 100 | 100 | <div class="test">测验</div> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/teachingmaterial/teachingmaterial_list.jsp
| ... | ... | @@ -34,27 +34,6 @@ |
| 34 | 34 | <form action="teachingmaterial/list.do" method="post" name="Form" id="Form"> |
| 35 | 35 | <table style="margin-top:5px;"> |
| 36 | 36 | <tr> |
| 37 | - <td> | |
| 38 | - <div class="nav-search"> | |
| 39 | - <span class="input-icon"> | |
| 40 | - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/> | |
| 41 | - <i class="ace-icon fa fa-search nav-search-icon"></i> | |
| 42 | - </span> | |
| 43 | - </div> | |
| 44 | - </td> | |
| 45 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td> | |
| 46 | - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td> | |
| 47 | - <td style="vertical-align:top;padding-left:2px;"> | |
| 48 | - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;"> | |
| 49 | - <option value=""></option> | |
| 50 | - <option value="">全部</option> | |
| 51 | - <option value="">1</option> | |
| 52 | - <option value="">2</option> | |
| 53 | - </select> | |
| 54 | - </td> | |
| 55 | - <c:if test="${QX.cha == 1 }"> | |
| 56 | - <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td> | |
| 57 | - </c:if> | |
| 58 | 37 | <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if> |
| 59 | 38 | </tr> |
| 60 | 39 | </table> | ... | ... |
WebRoot/afterService/gsdt_info.html
| ... | ... | @@ -35,16 +35,16 @@ |
| 35 | 35 | <label ><span class="red">*</span>校区名称:</label> |
| 36 | 36 | <div class="control-group xq"> |
| 37 | 37 | <div class="controls col-md-6" style="padding-left:0;"> |
| 38 | - <select id="province" class="form-control"> | |
| 38 | + <!-- <select id="province" class="form-control"> | |
| 39 | 39 | <option value="请选择"></option> |
| 40 | - </select> | |
| 41 | - | |
| 40 | + </select> --> | |
| 41 | + <input type="text" class="form-control" id="province" placeholder=""> | |
| 42 | 42 | </div> |
| 43 | - <div class="controls col-md-6" style="padding-right:0;"> | |
| 43 | + <!-- <div class="controls col-md-6" style="padding-right:0;"> | |
| 44 | 44 | <select id="city" class="form-control"> |
| 45 | 45 | <option value="请选择">请选择</option> |
| 46 | 46 | </select> |
| 47 | - </div> | |
| 47 | + </div> --> | |
| 48 | 48 | </div> |
| 49 | 49 | |
| 50 | 50 | </div> |
| ... | ... | @@ -125,67 +125,48 @@ |
| 125 | 125 | <div class="rightBox"> |
| 126 | 126 | <div class="qaList"> |
| 127 | 127 | <div class="list_top"> |
| 128 | - <img src="images/dt_q1.png" width="100%"/> | |
| 129 | - <img src="images/dt_q1.png" width="100%"/> | |
| 130 | - <h4><span class="k"></span>R-接收标志</h4> | |
| 131 | - <p>键盘接收到基站发送的指令时显示。用于判断键盘是否进入反馈状态。</p> | |
| 132 | - <h4><span class="k"></span>T-发送标志</h4> | |
| 133 | - <p>键盘提交数据给基站时显示,用于判断键盘是否发送了数据。</p> | |
| 134 | - <h4><span class="k"></span>OK-发送成功标志</h4> | |
| 135 | - <p>基站收到键盘发送的数据时显示,用于判断键盘数据是否发送成功。</p> | |
| 128 | + | |
| 136 | 129 | </div> |
| 137 | 130 | <div class="list_content"> |
| 138 | 131 | <li> |
| 139 | 132 | <p class="q_title">问题现象1:无法开机</p> |
| 140 | - <p>可能键盘没有电导致,更换电池后再次尝试是否可以开机。若更换电池后仍无法开机,请联系技术支持。</p> | |
| 133 | + <p>可能答题器没有电导致,更换电池后再次尝试是否可以开机。若更换电池后仍无法开机,请联系技术支持。</p> | |
| 141 | 134 | </li> |
| 142 | 135 | <li> |
| 143 | 136 | <p class="q_title">问题现象2:无信号</p> |
| 144 | - <p>确认基站连接成功后,键盘仍显示无信号,可能是未进行配对导致。使用配对工具SunVote Match Tool V1.0.0.1配对后再尝试。开启配对后,S52Plus同时按住配对键“”和“”,直到键盘屏幕上有数字滚动。若无法配对,请参考问题“5.为什么答题器无法与基站配对成功”</p> | |
| 137 | + <p>确认基站连接成功后,答题器仍显示未连接,可能是未与基站绑定导致。请尝试重新绑定。”</p> | |
| 145 | 138 | |
| 146 | 139 | </li> |
| 147 | 140 | <li> |
| 148 | - <p class="q_title">问题现象3:有信号,无法进入反馈(不显示R)</p> | |
| 149 | - <p>① 所有键盘无法进入反馈,可能是基站未开始反馈。确保基站连接成功,并且已经进入答题状态。</p> | |
| 150 | - <p>② 个别键盘无法进入反馈,可能是受到其他基站干扰。确保周围没有相邻频点基站或免配对基站正在使用。可把当前基站拔了,确认答题器上是否仍然有信号,如果有信号,可确认该答题器与其他基站匹配了。可将该答题器与基站重新配对。</p> | |
| 141 | + <p class="q_title">问题现象3:为什么我的答题按A(或其他键)显示已发送,再按其他按键无反应 </p> | |
| 142 | + <p>可能是由于信号不好导致按键值未传成功。干扰信号的因素:2.4G 设备,信号屏蔽仪, 同频点或免配对基站,人或其他物体的阻挡。避免信号干扰的方法如下: </p> | |
| 143 | + <p>① 确保附近没有其他基站干扰,排除同频点及开启免赔对基站的干扰。 </p> | |
| 144 | + <p>② 确保答题器和基站之间没有障碍物阻挡,基站尽量放高,禁止放在铁制盒子/柜子中。</p> | |
| 145 | + <p>③ 确保未开启信号屏蔽 </p> | |
| 146 | + <p>④ 选择合适的工作频点,与周围的正在使用的基站频点尽可能隔开 4 个频点(经验值)。 </p> | |
| 147 | + <p>若排除以上因素,可以让学生原地晃动下答题器,尝试是否可以提交。 </p> | |
| 148 | + <p>❖ 同频点的干扰可以通过基站的指示灯排查,再无答题数据上传时,基站 2 个灯闪烁, 即表示当前有相同频点的干扰,请更改当前基站的频点 </p> | |
| 151 | 149 | |
| 152 | 150 | </li> |
| 153 | 151 | <li> |
| 154 | - <p class="q_title">问题现象4:进入反馈(显示R),无法提交(不显示OK),或提交慢</p> | |
| 155 | - <p>可能是由于信号不好导致,干扰信号的因素:2.4G设备,信号屏蔽仪,同频点或免配对基站,人或其他物体的阻挡。避免信号干扰的方法如下:</p> | |
| 156 | - <p>① 确保附近没有其他基站干扰</p> | |
| 157 | - <p>② 确保键盘和基站之间没有障碍物阻挡</p> | |
| 158 | - <p>③ 确保未开启信号屏蔽议</p> | |
| 159 | - <p>④ 尝试更换频道,一般情况下频道1和7效果会较好。</p> | |
| 160 | - <p> 可能是按键磨损导致按键不灵。观察按键上的文字是否脱落,是否能看到答题器的线路板(示例如下)。如果确定按键有磨损,可将异常产品数量统计,并联系厂家技术支持安排售后处理。</p> | |
| 161 | - <img src="images/dt_q3.png" width="30%" /> | |
| 152 | + <p class="q_title">问题现象4:什么情况下耗电快?</p> | |
| 153 | + <p>❖ 离线开机 离线开机时,答题器需要搜索基站,无线模块一直处于发射信号中,耗电比正常工作 时要大很多。 </p> | |
| 154 | + <p>❖ 保管不当 装有电池的答题器,宜要存放在干燥通风的地方。温差太大或者太潮湿的环境都不 适宜存放</p> | |
| 162 | 155 | |
| 163 | 156 | </li> |
| 164 | 157 | <li> |
| 165 | - <p class="q_title">问题现象5:为什么键盘有时需按Send键提交,有时候自动提交?</p> | |
| 166 | - <p>基站的提交模式决定</p> | |
| 167 | - <p>基站支持自动提交和按键提交两种提交模式,设置成自动提交时,单选、判断输入选项后即可自动提交。多选、排序、数字类型的题目,不支持自动提交模式,需要按Send键提交。出厂默认为自动提交模式。</p> | |
| 158 | + <p class="q_title">问题现象5:为什么只用了几天,电量就显示只有1格/空格? </p> | |
| 159 | + <p>❖ 答题器离线时,由于功率较大,因此电量显示会被拉低。因此请插上基站后,答题器 显示已连接后,等待1分钟左右,再观察电量情况。以此时的电量为准。 </p> | |
| 160 | + <p>❖ 若答题器屏幕显示Low battery,则无论是在离线或者在线,都需要更换电池。 </p> | |
| 168 | 161 | </li> |
| 169 | 162 | <li> |
| 170 | - <p class="q_title">问题现象6:什么情况下耗电快?</p> | |
| 171 | - <p>离线开机</p> | |
| 172 | - <p>离线开机时,键盘需要搜索基站,无线模块一直处于发射信号中,耗电比正常工作时要大很多。</p> | |
| 173 | - <p>保管不当</p> | |
| 174 | - <p>装有电池的键盘,宜要存放在干燥通风的地方。温差太大或者太潮湿的环境都不适宜存放。</p> | |
| 163 | + <p class="q_title">问题现象6:如何单独保管电池?</p> | |
| 164 | + <p>❖ 电池单独存放时,须存放在厂家发货的托盘中,禁止堆积存放,否则放电极快造成电 池发热,甚至可能会引起电池破裂或起火的危险 。 </p> | |
| 165 | + <p>❖ 电池宜存放在阴凉通风的地方,禁止在太阳下暴晒。温差太大或者太潮湿的环境都 不适宜存放。</p> | |
| 175 | 166 | </li> |
| 176 | 167 | <li> |
| 177 | - <p class="q_title">问题现象7:如何单独保管电池?</p> | |
| 178 | - <p>电池单独存放时,须存放在厂家发货的托盘中,禁止堆积存放,否则放电极快造成电池发热,甚至可能会引起电池破裂或起火的危险 。</p> | |
| 179 | - <p>电池宜存放在阴凉通风的地方,禁止在太阳下暴晒。温差太大或者太潮湿的环境都不适宜存放。</p> | |
| 180 | - </li> | |
| 181 | - <li> | |
| 182 | - <p class="q_title">问题现象8:为什么答题器无法与基站配对成功?</p> | |
| 183 | - <p>在确认配对工具版本(SunVote Match Tool V1.0.0.1)正常,且其他答题器可正常配对的情况下,可能是由于基站和答题器的频点范围不一致造成的。基站是80个频点的版本,答题器是32个频点的版本。基站的频点设置超过了32,因此答题器无法与基站匹配。</p> | |
| 184 | - <p>如何确认这个问题:</p> | |
| 185 | - <p>① 检查基站的频点是否超过了32</p> | |
| 186 | - <p>② 检查答题器配对时,是否频点数字跳动到32后,就再次重1开始。</p> | |
| 187 | - <p>如果确定是由于该原因导致,可以将旧版本的答题器发回升级。或者将基站的频点更改为32以内范围。</p> | |
| 188 | - <p>排除频点范围的原因,可用多只答题器作对比测试,同样的基站,同样的软件,同时操作,仅特定的某只答题器无法配对,可能是答题的版本</p> | |
| 168 | + <p class="q_title">问题现象7:如何选择电池品牌? </p> | |
| 169 | + <p>❖ S56适配的电池型号是CR2032,在超市或者网上都可以购买。选择电池品牌时,尽 量选择大品牌的电池。推荐使用进口松下电池。 </p> | |
| 189 | 170 | </li> |
| 190 | 171 | </div> |
| 191 | 172 | |
| ... | ... | @@ -218,13 +199,13 @@ |
| 218 | 199 | require(['city.select'], function ($) { |
| 219 | 200 | $(function () { |
| 220 | 201 | |
| 221 | - $('#province, #city').citylist({ | |
| 202 | + /* $('#province, #city').citylist({ | |
| 222 | 203 | data : data, |
| 223 | 204 | id : 'id', |
| 224 | 205 | children: 'cities', |
| 225 | 206 | name : 'name', |
| 226 | 207 | metaTag : 'name' |
| 227 | - }); | |
| 208 | + }); */ | |
| 228 | 209 | |
| 229 | 210 | $('#all').citylist({ |
| 230 | 211 | data : data, |
| ... | ... | @@ -255,7 +236,7 @@ |
| 255 | 236 | |
| 256 | 237 | //$("#model").html(model); |
| 257 | 238 | switch(model){ |
| 258 | - case "dtq":$("#model_pic").attr("src","images/u30.png");$(".qaList").css("display","block");break; | |
| 239 | + case "dtq":$("#model_pic").attr("src","images/gsu30.png");$(".qaList").css("display","block");break; | |
| 259 | 240 | default:break; |
| 260 | 241 | } |
| 261 | 242 | |
| ... | ... | @@ -330,7 +311,7 @@ |
| 330 | 311 | |
| 331 | 312 | var data={ |
| 332 | 313 | SCHOOL_ADDRESS1:$("#province").val(), |
| 333 | - SCHOOL_ADDRESS2:$("#city").val(), | |
| 314 | + /* SCHOOL_ADDRESS2:$("#city").val(), */ | |
| 334 | 315 | CONTACT_PHONE:$("#name").val(), |
| 335 | 316 | PHONE_CONTACT:$("#tel").val(), |
| 336 | 317 | PRODUCT_SEQ:$("#sn").val(), | ... | ... |
WebRoot/afterService/gsindex.html
| ... | ... | @@ -105,9 +105,9 @@ |
| 105 | 105 | <script> |
| 106 | 106 | function down(type){ |
| 107 | 107 | switch(type){ |
| 108 | - case 0: $(".modal-body").html('<p><a href="document/新东方产品售后维修流程.pdf" target="_blank">新东方产品售后维修流程.pdf</a></p>');break; | |
| 108 | + case 0: $(".modal-body").html('<p><a href="document/产品售后维修流程.pdf" target="_blank">产品售后维修流程</a></p>');break; | |
| 109 | 109 | case 1: $(".modal-body").html('<p>等待更新</p>');break; |
| 110 | - case 2: $(".modal-body").html('<p><a href="document/基站-EA1000-常见问题解答(新东方)V1.1-20170922.pdf" target="_blank">基站-EA1000-常见问题解答(新东方)V1.1-20170922.pdf</a></p><p><a href="document/键盘-S52Plus-常见问题解答V1.0(新东方)-20180309.pdf" target="_blank">键盘-S52Plus-常见问题解答V1.0(新东方)-20180309.pdf</a></p><p><a href="document/新东方基站-EA4200W-常见问题解答()V1.0-20170922.pdf" target="_blank">新东方基站-EA4200W-常见问题解答()V1.0-20170922.pdf</a></p>');break; | |
| 110 | + case 2: $(".modal-body").html('<p><a href="document/答题器-S56-常见问题解答V1.0-20180227(高思定制).pdf" target="_blank">答题器-S56-常见问题解答V1.0-20180227(高思定制)</a></p><p><a href="document/基站-EA1000-常见问题解答V1.0-20170825.pdf" target="_blank">基站-EA1000-常见问题解答V1.0-20170825</a></p>');break; | |
| 111 | 111 | } |
| 112 | 112 | } |
| 113 | 113 | </script> | ... | ... |
WebRoot/afterService/gsinfo.html
| ... | ... | @@ -35,16 +35,16 @@ |
| 35 | 35 | <label ><span class="red">*</span>校区名称:</label> |
| 36 | 36 | <div class="control-group xq"> |
| 37 | 37 | <div class="controls col-md-6" style="padding-left:0;"> |
| 38 | - <select id="province" class="form-control"> | |
| 38 | + <!-- <select id="province" class="form-control"> | |
| 39 | 39 | <option value="请选择"></option> |
| 40 | - </select> | |
| 41 | - | |
| 40 | + </select> --> | |
| 41 | + <input type="text" class="form-control" id="province" placeholder=""> | |
| 42 | 42 | </div> |
| 43 | - <div class="controls col-md-6" style="padding-right:0;"> | |
| 43 | + <!-- <div class="controls col-md-6" style="padding-right:0;"> | |
| 44 | 44 | <select id="city" class="form-control"> |
| 45 | 45 | <option value="请选择">请选择</option> |
| 46 | 46 | </select> |
| 47 | - </div> | |
| 47 | + </div> --> | |
| 48 | 48 | </div> |
| 49 | 49 | |
| 50 | 50 | </div> |
| ... | ... | @@ -128,11 +128,8 @@ |
| 128 | 128 | </li> |
| 129 | 129 | <li> |
| 130 | 130 | <p class="q_title">问题现象2:连接指示灯慢闪(1秒一次),软件显示连接断开</p> |
| 131 | - <p>① 请检查答题系统的版本是否为互动课堂 2.12.1或更高版本。Match Tool的版本是否为1.0.0.1。配对工具手册及下载地址:https://shimo.im/doc/95gSPuzB1zM7bFRc</p> | |
| 132 | - <p>② 确认基站驱动是否正常,打开设备管理器,驱动正常时,插上基站时 “人体学输入设备”会添加一个“USB输入设备”</p> | |
| 133 | - <img src="images/ea1000_q1.png" width="30%" /> | |
| 134 | - <img src="images/ea1000_q2.png" width="30%" /> | |
| 135 | - <img src="images/ea1000_q3.png" width="30%" /> | |
| 131 | + <p>慢闪表示基站与电脑已经成功, 请联系软件运维人员检查软件是否正常连接</p> | |
| 132 | + | |
| 136 | 133 | </li> |
| 137 | 134 | <li> |
| 138 | 135 | <p class="q_title">问题现象3:连接指示灯快闪(1秒多次),软件显示连接断开</p> |
| ... | ... | @@ -213,13 +210,13 @@ PS:建议老师使用手动连接的方式,不要选择自动连接。</p> |
| 213 | 210 | require(['city.select'], function ($) { |
| 214 | 211 | $(function () { |
| 215 | 212 | |
| 216 | - $('#province, #city').citylist({ | |
| 213 | + /* $('#province, #city').citylist({ | |
| 217 | 214 | data : data, |
| 218 | 215 | id : 'id', |
| 219 | 216 | children: 'cities', |
| 220 | 217 | name : 'name', |
| 221 | 218 | metaTag : 'name' |
| 222 | - }); | |
| 219 | + }); */ | |
| 223 | 220 | |
| 224 | 221 | $('#all').citylist({ |
| 225 | 222 | data : data, |
| ... | ... | @@ -327,7 +324,7 @@ PS:建议老师使用手动连接的方式,不要选择自动连接。</p> |
| 327 | 324 | |
| 328 | 325 | var data={ |
| 329 | 326 | SCHOOL_ADDRESS1:$("#province").val(), |
| 330 | - SCHOOL_ADDRESS2:$("#city").val(), | |
| 327 | + /* SCHOOL_ADDRESS2:$("#city").val(), */ | |
| 331 | 328 | CONTACT_PHONE:$("#name").val(), |
| 332 | 329 | PHONE_CONTACT:$("#tel").val(), |
| 333 | 330 | PRODUCT_SEQ:$("#sn").val(), | ... | ... |
WebRoot/afterService/gsparts2_info.html
| ... | ... | @@ -35,16 +35,18 @@ |
| 35 | 35 | <label ><span class="red">*</span>校区名称:</label> |
| 36 | 36 | <div class="control-group xq"> |
| 37 | 37 | <div class="controls col-md-6" style="padding-left:0;"> |
| 38 | - <select id="province" class="form-control"> | |
| 38 | + <!-- <select id="province" class="form-control"> | |
| 39 | 39 | <option value="请选择"></option> |
| 40 | - </select> | |
| 40 | + </select> --> | |
| 41 | + | |
| 42 | + <input type="text" class="form-control" id="province" placeholder=""> | |
| 41 | 43 | |
| 42 | 44 | </div> |
| 43 | - <div class="controls col-md-6" style="padding-right:0;"> | |
| 45 | + <!-- <div class="controls col-md-6" style="padding-right:0;"> | |
| 44 | 46 | <select id="city" class="form-control"> |
| 45 | 47 | <option value="请选择">请选择</option> |
| 46 | 48 | </select> |
| 47 | - </div> | |
| 49 | + </div> --> | |
| 48 | 50 | </div> |
| 49 | 51 | |
| 50 | 52 | </div> |
| ... | ... | @@ -112,13 +114,13 @@ |
| 112 | 114 | require(['city.select'], function ($) { |
| 113 | 115 | $(function () { |
| 114 | 116 | |
| 115 | - $('#province, #city').citylist({ | |
| 117 | + /* $('#province, #city').citylist({ | |
| 116 | 118 | data : data, |
| 117 | 119 | id : 'id', |
| 118 | 120 | children: 'cities', |
| 119 | 121 | name : 'name', |
| 120 | 122 | metaTag : 'name' |
| 121 | - }); | |
| 123 | + }); */ | |
| 122 | 124 | |
| 123 | 125 | $('#all').citylist({ |
| 124 | 126 | data : data, |
| ... | ... | @@ -228,7 +230,7 @@ |
| 228 | 230 | |
| 229 | 231 | var data={ |
| 230 | 232 | SCHOOL_ADDRESS1:$("#province").val(), |
| 231 | - SCHOOL_ADDRESS2:$("#city").val(), | |
| 233 | + /* SCHOOL_ADDRESS2:$("#city").val(), */ | |
| 232 | 234 | CONTACT_PHONE:$("#name").val(), |
| 233 | 235 | PHONE_CONTACT:$("#tel").val(), |
| 234 | 236 | //PRODUCT_SEQ:$("#sn").val(), | ... | ... |
WebRoot/afterService/gsparts_info.html
| ... | ... | @@ -35,16 +35,18 @@ |
| 35 | 35 | <label ><span class="red">*</span>校区名称:</label> |
| 36 | 36 | <div class="control-group xq"> |
| 37 | 37 | <div class="controls col-md-6" style="padding-left:0;"> |
| 38 | - <select id="province" class="form-control"> | |
| 38 | + <!-- <select id="province" class="form-control"> | |
| 39 | 39 | <option value="请选择"></option> |
| 40 | - </select> | |
| 40 | + </select> --> | |
| 41 | + | |
| 42 | + <input type="text" class="form-control" id="province" placeholder=""> | |
| 41 | 43 | |
| 42 | 44 | </div> |
| 43 | - <div class="controls col-md-6" style="padding-right:0;"> | |
| 45 | + <!-- <div class="controls col-md-6" style="padding-right:0;"> | |
| 44 | 46 | <select id="city" class="form-control"> |
| 45 | 47 | <option value="请选择">请选择</option> |
| 46 | 48 | </select> |
| 47 | - </div> | |
| 49 | + </div> --> | |
| 48 | 50 | </div> |
| 49 | 51 | |
| 50 | 52 | </div> |
| ... | ... | @@ -116,14 +118,14 @@ |
| 116 | 118 | require(['city.select'], function ($) { |
| 117 | 119 | $(function () { |
| 118 | 120 | |
| 119 | - $('#province, #city').citylist({ | |
| 121 | + /* $('#province, #city').citylist({ | |
| 120 | 122 | data : data, |
| 121 | 123 | id : 'id', |
| 122 | 124 | children: 'cities', |
| 123 | 125 | name : 'name', |
| 124 | 126 | metaTag : 'name' |
| 125 | 127 | }); |
| 126 | - | |
| 128 | + */ | |
| 127 | 129 | $('#all').citylist({ |
| 128 | 130 | data : data, |
| 129 | 131 | id : 'id', |
| ... | ... | @@ -229,7 +231,7 @@ |
| 229 | 231 | |
| 230 | 232 | var data={ |
| 231 | 233 | SCHOOL_ADDRESS1:$("#province").val(), |
| 232 | - SCHOOL_ADDRESS2:$("#city").val(), | |
| 234 | + /* SCHOOL_ADDRESS2:$("#city").val(), */ | |
| 233 | 235 | CONTACT_PHONE:$("#name").val(), |
| 234 | 236 | PHONE_CONTACT:$("#tel").val(), |
| 235 | 237 | //PRODUCT_SEQ:$("#sn").val(), | ... | ... |
resources/mybatis1/api/V1Mapper.xml
resources/mybatis1/sunvote/ClassRosterMapper.xml
| ... | ... | @@ -38,8 +38,22 @@ |
| 38 | 38 | <delete id="delete" parameterType="pd"> |
| 39 | 39 | delete from |
| 40 | 40 | <include refid="tableName"></include> |
| 41 | - where | |
| 42 | - CLASSROSTER_ID = #{CLASSROSTER_ID} | |
| 41 | + where 1 != 1 | |
| 42 | + <if test=" CLASSROSTER_ID != null and CLASSROSTER_ID != ''"><!-- 关键词检索 --> | |
| 43 | + or CLASSROSTER_ID = #{CLASSROSTER_ID} | |
| 44 | + </if> | |
| 45 | + | |
| 46 | + <if test=" SCLASS_ID != null and SCLASS_ID != ''"><!-- 关键词检索 --> | |
| 47 | + or SCLASS_ID = #{SCLASS_ID} | |
| 48 | + </if> | |
| 49 | + | |
| 50 | + <if test=" STUDENT_ID != null and STUDENT_ID != ''"><!-- 关键词检索 --> | |
| 51 | + or STUDENT_ID = #{STUDENT_ID} | |
| 52 | + </if> | |
| 53 | + <if test=" TEAMID != null and TEAMID != ''"><!-- 关键词检索 --> | |
| 54 | + or TEAMID = #{TEAMID} | |
| 55 | + </if> | |
| 56 | + | |
| 43 | 57 | </delete> |
| 44 | 58 | |
| 45 | 59 | <!-- 修改 --> |
| ... | ... | @@ -82,6 +96,12 @@ |
| 82 | 96 | --> |
| 83 | 97 | ) |
| 84 | 98 | </if> |
| 99 | + <if test="pd.SCLASS_ID != null and pd.SCLASS_ID != ''"><!-- 关键词检索 --> | |
| 100 | + and | |
| 101 | + ( | |
| 102 | + SCLASS_ID = #{pd.SCLASS_ID} | |
| 103 | + ) | |
| 104 | + </if> | |
| 85 | 105 | </select> |
| 86 | 106 | |
| 87 | 107 | <!-- 列表(全部) --> |
| ... | ... | @@ -102,6 +122,16 @@ |
| 102 | 122 | #{item} |
| 103 | 123 | </foreach> |
| 104 | 124 | </delete> |
| 125 | + <!-- 批量删除 --> | |
| 126 | + <delete id="deleteAllByStudentID" parameterType="String"> | |
| 127 | + delete from | |
| 128 | + <include refid="tableName"></include> | |
| 129 | + where | |
| 130 | + STUDENT_ID in | |
| 131 | + <foreach item="item" index="index" collection="array" open="(" separator="," close=")"> | |
| 132 | + #{item} | |
| 133 | + </foreach> | |
| 134 | + </delete> | |
| 105 | 135 | |
| 106 | 136 | <!-- fh313596790qq(青苔) --> |
| 107 | 137 | </mapper> |
| 108 | 138 | \ No newline at end of file | ... | ... |
resources/mybatis1/sunvote/SClassMapper.xml
| ... | ... | @@ -39,6 +39,7 @@ |
| 39 | 39 | CLASS_TYPE, |
| 40 | 40 | CLASS_NAME, |
| 41 | 41 | CLASS_CODE, |
| 42 | + ID, | |
| 42 | 43 | BASESTATION_ID |
| 43 | 44 | ) values ( |
| 44 | 45 | #{SCHOOL_ID}, |
| ... | ... | @@ -46,6 +47,7 @@ |
| 46 | 47 | #{CLASS_TYPE}, |
| 47 | 48 | #{CLASS_NAME}, |
| 48 | 49 | #{CLASS_CODE}, |
| 50 | + #{ID}, | |
| 49 | 51 | #{BASESTATION_ID} |
| 50 | 52 | ) |
| 51 | 53 | </insert> |
| ... | ... | @@ -90,16 +92,16 @@ |
| 90 | 92 | <include refid="Field"></include> |
| 91 | 93 | from |
| 92 | 94 | <include refid="tableName"></include> |
| 93 | - where 1=1 | |
| 94 | - <if test="SCHOOL_ID != null and SCHOOL_ID != ''"> | |
| 95 | - and ( SCHOOL_ID = #{SCHOOL_ID} ) | |
| 96 | - </if> | |
| 97 | - <if test="GRADE_ID != null and GRADE_ID != ''"> | |
| 98 | - and ( GRADE_ID = #{GRADE_ID} ) | |
| 99 | - </if> | |
| 100 | - <if test="CLASS_TYPE != null and CLASS_TYPE != ''"> | |
| 101 | - and ( CLASS_TYPE = #{CLASS_TYPE} ) | |
| 102 | - </if> | |
| 95 | + where 1 = 1 | |
| 96 | + <if test="pd.SCHOOL_ID != null and pd.SCHOOL_ID != ''"> | |
| 97 | + and ( SCHOOL_ID = #{pd.SCHOOL_ID} ) | |
| 98 | + </if> | |
| 99 | + <if test="pd.GRADE_ID != null and pd.GRADE_ID != ''"> | |
| 100 | + and ( GRADE_ID = #{pd.GRADE_ID} ) | |
| 101 | + </if> | |
| 102 | + <if test="pd.CLASS_TYPE != null and pd.CLASS_TYPE != ''"> | |
| 103 | + and ( CLASS_TYPE = #{pd.CLASS_TYPE} ) | |
| 104 | + </if> | |
| 103 | 105 | </select> |
| 104 | 106 | |
| 105 | 107 | <!-- 列表(全部) --> | ... | ... |
resources/mybatis1/sunvote/StudentMapper.xml
| ... | ... | @@ -94,13 +94,21 @@ |
| 94 | 94 | <if test="pd.keywords!= null and pd.keywords != ''"><!-- 关键词检索 --> |
| 95 | 95 | and |
| 96 | 96 | ( |
| 97 | - <!-- 根据需求自己加检索条件 | |
| 98 | - 字段1 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') | |
| 97 | + NAME LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') | |
| 99 | 98 | or |
| 100 | - 字段2 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') | |
| 101 | - --> | |
| 99 | + PARENT_NAME LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') | |
| 100 | + or | |
| 101 | + SNO LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') | |
| 102 | + or | |
| 103 | + NUMBER LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') | |
| 104 | + or | |
| 105 | + PARENT_PHONE LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') | |
| 106 | + or | |
| 107 | + KEYPAD_ID LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') | |
| 102 | 108 | ) |
| 103 | 109 | </if> |
| 110 | + | |
| 111 | + order by sv_student.SNO | |
| 104 | 112 | </select> |
| 105 | 113 | |
| 106 | 114 | <!-- 列表 --> |
| ... | ... | @@ -128,6 +136,7 @@ |
| 128 | 136 | <if test="pd.CLASS_ID!= null and pd.CLASS_ID != ''"><!-- 关键词检索 --> |
| 129 | 137 | AND cr.SCLASS_ID = #{pd.CLASS_ID} |
| 130 | 138 | </if> |
| 139 | + order by sv_student.SNO | |
| 131 | 140 | </select> |
| 132 | 141 | |
| 133 | 142 | <!-- 列表(全部) --> |
| ... | ... | @@ -136,6 +145,8 @@ |
| 136 | 145 | <include refid="Field"></include> |
| 137 | 146 | from |
| 138 | 147 | <include refid="tableName"></include> |
| 148 | + | |
| 149 | + order by sv_student.SNO | |
| 139 | 150 | </select> |
| 140 | 151 | |
| 141 | 152 | <!-- 批量删除 --> | ... | ... |
resources/mybatis1/sunvote/TeacherMapper.xml
src/com/fh/controller/api/V1.java
| ... | ... | @@ -9,7 +9,6 @@ import javax.servlet.http.HttpServletRequest; |
| 9 | 9 | |
| 10 | 10 | import org.apache.commons.lang.StringUtils; |
| 11 | 11 | import org.springframework.stereotype.Controller; |
| 12 | -import org.springframework.transaction.annotation.Transactional; | |
| 13 | 12 | import org.springframework.web.bind.annotation.RequestMapping; |
| 14 | 13 | import org.springframework.web.bind.annotation.ResponseBody; |
| 15 | 14 | |
| ... | ... | @@ -156,7 +155,7 @@ public class V1 extends BaseController { |
| 156 | 155 | if (!pd.containsKey("ACCOUT")) { |
| 157 | 156 | pd.put("ACCOUT", pd.get("USERNAME")); |
| 158 | 157 | } |
| 159 | - if (((pd.containsKey("USERNAME") || pd.containsKey("ACCOUT")) && pd | |
| 158 | + if (((pd.containsKey("USERNAME") || (pd.containsKey("ACCOUT") && pd.get("ACCOUT") != null)) && pd | |
| 160 | 159 | .containsKey("PASSWORD")) || pd.containsKey("KEYPAD_ID")) { |
| 161 | 160 | PageData pageData = teacherService.getUserInfo(pd); |
| 162 | 161 | if (pageData != null && pageData.getString("ID") != null) { | ... | ... |
src/com/fh/controller/sunvote/classroster/ClassRosterController.java
| ... | ... | @@ -118,7 +118,8 @@ public class ClassRosterController extends BaseController { |
| 118 | 118 | pd.put("keywords", keywords.trim()); |
| 119 | 119 | } |
| 120 | 120 | page.setPd(pd); |
| 121 | - | |
| 121 | + List<PageData> classList = sclassService.listAll(pd); | |
| 122 | + mv.addObject("classList", classList); | |
| 122 | 123 | List<PageData> varList = classrosterService.list(page); //列出ClassRoster列表 |
| 123 | 124 | mv.setViewName("sunvote/classroster/classroster_list"); |
| 124 | 125 | mv.addObject("varList", varList); | ... | ... |
src/com/fh/controller/sunvote/coursemanagement/CourseManagementController.java
| ... | ... | @@ -156,7 +156,8 @@ public class CourseManagementController extends BaseController { |
| 156 | 156 | |
| 157 | 157 | List<PageData> terms = termService.listAll(pd); |
| 158 | 158 | mv.addObject("terms", terms); |
| 159 | - | |
| 159 | + List<PageData> grades = gradeService.listAll(pd); | |
| 160 | + mv.addObject("grades", grades); | |
| 160 | 161 | mv.addObject("msg", "save"); |
| 161 | 162 | mv.addObject("pd", pd); |
| 162 | 163 | return mv; |
| ... | ... | @@ -170,13 +171,13 @@ public class CourseManagementController extends BaseController { |
| 170 | 171 | public ModelAndView goEdit()throws Exception{ |
| 171 | 172 | ModelAndView mv = this.getModelAndView(); |
| 172 | 173 | PageData pd = new PageData(); |
| 174 | + List<PageData> classs = sclassService.listAll(pd); | |
| 175 | + mv.addObject("classs",classs); | |
| 173 | 176 | pd = this.getPageData(); |
| 174 | 177 | pd = coursemanagementService.findById(pd); //根据ID读取 |
| 175 | 178 | mv.setViewName("sunvote/coursemanagement/coursemanagement_edit"); |
| 176 | 179 | List<PageData> teachers = teacherService.listAll(pd); |
| 177 | 180 | mv.addObject("teachers",teachers); |
| 178 | - List<PageData> classs = sclassService.listAll(pd); | |
| 179 | - mv.addObject("classs",classs); | |
| 180 | 181 | List<PageData> subjects = subjectService.listAll(pd); |
| 181 | 182 | mv.addObject("subjects", subjects); |
| 182 | 183 | List<PageData> terms = termService.listAll(pd); | ... | ... |
src/com/fh/controller/sunvote/sclass/SClassController.java
| ... | ... | @@ -71,6 +71,7 @@ public class SClassController extends BaseController { |
| 71 | 71 | ModelAndView mv = this.getModelAndView(); |
| 72 | 72 | PageData pd = new PageData(); |
| 73 | 73 | pd = this.getPageData(); |
| 74 | + pd.put("ID", get32UUID()); | |
| 74 | 75 | sclassService.save(pd); |
| 75 | 76 | mv.addObject("msg","success"); |
| 76 | 77 | mv.setViewName("save_result"); |
| ... | ... | @@ -127,6 +128,14 @@ public class SClassController extends BaseController { |
| 127 | 128 | page.setPd(pd); |
| 128 | 129 | mv.setViewName("sunvote/sclass/sclass_list"); |
| 129 | 130 | List<PageData> varList = sclassService.list(page); //列出SClass列表 |
| 131 | + List<PageData> schools = schoolService.listAll(pd); | |
| 132 | + mv.addObject("schools",schools); | |
| 133 | + List<PageData> basestations = basestationService.listAll(pd); | |
| 134 | + mv.addObject("basestations",basestations); | |
| 135 | + List<PageData> grades = gradeService.listAll(pd); | |
| 136 | + mv.addObject("grades", grades); | |
| 137 | + List<PageData> classTypes = classtypeService.listAll(pd); | |
| 138 | + mv.addObject("classTypes", classTypes); | |
| 130 | 139 | mv.addObject("varList", varList); |
| 131 | 140 | mv.addObject("pd", pd); |
| 132 | 141 | mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 | ... | ... |
src/com/fh/controller/sunvote/student/StudentController.java
| ... | ... | @@ -16,15 +16,21 @@ import org.springframework.stereotype.Controller; |
| 16 | 16 | import org.springframework.web.bind.WebDataBinder; |
| 17 | 17 | import org.springframework.web.bind.annotation.InitBinder; |
| 18 | 18 | import org.springframework.web.bind.annotation.RequestMapping; |
| 19 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 19 | 20 | import org.springframework.web.bind.annotation.ResponseBody; |
| 21 | +import org.springframework.web.multipart.MultipartFile; | |
| 20 | 22 | import org.springframework.web.servlet.ModelAndView; |
| 21 | 23 | |
| 22 | 24 | import com.fh.controller.base.BaseController; |
| 23 | 25 | import com.fh.entity.Page; |
| 24 | 26 | import com.fh.util.AppUtil; |
| 27 | +import com.fh.util.Const; | |
| 28 | +import com.fh.util.FileUpload; | |
| 29 | +import com.fh.util.ObjectExcelRead; | |
| 25 | 30 | import com.fh.util.ObjectExcelView; |
| 26 | 31 | import com.fh.util.PageData; |
| 27 | 32 | import com.fh.util.Jurisdiction; |
| 33 | +import com.fh.util.PathUtil; | |
| 28 | 34 | import com.fh.util.Tools; |
| 29 | 35 | import com.fh.service.sunvote.classroster.ClassRosterManager; |
| 30 | 36 | import com.fh.service.sunvote.student.StudentManager; |
| ... | ... | @@ -92,6 +98,78 @@ public class StudentController extends BaseController { |
| 92 | 98 | return mv; |
| 93 | 99 | } |
| 94 | 100 | |
| 101 | + | |
| 102 | + | |
| 103 | + /**打开上传EXCEL页面 | |
| 104 | + * @return | |
| 105 | + * @throws Exception | |
| 106 | + */ | |
| 107 | + @RequestMapping(value="/goUploadExcel") | |
| 108 | + public ModelAndView goUploadExcel()throws Exception{ | |
| 109 | + ModelAndView mv = this.getModelAndView(); | |
| 110 | + mv.addObject("pd", getPageData()); | |
| 111 | + mv.setViewName("sunvote/student/uploadexcel"); | |
| 112 | + return mv; | |
| 113 | + } | |
| 114 | + | |
| 115 | + | |
| 116 | + /**从EXCEL导入到数据库 | |
| 117 | + * @param file | |
| 118 | + * @return | |
| 119 | + * @throws Exception | |
| 120 | + */ | |
| 121 | + @RequestMapping(value="/readExcel") | |
| 122 | + public ModelAndView readExcel( | |
| 123 | + @RequestParam(value="excel",required=false) MultipartFile file | |
| 124 | + ) throws Exception{ | |
| 125 | + logBefore(logger,Jurisdiction.getUsername() + "从EXCEL导入到数据库"); | |
| 126 | + ModelAndView mv = this.getModelAndView(); | |
| 127 | + PageData tpd = getPageData(); | |
| 128 | + PageData pd = new PageData(); | |
| 129 | + String termID = tpd.getString("TERM_ID"); | |
| 130 | + String classID = tpd.getString("CLASS_ID"); | |
| 131 | + if (null != file && !file.isEmpty()) { | |
| 132 | + String filePath = PathUtil.getClasspath() + Const.FILEPATHFILE; //文件上传路径 | |
| 133 | + String fileName = FileUpload.fileUp(file, filePath, "userexcel"); //执行上传 | |
| 134 | + List<PageData> listPd = (List)ObjectExcelRead.readExcel(filePath, fileName, 0, 0, 0); //执行读EXCEL操作,读出的数据导入List 2:从第3行开始;0:从第A列开始;0:第0个sheet | |
| 135 | + if(listPd.size() > 0 ){ | |
| 136 | + pd= listPd.get(0); | |
| 137 | + for(int i = 1 ; i < listPd.size();i++){ | |
| 138 | + PageData savePd = new PageData(); | |
| 139 | + PageData temp = listPd.get(i); | |
| 140 | + for(int j = 0 ; ;j++){ | |
| 141 | + if(temp.get("var" + j) == null){ | |
| 142 | + break ; | |
| 143 | + } | |
| 144 | + savePd.put(pd.getString("var" + j).toUpperCase(), temp.get("var" + j)); | |
| 145 | + } | |
| 146 | + if(!savePd.containsKey("ID")){ | |
| 147 | + String studentId = this.get32UUID(); | |
| 148 | + savePd.put("ID", studentId); | |
| 149 | + studentService.save(savePd); | |
| 150 | + | |
| 151 | + | |
| 152 | + if (classID != null && termID != null) { | |
| 153 | + savePd.put("STUDENT_ID", studentId); | |
| 154 | + savePd.put("CLASSROSTER_ID", get32UUID()); | |
| 155 | + savePd.put("TEAMID", termID); | |
| 156 | + savePd.put("SCLASS_ID", classID); | |
| 157 | + classrosterService.save(savePd); | |
| 158 | + } | |
| 159 | + | |
| 160 | + }else{ | |
| 161 | + studentService.edit(savePd); | |
| 162 | + } | |
| 163 | + } | |
| 164 | + | |
| 165 | + } | |
| 166 | + } | |
| 167 | + mv.addObject("msg","success"); | |
| 168 | + mv.setViewName("save_result"); | |
| 169 | + return mv; | |
| 170 | + } | |
| 171 | + | |
| 172 | + | |
| 95 | 173 | /**删除 |
| 96 | 174 | * @param out |
| 97 | 175 | * @throws Exception |
| ... | ... | @@ -103,6 +181,8 @@ public class StudentController extends BaseController { |
| 103 | 181 | PageData pd = new PageData(); |
| 104 | 182 | pd = this.getPageData(); |
| 105 | 183 | studentService.delete(pd); |
| 184 | + pd.put("STUDENT_ID", pd.get("ID")); | |
| 185 | + classrosterService.delete(pd); | |
| 106 | 186 | out.write("success"); |
| 107 | 187 | out.close(); |
| 108 | 188 | } |
| ... | ... | @@ -135,7 +215,7 @@ public class StudentController extends BaseController { |
| 135 | 215 | ModelAndView mv = this.getModelAndView(); |
| 136 | 216 | PageData pd = new PageData(); |
| 137 | 217 | pd = this.getPageData(); |
| 138 | - String keywords = pd.getString("keywords"); //关键词检索条件 | |
| 218 | + String keywords = pd.getString("KEYWORDS"); //关键词检索条件 | |
| 139 | 219 | if(null != keywords && !"".equals(keywords)){ |
| 140 | 220 | pd.put("keywords", keywords.trim()); |
| 141 | 221 | } |
| ... | ... | @@ -247,6 +327,7 @@ public class StudentController extends BaseController { |
| 247 | 327 | if(null != DATA_IDS && !"".equals(DATA_IDS)){ |
| 248 | 328 | String ArrayDATA_IDS[] = DATA_IDS.split(","); |
| 249 | 329 | studentService.deleteAll(ArrayDATA_IDS); |
| 330 | + classrosterService.deleteAllByStudentID(ArrayDATA_IDS); | |
| 250 | 331 | pd.put("msg", "ok"); |
| 251 | 332 | }else{ |
| 252 | 333 | pd.put("msg", "no"); | ... | ... |
src/com/fh/controller/sunvote/teacher/TeacherController.java
| ... | ... | @@ -141,6 +141,10 @@ public class TeacherController extends BaseController { |
| 141 | 141 | List<PageData> varList = teacherService.list(page); //列出Teacher列表 |
| 142 | 142 | mv.setViewName("sunvote/teacher/teacher_list"); |
| 143 | 143 | mv.addObject("varList", varList); |
| 144 | + | |
| 145 | + List<PageData> schools = schoolService.listAll(pd); | |
| 146 | + mv.addObject("schools",schools); | |
| 147 | + | |
| 144 | 148 | mv.addObject("pd", pd); |
| 145 | 149 | mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 |
| 146 | 150 | return mv; | ... | ... |
src/com/fh/service/sunvote/classroster/ClassRosterManager.java
| 1 | 1 | package com.fh.service.sunvote.classroster; |
| 2 | 2 | |
| 3 | 3 | import java.util.List; |
| 4 | + | |
| 4 | 5 | import com.fh.entity.Page; |
| 5 | 6 | import com.fh.util.PageData; |
| 6 | 7 | |
| ... | ... | @@ -53,5 +54,8 @@ public interface ClassRosterManager{ |
| 53 | 54 | */ |
| 54 | 55 | public void deleteAll(String[] ArrayDATA_IDS)throws Exception; |
| 55 | 56 | |
| 57 | + | |
| 58 | + public void deleteAllByStudentID(String[] ArrayDATA_IDS)throws Exception; | |
| 59 | + | |
| 56 | 60 | } |
| 57 | 61 | ... | ... |
src/com/fh/service/sunvote/classroster/impl/ClassRosterService.java
| ... | ... | @@ -77,5 +77,13 @@ public class ClassRosterService implements ClassRosterManager{ |
| 77 | 77 | dao.delete("ClassRosterMapper.deleteAll", ArrayDATA_IDS); |
| 78 | 78 | } |
| 79 | 79 | |
| 80 | + /**批量删除 | |
| 81 | + * @param ArrayDATA_IDS | |
| 82 | + * @throws Exception | |
| 83 | + */ | |
| 84 | + public void deleteAllByStudentID(String[] ArrayDATA_IDS)throws Exception{ | |
| 85 | + dao.delete("ClassRosterMapper.deleteAllByStudentID", ArrayDATA_IDS); | |
| 86 | + } | |
| 87 | + | |
| 80 | 88 | } |
| 81 | 89 | ... | ... |