Commit efdefb1b07a92ddfca9966f121faaeaf37fc27bb

Authored by 孙向锦
1 parent fd0087a8

添加语言English

WebRoot/WEB-INF/jsp/sunvote/admin/en_admin_main.jsp 0 → 100644
  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 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme() + "://"
  8 + + request.getServerName() + ":" + request.getServerPort()
  9 + + path + "/";
  10 +%>
  11 +<!DOCTYPE html>
  12 +<html lang="zh-CN">
  13 +<head>
  14 +<meta charset="utf-8">
  15 +<meta http-equiv="X-UA-Compatible" content="IE=edge">
  16 +<meta name="viewport" content="width=device-width, initial-scale=1">
  17 +<title>中天电子-教育管理系统</title>
  18 +
  19 +<!-- Bootstrap -->
  20 +<link
  21 + href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"
  22 + rel="stylesheet">
  23 +<link href="../static/css/teach.css?a=1" rel="stylesheet">
  24 +<link href="../static/css/mb_style.css" rel="stylesheet">
  25 +
  26 +<!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
  27 +<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
  28 +<!--[if lt IE 9]>
  29 + <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  30 + <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
  31 + <![endif]-->
  32 +</head>
  33 +<body>
  34 + <div class="header">
  35 + <div class="logo">
  36 + <img src="../static/images/logo.png" />
  37 + </div>
  38 + <div class="out">
  39 + <a href="../logout"><img src="../static/images/close.png" />退出登录</a>
  40 + </div>
  41 + <div class="clear"></div>
  42 + </div>
  43 + <div class="content">
  44 + <div class="content_l">
  45 + <div class="info_tab">
  46 + <div class="head_pic">
  47 + <img src="../static/images/head_defult.png" />
  48 + </div>
  49 + <div class="name">
  50 + <p>欢迎!</p>
  51 + <p id="school">${SNAME }</p>
  52 + <p id="name">${SNAME } 管理员</p>
  53 + </br></br>
  54 + </div>
  55 + </div>
  56 + <div class="class tab1">
  57 + <p>
  58 + 年级管理<span class="right jiao"></span>
  59 + </p>
  60 + <ul class="menu_1">
  61 + <c:forEach items="${gradeInfos}" var="var" varStatus="vs">
  62 + <li onclick="event.stopPropagation();chooseListClass('${var.SCHOOL_ID}','${var.GRADE_ID}')">
  63 + <p>${ var.GNAME }</p>
  64 + </li>
  65 + </c:forEach>
  66 +
  67 + </ul>
  68 + </div>
  69 + <%-- <div class="class tab1">
  70 + <p>
  71 + 科目管理<span class="right jiao"></span>
  72 + </p>
  73 + <ul class="menu_1">
  74 + <c:forEach items="${subjectInfos}" var="var" varStatus="vs">
  75 + <li onclick="event.stopPropagation();"><p>${var.SCNAME}</p>
  76 + </li>
  77 + </c:forEach>
  78 +
  79 + </ul>
  80 + </div> --%>
  81 + <div class="class tab1">
  82 + <p>
  83 + 任课管理<span class="right jiao"></span>
  84 + </p>
  85 + <ul class="menu_1">
  86 + <li onclick="event.stopPropagation();subject('${SCHOOL_ID}')"><p>科目管理</p></li>
  87 + <li onclick="event.stopPropagation();coursemanager('${SCHOOL_ID}')"><p>任课管理</p></li>
  88 + <li onclick="event.stopPropagation();teacher('${SCHOOL_ID}')"><p>教师管理</p></li>
  89 + </ul>
  90 + </div>
  91 + <div class="testpaper tab1">
  92 + <p>试卷管理<span class="right jiao"></span></p>
  93 + <ul class="menu_1">
  94 + <li >
  95 + <p >轻松考试卷管理</p>
  96 + <ul class="menu_2">
  97 + <li ><p id="new_paper">出卷</p></li>
  98 + <li ><p id="qingsongkao_paper">查看所有试卷</p></li>
  99 +
  100 + </ul>
  101 + </li>
  102 + <li>
  103 + <p id="jishice_paper">即时测试卷管理</p>
  104 + </li>
  105 + </ul>
  106 +
  107 + </div>
  108 + <div class="analyse tab1">
  109 + <p>
  110 + 测验分析<span class="right jiao"></span>
  111 + </p>
  112 +
  113 + <ul class="menu_1">
  114 + <li >
  115 + <p>轻松考统考</p>
  116 + </li>
  117 + <li >
  118 + <p>轻松考班级情况</p>
  119 + <ul class="menu_2">
  120 + <c:forEach items="${gradeInfos}" var="var" varStatus="vs">
  121 + <c:forEach items="${var.classInfos}" var="var1" varStatus="vs1">
  122 + <li onclick="event.stopPropagation();report('${var1.ID}')">
  123 + <p>${ var1.CLASS_NAME }</p>
  124 + </li>
  125 + </c:forEach>
  126 + </c:forEach>
  127 + </ul>
  128 + </li>
  129 + <li>
  130 + <p>即时测测验分析</p>
  131 + <ul class="menu_2">
  132 + <c:forEach items="${gradeInfos}" var="var" varStatus="vs">
  133 + <c:forEach items="${var.classInfos}" var="var1" varStatus="vs1">
  134 + <li onclick="event.stopPropagation();report2('${var1.ID}')">
  135 + <p>${ var1.CLASS_NAME }</p>
  136 + </li>
  137 + </c:forEach>
  138 + </c:forEach>
  139 + </ul>
  140 + </li>
  141 + </ul>
  142 + </div>
  143 + <div class="analyse tab1">
  144 + <p>
  145 + 系统设置<span class="right jiao"></span>
  146 + </p>
  147 +
  148 + <ul class="menu_1">
  149 + <li >
  150 + <p>学校设置</p>
  151 +
  152 + </li>
  153 + <li>
  154 + <p >年级设置</p>
  155 + </li>
  156 + <li>
  157 + <p>年级升级</p>
  158 + </li>
  159 + <li>
  160 + <p>其他配置</p>
  161 + </li>
  162 + </ul>
  163 + </div>
  164 + </div>
  165 + <div class="content_r">
  166 + <iframe name="mainFrame" id="mainFrame" frameborder="0" width="100%" height="100%"></iframe>
  167 +
  168 + </div>
  169 +
  170 + <div class="modal fade title_time" tabindex="-1" role="dialog">
  171 + <div class="modal-dialog" role="document" style="z-index:1400">
  172 + <div class="modal-content">
  173 + <div class="modal-header">
  174 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  175 + <h4 class="modal-title">新建试卷</h4>
  176 + </div>
  177 + <div class="modal-body">
  178 + <div class="form-group">
  179 + <label for="enter_title" class="col-sm-4 control-label">测验标题</label>
  180 + <div class="col-sm-6">
  181 + <input type="text" class="form-control" id="enter_title" placeholder="输入测验标题(不能超过100个字符)" maxlength="100" minlength="1">
  182 + </div>
  183 + <div class="clearfix"></div>
  184 + </div>
  185 +
  186 + <div class="form-group">
  187 + <label for="enter_time" class="col-sm-4 control-label">测验时长(分钟)</label>
  188 + <div class="col-sm-6">
  189 + <input type="number" class="form-control" id="enter_time" placeholder="输入测验时长(单位:分钟)" maxlength="3" oninput="if(value.length>3) value=value.slice(0,3)">
  190 + </div>
  191 + <div class="clearfix"></div>
  192 + </div>
  193 + <div class="form-group">
  194 + <label for="enter_time" class="col-sm-4 control-label">年级</label>
  195 + <div class="col-sm-6">
  196 + <select class="chosen-select form-control" name="grade_id" id="grade_id" data-placeholder="这里输入所属学校">
  197 + <c:forEach items="${gradeInfos}" var="var" varStatus="vs">
  198 + <option value="${var.GRADE_ID}">${var.GNAME}</option>
  199 + </c:forEach>
  200 + </select>
  201 + </div>
  202 + <div class="clearfix"></div>
  203 + </div>
  204 + <div class="form-group">
  205 + <label for="enter_time" class="col-sm-4 control-label">科目</label>
  206 + <div class="col-sm-6">
  207 + <select class="chosen-select form-control" name="subject_id" id="subject_id" data-placeholder="这里输入所属学校">
  208 + <c:forEach items="${subjectInfos}" var="var" varStatus="vs">
  209 + <option value="${var.SUBJECT_ID}">${var.SCNAME}</option>
  210 + </c:forEach>
  211 + </select>
  212 + </div>
  213 + <div class="clearfix"></div>
  214 + </div>
  215 + <div class="form-group">
  216 + <label for="enter_time" class="col-sm-4 control-label">模板</label>
  217 + <div class="col-sm-6">
  218 + <select class="chosen-select form-control" name="TEMPLATE_ID" id="TEMPLATE_ID" data-placeholder="这里输入所属学校">
  219 + <option value="">自定义</option>
  220 + <c:forEach items="${templateInfos}" var="var" varStatus="vs">
  221 + <option value="${var.PAGETEMPLATE_ID}">${var.NAME}</option>
  222 + </c:forEach>
  223 + </select>
  224 + </div>
  225 + <div class="clearfix"></div>
  226 + </div>
  227 + </div>
  228 + <div class="modal-footer">
  229 + <button type="button" class="btn btn-primary" id="time_submit">确定</button>
  230 + <button type="button" class="btn btn-primary" data-dismiss="modal">取消</button>
  231 + </div>
  232 + </div><!-- /.modal-content -->
  233 + </div><!-- /.modal-dialog -->
  234 + </div><!-- /.modal -->
  235 + <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
  236 + <script
  237 + src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  238 + <script src="../static/js/model.js"></script>
  239 + <script src="../static/js/loading.js"></script>
  240 + <script src="../static/js/remove.js?a=2"></script>
  241 + <script src="../static/js/dailog.js"></script>
  242 + <script type="text/javascript">
  243 +
  244 + var schoolId = '${SCHOOL_ID}';
  245 + function subject(school_id){
  246 + var path = "../subject/listcs.do?school_id=" + school_id ;
  247 + //if($("#mainFrame").attr('src') != (path)){
  248 + $("#mainFrame").attr('src',path);
  249 + window.top.loading.show();
  250 + //}
  251 + }
  252 +
  253 + function coursemanager(school_id){
  254 + var path = "../coursemanagement/listcs.do?school_id=" + school_id ;
  255 + //if($("#mainFrame").attr('src') != (path)){
  256 + $("#mainFrame").attr('src',path);
  257 + window.top.loading.show();
  258 + //}
  259 + }
  260 + function teacher(school_id){
  261 + var path = "../teacher/listcs.do?school_id=" + school_id ;
  262 + if($("#mainFrame").attr('src') != (path)){
  263 + $("#mainFrame").attr('src',path);
  264 + window.top.loading.show();
  265 + }
  266 + }
  267 +
  268 + function chooseListClass(school_id,gradle_id){
  269 + var path = "../sclass/listcs.do?school_id=" + school_id + "&grade_id=" + gradle_id ;
  270 + $("#mainFrame").attr('src',path);
  271 + window.top.loading.show();
  272 + }
  273 +
  274 + function report(classId){
  275 + //window.open('<%=basePath%>report/report.do?role=admin&classid=' + classId);
  276 + $("#mainFrame").attr('src','<%=basePath%>report/report.do?role=admin&classid=' + classId);
  277 + window.top.loading.show();
  278 + }
  279 + function report2(classId){
  280 + //window.open('<%=basePath%>report/report.do?classid=' + classId);
  281 + //if($("#mainFrame").attr('src') != ('<%=basePath%>report/report.do?classid=' + classId)){
  282 + // $("#mainFrame").attr('src','<%=basePath%>teacher/test_list.do?classid=' + classId);
  283 + // window.top.loading.show();
  284 + //}
  285 + }
  286 +
  287 + $("#time_submit").click(function(){
  288 + var name = $("#enter_title").val();
  289 + var time = $("#enter_time").val();
  290 + var grade_id = $("#grade_id").val();
  291 + var subject_id = $("#subject_id").val();
  292 + if(name != null&& name != '' && time != null && time != ''){
  293 + var itime = parseInt(time);
  294 + if(itime > 0 && itime <= 300){
  295 + self.location.href = "<%=basePath%>" + "paper/npaper.do?paper_type=2&" + "name=" + name + "&grade_id=" + grade_id +"&subject_id=" + subject_id + "&school_id=" + schoolId + "&time=" + time ;
  296 + $(".title_time").modal("hide");
  297 + }else{
  298 + alert("请输入正确的时间,时间不能超过300分钟");
  299 + }
  300 + }
  301 + });
  302 +
  303 + $("#qingsongkao_paper").click(function (){
  304 + var path = "../paper/list4.do?school_id=" + schoolId ;
  305 + //$(".content_r").html('<iframe name="mainFrame" id="mainFrame" frameborder="0" style="width:100%;height:'+$(".content_l").height()+'px;" src=' + path + '></iframe>');
  306 + $("#mainFrame").attr('src',path);
  307 + window.top.loading.show();
  308 + });
  309 +
  310 + $("#new_paper").click(function (){
  311 + var path = "../paper/list5.do?school_id=" + schoolId ;
  312 + //$(".content_r").html('<iframe name="mainFrame" id="mainFrame" frameborder="0" style="width:100%;height:'+$(".content_l").height()+'px;" src=' + path + '></iframe>');
  313 + $("#mainFrame").attr('src',path);
  314 + window.top.loading.show();
  315 + });
  316 +
  317 + $("#jishice_paper").click(function (){
  318 + var path = "../teacher/teach_paper.do?school_id=" + schoolId;
  319 + //if($("#mainFrame").attr('src') != (path)){
  320 + // $("#mainFrame").attr('src',path);
  321 + // window.top.loading.show();
  322 + //}
  323 + });
  324 +
  325 + var defaultUrl = '${pd.DEFAULTURL}' ;
  326 + if(defaultUrl != '' && defaultUrl != ''){
  327 + $("#mainFrame").attr('src',defaultUrl);
  328 + }
  329 + </script>
  330 +</body>
  331 +</html>
0 332 \ No newline at end of file
... ...
WebRoot/WEB-INF/jsp/sunvote/paper/en_paper_list2.jsp 0 → 100644
  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 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme() + "://"
  8 + + request.getServerName() + ":" + request.getServerPort() + path + "/";
  9 +%>
  10 +<html lang="zh-CN">
  11 +<head>
  12 +<meta charset="utf-8">
  13 +<meta http-equiv="X-UA-Compatible" content="IE=edge">
  14 +<meta name="viewport" content="width=device-width, initial-scale=1">
  15 +<title>SunVote-Education Management System</title>
  16 +
  17 +<!-- Bootstrap -->
  18 +<link
  19 + href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"
  20 + rel="stylesheet">
  21 +<link href="../static/css/teach.css" rel="stylesheet">
  22 +<link rel="stylesheet" href="../static/ace/css/datepicker.css" />
  23 +<script src="../static/js/loading.js"></script>
  24 +<script src="../static/js/remove.js?a=1"></script>
  25 +<script src="../static/js/dailog.js"></script>
  26 +
  27 +<!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
  28 +<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
  29 +<!--[if lt IE 9]>
  30 + <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  31 + <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
  32 + <![endif]-->
  33 +</head>
  34 +<body>
  35 +
  36 + <form action="../paper/list2.do" method="post" name="Form" id="Form">
  37 + <div class="head_box">
  38 + <div class="box_header">
  39 + <div class="head_box_l">
  40 + <p>
  41 + <span class="right_b"></span>Paper Management
  42 + </p>
  43 + </div>
  44 + <div class="head_box_r">
  45 + <input class="date-picker" type="text" placeholder="Start Date" name="lastStart" id="lastStart" data-date-format="yyyy-mm-dd" readonly="readonly" value="${pd.LASTSTART }"/>
  46 + <input type="text" class="date-picker" placeholder="End Date" name="lastEnd" name="lastEnd" data-date-format="yyyy-mm-dd" readonly="readonly" value="${pd.LASTEND}"/>
  47 + <a href="#" onclick="tosearch();"><img
  48 + src="../static/images/search.png" /></a>
  49 + </div>
  50 + <div class="clear"></div>
  51 + </div>
  52 + <div style="padding:0 5%;background:#fff;">
  53 + <table class="table table-striped">
  54 + <col style="width: 10%" />
  55 + <col style="width: 20%" />
  56 + <col style="width: 20%" />
  57 + <col style="width: 20%" />
  58 + <col style="width: 20%" />
  59 + <col style="width: 10%" />
  60 + <thead>
  61 + <tr>
  62 + <th><input type="checkbox" name='ids' id="ids" />Serial No.</th>
  63 + <th>Test Paper Title</th>
  64 + <th>Create Time</th>
  65 + <th>Advice Time</th>
  66 + <th>Total Score</th>
  67 + <th>Operate</th>
  68 + </tr>
  69 + </thead>
  70 + </table>
  71 + </div>
  72 + </div>
  73 + <div class="table_box">
  74 + <table class="table table-striped">
  75 + <col style="width: 10%" />
  76 + <col style="width: 20%" />
  77 + <col style="width: 20%" />
  78 + <col style="width: 20%" />
  79 + <col style="width: 20%" />
  80 + <col style="width: 10%" />
  81 + <tbody>
  82 + <c:choose>
  83 + <c:when test="${not empty varList}">
  84 + <c:forEach items="${varList}" var="var" varStatus="vs">
  85 + <tr>
  86 + <td><input type="checkbox" name='ids' id="ids" value="${var.PAPER_ID}"/>${vs.index+1}</td>
  87 + <td ><a target="_blank" href="<%=basePath%>paper/iteminfo.do?paper_id=${var.PAPER_ID}">${var.TITLE}</a></td>
  88 + <td >${var.CREATE_DATE}</td>
  89 + <td >${var.EXAM_TIME}</td>
  90 + <td >${var.SCORE}</td>
  91 + <td>
  92 + <a href="#" onclick="del('${var.PAPER_ID}');"><img src="../static/images/remove.png" /></a>
  93 + </td>
  94 + </tr>
  95 +
  96 + </c:forEach>
  97 + </c:when>
  98 + <c:otherwise>
  99 + <tr class="main_info">
  100 + <td colspan="100" class="center" >No Data</td>
  101 + </tr>
  102 + </c:otherwise>
  103 + </c:choose>
  104 + </tbody>
  105 + </table>
  106 + <div class="footer" style="margin-top:50px">
  107 + <div class="creat">
  108 + <input type="button" onclick="parent.$('.title_time').modal('show');" value="New Paper" />
  109 + </div>
  110 + <div class="removeAll">
  111 + <input type="button" onclick="deleteAll()" value="Batch Delete" />
  112 + </div>
  113 + <div class="page_box">
  114 +
  115 + <div class="pagination" style="float: right;padding-top: 0px;margin-top: 0px;">${page.pageStr}</div>
  116 + </div>
  117 + </div>
  118 + </div>
  119 + </form>
  120 +</body>
  121 +
  122 +<%@ include file="../../system/index/foot2.jsp"%>
  123 +<script src="../static/ace/js/date-time/bootstrap-datepicker.js"></script>
  124 +<script type="text/javascript">
  125 +
  126 + $(document).ready(function(){
  127 + window.top.loading.remove();
  128 + });
  129 +
  130 + function tosearch(){
  131 + window.top.loading.remove();
  132 + $("#Form").submit();
  133 + }
  134 +
  135 +
  136 + $('#ids').on('click', function(){
  137 + var th_checked = $("#ids").prop('checked');//checkbox inside "TH" table header
  138 +
  139 + $(".table_box .table").find('tbody > tr').each(function(){
  140 + var row = this;
  141 + if(th_checked) $(row).find('input[type=checkbox]').eq(0).prop('checked', true);
  142 + else $(row).find('input[type=checkbox]').eq(0).prop('checked', false);
  143 + });
  144 + });
  145 +
  146 + function del(Id){
  147 + //var remove = new remove();
  148 + window.top.remove.init({"title":"Delete","func":function(success){
  149 + if(success){
  150 + var url = "<%=basePath%>paper/delete.do?PAPER_ID="+Id+"&qingsongkao=true&tm="+new Date().getTime();
  151 + window.top.loading.show();
  152 + $.get(url,function(data){
  153 + tosearch();
  154 + });
  155 + }
  156 + else{
  157 + console.log("false");
  158 + }
  159 + }});
  160 + remove.show();
  161 + }
  162 +
  163 + $(function() {
  164 +
  165 + $.fn.datepicker.dates['en'] = {
  166 + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  167 + daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  168 + daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
  169 + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
  170 + monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
  171 + today: "Today",
  172 + clear: "Clear",
  173 + format: "mm/dd/yyyy",
  174 + titleFormat: "MM yyyy", /* Leverages same syntax as 'format' */
  175 + weekStart: 0
  176 + };
  177 + //日期框
  178 + $('.date-picker').datepicker({
  179 + autoclose: true,
  180 + todayHighlight: true,
  181 + language: 'en'
  182 + });
  183 +
  184 + });
  185 +
  186 + function deleteAll(){
  187 + window.top.remove.init({"title":"Delete","func":function(success){
  188 + if(success){
  189 + var str = '';
  190 + for(var i=0;i < document.getElementsByName('ids').length;i++){
  191 + if(document.getElementsByName('ids')[i].checked){
  192 + if(str=='') str += document.getElementsByName('ids')[i].value;
  193 + else str += ',' + document.getElementsByName('ids')[i].value;
  194 + }
  195 + }
  196 + if(str==''){
  197 +
  198 + }else{
  199 + $.ajax({
  200 + type: "POST",
  201 + url: '<%=basePath%>paper/deleteAll.do?tm='+new Date().getTime(),
  202 + data: {DATA_IDS:str},
  203 + dataType:'json',
  204 + //beforeSend: validateData,
  205 + cache: false,
  206 + success: function(data){
  207 + $.each(data.list, function(i, list){
  208 + tosearch();
  209 + });
  210 + }
  211 + });
  212 + }
  213 + }
  214 + else{
  215 + console.log("false");
  216 + }
  217 + }});
  218 + window.top.remove.show();
  219 + }
  220 +
  221 +
  222 +</script>
  223 +</html>
0 224 \ No newline at end of file
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/en_creat_question.jsp 0 → 100644
  1 +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2 +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4 +<%
  5 + String path = request.getContextPath();
  6 + String basePath = request.getScheme() + "://"
  7 + + request.getServerName() + ":" + request.getServerPort()
  8 + + path + "/";
  9 +%>
  10 +
  11 +<!DOCTYPE html>
  12 +
  13 +<html lang="en">
  14 +<head>
  15 + <title>Create exam paper</title>
  16 + <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
  17 + <link rel="stylesheet" href="../static/css/bootstrap.min.css">
  18 + <link rel="stylesheet" href="../static/css/style.css"/>
  19 + <script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
  20 + <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
  21 + <script src="../static/js/bootstrap.min.js"></script>
  22 +</head>
  23 +<body>
  24 + <div class="page-header">
  25 + <div class="header_box container">
  26 + <h1 class="text-center"></h1>
  27 + <div class="btn_group">
  28 + <div class="time text-center" data-toggle="modal" data-target=".test_time"><h3>Exam time:<span class="bg-primary" id="time">45</span><span class="bg-primary">Min</span></h3></div>
  29 + <div class="pull-left"><h3>Total score:<span id='score_all'>0</span> </h3></div>
  30 + <div class="btn_box pull-right">
  31 + <input type="button" class="btn btn-success btn-lg" name="save" value="Save" id="save"/>
  32 + <button type="button" class="btn btn-success btn-lg" data-toggle="modal" data-target=".fast" id="fast">Set single choice question</button>
  33 + <button type="button" class="btn btn-success btn-lg" data-toggle="modal" data-target=".addQuestion" id="addQuestion">Set multiple choice question</button>
  34 + <div class="clearfix"></div>
  35 + </div>
  36 + </div>
  37 + </div>
  38 + </div>
  39 +
  40 + <div class="content container">
  41 +
  42 + </div>
  43 +
  44 +<!-- 快速出题 -->
  45 +
  46 +<div class="modal fade fast" tabindex="-1" role="dialog">
  47 + <div class="modal-dialog" role="document">
  48 + <div class="modal-content">
  49 + <div class="modal-header">
  50 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  51 + <h4 class="modal-title">Set single choice question</h4>
  52 + </div>
  53 + <div class="modal-body">
  54 + <div class="form-group">
  55 + <label for="inputEmail3" class="col-sm-5 control-label">Exam anwsers</label>
  56 + <div class="col-sm-7">
  57 + <input type="text" class="form-control" id="answer" placeholder='Input question number(i.e.: "ABCDA")' maxlength="119">
  58 +
  59 + <div class="tips" style="color:#f00"></div>
  60 + </div>
  61 + <div class="clearfix"></div>
  62 + </div>
  63 + <div class="form-group">
  64 + <label for="inputEmail3" class="col-sm-5 control-label">Option numbers</label>
  65 + <div class="col-sm-7">
  66 + <select class="form-control" id="num_ans">
  67 + <option value="2">2</option>
  68 + <option value="3">3</option>
  69 + <option value="4" selected>4</option>
  70 + <option value="5">5</option>
  71 + <option value="6">6</option>
  72 + <option value="7">7</option>
  73 + <option value="8">8</option>
  74 + <option value="9">9</option>
  75 + <option value="10">10</option>
  76 + </select>
  77 + </div>
  78 + <div class="clearfix"></div>
  79 + </div>
  80 + <div class="form-group">
  81 + <label for="inputEmail3" class="col-sm-5 control-label">Score of single question</label>
  82 + <div class="col-sm-7">
  83 + <input type="number" class="form-control" id="fraction" placeholder="" value="1">
  84 + </div>
  85 + <div class="clearfix"></div>
  86 + </div>
  87 + </div>
  88 + <div class="modal-footer">
  89 + <button type="button" class="btn btn-default" id="fast_submit">OK</button>
  90 + <button type="button" class="btn btn-primary" data-dismiss="modal">Cancel</button>
  91 + </div>
  92 + </div><!-- /.modal-content -->
  93 + </div><!-- /.modal-dialog -->
  94 +</div><!-- /.modal -->
  95 +
  96 +<!--添加试题-->
  97 +<div class="modal fade addQuestion" tabindex="-1" role="dialog">
  98 + <div class="modal-dialog" role="document">
  99 + <div class="modal-content">
  100 + <div class="modal-header">
  101 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  102 + <h4 class="modal-title">Add test paper</h4>
  103 + </div>
  104 + <div class="modal-body">
  105 + <!--<div class="form-group">
  106 + <label for="type" class="col-sm-2 control-label">题目名称</label>
  107 + <div class="col-sm-10">
  108 + <select class="form-control" id="type">
  109 + <option value="1" selected>单选题</option>
  110 + <option value="2">完形填空</option>
  111 + <option value="3">阅读理解</option>
  112 + <option value="4">判断题</option>
  113 + <option value="5">多选题</option>
  114 + </select>
  115 + </div>
  116 + <div class="clearfix"></div>
  117 + </div>-->
  118 + <div class="form-group">
  119 + <label for="index_s_2" class="col-sm-5 control-label">Number of questions</label>
  120 + <div class="col-sm-7">
  121 + <input type="number" class="form-control" id="index_s_2" placeholder="Please input number of questions (1-100)" oninput="if(value.length>3) value=value.slice(0,3)">
  122 + </div>
  123 + <!-- <div class="col-sm-1"><span style="line-height:34px;">——</span></div>
  124 + <div class="col-sm-4">
  125 + <input type="number" class="form-control" id="index_e_2" placeholder="">
  126 + </div>-->
  127 + <div class="clearfix"></div>
  128 + </div>
  129 + <div class="form-group">
  130 + <label for="num_ans_2" class="col-sm-5 control-label">Number of options</label>
  131 + <div class="col-sm-7">
  132 + <select class="form-control" id="num_ans_2">
  133 + <option value="2">2</option>
  134 + <option value="3">3</option>
  135 + <option value="4" selected>4</option>
  136 + <option value="5">5</option>
  137 + <option value="6">6</option>
  138 + <option value="7">7</option>
  139 + <option value="8">8</option>
  140 + <option value="9">9</option>
  141 + <option value="10">10</option>
  142 + </select>
  143 + </div>
  144 + <div class="clearfix"></div>
  145 + </div>
  146 + <div class="form-group">
  147 + <label for="fraction2" class="col-sm-5 control-label">Score of single question</label>
  148 + <div class="col-sm-7">
  149 + <input type="number" class="form-control" id="fraction2" value="1" placeholder="Please input score of single question">
  150 + </div>
  151 + <div class="clearfix"></div>
  152 + </div>
  153 + </div>
  154 + <div class="modal-footer">
  155 + <button type="button" class="btn btn-default" id="addQuestion_submit">Ok</button>
  156 + <button type="button" class="btn btn-primary" data-dismiss="modal">Cancel</button>
  157 + </div>
  158 + </div><!-- /.modal-content -->
  159 + </div><!-- /.modal-dialog -->
  160 +</div><!-- /.modal -->
  161 +
  162 +<!-- 考试时间 -->
  163 +
  164 +<div class="modal fade test_time" tabindex="-1" role="dialog">
  165 + <div class="modal-dialog" role="document">
  166 + <div class="modal-content">
  167 + <div class="modal-header">
  168 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  169 + <h4 class="modal-title">Exam Time</h4>
  170 + </div>
  171 + <div class="modal-body">
  172 + <div class="form-group">
  173 + <label for="enter_time" class="col-sm-4 control-label">Exam Time(Mins)</label>
  174 + <div class="col-sm-6">
  175 + <input type="number" class="form-control" id="enter_time" placeholder="Please input exam time">
  176 + </div>
  177 + <div class="clearfix"></div>
  178 + </div>
  179 +
  180 + </div>
  181 + <div class="modal-footer">
  182 + <button type="button" class="btn btn-default" id="time_submit">Ok</button>
  183 + <button type="button" class="btn btn-primary" data-dismiss="modal">Cancel</button>
  184 + </div>
  185 + </div><!-- /.modal-content -->
  186 + </div><!-- /.modal-dialog -->
  187 +</div><!-- /.modal -->
  188 +<div class="loading" style="background:rgba(0,0,0,0.5);width:100%;height:100%;position:fixed;top:0;display:none;">
  189 + <img src="../static/images/loading.gif" width="200px" style="position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;"/>
  190 +</div>
  191 +<script>
  192 + var testData = ${pd.JSON};
  193 + var template = ${TEMPLEATE == null ? "[]" : TEMPLEATE.CONTENT};
  194 + var URL = "<%=basePath%>api/v1/uploadpaper";
  195 + var JUMP_URL = "<%=basePath%>/${JUMP_URL}";
  196 + if(testData.questions.length>0){
  197 + var title = testData.title;
  198 + if(title == null || title == ''){
  199 + title = "Browse exam paper";
  200 + }
  201 + $("title").html(title);
  202 + }
  203 + $(document).ready(function(){
  204 + var _height = $(".page-header").height();
  205 + $(".content").css("padding-top",_height);
  206 +
  207 + });
  208 +
  209 +
  210 +
  211 + //var testData={"title":"TEST1","exam_time":46,"paper_type":"1","subject_id":"1","grade_id":"1","user_id":"1","score":5,"questions":[{"chapter_id":"0","problem_type_id":"0","knowledge_id":"0","content":"单选","option_num":"","option_content":"","answer":"","difficulty":"","analysis":"","question_from":"","score":1,"part_score":"","remark":"","rank":"1","no_name":"一、","questions":[{"chapter_id":"0","problem_type_id":"0","knowledge_id":"0","content":"","option_num":4,"option_content":"","answer":"A","difficulty":"0","analysis":"","question_from":"1","score":1,"part_score":"0","remark":"","rank":"2","no_name":"1.1"},{"chapter_id":"0","problem_type_id":"0","knowledge_id":"0","content":"","option_num":4,"option_content":"","answer":"B","difficulty":"0","analysis":"","question_from":"1","score":1,"part_score":"0","remark":"","rank":"2","no_name":"1.2"},{"chapter_id":"0","problem_type_id":"0","knowledge_id":"0","content":"","option_num":4,"option_content":"","answer":"C","difficulty":"0","analysis":"","question_from":"1","score":1,"part_score":"0","remark":"","rank":"2","no_name":"1.3"},{"chapter_id":"0","problem_type_id":"0","knowledge_id":"0","content":"","option_num":4,"option_content":"","answer":"D","difficulty":"0","analysis":"","question_from":"1","score":1,"part_score":"0","remark":"","rank":"2","no_name":"1.4"},{"chapter_id":"0","problem_type_id":"0","knowledge_id":"0","content":"","option_num":4,"option_content":"","answer":"A","difficulty":"0","analysis":"","question_from":"1","score":1,"part_score":"0","remark":"","rank":"2","no_name":"1.5"}]}]};
  212 + //var testData={"title":"TEST1","exam_time":46,"paper_type":"1","subject_id":"1","grade_id":"1","user_id":"1","score":5,"questions":[]};
  213 +</script>
  214 +<script type="text/javascript" src="../static/js/en_control-604.js?"></script>
  215 +
  216 +
  217 +</body>
  218 +</html>
0 219 \ No newline at end of file
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/en_paper_view.jsp 0 → 100644
  1 +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2 +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4 +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  8 +%>
  9 +<!DOCTYPE html>
  10 +<html lang="zh-CN">
  11 + <head>
  12 + <meta charset="utf-8">
  13 + <meta http-equiv="X-UA-Compatible" content="IE=edge">
  14 + <meta name="viewport" content="width=device-width, initial-scale=1">
  15 + <title>SunVote-Education Management System</title>
  16 +
  17 + <!-- Bootstrap -->
  18 + <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  19 + <link href="../static/css/teach.css" rel="stylesheet">
  20 + <link href="../static/css/paper_view.css?t=1" rel="stylesheet">
  21 +
  22 + <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
  23 + <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
  24 + <!--[if lt IE 9]>
  25 + <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  26 + <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
  27 + <![endif]-->
  28 + <style>
  29 + .analysis table{display:inline-block;vertical-align:middle;}
  30 + .resolve_box img{vertical-align:top;}
  31 + .up{width:20px;hiehgt:20px;}
  32 + .down{width:20px;height:20px;margin-left:10px;}
  33 + .save_box{width:100%;height:80px;background:#fff;text-align:center;position:fixed;bottom:0;left:0;}
  34 + .container{height:100%;}
  35 + .content_report{padding-bottom:80px;min-height:calc(100% - 126px);}
  36 + </style>
  37 + </head>
  38 + <body>
  39 + <div class="container">
  40 + <div class="page-header">
  41 + <h3 class="col-md-6" id="paper_title"></h3>
  42 + <h3 class="col-md-6">Exam Time:<span id="time"></span>Minutes</h3>
  43 + <div class="clearfix"></div>
  44 + </div>
  45 + <div class="content_report">
  46 +
  47 + <div class="col-md-12 analysis">
  48 + <ul>
  49 + <!--试题列表-->
  50 + </ul>
  51 + </div>
  52 + <div class="clearfix"></div>
  53 + </div>
  54 + <div class="save_box">
  55 + <input type="button" value="Save" class="btn btn-primary btn-lg topic save" />
  56 + </div>
  57 + </div>
  58 + <script>
  59 + var subjectId = '${pd.subject_id}';
  60 + </script>
  61 + <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
  62 + <script src="../static/js/echars.js"></script>
  63 + <script src="../static/js/en_paper_view.js?a=2"></script>
  64 +
  65 +</html>
  66 +
  67 +
  68 +
  69 +
  70 +
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/en_paper_view2.jsp 0 → 100644
  1 +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2 +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4 +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  8 +%>
  9 +<!DOCTYPE html>
  10 +<html lang="zh-CN">
  11 + <head>
  12 + <meta charset="utf-8">
  13 + <meta http-equiv="X-UA-Compatible" content="IE=edge">
  14 + <meta name="viewport" content="width=device-width, initial-scale=1">
  15 + <title>SunVote-Education Management System</title>
  16 +
  17 + <!-- Bootstrap -->
  18 + <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  19 + <link href="../static/css/teach.css" rel="stylesheet">
  20 + <link href="../static/css/paper_view.css?t=1" rel="stylesheet">
  21 +
  22 + <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
  23 + <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
  24 + <!--[if lt IE 9]>
  25 + <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  26 + <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
  27 + <![endif]-->
  28 + <style>
  29 + .analysis table{display:inline-block;vertical-align:middle;}
  30 + .resolve_box img{vertical-align:top;}
  31 + .up{width:20px;hiehgt:20px;}
  32 + .down{width:20px;height:20px;margin-left:10px;}
  33 + .save_box{width:100%;height:80px;background:#fff;text-align:center;position:fixed;bottom:0;left:0;}
  34 + .container{height:100%;}
  35 + .content_report{padding-bottom:80px;min-height:calc(100% - 126px);}
  36 + .star_box .col-md-6{float:right;}
  37 + </style>
  38 + </head>
  39 + <body>
  40 + <div class="container">
  41 + <div class="page-header">
  42 + <h3 class="col-md-6" id="paper_title"></h3>
  43 + <h3 class="col-md-6">Exam Time:<span id="time"></span>Minutes</h3>
  44 + <div class="clearfix"></div>
  45 + </div>
  46 + <div class="content_report">
  47 +
  48 + <div class="col-md-12 analysis">
  49 + <ul>
  50 + <!--<li>
  51 + <div class="stem">
  52 + <p>1.如图,检测4个足球,其中超过标准质量的克数记为正数,不足标准质量的克数记为负数.从轻重的角度看,最接近标准的是(  )</p>
  53 + </div>
  54 + <div class="option">
  55 + <ul>
  56 + <li><span>A.</span><img src="images/option_1.png" /></li>
  57 + <li><span>B.</span><img src="images/option_2.png" /></li>
  58 + <li><span>C.</span><img src="images/option_3.png" /></li>
  59 + <li><span>D.</span><img src="images/option_4.png" /></li>
  60 + </ul>
  61 + <div class="clearfix"></div>
  62 + </div>
  63 + <div class="resolve">
  64 + <div class="resolve_box">
  65 + <p>【答案】 A</p>
  66 + <p>【解析】由图数一数,可知总共有7位小同学,其中扎小辫的女孩有2人,男孩有5人。
  67 + 故选A。</p>
  68 +
  69 + <p>【考点】 10以内数的认识</p>
  70 + </div>
  71 + <div class="clearfix"></div>
  72 + </div>
  73 +
  74 + <div class="star_box">
  75 + <div class="col-md-6"><img src="../static/images/up_ico.png"/><img src="../static/images/down_ico.png"/></div>
  76 + <div class="col-md-6">
  77 + <div class="star">
  78 + <span style="float:left;">难度</span>
  79 + <ul>
  80 + <li class="on"></li>
  81 + <li class="on"></li>
  82 + <li class="off"></li>
  83 + <li class="off"></li>
  84 + <li class="off"></li>
  85 + </ul>
  86 + </div>
  87 + <div class="resolve_click">
  88 + <a onclick="slide($(this))">查看解析</a>
  89 + </div>
  90 + </div>
  91 + <div class="clearfix"></div>
  92 + </div>
  93 + </li> -->
  94 + </ul>
  95 + </div>
  96 + <div class="clearfix"></div>
  97 + </div>
  98 +
  99 + </div>
  100 + <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
  101 + <script src="../static/js/echars.js"></script>
  102 + <script src="../static/js/loading.js"></script>
  103 + <script src="../static/js/en_paper_view2.js"></script>
  104 +
  105 +</html>
  106 +
  107 +
  108 +
  109 +
  110 +
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/en_set_question.jsp 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh-CN">
  3 + <head>
  4 + <meta charset="utf-8">
  5 + <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6 + <meta name="viewport" content="width=device-width, initial-scale=1">
  7 + <title>SunVote-Education Management System</title>
  8 +
  9 + <!-- Bootstrap -->
  10 + <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  11 + <link href="../static/css/teach.css" rel="stylesheet">
  12 + <link href="../static/css/set_quetion.css?t=12" rel="stylesheet">
  13 +
  14 + <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
  15 + <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
  16 + <!--[if lt IE 9]>
  17 + <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  18 + <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
  19 + <![endif]-->
  20 + <style>
  21 + table{display:inline-block;vertical-align: middle;}
  22 + .resolve_box img{vertical-align:top;}
  23 + </style>
  24 + </head>
  25 + <body>
  26 + <div class="col-md-12">
  27 + <div class="col-md-3 left_menu">
  28 + <div class="tab">
  29 + <ul>
  30 + <li data-index=0><p>Sync Textbook</p></li>
  31 + <li class="active" data-index=1><p>Knowledge Point</p></li>
  32 + <div class="clearfix"></div>
  33 + </ul>
  34 + </div>
  35 + <div class="choose_book">
  36 + <div class="book"><p><span id="book_name">Western Normal University/Grade 1-A</span></p><img src="../static/images/down_arrow.png" /><div class="clearfix"></div></div>
  37 + <div class="book_box">
  38 + <ul>
  39 + <!--教材版本列表-->
  40 + </ul>
  41 +
  42 + </div>
  43 + </div>
  44 + <div class="section">
  45 + <ul>
  46 + <!--左侧菜单列表-->
  47 + </ul>
  48 + </div>
  49 + </div>
  50 + <div class="col-md-9 right_content">
  51 +
  52 + <div class="question_box">
  53 + <ul>
  54 + <!--题目列表-->
  55 + </ul>
  56 + <div class="view_more">
  57 + <p>Click to view more<span>︾</span></p>
  58 + </div>
  59 + </div>
  60 + </div>
  61 + </div>
  62 + <div class="basket">
  63 + <div class="basket_box">
  64 + <p class="col-md-4">Selected:<span id="all_que_num">0</span></p>
  65 + <p class="col-md-8"><input type="button" value="Clear" class="btn btn-danger clear_que"/><button type="button" class="btn btn-primary btn-lg topic" >
  66 +Complete question selection
  67 +</button></p>
  68 + </div>
  69 + </div>
  70 + <div class="modal fade" id="myModal" tabindex="-1" role="dialog">
  71 + <div class="modal-dialog" role="document">
  72 + <div class="modal-content">
  73 + <div class="modal-header">
  74 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  75 + <h4 class="modal-title">Complete question selection</h4>
  76 + </div>
  77 + <div class="modal-body">
  78 + <form class="form-horizontal">
  79 + <div class="form-group">
  80 + <label for="inputEmail3" class="col-sm-2 control-label">Exam paper title</label>
  81 + <div class="col-sm-10">
  82 + <input type="text" class="form-control" id="title" placeholder="i.e.: Maths of grade 8">
  83 + </div>
  84 + </div>
  85 + <div class="form-group">
  86 + <label for="inputPassword3" class="col-sm-2 control-label">Exam Time</label>
  87 + <div class="col-sm-10">
  88 + <input type="text" class="form-control" id="time" placeholder="i.e.: 120 minutes">
  89 + </div>
  90 + </div>
  91 + </form>
  92 + </div>
  93 + <div class="modal-footer">
  94 + <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
  95 + <button type="button" class="btn btn-primary" id="submit">Ok</button>
  96 + </div>
  97 + </div><!-- /.modal-content -->
  98 + </div><!-- /.modal-dialog -->
  99 + </div><!-- /.modal -->
  100 + <script>
  101 + //var subject_id = '${subject_id}' ;
  102 + </script>
  103 + <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
  104 + <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
  105 + <script src="../static/js/en_set_question.js?a=0"></script>
  106 +</html>
0 107 \ No newline at end of file
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/en_stduent_report.jsp 0 → 100644
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml">
  3 +<head>
  4 +<%
  5 + String path = request.getContextPath();
  6 + String basePath = request.getScheme() + "://"
  7 + + request.getServerName() + ":" + request.getServerPort()
  8 + + path + "/";
  9 +%>
  10 +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  11 +<title>班级-测试名单</title>
  12 +<script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
  13 +<script
  14 + src="http://cdn.staticfile.org/twitter-bootstrap/4.0.0-alpha.2/js/bootstrap.min.js"></script>
  15 +<link
  16 + href="http://cdn.staticfile.org/twitter-bootstrap/4.0.0-alpha.2/css/bootstrap.min.css"
  17 + rel="stylesheet" type="text/css" media="all" />
  18 +<link href="../static/css/jquery.circliful.css" rel="stylesheet"
  19 + type="text/css" />
  20 +<link href="../static/css/style1.css?t=123" rel="stylesheet" type="text/css" />
  21 +<!-- 日期框 -->
  22 +<link rel="stylesheet" href="../static/ace/css/datepicker.css" />
  23 +<script src="../static/laydate/laydate.js"></script>
  24 +<!-- 改成你的路径 -->
  25 +<script src="../static/js/jquery.circliful.min.js"></script>
  26 +<script src="../static/js/echars.js"></script>
  27 +<!-- 日期框 -->
  28 +<script src="../static/ace/js/date-time/bootstrap-datepicker.js"></script>
  29 +<!--提示框-->
  30 +<script type="text/javascript" src="../static/js/jquery.tips.js"></script>
  31 +
  32 +
  33 +
  34 +
  35 +<style>
  36 +body {
  37 + padding-top: 50px;
  38 +}
  39 +
  40 +li {
  41 + list-style: none;
  42 +}
  43 +</style>
  44 +</head>
  45 +<body>
  46 + <div class="header">
  47 + <nav class="navbar navbar-default navbar-fixed-top">
  48 + <div class="container">
  49 + <input type="hidden" name="SUBJECT_ID" id="SUBJECT_ID" value="${pd.SUBJECT_ID}"/>
  50 + <input type="text" class="date-picker" placeholder="Start Date" name="starDate" id="starDate" data-date-format="yyyy-mm-dd" readonly="readonly" value="${start_date}"/>
  51 + <input type="text" class="date-picker" placeholder="End Date" name="endDate" id="endDate" data-date-format="yyyy-mm-dd" readonly="readonly" value="${end_date}"/>
  52 + <input type="button" value="Search" id="search" />
  53 + </div>
  54 + </nav>
  55 + </div>
  56 + <div class="content row">
  57 + <div class="content_l col-md-2">
  58 + <ul>
  59 +
  60 + </ul>
  61 + </div>
  62 + <div class="content_r col-md-10">
  63 + <div class="tabel_t">
  64 + <div class="name">
  65 + <h1></h1>
  66 + </div>
  67 + <div class="circle row">
  68 + <div class="col-md-6">
  69 + <!-- <div id="myStathalf" data-dimension="350" data-text="9/19" data-info="参与测试" data-width="10" data-fontsize="38" data-percent="35" data-fgcolor="#8ad254" data-bgcolor="#a9f9ff" data-type="half" data-fill="#50b5c9"></div> -->
  70 +
  71 + </div>
  72 + <div class="col-md-6">
  73 + <!-- <div id="myStathalf1" data-dimension="350" data-text="36%" data-info="个人平均得分率" data-width="10" data-fontsize="38" data-percent="35" data-fgcolor="#8ad254" data-bgcolor="#a9f9ff" data-type="half" data-fill="#50b5c9"></div> -->
  74 +
  75 + </div>
  76 + </div>
  77 + <div class="info row">
  78 + <div class="col-md-6">
  79 + <p>
  80 + Average Class Score Rate<span id="class_avg">0.0</span>%
  81 + </p>
  82 + </div>
  83 + <div class="col-md-6">
  84 + <p>
  85 + The highest scoring rate<span id="class_max">0.0</span>%
  86 + </p>
  87 + </div>
  88 + </div>
  89 + <div class="prev"></div>
  90 + <div class="next"></div>
  91 + </div>
  92 + <div class="tabel_b">
  93 + <div class="tab_top row">
  94 + <div class="col-md-3">Correctness Rate Trend Contrast Chart</div>
  95 + <div class="col-md-9">
  96 + <div class="color">
  97 + <ul>
  98 + <li><span class="green"></span>Class average</li>
  99 + <li><span class="blue"></span>Student</li>
  100 + <li><span class="yellow"></span>Best</li>
  101 + <div class="clear"></div>
  102 + </ul>
  103 + </div>
  104 + <div class="check_box">
  105 + <input type="radio" checked value="1" name="check" id="check1" />
  106 + <label for="check1">Score rate</label> <input type="radio" value="2"
  107 + name="check" id="check2" /> <label for="check2">Score</label>
  108 + </div>
  109 + </div>
  110 + </div>
  111 + <div class="tabel_content">
  112 + <div id="main" style="width: 100%;height:400px;"></div>
  113 + </div>
  114 + </div>
  115 + </div>
  116 + </div>
  117 + <script type="">
  118 + var URL = '<%=basePath%>${URL}';
  119 + </script>
  120 + <script src="../static/js/en_control1.js?a=1"></script>
  121 + <!-- 日期框 -->
  122 + <script>
  123 + //lay('#version').html('-v'+ laydate.v);
  124 + //日期范围
  125 + // laydate.render({
  126 + // elem: '#test6'
  127 + // ,range: true
  128 + // });
  129 + $(document).ready(function(){
  130 + // window.top.loading.remove();
  131 + });
  132 +
  133 + $.fn.datepicker.dates['en'] = {
  134 + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  135 + daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  136 + daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
  137 + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
  138 + monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
  139 + today: "Today",
  140 + clear: "Clear",
  141 + format: "mm/dd/yyyy",
  142 + titleFormat: "MM yyyy", /* Leverages same syntax as 'format' */
  143 + weekStart: 0
  144 + };
  145 + //日期框
  146 + $('.date-picker').datepicker({
  147 + autoclose: true,
  148 + todayHighlight: true,
  149 + language: 'en'
  150 + });
  151 +</script>
  152 +
  153 +
  154 +
  155 +</body>
  156 +</html>
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/en_teach_paper.jsp 0 → 100644
  1 +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2 +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4 +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  8 +%>
  9 +<!DOCTYPE html>
  10 +<html lang="zh-CN">
  11 + <head>
  12 + <meta charset="utf-8">
  13 + <meta http-equiv="X-UA-Compatible" content="IE=edge">
  14 + <meta name="viewport" content="width=device-width, initial-scale=1">
  15 + <title>SunVote Class Paper Management</title>
  16 +
  17 + <!-- Bootstrap -->
  18 + <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  19 +
  20 + <link rel="stylesheet" href="../static/ace/css/datepicker.css" />
  21 + <link href="../static/css/teach.css" rel="stylesheet">
  22 + <link href="../static/css/paper.css?t=1" rel="stylesheet">
  23 + </head>
  24 + <body>
  25 +
  26 + <div class="head_box">
  27 + <div class="box_header">
  28 + <div class="head_box_l">
  29 + <p>
  30 + <span class="right_b"></span>SunVote Class Paper Management
  31 + </p>
  32 + </div>
  33 + <div class="head_box_r">
  34 + <input class="date-picker" type="text" placeholder="Start Date" name="lastStart" id="lastStart" data-date-format="yyyy-mm-dd" readonly="readonly" value=""/>
  35 + <input type="text" class="date-picker" placeholder="End Date" name="lastEnd" id="lastEnd" data-date-format="yyyy-mm-dd" readonly="readonly" value=""/>
  36 + <select name="dealer_id_2" id="dealer_id_2" class="selectpicker show-tick form-control" data-width="98%" data-first-option="false" required data-live-search="true">
  37 + <!--班级列表-->
  38 + </select>
  39 + <a onclick="tosearch();"><img
  40 + src="../static/images/search.png" /></a>
  41 + </div>
  42 + <div class="clear"></div>
  43 + </div>
  44 + <div style="padding:0 5%;background:#fff;">
  45 + <table class="table table-striped">
  46 + <col style="width: 10%" />
  47 + <col style="width: 20%" />
  48 + <col style="width: 10%" />
  49 + <col style="width: 10%" />
  50 + <col style="width: 10%" />
  51 + <col style="width: 20%" />
  52 + <col style="width: 10%" />
  53 + <col style="width: 10%" />
  54 + <thead>
  55 + <tr>
  56 + <th><input type="checkbox" name='ids' id="ids" />Serial No.</th>
  57 + <th>Test Paper Title</th>
  58 + <th>Class</th>
  59 + <th>Subject</th>
  60 + <th>Exam Time</th>
  61 + <th>Create Time</th>
  62 + <th>View</th>
  63 + <th>Operate</th>
  64 + </tr>
  65 + </thead>
  66 + </table>
  67 + </div>
  68 + <div class="clearfix"></div>
  69 + </div>
  70 + <div class="table_box" style="margin-top:30px">
  71 + <table class="table table-striped">
  72 + <col style="width: 10%" />
  73 + <col style="width: 20%" />
  74 + <col style="width: 10%" />
  75 + <col style="width: 10%" />
  76 + <col style="width: 10%" />
  77 + <col style="width: 20%" />
  78 + <col style="width: 10%" />
  79 + <tbody id="tab_body">
  80 +
  81 + </tbody>
  82 + </table>
  83 +
  84 +
  85 + <div class="footer" style="margin-top:50px">
  86 + <div class="creat">
  87 + <input type="button" id="creatPaper" value="New Paper " />
  88 + </div>
  89 + <div class="removeAll">
  90 + <input type="button" onclick="deleteAll()" value="Batch delete" />
  91 + </div>
  92 + <div class="page_box">
  93 +
  94 + <div class="pagination" style="float: right;padding-top: 0px;margin-top: 0px;">${page.pageStr}</div>
  95 + </div>
  96 + </div>
  97 + </div>
  98 + <div class="modal fade" id="myModal" tabindex="-1" role="dialog">
  99 + <div class="modal-dialog" role="document">
  100 + <div class="modal-content">
  101 + <div class="modal-header">
  102 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  103 + <h4 class="modal-title">Please select class</h4>
  104 + </div>
  105 + <div class="modal-body">
  106 + <form class="form-horizontal">
  107 + <div class="classList">
  108 + <ul>
  109 +
  110 + </ul>
  111 + </div>
  112 + </form>
  113 + </div>
  114 + <div class="modal-footer">
  115 + <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
  116 + <button type="button" class="btn btn-primary" id="submit" onclick="setQUestion()">Ok</button>
  117 + </div>
  118 + </div><!-- /.modal-content -->
  119 + </div><!-- /.modal-dialog -->
  120 + </div><!-- /.modal -->
  121 +
  122 +
  123 + <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
  124 + <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
  125 + <script src="../static/ace/js/date-time/bootstrap-datepicker.js"></script>
  126 + <script src="../static/ace/js/bootbox.js"></script>
  127 + <script type="text/javascript">
  128 + var url = "<%=basePath%>";
  129 + $.fn.datepicker.dates['en'] = {
  130 + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  131 + daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  132 + daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
  133 + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
  134 + monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
  135 + today: "Today",
  136 + clear: "Clear",
  137 + format: "mm/dd/yyyy",
  138 + titleFormat: "MM yyyy", /* Leverages same syntax as 'format' */
  139 + weekStart: 0
  140 + };
  141 + //日期框
  142 + $('.date-picker').datepicker({
  143 + autoclose: true,
  144 + todayHighlight: true,
  145 + language: 'en'
  146 + });
  147 +
  148 + var view = "View" ;
  149 + </script>
  150 + <script src="../static/js/teach_paper.js?a=1"></script>
  151 +</html>
0 152 \ No newline at end of file
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/en_teacher_main.jsp 0 → 100644
  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 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme() + "://"
  8 + + request.getServerName() + ":" + request.getServerPort()
  9 + + path + "/";
  10 +%>
  11 +<!DOCTYPE html>
  12 +<html lang="zh-CN">
  13 +<head>
  14 +<meta charset="utf-8">
  15 +<meta http-equiv="X-UA-Compatible" content="IE=edge">
  16 +<meta name="viewport" content="width=device-width, initial-scale=1">
  17 +<title>SunVote-Education Management System</title>
  18 +
  19 +<!-- Bootstrap -->
  20 +<link
  21 + href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"
  22 + rel="stylesheet">
  23 +<link href="../static/css/teach.css?a=1" rel="stylesheet">
  24 +<link href="../static/css/mb_style.css" rel="stylesheet">
  25 +
  26 +<!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
  27 +<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
  28 +<!--[if lt IE 9]>
  29 + <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  30 + <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
  31 + <![endif]-->
  32 +</head>
  33 +<body>
  34 + <div class="header">
  35 + <div class="logo">
  36 + <img src="../static/images/en_logo.png" />
  37 + </div>
  38 + <div class="out">
  39 + <a href="../logout"><img src="../static/images/close.png" />Log out</a>
  40 + </div>
  41 + <div class="clear"></div>
  42 + </div>
  43 + <div class="content">
  44 + <div class="content_l">
  45 + <div class="info_tab">
  46 + <div class="head_pic">
  47 + <img src="../static/images/head_defult.png" />
  48 + </div>
  49 + <div class="name">
  50 + <p>Welcome!</p>
  51 + <p id="name">${pd.TEACHER[0].TEACHER_NAME }</p>
  52 + <p id="school">${pd.TEACHER[0].SCHOOL_NAME }</p>
  53 + </div>
  54 + </div>
  55 + <div class="class tab1">
  56 + <p>
  57 + Class Management<span class="right jiao"></span>
  58 + </p>
  59 + <ul class="menu_1">
  60 + <c:forEach items="${pd.TEACHER}" var="var" varStatus="vs">
  61 + <li onclick="event.stopPropagation();chooseClass('${var.CLASS_ID}','${var.TERM_ID}')"><p>${var.GRADE_ENAME} ${var.SUBJECT_ENAME}
  62 + <span>${var.CLASS_NAME}</span></p>
  63 + </li>
  64 + </c:forEach>
  65 +
  66 + </ul>
  67 + </div>
  68 + <div class="testpaper tab1">
  69 + <p>Paper Management<span class="right jiao"></span></p>
  70 + <ul class="menu_1">
  71 + <li >
  72 + <p id="qingsongkao_paper">E-exam Paper Management</p>
  73 + <!-- <ul class="menu_2">
  74 + <li><p>高一数学 202班</p></li>
  75 + <li><p>高一数学 203班</p></li>
  76 + </ul> -->
  77 + </li>
  78 + <li>
  79 + <p id="jishice_paper">SunVote Class Paper Management</p>
  80 +
  81 + <!-- <ul class="menu_2">
  82 + <li><p>高一数学 202班</p></li>
  83 + <li><p>高一数学 203班</p></li>
  84 + </ul> -->
  85 + </li>
  86 + </ul>
  87 +
  88 + </div>
  89 + <div class="analyse tab1">
  90 + <p>
  91 + Exam Analysis<span class="right jiao"></span>
  92 + </p>
  93 +
  94 + <ul class="menu_1">
  95 + <li >
  96 + <p>E-exam Examination Analysis</p>
  97 + <ul class="menu_2">
  98 + <c:forEach items="${pd.TEACHER}" var="var" varStatus="vs">
  99 + <li onclick="event.stopPropagation();report('${var.CLASS_ID}')"><p>${var.CLASS_NAME} Score</p></li>
  100 + </c:forEach>
  101 + </ul>
  102 + </li>
  103 + <li>
  104 + <p>SunVote Class Exam Analysis</p>
  105 + <ul class="menu_2">
  106 + <c:forEach items="${pd.TEACHER}" var="var" varStatus="vs">
  107 + <li onclick="event.stopPropagation();report2('${var.CLASS_ID}')"><p>${var.CLASS_NAME} Score</p></li>
  108 + </c:forEach>
  109 + </ul>
  110 + </li>
  111 + </ul>
  112 +
  113 + <%-- <ul class="menu_1">
  114 + <c:forEach items="${pd.TEACHER}" var="var" varStatus="vs">
  115 + <li onclick="event.stopPropagation();report('${var.CLASS_ID}')"><p>${var.CLASS_NAME} 成绩</p></li>
  116 + </c:forEach>
  117 + </ul> --%>
  118 + </div>
  119 + </div>
  120 + <div class="content_r">
  121 + <iframe name="mainFrame" id="mainFrame" frameborder="0" width="100%" height="100%"></iframe>
  122 +
  123 + </div>
  124 +
  125 + <div class="modal fade title_time" tabindex="-1" role="dialog">
  126 + <div class="modal-dialog" role="document" style="z-index:1400">
  127 + <div class="modal-content">
  128 + <div class="modal-header">
  129 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  130 + <h4 class="modal-title">New Exam Paper</h4>
  131 + </div>
  132 + <div class="modal-body">
  133 + <div class="form-group">
  134 + <label for="enter_title" class="col-sm-4 control-label">Exam Title</label>
  135 + <div class="col-sm-6">
  136 + <input type="text" class="form-control" id="enter_title" placeholder="Input test title(not more than 100 characters)" maxlength="100" minlength="1">
  137 + </div>
  138 + <div class="clearfix"></div>
  139 + </div>
  140 + <div class="form-group">
  141 + <label for="enter_time" class="col-sm-4 control-label">Exam Time(Min)</label>
  142 + <div class="col-sm-6">
  143 + <input type="number" class="form-control" id="enter_time" placeholder="Input exam time(Min)" maxlength="3" oninput="if(value.length>3) value=value.slice(0,3)">
  144 + </div>
  145 + <div class="clearfix"></div>
  146 + </div>
  147 +
  148 + <div class="form-group">
  149 + <label for="enter_time" class="col-sm-4 control-label">Template</label>
  150 + <div class="col-sm-6">
  151 + <select class="chosen-select form-control" name="TEMPLATE_ID" id="TEMPLATE_ID" data-placeholder="">
  152 + <option value="">User define</option>
  153 + <c:forEach items="${templateInfos}" var="var" varStatus="vs">
  154 + <option value="${var.PAGETEMPLATE_ID}">${var.NAME}</option>
  155 + </c:forEach>
  156 + </select>
  157 + </div>
  158 + <div class="clearfix"></div>
  159 + </div>
  160 +
  161 + </div>
  162 + <div class="modal-footer">
  163 + <button type="button" class="btn btn-primary" id="time_submit">Ok</button>
  164 + <button type="button" class="btn btn-primary" data-dismiss="modal">Cancel</button>
  165 + </div>
  166 + </div><!-- /.modal-content -->
  167 + </div><!-- /.modal-dialog -->
  168 + </div><!-- /.modal -->
  169 + <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
  170 + <script
  171 + src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  172 + <script src="../static/js/model.js"></script>
  173 + <script src="../static/js/loading.js"></script>
  174 + <script src="../static/js/remove.js?a=2"></script>
  175 + <script src="../static/js/dailog.js"></script>
  176 + <script type="text/javascript">
  177 + function chooseClass(classID,termID){
  178 + var path = "../student/listcs.do?class_id=" + classID + "&term_id=" + termID ;
  179 + //$(".content_r").html('<iframe name="mainFrame" id="mainFrame" frameborder="0" style="width:100%;height:'+$(".content_l").height()+'px;" src=' + path + '></iframe>');
  180 + if($("#mainFrame").attr('src') != (path)){
  181 + $("#mainFrame").attr('src',path);
  182 + window.top.loading.show();
  183 + }
  184 + }
  185 +
  186 + function report(classId){
  187 + //window.open('<%=basePath%>report/report.do?classid=' + classId);
  188 + //if($("#mainFrame").attr('src') != ('<%=basePath%>report/report.do?classid=' + classId)){
  189 + $("#mainFrame").attr('src','<%=basePath%>report/report.do?classid=' + classId);
  190 + window.top.loading.show();
  191 + //}
  192 + }
  193 + function report2(classId){
  194 + //window.open('<%=basePath%>report/report.do?classid=' + classId);
  195 + //if($("#mainFrame").attr('src') != ('<%=basePath%>report/report.do?classid=' + classId)){
  196 + $("#mainFrame").attr('src','<%=basePath%>teacher/test_list.do?classid=' + classId);
  197 + window.top.loading.show();
  198 + //}
  199 + }
  200 +
  201 + $("#time_submit").click(function(){
  202 + var name = $("#enter_title").val();
  203 + var time = $("#enter_time").val();
  204 + var TEMPLATE_ID = $("#TEMPLATE_ID").val();
  205 + if(name != null&& name != '' && time != null && time != ''){
  206 + var itime = parseInt(time);
  207 + if(itime > 0 && itime <= 300){
  208 + self.location.href = encodeURI("<%=basePath%>" + "paper/npaper.do?" + "name=" + name + "&time=" + time +"&TEMPLATE_ID=" + TEMPLATE_ID);
  209 + $(".title_time").modal("hide");
  210 + }else{
  211 + alert("Please input correct time, time cannot exceed 300 minutes");
  212 + }
  213 + }
  214 + });
  215 +
  216 + $("#qingsongkao_paper").click(function (){
  217 + var path = "../paper/list2.do?" ;
  218 + //$(".content_r").html('<iframe name="mainFrame" id="mainFrame" frameborder="0" style="width:100%;height:'+$(".content_l").height()+'px;" src=' + path + '></iframe>');
  219 + if($("#mainFrame").attr('src') != (path)){
  220 + $("#mainFrame").attr('src',path);
  221 + window.top.loading.show();
  222 + }
  223 + });
  224 +
  225 + $("#jishice_paper").click(function (){
  226 + var path = "../teacher/teach_paper.do?" ;
  227 + //if($("#mainFrame").attr('src') != (path)){
  228 + $("#mainFrame").attr('src',path);
  229 + window.top.loading.show();
  230 + //}
  231 + });
  232 +
  233 + var defaultUrl = '${pd.DEFAULTURL}' ;
  234 + if(defaultUrl != '' && defaultUrl != ''){
  235 + $("#mainFrame").attr('src',defaultUrl);
  236 + }
  237 + </script>
  238 +</body>
  239 +</html>
0 240 \ No newline at end of file
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/en_teacher_report_1.jsp 0 → 100644
  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 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme() + "://"
  8 + + request.getServerName() + ":" + request.getServerPort()
  9 + + path + "/";
  10 +%>
  11 +
  12 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  13 +<html>
  14 +<head>
  15 +<base href="<%=basePath%>">
  16 +
  17 +<title>${info.CLASS_NAME} Test Paper Score Report</title>
  18 +<base href="<%=basePath%>">
  19 +<!-- 下拉框 -->
  20 +<link rel="stylesheet" href="static/ace/css/chosen.css" />
  21 + <link type="text/css" href="static/css/tablescroller.css" rel="stylesheet" />
  22 +<!-- jsp文件头和头部 -->
  23 +<%@ include file="../../system/index/top.jsp"%>
  24 +<!-- 日期框 -->
  25 +<link rel="stylesheet" href="static/ace/css/datepicker.css" />
  26 +<style>
  27 + .font span{ font-size: 12px;
  28 + font-weight: initial;color:#000;}
  29 + </style>
  30 +</head>
  31 +
  32 +<body style="background:#fff;">
  33 + <div style="padding:20px 20px;">
  34 + <form action="report/report.do" method="post" name="Form" id="Form" style="margin-bottom:0;">
  35 + <input type="hidden" name="CLASSID" id="CLASSID" value="${info.CLASS_ID}" />
  36 + <input type="hidden" name="ROLE" id="ROLE" value="${pd.ROLE}" />
  37 + <table style="margin-top:5px;margin-bottom:20px;">
  38 + <tr>
  39 + <td><div style="width:150px;text-align:center;">Tests: ${info.testsize}</div></td>
  40 + <td><div style="width:150px;text-align:center;">Class list: ${info.CLASS_NAME}</div></td>
  41 +
  42 + <td><div style="width:150px;text-align:center;"><span>Student number: ${info.STUDENT_NUM}</span></div></td>
  43 + <td></td>
  44 + <c:if test="${not empty subjectInfos}">
  45 + <td>
  46 + <select class="chosen-select form-control" name="SUBJECT_ID" id="SUBJECT_ID" data-placeholder="这里输入所属学校">
  47 + <option value="">All</option>
  48 + <c:forEach var="item" items="${subjectInfos}">
  49 + <option value="${item.SUBJECT_ID}" <c:if test="${pd.SUBJECT_ID == item.SUBJECT_ID }">selected = ture</c:if>>${item.SCNAME}</option>
  50 + </c:forEach>
  51 + </select>
  52 + </td>
  53 + </c:if>
  54 + <td style="padding-left:2px;">
  55 + <input
  56 + class="span10 date-picker" name="lastStart" id="lastStart"
  57 + value="${start_date}" type="text" data-date-format="yyyy-mm-dd"
  58 + readonly="readonly" style="width:88px;" placeholder="Start Date"
  59 + title="Start Date" />
  60 + </td>
  61 + <td style="padding-left:2px;"><input
  62 + class="span10 date-picker" name="lastEnd" id="lastEnd" value="${end_date}"
  63 + type="text" data-date-format="yyyy-mm-dd" readonly="readonly"
  64 + style="width:88px;" placeholder="End Date" title="End Date" /></td>
  65 + <td style="vertical-align:top;padding-left:2px"><a
  66 + class="btn btn-light btn-xs" onclick="tosearch();" title="Search"><i
  67 + id="nav-search-icon"
  68 + class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td>
  69 + </tr>
  70 + </table>
  71 + <table id="simple-table"
  72 + class="table table-striped table-bordered table-hover"
  73 + style="margin-top:0px;margin-bottom:0px;">
  74 + <thead>
  75 + <tr>
  76 + <th class="center th_name"><div style="width:150px;">Name</div></th>
  77 + <th class="center "><div style="width:150px;">Average Score Rate</div></th>
  78 + <th class="center"><div style="width:80px;">Total</div></th>
  79 + <c:forEach items="${testpaperList}" var="var" varStatus="vs">
  80 + <th class="center kc"><a
  81 + onclick="paper('${info.CLASS_ID}','${var.TESTPAPER_ID}');"><div style="width:180px; margin: 0 auto;cursor:hand" class="font">${var.NAME}</br><span>${var.CREATE_DATE}</span></div></a></th>
  82 + </c:forEach>
  83 + </tr>
  84 + </thead>
  85 + <tbody>
  86 + <tr>
  87 + <td class="center"><div style="width:150px;">Total score</div></td>
  88 + <td class="center"><div style="width:150px;"></div></td>
  89 + <td class="center"><div style="width:80px;"></div></td>
  90 + <c:forEach items="${testpaperList}" var="var" varStatus="vs">
  91 + <td class="center"><div style="width:80px;margin:0 auto;">${var.TOTAL_SCORE}</div></td>
  92 + </c:forEach>
  93 + </tr>
  94 + <tr>
  95 + <td class="center"><div style="width:150px;">Average Score</div></td>
  96 + <td class="center"><div style="width:150px;"></div></td>
  97 + <td class="center"><div style="width:80px;"></div></td>
  98 + <c:forEach items="${testpaperList}" var="var" varStatus="vs">
  99 + <td class="center"><div style="width:80px;margin:0 auto;">${var.AVG_SCORE}</div></td>
  100 + </c:forEach>
  101 + </tr>
  102 + <tr>
  103 + <td class="center"><div style="width:150px;">Average Score Rate</div></td>
  104 + <td class="center"><div style="width:150px;"></div></td>
  105 + <td class="center"><div style="width:80px;"></div></td>
  106 + <c:forEach items="${testpaperList}" var="var" varStatus="vs">
  107 + <td class="center"><div style="width:80px;margin:0 auto;"><fmt:formatNumber type="number"
  108 + value="${var.TOTAL_SCORE == 0 ? 0: (var.AVG_SCORE / var.TOTAL_SCORE * 100)}"
  109 + maxFractionDigits="2" />%</div></td>
  110 + </c:forEach>
  111 + </tr>
  112 +
  113 + <c:choose>
  114 + <c:when test="${not empty studentList}">
  115 + <c:forEach items="${studentList}" var="var" varStatus="vs">
  116 + <tr>
  117 + <%-- <td class="center"><a
  118 + href="report/student_report?studentid=${var.ID}&class_id=${info.CLASS_ID}">${var.NAME}</a>
  119 + </td> --%>
  120 + <td class="center"><div style="width:150px;cursor:hand"><a
  121 + onclick="student('${info.CLASS_ID}','${var.STUDENT_ID}')">${var.NAME}</a></div>
  122 + </td>
  123 + <td class="center"><div style="width:150px;"><fmt:formatNumber type="number"
  124 + value="${var.TOTALSCORE == 0 ? 0: (var.GETSCORE / var.TOTALSCORE * 100)}"
  125 + maxFractionDigits="2" />%</div></td>
  126 + <td class="center"><div style="width:80px;margin:0 auto;">${var.GETSCORE }</div></td>
  127 + <c:forEach items="${testpaperList}" var="var1" varStatus="vs1">
  128 + <td class="center"><div style="width:180px;margin:0 auto;"><c:set var="TEST_ID"
  129 + value="${var1.TESTPAPER_ID}" /> ${var[TEST_ID] }</div></td>
  130 + </c:forEach>
  131 + </tr>
  132 + </c:forEach>
  133 + </c:when>
  134 + </c:choose>
  135 + </tbody>
  136 + </table>
  137 + <div id="scrollableTable"></div>
  138 + </form>
  139 + </div>
  140 +
  141 + <%@ include file="../../system/index/foot.jsp"%>
  142 + <script src="static/ace/js/bootbox.js"></script>
  143 + <!-- ace scripts -->
  144 + <script src="static/ace/js/ace/ace.js"></script>
  145 + <!-- 下拉框 -->
  146 + <script src="static/ace/js/chosen.jquery.js"></script>
  147 + <!-- 日期框 -->
  148 + <script src="static/ace/js/date-time/bootstrap-datepicker.js"></script>
  149 + <!--提示框-->
  150 + <script type="text/javascript" src="static/js/jquery.tips.js"></script>
  151 +
  152 + <script language="javascript" src="static/js/tablescroller.js"></script>
  153 + <script language="javascript" src="static/js/tablescroller.jquery.js"></script>
  154 +
  155 +
  156 +
  157 + <script type="text/javascript">
  158 + $(function() {
  159 +
  160 + $.fn.datepicker.dates['en'] = {
  161 + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  162 + daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  163 + daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
  164 + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
  165 + monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
  166 + today: "Today",
  167 + clear: "Clear",
  168 + format: "mm/dd/yyyy",
  169 + titleFormat: "MM yyyy", /* Leverages same syntax as 'format' */
  170 + weekStart: 0
  171 + };
  172 + //日期框
  173 + $('.date-picker').datepicker({
  174 + autoclose: true,
  175 + todayHighlight: true,
  176 + language: 'en'
  177 + });
  178 +
  179 + //下拉框
  180 + if (!ace.vars['touch']) {
  181 + $('.chosen-select').chosen({
  182 + allow_single_deselect : true
  183 + });
  184 + $(window).off('resize.chosen').on('resize.chosen', function() {
  185 + $('.chosen-select').each(function() {
  186 + var $this = $(this);
  187 + $this.next().css({
  188 + 'width' : $this.parent().width()
  189 + });
  190 + });
  191 + }).trigger('resize.chosen');
  192 + $(document).on('settings.ace.chosen',
  193 + function(e, event_name, event_val) {
  194 + if (event_name != 'sidebar_collapsed')
  195 + return;
  196 + $('.chosen-select').each(function() {
  197 + var $this = $(this);
  198 + $this.next().css({
  199 + 'width' : $this.parent().width()
  200 + });
  201 + });
  202 + });
  203 + $('#chosen-multiple-style .btn').on(
  204 + 'click',
  205 + function(e) {
  206 + var target = $(this).find('input[type=radio]');
  207 + var which = parseInt(target.val());
  208 + if (which == 2)
  209 + $('#form-field-select-4').addClass(
  210 + 'tag-input-style');
  211 + else
  212 + $('#form-field-select-4').removeClass(
  213 + 'tag-input-style');
  214 + });
  215 + }
  216 +
  217 + //复选框全选控制
  218 + var active_class = 'active';
  219 + $('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on(
  220 + 'click',
  221 + function() {
  222 + var th_checked = this.checked;//checkbox inside "TH" table header
  223 + $(this).closest('table').find('tbody > tr').each(
  224 + function() {
  225 + var row = this;
  226 + if (th_checked)
  227 + $(row).addClass(active_class).find(
  228 + 'input[type=checkbox]').eq(0)
  229 + .prop('checked', true);
  230 + else
  231 + $(row).removeClass(active_class).find(
  232 + 'input[type=checkbox]').eq(0)
  233 + .prop('checked', false);
  234 + });
  235 + });
  236 + });
  237 +
  238 + var role = '${pd.ROLE}';
  239 +
  240 + function precent(avg,total){
  241 + if(total == 0){
  242 + return "0%"
  243 + }
  244 + return Math.round(avg / total * 100)/100 + '%' ;
  245 + }
  246 +
  247 + function tosearch(){
  248 + var url = "<%=basePath%>report/report.do?classid=${info.CLASS_ID}" ;
  249 + var startDate = $("#lastStart").val();
  250 + var endDate = $("#lastEnd").val();
  251 + var subject_id = $("#SUBJECT_ID").val();
  252 + url = url + "&start_date=" + startDate ;
  253 + if(endDate != null){
  254 + url = url + "&end_date=" + endDate;
  255 + }
  256 + if(subject_id != null){
  257 + url = url + "&SUBJECT_ID=" + subject_id;
  258 + }
  259 + if(role == "admin"){
  260 + url = url + "&ROLE=admin" ;
  261 + }
  262 + window.location.href = url;
  263 + window.top.loading.show();
  264 + /* $("#Form").sumbit(); */
  265 + }
  266 +
  267 + function student(classid,studentid){
  268 +
  269 + var url = "<%=basePath%>report/student_report?studentid=" + studentid + "&class_id=" + classid ;
  270 + var startDate = $("#lastStart").val();
  271 + var endDate = $("#lastEnd").val();
  272 + url = url + "&start_date=" + startDate + "&end_date=" + endDate ;
  273 + var SUBJECT_ID = $("#SUBJECT_ID").val();
  274 + if(SUBJECT_ID != null && SUBJECT_ID != ''){
  275 + url = url + "&SUBJECT_ID="+ SUBJECT_ID ;
  276 + }
  277 + window.self.location.href = url;
  278 + window.top.loading.show();
  279 + }
  280 +
  281 + function paper(class_id,testpaper_id){
  282 + var url = "<%=basePath%>report/test_report?TestID=" + testpaper_id + "&class_id=" + class_id;
  283 + var startDate = $("#lastStart").val();
  284 + var endDate = $("#lastEnd").val();
  285 + url = url + "&start_date=" + startDate + "&end_date=" + endDate ;
  286 + window.self.location.href = url;
  287 + window.top.loading.show();
  288 + }
  289 +
  290 + $(document).ready(function(){
  291 + window.top.loading.remove();
  292 +
  293 + var sour = "${testpaperList}";
  294 +
  295 + if(sour != null && sour.length > 3){
  296 + var _width = $('#mainFrame', parent.document).width()-40;
  297 + var _heigh = $('#mainFrame', parent.document).height()-100;
  298 + var options = {
  299 + width: _width,
  300 + height: _heigh,
  301 + pinnedRows: 4,
  302 + pinnedCols: 3,
  303 + container: "#scrollableTable",
  304 + removeOriginal: true
  305 + };
  306 + $("#simple-table").tablescroller(options);
  307 + var name_height = $(".kc").last().parent().height()-18.5;
  308 + console.log(name_height);
  309 + $(".th_name").height(name_height);
  310 + }
  311 +
  312 + });
  313 +
  314 + </script>
  315 +
  316 +</body>
  317 +</html>
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/en_teacher_report_test.jsp 0 → 100644
  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 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme() + "://"
  8 + + request.getServerName() + ":" + request.getServerPort()
  9 + + path + "/";
  10 +%>
  11 +
  12 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  13 +<html>
  14 +<head>
  15 +<base href="<%=basePath%>">
  16 +
  17 +<title>Test Paper Score Report</title>
  18 +<base href="<%=basePath%>">
  19 +<!-- 下拉框 -->
  20 +<link rel="stylesheet" href="static/ace/css/chosen.css" />
  21 + <link type="text/css" href="static/css/tablescroller.css" rel="stylesheet" />
  22 +<!-- jsp文件头和头部 -->
  23 +<%@ include file="../../system/index/top.jsp"%>
  24 +<!-- 日期框 -->
  25 +<link rel="stylesheet" href="static/ace/css/datepicker.css" />
  26 +<style>
  27 +.table{padding-bottom:0 !important;}
  28 +</style>
  29 +</head>
  30 +
  31 +<body style="background:#fff;/* overflow-y:hidden; */">
  32 + <div style="padding:20px 20px;">
  33 +
  34 + <form action="report/report_test.do" method="post" name="Form" id="Form">
  35 + <input type="hidden" name="CLASSID" id="CLASSID" value="${info.CLASS_ID}" />
  36 + <table style="margin-top:5px;">
  37 + <tr style="height: 30px">
  38 + <td>Exam Title: ${testpaperInfo.NAME}</td>
  39 + <c:if test="${display}">
  40 + <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
  41 + <td>Teacher: ${teacherPd.NAME}</td>
  42 + <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
  43 + <td>Subject: ${subjectPd.CNAME}</td>
  44 + </c:if>
  45 + </tr>
  46 + <tr style="height: 30px">
  47 + <td>Paper collecting time: ${testpaperInfo.END_DATE}</td>
  48 + </tr>
  49 + <tr style="height: 30px">
  50 + <td>Class list:${classInfo.CLASS_NAME}</td>
  51 + <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
  52 + <td><span>Student number: ${classInfo.studentNum}</span></td>
  53 +
  54 + </tr>
  55 + </table>
  56 + <table id="simple-table"
  57 + class="table table-striped table-bordered table-hover"
  58 + style="margin-top:0px;margin-bottom:0;">
  59 + <thead>
  60 + <tr>
  61 + <th class="center"><div style="width:80px;">Name</div></th>
  62 + <th class="center"><div style="width:80px;">Ranking</div></th>
  63 + <th class="center"><div style="width:80px;">Score</div></th>
  64 + <th class="center"><div style="width:80px;">Student ID</div></th>
  65 + <th class="center"><div style="width:109px;">Keypad</div></th>
  66 + <!-- <th class="center"><div style="width:80px;">正确率</div></th> -->
  67 + <c:forEach items="${questionInfo}" var="var" varStatus="vs">
  68 + <th class="center"><div style="width:80px;margin:0 auto;">Question ${vs.index+1}</div></th>
  69 + </c:forEach>
  70 + <!-- <th class="center"><div style="width:150px;">非选择题得分</div></th> -->
  71 + <th class="center"><div style="width:80px;margin:0 auto;">总分</div></th>
  72 + </tr>
  73 + </thead>
  74 + <tbody>
  75 + <tr>
  76 + <td class="center"><div style="width:109px;">--</div></td>
  77 + <td class="center"><div style="width:80px;">--</div></td>
  78 + <td class="center"><div style="width:80px;">--</div></td>
  79 + <td class="center"><div style="width:80px;">--</div></td>
  80 + <!-- <td class="center"></td> -->
  81 + <td class="center"><div style="width:80px;">--</div></td>
  82 + <c:forEach items="${questionInfo}" var="var" varStatus="vs">
  83 + <td class="center"><div style="width:80px;margin:0 auto;"><c:set var="key"><c:out value="${vs.index+1}" /></c:set><fmt:formatNumber type="number"
  84 + value="${(questionInfo[key] / classInfo.studentNum * 100)}"
  85 + maxFractionDigits="1" />%</div></td>
  86 + </c:forEach>
  87 + <!-- <td class="center"></td> -->
  88 + <td class="center"><div style="width:80px;margin:0 auto;"></div></td>
  89 + </tr>
  90 +
  91 + <c:choose>
  92 + <c:when test="${not empty studentInfo}">
  93 + <c:forEach items="${studentInfo}" var="var" varStatus="vs">
  94 + <tr>
  95 + <td class="center"><div style="width:80px;">${var.NAME}</div></td>
  96 + <td class="center"><div style="width:80px;">${var.RANK_NUM}</div></td>
  97 + <td class="center"><div style="width:80px;">${var.GETSCORE}</div></td>
  98 + <td class="center"><div style="width:80px;">${var.NUMBER}</div></td>
  99 + <td class="center"><div style="width:109px;">${var.KEYPAD_ID}</div></td>
  100 + <%-- <td class="center">${var.RIGHT}</td> --%>
  101 + <c:forEach items="${questionInfo}" var="var1" varStatus="vs1">
  102 + <td class="center" <c:if test="${var.detail[vs1.index].RIGHT== '1'}">style="background:#0bb8b9"</c:if>div style="width:80px;margin:0 auto;">${var.detail[vs1.index].ANSWER}</div></td>
  103 + </c:forEach>
  104 + <%-- <td class="center">${var.OTHER_SCORE}</td> --%>
  105 + <td class="center"><div style="width:80px;margin:0 auto;">${var.GETSCORE}</div></td>
  106 + </tr>
  107 + </c:forEach>
  108 + </c:when>
  109 + </c:choose>
  110 + </tbody>
  111 + </table>
  112 + <div id="scrollableTable"></div>
  113 + </form>
  114 + </div>
  115 +
  116 + <%@ include file="../../system/index/foot.jsp"%>
  117 + <script src="static/ace/js/bootbox.js"></script>
  118 + <!-- ace scripts -->
  119 + <script src="static/ace/js/ace/ace.js"></script>
  120 + <!-- 下拉框 -->
  121 + <script src="static/ace/js/chosen.jquery.js"></script>
  122 + <!-- 日期框 -->
  123 + <script src="static/ace/js/date-time/bootstrap-datepicker.js"></script>
  124 + <!--提示框-->
  125 + <script type="text/javascript" src="static/js/jquery.tips.js"></script>
  126 +
  127 + <script language="javascript" src="static/js/tablescroller.js"></script>
  128 + <script language="javascript" src="static/js/tablescroller.jquery.js"></script>
  129 +
  130 +
  131 + <script type="text/javascript">
  132 + $(document).ready(function(){
  133 + window.top.loading.remove();
  134 +
  135 + var _heigh = $('#mainFrame', parent.document).height()-120;
  136 + //console.log(_heigh);
  137 +
  138 + var options = {
  139 + width: '100%',
  140 + height: _heigh,
  141 + pinnedRows: 2,
  142 + pinnedCols: 5,
  143 + container: "#scrollableTable",
  144 + removeOriginal: true
  145 + };
  146 +
  147 +// $("#simple-table").tablescroller(options);
  148 + });
  149 + $(function() {
  150 +
  151 + //日期框
  152 + $('.date-picker').datepicker({
  153 + autoclose : true,
  154 + todayHighlight : true
  155 + });
  156 +
  157 + //下拉框
  158 + if (!ace.vars['touch']) {
  159 + $('.chosen-select').chosen({
  160 + allow_single_deselect : true
  161 + });
  162 + $(window).off('resize.chosen').on('resize.chosen', function() {
  163 + $('.chosen-select').each(function() {
  164 + var $this = $(this);
  165 + $this.next().css({
  166 + 'width' : $this.parent().width()
  167 + });
  168 + });
  169 + }).trigger('resize.chosen');
  170 + $(document).on('settings.ace.chosen',
  171 + function(e, event_name, event_val) {
  172 + if (event_name != 'sidebar_collapsed')
  173 + return;
  174 + $('.chosen-select').each(function() {
  175 + var $this = $(this);
  176 + $this.next().css({
  177 + 'width' : $this.parent().width()
  178 + });
  179 + });
  180 + });
  181 + $('#chosen-multiple-style .btn').on(
  182 + 'click',
  183 + function(e) {
  184 + var target = $(this).find('input[type=radio]');
  185 + var which = parseInt(target.val());
  186 + if (which == 2)
  187 + $('#form-field-select-4').addClass(
  188 + 'tag-input-style');
  189 + else
  190 + $('#form-field-select-4').removeClass(
  191 + 'tag-input-style');
  192 + });
  193 + }
  194 +
  195 + //复选框全选控制
  196 + var active_class = 'active';
  197 + $('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on(
  198 + 'click',
  199 + function() {
  200 + var th_checked = this.checked;//checkbox inside "TH" table header
  201 + $(this).closest('table').find('tbody > tr').each(
  202 + function() {
  203 + var row = this;
  204 + if (th_checked)
  205 + $(row).addClass(active_class).find(
  206 + 'input[type=checkbox]').eq(0)
  207 + .prop('checked', true);
  208 + else
  209 + $(row).removeClass(active_class).find(
  210 + 'input[type=checkbox]').eq(0)
  211 + .prop('checked', false);
  212 + });
  213 + });
  214 + });
  215 +
  216 +
  217 + function precent(avg,total){
  218 + if(total == 0){
  219 + return "0%"
  220 + }
  221 + return Math.round(avg / total * 100)/100 + '%' ;
  222 + }
  223 + </script>
  224 +
  225 +</body>
  226 +</html>
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/en_test_list.jsp 0 → 100644
  1 +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2 +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4 +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  8 +%>
  9 +<!DOCTYPE html>
  10 +<html lang="zh-CN">
  11 + <head>
  12 + <meta charset="utf-8">
  13 + <meta http-equiv="X-UA-Compatible" content="IE=edge">
  14 + <meta name="viewport" content="width=device-width, initial-scale=1">
  15 + <title>SunVote Class</title>
  16 +
  17 + <!-- Bootstrap -->
  18 + <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  19 + <link rel="stylesheet" href="../static/ace/css/datepicker.css" />
  20 + <link href="../static/css/teach.css" rel="stylesheet">
  21 + <link href="../static/css/paper.css?t=1" rel="stylesheet">
  22 + </head>
  23 + <body>
  24 + <div class="head_box">
  25 + <div class="box_header">
  26 + <div class="head_box_l">
  27 + <p>
  28 + <span class="right_b"></span>SunVote Class Test Paper Management
  29 + </p>
  30 + </div>
  31 + <div class="head_box_r">
  32 + <input class="date-picker" type="text" placeholder="Start Date" name="lastStart" id="lastStart" data-date-format="yyyy-mm-dd" readonly="readonly" value=""/>
  33 + <input type="text" class="date-picker" placeholder="End Date" name="lastEnd" id="lastEnd" data-date-format="yyyy-mm-dd" readonly="readonly" value=""/>
  34 + <a onclick="tosearch();"><img
  35 + src="../static/images/search.png" /></a>
  36 + </div>
  37 + <div class="clear"></div>
  38 + </div>
  39 + <div style="padding:0 5%;background:#fff;">
  40 + <table class="table table-striped">
  41 + <col style="width: 10%" />
  42 + <col style="width: 20%" />
  43 + <col style="width: 10%" />
  44 + <col style="width: 20%" />
  45 + <col style="width: 10%" />
  46 + <thead>
  47 + <tr>
  48 + <th>Serial No.</th>
  49 + <th>Test Paper Title</th>
  50 + <th>Class</th>
  51 + <th>Create Time</th>
  52 + <th>Operate</th>
  53 + </tr>
  54 + </thead>
  55 + </table>
  56 + </div>
  57 + <div class="clearfix"></div>
  58 + </div>
  59 + <div class="table_box">
  60 + <table class="table table-striped">
  61 + <col style="width: 10%" />
  62 + <col style="width: 20%" />
  63 + <col style="width: 10%" />
  64 + <col style="width: 20%" />
  65 + <col style="width: 10%" />
  66 + <tbody id="tab_body">
  67 + <!--测验列表-->
  68 + </tbody>
  69 + </table>
  70 +
  71 +
  72 + <div class="footer">
  73 + <div class="page_box">
  74 + <div class="pagination" style="float: right;padding-top: 0px;margin-top: 0px;">${page.pageStr}</div>
  75 + </div>
  76 + </div>
  77 + </div>
  78 +
  79 + <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
  80 + <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
  81 + <script src="../static/ace/js/date-time/bootstrap-datepicker.js"></script>
  82 + <script type="text/javascript">
  83 + var user_id= "${pd.userId}";
  84 + var url = "<%=basePath%>";
  85 + </script>
  86 + <script src="../static/js/en_test_list.js?a=1"></script>
  87 +</html>
0 88 \ No newline at end of file
... ...
WebRoot/WEB-INF/jsp/system/index/en_login.jsp 0 → 100644
  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 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme() + "://"
  8 + + request.getServerName() + ":" + request.getServerPort()
  9 + + path + "/";
  10 +%>
  11 +<!DOCTYPE html>
  12 +<html lang="zh-CN">
  13 +<head>
  14 +<meta charset="utf-8">
  15 +<meta http-equiv="X-UA-Compatible" content="IE=edge">
  16 +<meta name="viewport" content="width=device-width, initial-scale=1">
  17 +<title>SunVote-Education Management System</title>
  18 +
  19 +<!-- Bootstrap -->
  20 +<link
  21 + href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"
  22 + rel="stylesheet">
  23 +<link href="static/login/style_login.css" rel="stylesheet">
  24 +
  25 +<script src="static/js/jquery-1.7.2.js"></script>
  26 +<script src="static/login/js/jquery.easing.1.3.js"></script>
  27 +<script type="text/javascript" src="static/js/jQuery.md5.js"></script>
  28 +<script type="text/javascript" src="static/js/jquery.tips.js"></script>
  29 +<script type="text/javascript" src="static/js/jquery.cookie.js"></script>
  30 +<script type="text/javascript" src="static/js/lang.js"></script>
  31 +<script type="text/javascript" >
  32 + if(lang() != 'en'){
  33 +
  34 + }
  35 +</script>
  36 +<style type="text/css">
  37 +.div_foot {
  38 + height: 30px;
  39 + line-height: 35px;
  40 + position: fixed;
  41 + bottom: 0;
  42 + width: 100%;
  43 + text-align: center;
  44 + font-family: Arial;
  45 + font-size: 14px;
  46 + letter-spacing: 1px;
  47 +}
  48 +</style>
  49 +
  50 +<!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
  51 +<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
  52 +<!--[if lt IE 9]>
  53 + <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  54 + <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
  55 + <![endif]-->
  56 +</head>
  57 +<body>
  58 + <div class="content">
  59 + <div class="content_t">
  60 + <img src="static/login/en_title.png" alt="SunVote" />
  61 + </div>
  62 + <div class="content_b">
  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="Username" /> <input type="password" name="password"
  67 + id="password" placeholder="Password" value="" /> <a href="#"
  68 + onclick="severCheck();" class="login_btn">Login</a>
  69 + </form>
  70 +
  71 + </div>
  72 + </div>
  73 + <div class="div_foot">
  74 + &copy;Changsha SunVote Limited. All rights reserved. Record License No. <a target= "_blank" href="http://www.miitbeian.gov.cn/">湘ICP备09025927号-10</a>
  75 + </div>
  76 + <script type="text/javascript">
  77 +
  78 + if(window.top != window.self){
  79 + window.top.location.href = "<%=basePath%>";
  80 + }
  81 + //客户端校验
  82 + function check() {
  83 +
  84 + if ($("#loginname").val() == "") {
  85 + $("#loginname").tips({
  86 + side : 2,
  87 + msg : 'User name cannot be empty',
  88 + bg : '#AE81FF',
  89 + time : 3
  90 + });
  91 + showfh();
  92 + $("#loginname").focus();
  93 + return false;
  94 + } else {
  95 + $("#loginname").val(jQuery.trim($('#loginname').val()));
  96 + }
  97 + if ($("#password").val() == "") {
  98 + $("#password").tips({
  99 + side : 2,
  100 + msg : 'Password cannot be empty',
  101 + bg : '#AE81FF',
  102 + time : 3
  103 + });
  104 + showfh();
  105 + $("#password").focus();
  106 + return false;
  107 + }
  108 +
  109 + $("#loginbox").tips({
  110 + side : 1,
  111 + msg : 'Logining, please wait...',
  112 + bg : '#68B500',
  113 + time : 10
  114 + });
  115 +
  116 + return true;
  117 + }
  118 +
  119 + //服务器校验
  120 + function severCheck(){
  121 + if(check()){
  122 + var loginname = $("#loginname").val();
  123 + var password = $("#password").val();
  124 + var code = loginname+";;;"+password+";;;" + $("#code").val();
  125 + $.ajax({
  126 + type: "POST",
  127 + url: 'login_login',
  128 + data: {KEYDATA:code,tm:new Date().getTime()},
  129 + dataType:'json',
  130 + cache: false,
  131 + success: function(data){
  132 + if("success" == data.result){
  133 + saveCookie();
  134 + if(data.teacher != null){
  135 + window.location.href="main/teacher";
  136 + }else if(data.admin != null){
  137 + window.location.href="main/admin";
  138 + }else{
  139 + window.location.href="main/index";
  140 + }
  141 + }else if("usererror" == data.result){
  142 + $("#loginname").tips({
  143 + side : 1,
  144 + msg : "Incorrect user name or password",
  145 + bg : '#FF5080',
  146 + time : 15
  147 + });
  148 + showfh();
  149 + $("#loginname").focus();
  150 + }else if("codeerror" == data.result){
  151 + $("#code").tips({
  152 + side : 1,
  153 + msg : "Incorrect captcha input",
  154 + bg : '#FF5080',
  155 + time : 15
  156 + });
  157 + showfh();
  158 + $("#code").focus();
  159 + }else{
  160 + $("#loginname").tips({
  161 + side : 1,
  162 + msg : "Missing parameters",
  163 + bg : '#FF5080',
  164 + time : 15
  165 + });
  166 + showfh();
  167 + $("#loginname").focus();
  168 + }
  169 + }
  170 + });
  171 + }
  172 + }
  173 +
  174 + function saveCookie() {
  175 + if ($("#saveid").attr("checked")) {
  176 + $.cookie('loginname', $("#loginname").val(), {
  177 + expires : 7
  178 + });
  179 + $.cookie('password', $("#password").val(), {
  180 + expires : 7
  181 + });
  182 + }
  183 + }
  184 + </script>
  185 + <script type="text/javascript"
  186 + src="static/login/js/jquery-1.5.1.min.js"></script>
  187 + <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
  188 + <script
  189 + src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  190 + <script src="static/login/js/bootstrap.min.js"></script>
  191 + <script src="static/js/jquery-1.7.2.js"></script>
  192 + <script src="static/login/js/jquery.easing.1.3.js"></script>
  193 + <script src="static/login/js/jquery.mobile.customized.min.js"></script>
  194 + <script src="static/login/js/camera.min.js"></script>
  195 + <script src="static/login/js/templatemo_script.js"></script>
  196 + <script type="text/javascript" src="static/js/jQuery.md5.js"></script>
  197 + <script type="text/javascript" src="static/js/jquery.tips.js"></script>
  198 + <script type="text/javascript" src="static/js/jquery.cookie.js"></script>
  199 +
  200 + <!-- 软键盘控件start -->
  201 + <script type="text/javascript"
  202 + src="static/login/keypad/js/form/keypad.js"></script>
  203 + <script type="text/javascript"
  204 + src="static/login/keypad/js/framework.js"></script>
  205 +</body>
  206 +</html>
0 207 \ No newline at end of file
... ...
WebRoot/static/images/en_logo.png 0 → 100644

4.49 KB

WebRoot/static/images/en_title.png 0 → 100644

12.7 KB

WebRoot/static/js/en_control-604.js 0 → 100644
  1 +var questionNUm = 0;
  2 +/*数字转汉字数字*/
  3 +var chnNumChar = [ "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" ];
  4 +var chnUnitSection = [ "", "万", "亿", "万亿", "亿亿" ];
  5 +var chnUnitChar = [ "", "十", "百", "千" ];
  6 +/* 快速创建答案列表 */
  7 +var score = 0;
  8 +var total_score = 0;
  9 +var answerLen = 0;
  10 +
  11 +
  12 +$(function() {
  13 +
  14 +
  15 + function creat(str_ans, a_num, fraction) {
  16 + // $(".section").remove();
  17 + answer_index_b = $(".section").length + 1;
  18 + /*
  19 + * $(".content").append('<div class="section section-1 single"
  20 + * data-fraction="'+fraction+'" data-score=""> <div class="title"> <h3><span
  21 + * class="que_num">一、</span><span class="que_name">单选</span></h3>
  22 + * <input type="button" class="btn btn-danger pull-right remove"
  23 + * name="remove" value="删除" /> </div> <div class="question_list"></div></div>')
  24 + */
  25 + var str = str_ans.split('');
  26 + console.log(str);
  27 + for (i = 0; i < str.length; i++) {
  28 + if (str[i] == " ") {
  29 + str.splice(i, 1);
  30 + i = i - 1;
  31 + }
  32 + }
  33 + q_num = str.length;
  34 + $(".content").append('<div class="section section-' + answer_index_b+ ' single" data-fraction="'+ fraction+ '" data-score="'
  35 + + (q_num * fraction) + '" style="margin-top:80px;"><div class="title"><h3>Total score of question number ' + answer_index_b+ '(single choice) :'
  36 + + q_num + ' X ' + fraction + ' = ' + (q_num * fraction)
  37 + + ' 分<!--<span>请在试题选项上点击,亮色为该试题的正确答案&nbsp; </span> --></h3> </div><div class="question_list"></div></div>');
  38 + for (var i = 0; i < q_num; i++) {
  39 + str_temp = str[i];
  40 + str_temp = str_temp.toUpperCase()
  41 + code = str_temp.charCodeAt();
  42 + on_index = code - 65;
  43 + questionNUm++;
  44 + if (code < (65 + a_num)) {
  45 + console.log(str_temp);
  46 + $(".section-" + answer_index_b + " .question_list").append(
  47 + '<div class="question question' + (questionNUm)
  48 + + '"><span>' + (questionNUm)
  49 + + '、</span><ul></ul></div>');
  50 + for (var j = 0; j < a_num; j++) {
  51 + option = String.fromCharCode(0x41 + j);
  52 + if (on_index == j) {
  53 + console.log(on_index + "---" + j);
  54 + $(".question" + (questionNUm) + ' ul').append(
  55 + '<li class="btn btn-default on">' + option
  56 + + '</li>');
  57 + } else
  58 + $(".question" + (questionNUm) + ' ul').append(
  59 + '<li class="btn btn-default">' + option
  60 + + '</li>');
  61 + }
  62 + } else {
  63 + alert("Wrong answer of Question " + (i + 1) + ":" + String.fromCharCode(code)
  64 + + ", exceed option number");
  65 + // return;
  66 + }
  67 + }
  68 + $(".section-" + answer_index_b).attr("data-score",
  69 + q_num * fraction);
  70 + total_score += q_num * fraction;
  71 + $("#score_all").text(total_score);
  72 + }
  73 +
  74 + /***************************************************************************
  75 + * 1、单选题 2、完形填空 3、阅读理解 4、判断题 5、多选题
  76 + **************************************************************************/
  77 +
  78 + function addQuestion(type, a_num, index_s_2, index_e_2, fraction2) {
  79 + console.log(type);
  80 + answer_index_b = $(".section").length + 1;
  81 + var question_num = SectionToChinese($(".section").length + 1);
  82 + switch (type) {
  83 + case 1: // 单选题
  84 + // alert(typeof(index_s_2));
  85 + $(".content")
  86 + .append(
  87 + '<div class="section section-'
  88 + + answer_index_b
  89 + + ' single" data-fraction="'
  90 + + fraction2
  91 + + '" data-score=""> <div class="title"> <h3><span class="que_num">'
  92 + + question_num
  93 + + '、</span>'
  94 + + '<span class="que_name">单选</span></h3> <input type="button" class="btn btn-danger pull-right remove" name="remove" value="删除" /> </div> <div class="question_list"></div></div>');
  95 + for (i = index_s_2; i <= index_e_2; i++) {
  96 + $(".section-" + answer_index_b + " .question_list").append(
  97 + '<div class="question question' + i + '"><span>' + i
  98 + + '、</span><ul></ul></div>');
  99 + for (var j = 0; j < a_num; j++) {
  100 + option = String.fromCharCode(0x41 + j);
  101 + $(".section-" + answer_index_b + " .question" + i + ' ul')
  102 + .append(
  103 + '<li class="btn btn-default">' + option
  104 + + '</li>');
  105 + }
  106 + }
  107 + break;
  108 + case 2: // 完形填空
  109 + $(".content")
  110 + .append(
  111 + '<div class="section section-'
  112 + + answer_index_b
  113 + + ' single" data-fraction="'
  114 + + fraction2
  115 + + '" data-score=""> <div class="title"> <h3><span class="que_num">'
  116 + + question_num
  117 + + '、</span><span class="que_name">完形填空</span></h3> <input type="button" class="btn btn-danger pull-right remove" name="remove" value="删除" /> </div> <div class="question_list"></div></div>');
  118 + for (var i = index_s_2; i <= index_e_2; i++) {
  119 + $(".section-" + answer_index_b + " .question_list").append(
  120 + '<div class="question question' + i + '"><span>' + i
  121 + + '、</span><ul></ul></div>');
  122 + for (var j = 0; j < a_num; j++) {
  123 + option = String.fromCharCode(0x41 + j);
  124 + $(".section-" + answer_index_b + " .question" + i + ' ul')
  125 + .append(
  126 + '<li class="btn btn-default">' + option
  127 + + '</li>');
  128 + }
  129 + }
  130 + break;
  131 + case 3: // 阅读理解
  132 + $(".content")
  133 + .append(
  134 + '<div class="section section-'
  135 + + answer_index_b
  136 + + ' single" data-fraction="'
  137 + + fraction2
  138 + + '" data-score=""> <div class="title"> <h3><span class="que_num">'
  139 + + question_num
  140 + + '、</span><span class="que_name">阅读理解</span></h3> <input type="button" class="btn btn-danger pull-right remove" name="remove" value="删除" /> </div> <div class="question_list"></div></div>');
  141 + for (var i = index_s_2; i <= index_e_2; i++) {
  142 + $(".section-" + answer_index_b + " .question_list").append(
  143 + '<div class="question question' + i + '"><span>' + i
  144 + + '、</span><ul></ul></div>');
  145 + for (var j = 0; j < a_num; j++) {
  146 + option = String.fromCharCode(0x41 + j);
  147 + $(".section-" + answer_index_b + " .question" + i + ' ul')
  148 + .append(
  149 + '<li class="btn btn-default">' + option
  150 + + '</li>');
  151 + }
  152 + }
  153 + break;
  154 + case 4: // 判断题
  155 + $(".content")
  156 + .append(
  157 + '<div class="section section-'
  158 + + answer_index_b
  159 + + ' single" data-fraction="'
  160 + + fraction2
  161 + + '" data-score=""> <div class="title"> <h3><span class="que_num">'
  162 + + question_num
  163 + + '、</span><span class="que_name">判断题</span></h3> <input type="button" class="btn btn-danger pull-right remove" name="remove" value="删除" /> </div> <div class="question_list"></div></div>');
  164 + for (var i = index_s_2; i <= index_e_2; i++) {
  165 + $(".section-" + answer_index_b + " .question_list").append(
  166 + '<div class="question question' + i + '"><span>' + i
  167 + + '、</span><ul></ul></div>');
  168 + for (var j = 0; j < a_num; j++) {
  169 + if (j % 2 == 0)
  170 + option = "√";
  171 + else
  172 + option = "×";
  173 + $(".section-" + answer_index_b + " .question" + i + ' ul')
  174 + .append(
  175 + '<li class="btn btn-default">' + option
  176 + + '</li>');
  177 + }
  178 + }
  179 + break;
  180 + /*
  181 + * case 5: //多选题 $(".content").append('<div class="section
  182 + * section-'+answer_index_b+' check" data-fraction="'+fraction2+'"
  183 + * data-score=""> <div class="title"> <h3><span
  184 + * class="que_num">'+question_num+'、</span><span class="que_name">多选题</span></h3>
  185 + * <input type="button" class="btn btn-danger pull-right remove"
  186 + * name="remove" value="删除" /> </div> <div class="question_list"></div></div>');
  187 + * for(var i=index_s_2;i<=index_e_2;i++){
  188 + * $(".section-"+answer_index_b+" .question_list").append('<div
  189 + * class="question question'+i+'"><span>'+i+'、</span><ul></ul></div>');
  190 + * for(var j=0;j<a_num;j++){ option=String.fromCharCode(0x41+j);
  191 + * $(".section-"+answer_index_b+" .question"+i+' ul').append('<li class="btn btn-default">'+option+'</li>'); } }
  192 + */
  193 + case 5: // 多选题
  194 + // $(".content").html("");
  195 + $(".content")
  196 + .append(
  197 + '<div class="section section-'
  198 + + answer_index_b
  199 + + ' check" data-fraction="'
  200 + + fraction2
  201 + + '" data-score="'
  202 + + ((index_e_2 - index_s_2 + 1) * fraction2)
  203 + + '"> <div class="title"><h3>Total score of question number '
  204 + + answer_index_b
  205 + + '(multiple choice): '
  206 + + (index_e_2 - index_s_2 + 1)
  207 + + ' X '
  208 + + fraction2
  209 + + ' = '
  210 + + ((index_e_2 - index_s_2 + 1) * fraction2)
  211 + + ' 分<!--<span>请在试题选项上点击,亮色为该试题的正确答案&nbsp; </span>--></h3> </div> <div class="question_list"></div></div>');
  212 + for (var i = index_s_2; i <= index_e_2; i++) {
  213 + questionNUm++;
  214 + $(".section-" + answer_index_b + " .question_list").append(
  215 + '<div class="question question' + questionNUm
  216 + + '"><span>' + questionNUm
  217 + + '、</span><ul></ul></div>');
  218 + for (var j = 0; j < a_num; j++) {
  219 + option = String.fromCharCode(0x41 + j);
  220 + $(
  221 + ".section-" + answer_index_b + " .question"
  222 + + questionNUm + ' ul').append(
  223 + '<li class="btn btn-default">' + option + '</li>');
  224 + }
  225 + }
  226 + total_score += ((index_e_2 - index_s_2 + 1) * fraction2);
  227 + $("#score_all").text(total_score);
  228 + break;
  229 + }
  230 + // $(".section-"+answer_index_b).attr("data-score",$(".section-"+answer_index_b).find(".question").length*fraction2);
  231 + $(".section0").attr("data-score",
  232 + $(".section0").find(".question").length * fraction2);
  233 + }
  234 +
  235 + $(document).on('click', '.remove', function() { // 删除按钮
  236 + $(this).parent().parent(".section").remove();
  237 + })
  238 +
  239 + $("#fast_submit").click(function() { // 点击确定,创建答案列表
  240 + // $("#addQuestion").attr("disabled","disabled");
  241 + var answer = $("#answer").val();
  242 + var num_ans = $("#num_ans").val();
  243 + var fraction = $("#fraction").val();
  244 + if (answer == '') {
  245 + alert("Please input answer of question");
  246 + return;
  247 + } else if (fraction == '') {
  248 + alert("Pleae input score of question");
  249 + return;
  250 + }
  251 + var frac = parseFloat(fraction);
  252 + if (frac > 0) {
  253 + // score += parseInt(fraction)*answer.split(",").length;
  254 + creat(answer, num_ans, fraction);
  255 + $('.fast').modal('hide');
  256 + } else {
  257 + alert("Please input correct score");
  258 + return;
  259 + }
  260 + })
  261 +
  262 + /* 添加试题的确定按钮 */
  263 + $("#addQuestion_submit").click(function() {
  264 + // $("#fast").attr("disabled","disabled");
  265 + var type_2 = 5;// parseInt($("#type").val())
  266 + var index_s_2 = 1;// parseInt($("#index_s_2").val())
  267 + var index_e_2 = parseInt($("#index_s_2").val());
  268 + // var answer_2=$("#answer_2").val();
  269 + var num_ans_2 = $("#num_ans_2").val();
  270 + var fraction2 = parseFloat($("#fraction2").val());
  271 + if (isNaN(index_s_2)) {
  272 + alert("Please input question start number");
  273 + return;
  274 + } else if (isNaN(index_e_2)) {
  275 + alert("Please input number of questions");// alert("请输入题目结束序号");
  276 + return;
  277 + } else if (isNaN(fraction2)) {
  278 + alert("Please input score of question");
  279 + return;
  280 + }
  281 + var iindex_e_2 = parseInt(index_e_2);
  282 + if (iindex_e_2 < 1 || iindex_e_2 > 100) {
  283 + alert("Illigal number of question");
  284 + return;
  285 + }
  286 + // console.log(typeof(type_2));
  287 + addQuestion(type_2, num_ans_2, index_s_2, index_e_2, fraction2);
  288 + $('.addQuestion').modal('hide');
  289 + })
  290 + $("#type").change(function() {
  291 + if ($("#type").val() == 4) {
  292 + $("#num_ans_2").val(2);
  293 + $("#num_ans_2").attr("disabled", "disabled");
  294 + } else {
  295 + $("#num_ans_2").removeAttr("disabled");
  296 + $("#num_ans_2").val(4);
  297 +
  298 + }
  299 + })
  300 + /* 更改考试时长 */
  301 + $("#time_submit").click(function() {
  302 + var test_time = $("#enter_time").val();
  303 + if (test_time == '') {
  304 + alert("Please input exam time");
  305 + return;
  306 + }
  307 + $("#time").html(test_time);
  308 + $('.test_time').modal('hide');
  309 + })
  310 + /* 更改单选答案 */
  311 + $(document).on('click', '.single li', function() {
  312 + $(this).siblings().removeClass("on");
  313 + $(this).addClass("on");
  314 + })
  315 + /* 更改多选答案 */
  316 + $(document).on('click', '.check li', function() {
  317 + // $(this).siblings().removeClass("on");
  318 + if ($(this).hasClass('on')) {
  319 + $(this).removeClass("on");
  320 + } else {
  321 + $(this).addClass("on");
  322 + }
  323 + })
  324 + /* 提交保存数据 */
  325 + $("#save").click(function() {
  326 + var url = URL;
  327 +
  328 + var data = {
  329 + title : $(".header_box h1").text(),
  330 + exam_time : parseInt($("#time").text()),
  331 + paper_type : testData.paper_type,
  332 + subject_id : testData.subject_id,
  333 + grade_id : testData.grade_id,
  334 + user_id : testData.user_id,
  335 + school_id : testData.school_id,
  336 + score : total_score,
  337 + questions : []
  338 + }
  339 +
  340 + if ($(".section").length > 0) {
  341 + var rank = 0
  342 + for (i = 0; i < $(".section").length; i++) {
  343 + // rank++;
  344 + data.questions[i] = {
  345 + chapter_id : "0",
  346 + problem_type_id : "0",
  347 + knowledge_id : "0",
  348 + // content:
  349 + // $(".section").eq(i).find(".que_name").text(),
  350 + option_num : "",
  351 + option_content : "",
  352 + answer : "",
  353 + difficulty : "",
  354 + analysis : "",
  355 + question_from : "",
  356 + score : parseFloat($(".section").eq(i)
  357 + .attr("data-score")),
  358 + part_score : "",
  359 + remark : "",
  360 + rank : rank,
  361 + no_name : $(".section").eq(i).find(
  362 + ".que_num").text(),
  363 + questions : []
  364 + }
  365 + for (j = 0; j < $(".section").eq(i).find(
  366 + ".question_list").children(".question").length; j++) {
  367 + rank++;
  368 + var on_num = $(".section").eq(i).find(
  369 + ".question").eq(j).find(".on").length;
  370 + var answer = "";
  371 + for (k = 0; k < on_num; k++) {
  372 + answer += $(".section").eq(i).find(
  373 + ".question").eq(j).find(".on")
  374 + .eq(k).text();
  375 + // console.log(answer);
  376 + }
  377 + if (answer == '') {
  378 + alert("Some question answers not edited yet。");
  379 + return;
  380 + }
  381 + data.questions[i].questions[j] = {
  382 + chapter_id : "0",
  383 + problem_type_id : "0",
  384 + knowledge_id : "0",
  385 + content : "",
  386 + option_num : $(".section").eq(i).find(
  387 + ".question").eq(j).find("li").length,
  388 + option_content : "",
  389 + answer : answer,
  390 + difficulty : "0",
  391 + analysis : "",
  392 + question_from : "1",
  393 + score : parseFloat($(".section").eq(i)
  394 + .attr("data-fraction")),
  395 + part_score : "0",
  396 + remark : "",
  397 + rank : rank,
  398 + no_name : rank,
  399 + }
  400 + }
  401 + }
  402 + }
  403 +
  404 + if (data.questions.length > 0) {
  405 + data = JSON.stringify(data);
  406 + dataJson = {
  407 + "json" : data
  408 + };
  409 + console.log(data);
  410 + ajax_submit(url, dataJson);
  411 + } else
  412 + alert("Please add questions");
  413 + });
  414 +
  415 + /* ajax封装函数 */
  416 + function ajax_submit(url, data) {
  417 + $(".loading").css("display", "block");
  418 + console.log(data);
  419 + $.ajax({
  420 + url : url,
  421 + type : "POST",
  422 + data : data,
  423 + dataType : "json",
  424 + contentType : "application/x-www-form-urlencoded; charset=utf-8",
  425 + success : function(data) {
  426 + $(".loading").css("display", "none");
  427 + if(testData.paper_type == '1'){
  428 + window.location.href = JUMP_URL + "?a=1&defaulturl=../paper/list2.do";
  429 + }else{
  430 + window.location.href = JUMP_URL + "?a=1&defaulturl=../paper/list4.do?school_id=" + testData.school_id ;
  431 + }
  432 + }
  433 + })
  434 + }
  435 + function fastSort(array, head, tail) {
  436 + // 考虑到给每个分区操作的时候都是在原有的数组中进行操作的,所以这里head,tail来确定分片的位置
  437 + /* 生成随机项 */
  438 + var randomnum = parseInt((head + tail) / 2);
  439 + var random = array[randomnum];
  440 + /* 将小于random的项放置在其左边 策略就是通过一个临时的数组来储存分好区的结果,再到原数组中替换 */
  441 + var arrayTemp = [];
  442 + var unshiftHead = 0;
  443 + for (var i = head; i <= tail; i++) {
  444 + if (parseInt(array[i].rank) < parseInt(random.rank)) {
  445 + arrayTemp.unshift(array[i]);
  446 + unshiftHead++;
  447 + } else if (parseInt(array[i].rank) > parseInt(random.rank)) {
  448 + arrayTemp.push(array[i]);
  449 + }
  450 + /* 当它等于的时候放哪,这里我想选择放到队列的前面,也就是从unshift后的第一个位置放置 */
  451 + if (parseInt(array[i].rank) === parseInt(random.rank)) {
  452 + arrayTemp.splice(unshiftHead, 0, array[i]);
  453 + }
  454 + }
  455 + /* 将对应项覆盖原来的记录 */
  456 + for (var j = head, u = 0; j <= tail; j++, u++) {
  457 + array.splice(j, 1, arrayTemp[u]);
  458 + }
  459 + /* 寻找中间项所在的index */
  460 + var nowIndex = array.indexOf(random);
  461 +
  462 + /* 设置出口,当要放进去的片段只有2项的时候就可以收工了 */
  463 + if (arrayTemp.length <= 2) {
  464 + return;
  465 + }
  466 + /* 递归,同时应用其左右两个区域 */
  467 + fastSort(array, head, nowIndex);
  468 + fastSort(array, nowIndex + 1, tail);
  469 + }
  470 + function creatHtml(data) {
  471 + console.log(data);
  472 + $(".header_box h1").html(data.title);
  473 + $("#time").html(data.exam_time);
  474 + if(data.score != null && data.score > 0 && data.score != ''){
  475 + $("#score_all").html(data.score);
  476 + }
  477 +
  478 + if (data.questions.length > 0) {
  479 + $(".time").removeAttr("data-target");
  480 + $(".remove").remove();
  481 + $(".btn_box").remove();
  482 + }
  483 +
  484 + for (var i = 0; i < data.questions.length; i++) {
  485 + if (data.questions[i].questions) {
  486 + $(".content")
  487 + .append(
  488 + '<div class="section section-'
  489 + + i
  490 + + '" data-fraction="'
  491 + + data.questions[i].score
  492 + + '" style="margin-top:80px;"> <h3><span class="que_num">'
  493 + + 'Total score of question number '
  494 + + (i + 1)
  495 + + ':'
  496 + + data.questions[i].questions.length
  497 + + " X "
  498 + + (parseFloat(data.questions[i].sug_score) / data.questions[i].questions.length)
  499 + + " = "
  500 + + data.questions[i].sug_score
  501 + + '</span>'
  502 + + '<span class="que_name">'
  503 + + data.questions[i].content
  504 + + '</span></h3><!-- <input type="button" class="btn btn-danger pull-right remove" name="remove" value="删除" /> --> <div class="question_list"></div></div>');
  505 + } else {
  506 + if (i == 0) {
  507 + $(".content")
  508 + .append(
  509 + '<div class="section section0"> <div class="question_list" style="margin-top:80px"></div></div>');
  510 + }
  511 + $(".section0").find(".question_list").append(
  512 + '<div class="question question' + (i + 1) + '"><span>'
  513 + + (++questionNUm) + '、</span><ul></ul></div>');
  514 + for (var k = 0; k < parseInt(data.questions[i].option_num); k++) {
  515 + str_temp = data.questions[i].answer;
  516 + $(".section0").find(".question" + (i + 1) + ' ul').append(
  517 + '<li class="btn btn-default">'
  518 + + String.fromCharCode(0x41 + k) + '</li>');
  519 + for (var l = 0; l < str_temp.length; l++) {
  520 + str_temp_arry = str_temp.split('');
  521 + code = str_temp_arry[l].charCodeAt();
  522 + on_index = code - 65;
  523 + if (on_index == k) {
  524 + $(".section0").find(
  525 + ".question" + (i + 1) + ' ul li').eq(
  526 + on_index).attr("class",
  527 + "btn btn-default on");
  528 + }
  529 + }
  530 + }
  531 + }
  532 +
  533 + if (data.questions[i].questions) {
  534 + for (var j = 0; j < data.questions[i].questions.length; j++) {
  535 + $(".section-" + i).find(".question_list").append(
  536 + '<div class="question question' + (j + 1)
  537 + + '"><span>' + (++questionNUm)
  538 + + '、</span><ul></ul></div>');
  539 + if ($(".section-" + i).find(".que_name").text() == "判断题") {
  540 + for (var k = 0; k < parseInt(data.questions[i].questions[j].option_num); k++) {
  541 + str_temp = data.questions[i].questions[j].answer;
  542 + if (k % 2 == 0) {
  543 + $(".section-" + i).find(
  544 + ".question" + (j + 1) + ' ul').append(
  545 + '<li class="btn btn-default">√</li>');
  546 + } else if (k % 2 == 1) {
  547 + $(".section-" + i).find(
  548 + ".question" + (j + 1) + ' ul').append(
  549 + '<li class="btn btn-default">×</li>');
  550 + }
  551 +
  552 + if (str_temp == "√")
  553 + $(".section-" + i).find(
  554 + ".question" + (j + 1) + ' ul li').eq(0)
  555 + .attr("class", "btn btn-default on");
  556 + else
  557 + $(".section-" + i).find(
  558 + ".question" + (j + 1) + ' ul li').eq(1)
  559 + .attr("class", "btn btn-default on");
  560 + }
  561 + } else {
  562 + for (var k = 0; k < parseInt(data.questions[i].questions[j].option_num); k++) {
  563 + str_temp = data.questions[i].questions[j].answer;
  564 + $(".section-" + i).find(
  565 + ".question" + (j + 1) + ' ul').append(
  566 + '<li class="btn btn-default">'
  567 + + String.fromCharCode(0x41 + k)
  568 + + '</li>');
  569 + for (var l = 0; l < str_temp.length; l++) {
  570 + str_temp_arry = str_temp.split('');
  571 + code = str_temp_arry[l].charCodeAt();
  572 + on_index = code - 65;
  573 + if (on_index == k) {
  574 + $(".section-" + i).find(
  575 + ".question" + (j + 1) + ' ul li')
  576 + .eq(on_index).attr("class",
  577 + "btn btn-default on");
  578 + }
  579 + }
  580 + }
  581 + }
  582 + }
  583 + }
  584 + }
  585 + }
  586 +
  587 +
  588 + /*快速建题中,每输入五个答案就加一个空格*/
  589 + $("#answer").on("input propertychange", function(event) {
  590 + var answerStr = "";
  591 + answerStr = $("#answer").val();
  592 + var result = "";
  593 + if (answerStr.length > 5) {
  594 + answerStr = answerStr.replace(new RegExp(" ", "gm"), "");
  595 + for (var i = 0; i < answerStr.length; i++) {
  596 + result += answerStr[i];
  597 + if (i % 5 == 4 && i != answerStr.length - 1) {
  598 + result += " ";
  599 + }
  600 + }
  601 + } else {
  602 + result = answerStr;
  603 + }
  604 + $("#answer").val(result);
  605 + if (answerStr.length > 0) {
  606 + $(".tips").text("Total number of questions" + answerStr.length + " ");
  607 + } else {
  608 + $(".tips").text("");
  609 + }
  610 + })
  611 +
  612 +
  613 +
  614 + function SectionToChinese(section) {
  615 + var strIns = '', chnStr = '';
  616 + var unitPos = 0;
  617 + var zero = true;
  618 + while (section > 0) {
  619 + var v = section % 10;
  620 + if (v === 0) {
  621 + if (!zero) {
  622 + zero = true;
  623 + chnStr = chnNumChar[v] + chnStr;
  624 + }
  625 + } else {
  626 + zero = false;
  627 + strIns = chnNumChar[v];
  628 + strIns += chnUnitChar[unitPos];
  629 + chnStr = strIns + chnStr;
  630 + }
  631 + unitPos++;
  632 + section = Math.floor(section / 10);
  633 + }
  634 + return chnStr;
  635 + }
  636 +
  637 +
  638 + if (template != null && template.length > 0) {
  639 +
  640 + $("#addQuestion").attr("disabled", "disabled");
  641 + $("#fast").attr("disabled", "disabled");
  642 + for (var i = 0; i < template.length; i++) {
  643 + if (template[i].type == 1) {
  644 + var answer = "";
  645 + for (var j = 0; j < template[i].questionNum; j++) {
  646 + answer += "1";
  647 + }
  648 + creat(answer, template[i].optionNum, template[i].score);
  649 + }
  650 + if (template[i].type == 2) {
  651 + addQuestion(5, template[i].optionNum, 1,
  652 + template[i].questionNum, template[i].score);
  653 + }
  654 + }
  655 + if(testData != null){
  656 + $(".header_box h1").html(testData.title);
  657 + $("#time").html(testData.exam_time);
  658 + if(testData.score != null && testData.score > 0 && testData.score != ''){
  659 + $("#score_all").html(testData.score);
  660 + }
  661 + }
  662 +
  663 + }else if (testData != null && testData.questions != null
  664 + && testData.questions.length > 0) {
  665 + fastSort(testData.questions, 0, testData.questions.length - 1);
  666 + for (var i = 0; i < testData.questions.length; i++) {
  667 +
  668 + if (testData.questions[0].questions
  669 + && testData.questions[0].questions.length > 1) {
  670 + fastSort(testData.questions[i].questions, 0,
  671 + testData.questions[i].questions.length - 1);
  672 + }
  673 + }
  674 + creatHtml(testData);
  675 + }else{
  676 + if(testData != null){
  677 + $(".header_box h1").html(testData.title);
  678 + $("#time").html(testData.exam_time);
  679 + if(testData.score != null && testData.score > 0 && testData.score != ''){
  680 + $("#score_all").html(testData.score);
  681 + }
  682 + }
  683 + }
  684 +})
... ...
WebRoot/static/js/en_control1.js 0 → 100644
  1 +
  2 + var data0=[],data1=[],data2=[],data3=[];
  3 + var startDate,endDate;
  4 + var studentid;
  5 + var data_temp,_index=0;
  6 + function getQueryString(name) {
  7 + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  8 + var r = window.location.search.substr(1).match(reg);
  9 + if (r != null) return unescape(r[2]); return null;
  10 + }
  11 + function getData(startDate,endDate){
  12 + var attend = "" ;
  13 + if(startDate != null && endDate != null){
  14 + attend = "&start_Date="+startDate+"&end_Date="+endDate;
  15 + }
  16 + $.ajax({
  17 + url:URL+ attend,
  18 + type:"get",
  19 + dataType:"json",
  20 + success:function(data){
  21 + data_temp=data;
  22 + console.log(data);
  23 + var _html='';
  24 + for(var i=0;i<data.data.studentList.length;i++){
  25 + _html+='<li style="cursor:pointer"><p>'+data.data.studentList[i].NAME+'</p></li>';
  26 + if(studentid==data.data.studentList[i].ID)
  27 + _index=i;
  28 + }
  29 + $(".content_l ul").html(_html);
  30 + console.log(_index);
  31 + dataMethod(_index,data_temp);
  32 + $(".content_l li").eq(_index).siblings().removeClass("on");
  33 + $(".content_l li").eq(_index).addClass("on");
  34 + window.top.loading.remove();
  35 + }
  36 +
  37 + });
  38 +
  39 + }
  40 + $( document ).ready(function() {
  41 + //alert($("input[type=radio][checked]").val());
  42 +
  43 + studentid=getQueryString("studentid");
  44 +
  45 + startDate = $("#starDate").val();
  46 + endDate = $("#endDate").val();
  47 + getData(startDate,endDate);
  48 +
  49 + //$('#myStathalf').circliful();
  50 + //$('#myStathalf1').circliful();
  51 + $(document).on("click",".content_l li",function(){
  52 + $(this).siblings().removeClass("on");
  53 + $(this).addClass("on");
  54 + _index=$(this).index();
  55 + dataMethod(_index,data_temp);
  56 + studentid = 0;
  57 + })
  58 + $("input[type=radio]").change(function(){
  59 + //alert($("input[type='radio']:checked").val());
  60 + dataMethod(_index,data_temp);
  61 + })
  62 +
  63 + $("#search").click(function(){
  64 +// var date_string=$("#test6").val();
  65 +// var date_arry=date_string.split(' - ');
  66 +// startDate=date_arry[0];
  67 +// endDate=date_arry[1];
  68 + window.top.loading.show();
  69 + startDate = $("#starDate").val();
  70 + endDate = $("#endDate").val();
  71 + getData(startDate,endDate);
  72 +
  73 + })
  74 +
  75 + $(".prev").click(function(){
  76 + _index-=1;
  77 + if(_index<0){
  78 + _index=data_temp.data.studentList.length-1;
  79 + }
  80 + $(".content_l li").eq(_index).siblings().removeClass("on");
  81 + $(".content_l li").eq(_index).addClass("on");
  82 + dataMethod(_index,data_temp);
  83 + })
  84 + $(".next").click(function(){
  85 + _index+=1;
  86 + if(_index>(data_temp.data.studentList.length-1)){
  87 + _index=0;
  88 + }
  89 + $(".content_l li").eq(_index).siblings().removeClass("on");
  90 + $(".content_l li").eq(_index).addClass("on");
  91 + dataMethod(_index,data_temp);
  92 + })
  93 + });
  94 +
  95 +
  96 + function dataMethod(index,data){
  97 + console.log(data);
  98 + //data0=[];data1=[];data2=[];data3=[];
  99 + var GETSCORE = parseFloat(data.data.studentList[index].GETSCORE);
  100 + var TOTALSCORE = parseFloat(data.data.TOTAL_SCORE);
  101 + var ratio=(GETSCORE/TOTALSCORE*100).toFixed(2);
  102 + var class_avg= (parseFloat(data.data.AVG_SCORE)/ parseFloat(data.data.TOTAL_SCORE)*100).toFixed(2);
  103 + var class_max=(parseFloat(data.data.MAX_SCORE)/ parseFloat(data.data.TOTAL_SCORE)*100).toFixed(2);
  104 +
  105 + var test_num=data.data.studentList[index].testList.length;
  106 + var part_num=test_num;
  107 +
  108 + data0=[];
  109 + data1=[];
  110 + data2=[];
  111 + data3=[];
  112 +
  113 + //console.log(data.data.studentList[index].testList[2].SCORE);
  114 + if($("input[type='radio']:checked").val()==1){
  115 + for(var i=0;i<test_num;i++){
  116 + if(data.data.studentList[index].testList[i].TOTAL_SCORE>0){
  117 + data0[i]=data.data.studentList[index].testList[i].NAME + "\n" + data.data.studentList[index].testList[i].CREATE_DATE;
  118 + data1[i]=(data.data.studentList[index].testList[i].AVG_SCORE/data.data.studentList[index].testList[i].TOTAL_SCORE*100).toFixed(2);
  119 + data2[i]=(data.data.studentList[index].testList[i].SCORE/data.data.studentList[index].testList[i].TOTAL_SCORE*100).toFixed(2);
  120 + data3[i]=(data.data.studentList[index].testList[i].MAX_SCORE/data.data.studentList[index].testList[i].TOTAL_SCORE*100).toFixed(2);
  121 + }else{
  122 + data1[i]=0;
  123 + data2[i]=0;
  124 + data3[i]=0;
  125 + }
  126 +
  127 + if(data.data.studentList[index].testList[i].SCORE=="0")
  128 + part_num--;
  129 + }
  130 + }else if($("input[type='radio']:checked").val()==2){
  131 + for(var i=0;i<test_num;i++){
  132 + data0[i]=data.data.studentList[index].testList[i].NAME;
  133 + data1[i]=data.data.studentList[index].testList[i].AVG_SCORE;
  134 + data2[i]=data.data.studentList[index].testList[i].SCORE;
  135 + data3[i]=data.data.studentList[index].testList[i].MAX_SCORE;
  136 + if(data.data.studentList[index].testList[i].SCORE=="0")
  137 + part_num--;
  138 + }
  139 + }
  140 +
  141 + console.log(data0);
  142 + console.log(data1);
  143 + console.log(data2);
  144 + console.log(data2);
  145 + var partake=(part_num/test_num*100).toFixed(2);
  146 +
  147 +
  148 + $("#class_avg").html(class_avg);
  149 + $("#class_max").html(class_max);
  150 + $(".name h1").html(data.data.studentList[index].NAME);
  151 + $(".circle .col-md-6").eq(1).html('<div id="myStathalf1" data-dimension="350" data-text="'+ratio+"%"+'" data-info="Student" data-width="10" data-fontsize="38" data-percent="'+ratio+'" data-fgcolor="#8ad254" data-bgcolor="#a9f9ff" data-type="half" data-fill="#50b5c9"></div>');
  152 + $(".circle .col-md-6").eq(0).html('<div id="myStathalf" data-dimension="350" data-text="'+part_num+'/'+test_num+'" data-info="Participation testing" data-width="10" data-fontsize="38" data-percent="'+partake+'" data-fgcolor="#8ad254" data-bgcolor="#a9f9ff" data-type="half" data-fill="#50b5c9"></div>');
  153 + $('#myStathalf1').circliful();
  154 + $('#myStathalf').circliful();
  155 + myChart.setOption({
  156 + tooltip:{
  157 + trigger: 'axis'
  158 + },
  159 + xAxis: {
  160 + type: 'category',
  161 + data: data0
  162 + /*,
  163 + axisLabel:{interval: 0}*/
  164 + },
  165 + yAxis: {
  166 + type: 'value',
  167 + splitArea: {show: true}
  168 + },
  169 + series: [{
  170 + name:"Avg Score",
  171 + data: data1,
  172 + type: 'line',
  173 + symbol: 'circle',
  174 + symbolSize: 5,
  175 + lineStyle: {
  176 + normal: {
  177 + color: '#93D150',
  178 + width: 2,
  179 + type: 'dashed'
  180 + }
  181 + },
  182 + itemStyle: {
  183 + normal: {
  184 + borderWidth: 2,
  185 + borderColor: '#93D150',
  186 + color: '#93D150'
  187 + }
  188 + }
  189 + },{
  190 + name:"Highest",
  191 + data: data3,
  192 + type: 'line',
  193 + symbol: 'circle',
  194 + symbolSize: 5,
  195 + lineStyle: {
  196 + normal: {
  197 + color: '#FFC004',
  198 + width: 2,
  199 + type: 'dashed',
  200 + }
  201 + },
  202 + itemStyle: {
  203 + normal: {
  204 + borderWidth: 2,
  205 + borderColor: '#FFC004',
  206 + color: '#FFC004'
  207 + }
  208 + }
  209 + },{
  210 + name:"Personal",
  211 + data: data2,
  212 + type: 'line',
  213 + symbol: 'circle',
  214 + symbolSize: 10,
  215 + lineStyle: {
  216 + normal: {
  217 + color: '#45a6f3',
  218 + width: 4,
  219 + type: 'solid'
  220 + }
  221 + },
  222 + itemStyle: {
  223 + normal: {
  224 + borderWidth: 3,
  225 + borderColor: '#45a6f3',
  226 + color: '#45a6f3',
  227 + label : {show: true,color:'#000'}
  228 + }
  229 + }
  230 + }]
  231 + });
  232 + }
  233 +
  234 +
  235 + var myChart = echarts.init(document.getElementById('main'));
... ...
WebRoot/static/js/en_paper_view.js 0 → 100644
  1 +var url="";
  2 + var question_box=[];
  3 + function slide(obj){ //查看解析
  4 + obj.closest(".star_box").siblings(".resolve").slideToggle(function(){
  5 + if($(".resolve").css("display") == "none")
  6 + obj.text("View Analysis");
  7 + else
  8 + obj.text("Fold analysis");
  9 + });
  10 + }
  11 +
  12 +function getQueryString(name) {
  13 + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  14 + var r = window.location.search.substr(1).match(reg);
  15 + if (r != null) return unescape(r[2]); return null;
  16 + }
  17 + var PAPER_ID=getQueryString("PAPER_ID");
  18 + var classId=getQueryString("classId");
  19 + var userid=getQueryString("userid");
  20 +
  21 + var gradleId = getQueryString("gradleid");
  22 +
  23 + var _html="";
  24 + var question_id_arry="";
  25 + $(document).ready(function(){
  26 + window.top.loading.remove();
  27 + var data=JSON.parse(sessionStorage.getItem("data"));
  28 + console.log(data);
  29 + $("#paper_title").html(data.title);
  30 + $("#time").html(data.exam_time);
  31 + if(data.questions.length>0){
  32 + for(var i=0;i<data.questions.length;i++){
  33 + question_id_arry+=data.questions[i].question_id+',';
  34 + }
  35 + getQuestionInfo(question_id_arry,data.questions);
  36 + }
  37 +
  38 + })
  39 + function getQuestionInfo(id,knowledge_ids){ //获取试题详情
  40 + $.ajax({
  41 + url:url+"/SunvoteEducation/api/v1/question",
  42 + async:true,
  43 + type:"post",
  44 + data:{ID:id},
  45 + success:function(data){
  46 + console.log(data);
  47 + if(data.data.length>0){
  48 + for(var i=0;i<data.data.length;i++){
  49 + _html += '<li class="question_li" data-id="'+data.data[i].QUESTION_ID+'" data-knowledge="' +getknowledgeid(data.data[i].QUESTION_ID,knowledge_ids) + '"><div class="stem"></div><div class="option"><ul></ul><div class="clearfix"></div></div><div class="resolve"><div class="resolve_box"><p>【Answer】 '+data.data[i].ANSWER+'</p><p><span>【Analysis】</span>'+data.data[i].ANALYSIS+'</p></div><div class="clearfix"></div></div><div class="star_box"><div class="col-md-6 move"><img src="../static/images/up_ico.png" class="up"/><img src="../static/images/down_ico.png" class="down"/></div><div class="col-md-6"><div class="star"><span style="float:left;">Diffcult</span></div><div class="resolve_click"><a onclick="slide($(this))">View Analysis</a></div></div><div class="clearfix"></div></div></li>';
  50 + }
  51 + console.log(_html);
  52 + $(".analysis ul").html(_html);
  53 + for(var j=0;j<data.data.length;j++){
  54 + var option_html="";
  55 + var sum=0;
  56 + var right_num=0;
  57 + var data1=[];
  58 + var data2=[];
  59 + var answer="";
  60 + var color=[];
  61 + $(".analysis li .stem").eq(j).append('<span class="li_index">'+(j+1)+'</span>、'+data.data[j].CONTENT);
  62 + var arry_option=data.data[j].OPTION_CONTENT;
  63 +
  64 + for(var x=0;x<arry_option.length;x++){
  65 + option_html += '<li><span>'+String.fromCharCode(64 + parseInt(x+1))+'.</span>'+arry_option[x]+'</li>';
  66 + }
  67 + $(".option").eq(j).html(option_html);
  68 + star(j,parseInt(data.data[j].DIFFICULTY));
  69 + }
  70 + }
  71 + },
  72 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  73 + // 错误信息
  74 + alert("Status code:"+XMLHttpRequest.status+"Status:"+XMLHttpRequest.readyState+"Wrong massage:"+textStatus+"");
  75 + window.top.loading.remove();
  76 + }
  77 + })
  78 +
  79 + }
  80 +
  81 + function getknowledgeid(question_id,knowledge_ids){
  82 + for(var i = 0 ; i < knowledge_ids.length; i++){
  83 + if(knowledge_ids[i].question_id == question_id){
  84 + return knowledge_ids[i].knowledge_id;
  85 + }
  86 + }
  87 + return '';
  88 +
  89 + }
  90 + function star(index,num){ //难度星级
  91 + $(".star").eq(index).append('<ul></ul>');
  92 + var li_html="";
  93 + for(var i=1;i<=num;i++){
  94 + li_html +='<li class="on"></li>';
  95 + }
  96 + for(var j=num;j<5;j++){
  97 + li_html += '<li class="off"></li>';
  98 + }
  99 +
  100 + $(".star").eq(index).find("ul").html(li_html);
  101 + }
  102 + $(document).on('click', '.move img', function(event) { //上移、下移
  103 + event.preventDefault();
  104 + var parent=$(this).closest("li");
  105 + var this_index=parent.children(".stem").find(".li_index").html();
  106 + var up_index=parent.prev().children(".stem").find(".li_index").html()
  107 + console.log(this_index);
  108 + console.log(up_index);
  109 + var parents=$(this).closest(".analysis").children("ul");
  110 + var len=parents.children().length;
  111 + if(($(this).is(".up") || $(this).is(".top")) && parent.index()==0){
  112 + alert("Stikied!!");
  113 + return false;
  114 + }else if(($(this).is(".down") || $(this).is(".bottom")) && parent.index()==len-1){
  115 + alert("Bottomed!");
  116 + return false;
  117 + }
  118 + switch (true) {
  119 + case $(this).is(".up"):
  120 + var prev = parent.prev();
  121 + var this_index=parent.children(".stem").find(".li_index").html();
  122 + var up_index=prev.children(".stem").find(".li_index").html();
  123 + prev.children(".stem").find(".li_index").html(this_index);
  124 + parent.children(".stem").find(".li_index").html(up_index);
  125 + parent.insertBefore(prev);
  126 + break;
  127 + case $(this).is(".down"):
  128 + var next = parent.next();
  129 + var this_index=parent.children(".stem").find(".li_index").html();
  130 + var up_index=next.children(".stem").find(".li_index").html();
  131 + next.children(".stem").find(".li_index").html(this_index);
  132 + parent.children(".stem").find(".li_index").html(up_index);
  133 + parent.insertAfter(next);
  134 + break;
  135 + case $(this).is(".top"):
  136 + parents.prepend(parent);
  137 + break;
  138 + case $(this).is(".bottom"):
  139 + parents.append(parent);
  140 + break;
  141 + }
  142 + });
  143 + $(".save").click(function(){ //保存,提交试卷
  144 + var question_arry=[];
  145 + for(var i=0;i<$(".question_li").length;i++){
  146 + question_arry[i]={
  147 + score: "0",
  148 + part_score: "0",
  149 + question_id: $(".question_li").eq(i).attr("data-id"),
  150 + knowledge_id: $(".question_li").eq(i).attr("data-knowledge"),
  151 + rank: i.toString(),
  152 + no_name: i.toString()
  153 + };
  154 +
  155 + }
  156 + var data={
  157 + title: $("#paper_title").html(),
  158 + exam_time: $("#time").html(),
  159 + paper_type: "101",
  160 + subject_id: subjectId,
  161 + grade_id: gradleId,
  162 + class_id: classId,
  163 + user_id: userid,
  164 + score: "100",
  165 + questions: question_arry
  166 + };
  167 +
  168 + $.ajax({
  169 + url:url+"/SunvoteEducation/api/v1/publishpaper",
  170 + async:false,
  171 + type:"post",
  172 + dataType: "json",
  173 + headers: {'Content-Type': 'application/json'},
  174 + data:JSON.stringify(data),
  175 + success:function(data){
  176 + alert("Success");
  177 + window.history.go(-2);
  178 + },
  179 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  180 + // 错误信息
  181 + alert("Status code:"+XMLHttpRequest.status+"Status:"+XMLHttpRequest.readyState+"Wrong massage:"+textStatus+"");
  182 + window.top.loading.remove();
  183 + }
  184 + })
  185 + })
0 186 \ No newline at end of file
... ...
WebRoot/static/js/en_paper_view2.js 0 → 100644
  1 +var url="";
  2 + var question_box=[];
  3 + function slide(obj){ //查看解析
  4 + obj.closest(".star_box").siblings(".resolve").slideToggle(function(){
  5 + if($(".resolve").css("display") == "none")
  6 + obj.text("View Analysis ");
  7 + else
  8 + obj.text("Fold analysis");
  9 + });
  10 + }
  11 +
  12 +function getQueryString(name) {
  13 + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  14 + var r = window.location.search.substr(1).match(reg);
  15 + if (r != null) return unescape(r[2]); return null;
  16 + }
  17 + var PAPER_ID=getQueryString("PAPER_ID");
  18 + var classId=getQueryString("classId");
  19 + var userid=getQueryString("userid");
  20 +
  21 + var _html="";
  22 + $(document).ready(function(){
  23 + window.top.loading.remove();
  24 + $.ajax({
  25 + url:url+"/SunvoteEducation/api/v1/paperinfo",
  26 + async:false,
  27 + type:"post",
  28 + data:{PAPER_ID:PAPER_ID},
  29 + success:function(data){
  30 + console.log(data);
  31 + $("#paper_title").html(data.data.title);
  32 + $("#time").html(data.data.exam_time);
  33 + if(data.data.questions.length>0){
  34 + for(var i=0;i<data.data.questions.length;i++){
  35 + _html += '<li class="question_li" data-id="'+data.data.questions[i].question_id+'"><div class="stem"></div><div class="option"><ul></ul><div class="clearfix"></div></div><div class="resolve"><div class="resolve_box"><p>【Answer】 '+data.data.questions[i].answer+'</p><p><span>【Analysis】</span>'+data.data.questions[i].analysis+'</p></div><div class="clearfix"></div></div><div class="star_box"><div class="col-md-6"><div class="star"><span style="float:left;">Diffcult </span></div><div class="resolve_click"><a onclick="slide($(this))">View Analysis</a></div></div><div class="clearfix"></div></div></li>';
  36 + }
  37 + console.log(_html);
  38 + $(".analysis ul").html(_html);
  39 + for(var j=0;j<data.data.questions.length;j++){
  40 + var option_html="";
  41 + var sum=0;
  42 + var right_num=0;
  43 + var answer="";
  44 + $(".analysis li .stem").eq(j).append('<span class="li_index">'+(j+1)+'</span>、'+data.data.questions[j].content);
  45 + var arry_option=data.data.questions[j].option_content;
  46 + arry_option=arry_option.replace("[","");
  47 + arry_option=arry_option.replace("]","");
  48 + arry_option=arry_option.split(",");
  49 +
  50 + for(var x=0;x<arry_option.length;x++){
  51 + option_html += '<li><span>'+String.fromCharCode(64 + parseInt(x+1))+'.</span>'+arry_option[x]+'</li>';
  52 + }
  53 + $(".option").eq(j).html(option_html);
  54 + star(j,parseInt(data.data.questions[j].difficulty));
  55 + }
  56 + }
  57 + window.top.loading.remove();
  58 + },
  59 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  60 + // 错误信息
  61 + alert("Code State:"+XMLHttpRequest.status+"State:"+XMLHttpRequest.readyState+"wrong message:"+textStatus+"");
  62 + window.top.loading.remove();
  63 + }
  64 + })
  65 + })
  66 + function star(index,num){ //难度星级
  67 + $(".star").eq(index).append('<ul></ul>');
  68 + var li_html="";
  69 + for(var i=1;i<=num;i++){
  70 + li_html +='<li class="on"></li>';
  71 + }
  72 + for(var j=num;j<5;j++){
  73 + li_html += '<li class="off"></li>';
  74 + }
  75 +
  76 + $(".star").eq(index).find("ul").html(li_html);
  77 + }
  78 +
0 79 \ No newline at end of file
... ...
WebRoot/static/js/en_set_question.js 0 → 100644
  1 +var url="";
  2 + var temp_tag;
  3 + var temp_data;
  4 + var TEXTBOOK_ID="";
  5 + var question_box=[];
  6 + var question_num=0;
  7 + var pageNum=1;
  8 + var end=0;
  9 + var flag=0;
  10 + var paper_title = "" ;
  11 + var paper_time = "0" ;
  12 +
  13 +
  14 + $(document).ready(function(){
  15 + getPoint();
  16 + });
  17 +
  18 + function getQueryString(name) {
  19 + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  20 + var r = window.location.search.substr(1).match(reg);
  21 + if (r != null) return unescape(r[2]); return null;
  22 + }
  23 +
  24 + var subject_id=getQueryString("subject_id");
  25 + var class_id=getQueryString("class_id");
  26 + var user_id=getQueryString("user_id");
  27 +
  28 +
  29 + function getPoint(){ //获取知识点
  30 + $.ajax({
  31 + url:url+"/SunvoteEducation/api/v1/point",
  32 + async:false,
  33 + type:"post",
  34 + data:{depth:"",subject_id:subject_id,p_id:"",knowledge_from:101},
  35 + success:function(data){
  36 + var point_html="";
  37 + for(var i=0;i<data.data.length;i++){
  38 + point_html +='<li data-id="'+data.data[i].KNOWLEDGE_ID+'" data-img-click=0 data-span-click=0><img src="../static/images/add.png" class="add" /><span>'+(i+1)+data.data[i].NAME+'</span></li>';
  39 + }
  40 + if(data.data.length > 0){
  41 + paper_title = data.data[0].NAME;
  42 + }
  43 + $(".section").children("ul").html(point_html);
  44 + getQuestion($(".section li").eq(0));
  45 + },
  46 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  47 + // 错误信息
  48 + alert("Code State:"+XMLHttpRequest.status+"State:"+XMLHttpRequest.readyState+"Wrong message:"+textStatus+"");
  49 + window.top.loading.remove();
  50 + }
  51 + })
  52 + }
  53 + function getChapter(TEXTBOOK_ID){ //获取章节
  54 + $(".section").children("ul").html("");
  55 + $.ajax({
  56 + url:url+"/SunvoteEducation/api/v1/chapter",
  57 + async:false,
  58 + type:"post",
  59 + data:{TEXTBOOK_ID:TEXTBOOK_ID},
  60 + success:function(data){
  61 + for(var i=0;i<data.data.length;i++){
  62 + $(".section").children("ul").append('<li data-id="'+data.data[i].ID+'" data-img-click=0 data-span-click=0><img src="../static/images/add.png" class="add"/><span>'+data.data[i].NAME+'</span></li>');
  63 + if(data.data[i].CHILDREN.length>0){
  64 + $(".section").children("ul").children("li").eq(i).append("<ul></ul>");
  65 + for(var j=0;j<data.data[i].CHILDREN.length;j++){
  66 + $(".section").children("ul").children("li").eq(i).children("ul").append('<li data-id="'+data.data[i].CHILDREN[j].ID+'" onclick="getQuestion($(this))"><span>●</span><span>'+data.data[i].CHILDREN[j].NAME+'</span></li>');
  67 + }
  68 + }
  69 + }
  70 + getQuestion($(".section li").eq(0));
  71 + },
  72 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  73 + // 错误信息
  74 + alert("Code State"+XMLHttpRequest.status+"State"+XMLHttpRequest.readyState+"Wrong message:"+textStatus+"");
  75 + window.top.loading.remove();
  76 + }
  77 + })
  78 + }
  79 + function getMenu(id,obj){ //获取知识点下级内容
  80 + var _html="";
  81 + $.ajax({
  82 + url:url+"/SunvoteEducation/api/v1/point",
  83 + async:false,
  84 + type:"post",
  85 + data:{depth:"",subject_id:subject_id,p_id:id,knowledge_from:101},
  86 + success:function(data){
  87 + obj.append('<ul></ul>');
  88 + for(var i=0;i<data.data.length;i++){
  89 + console.log(typeof(data.data[i].CHILDREN));
  90 + if(data.data[i].CHILDREN===undefined)
  91 + _html +='<li data-id="'+data.data[i].KNOWLEDGE_ID+'" data-span-click=0 "><span>●</span><span>'+(i+1)+data.data[i].NAME+'</span></li>';
  92 + else
  93 + _html +='<li data-id="'+data.data[i].KNOWLEDGE_ID+'" data-img-click=0 data-span-click=0 ><img src="../static/images/add.png" class="add"/><span>'+(i+1)+data.data[i].NAME+'</span></li>';
  94 + }
  95 + obj.children('ul').html(_html);
  96 + },
  97 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  98 + // 错误信息
  99 + alert("Code State"+XMLHttpRequest.status+"State"+XMLHttpRequest.readyState+"Wrong message:"+textStatus+"");
  100 + window.top.loading.remove();
  101 + }
  102 + })
  103 + }
  104 + function slide(obj){ //查看解析
  105 + obj.closest(".star_box").siblings(".resolve").slideToggle(function(){
  106 + if($(".resolve").css("display") == "none")
  107 + obj.text("View Analysis");
  108 + else
  109 + obj.text("Fold analysis");
  110 + });
  111 +
  112 + }
  113 + function getQuestion(obj){ //获取题目
  114 +
  115 + var knowledge_id="",chapter_id="";
  116 + if($(".tab .active").attr("data-index")==1){
  117 + knowledge_id=obj.attr("data-id");
  118 + }else{
  119 + chapter_id=obj.attr("data-id");
  120 + }
  121 +
  122 + var _html="";
  123 +
  124 + $.ajax({
  125 + url:url+"/SunvoteEducation/api/v1/questions",
  126 + async:true,
  127 + type:"post",
  128 + data:{chapter_id:chapter_id,teachingmaterial_id:"",knowledge_id:knowledge_id,question_from:101,user_id:"",problem_type:"",subject_id:subject_id,count:"5",pageNum:pageNum},
  129 + success:function(data){
  130 + window.top.loading.remove();
  131 + console.log(data);
  132 + if(data.data.length>0){
  133 + for(var i=0;i<data.data.length;i++){
  134 +
  135 + _html += '<li data-id="'+data.data[i].QUESTION_ID+'" data-knowledge="' + knowledge_id + '"><div class="content"></div><div class="option"><ul></ul></div><div class="resolve"><div class="resolve_box"><p><span>【Answer】</span> '+data.data[i].ANSWER+'</p><p><span>【Analysis】</span>'+data.data[i].ANALYSIS+'</p></div></div><div class="star_box"><div class="col-md-6"><div class="star"><span style="float:left;">Diffcult </span></div><div class="resolve_click"><a onclick="slide($(this))">View Analysis</a><div class="check_box"></div></div></div><div class="clearfix"></div></div></li>';
  136 + }
  137 + $(".question_box").children("ul").append(_html);
  138 + console.log(5*(pageNum-1));
  139 + for(var j=5*(pageNum-1);j<(data.data.length+5*(pageNum-1));j++){
  140 + var option_html="";
  141 + data.data[j-5*(pageNum-1)].CONTENT = data.data[j-5*(pageNum-1)].CONTENT.replace('<fill></fill>','______');
  142 + $(".question_box li .content").eq(j).append('<span>'+(j+1)+'、</span>'+data.data[j-5*(pageNum-1)].CONTENT);
  143 + var arry_option=data.data[j-5*(pageNum-1)].OPTION_CONTENT;
  144 + if(question_box.indexOf(data.data[j-5*(pageNum-1)].QUESTION_ID)>=0){
  145 + $(".check_box").eq(j).addClass("checked");
  146 + }
  147 + for(var x=0;x<arry_option.length;x++){
  148 + option_html += '<li><span>'+String.fromCharCode(64 + parseInt(x+1))+'.</span>'+arry_option[x]+'</li>';
  149 + }
  150 + $(".option").eq(j).find("ul").html(option_html);
  151 +
  152 + star(j,parseInt(data.data[j-5*(pageNum-1)].DIFFICULTY));
  153 +
  154 + }
  155 + $(".view_more").css("display","block");
  156 + end=0;
  157 + }else{
  158 + $(".view_more").css("display","none");
  159 + // $(".question_box").children("ul").html("");
  160 + pageNum-=1;
  161 + if(pageNum<1)
  162 + pageNum=1;
  163 + end=1;
  164 + }
  165 + flag=0;
  166 + },
  167 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  168 + // 状态码
  169 + console.log(XMLHttpRequest.status);
  170 + // 状态
  171 + console.log(XMLHttpRequest.readyState);
  172 + // 错误信息
  173 + alert(textStatus);
  174 + flag=0;
  175 + pageNum-=1;
  176 + if(pageNum<1)
  177 + pageNum=1;
  178 + window.top.loading.remove();
  179 + }
  180 + })
  181 + }
  182 + function getTeachingMaterial(){ //获取教材版本
  183 +
  184 + $.ajax({
  185 + url:url+"/SunvoteEducation/api/v1/teachingmaterial",
  186 + async:true,
  187 + type:"post",
  188 + data:{subject_id:subject_id},
  189 + success:function(data){
  190 + console.log(data);
  191 + if (data.data.length > 0) {
  192 + var teach_html = "";
  193 + for (var i = 0; i < data.data.length; i++) {
  194 + teach_html += '<li data-id="'
  195 + + data.data[i].ID
  196 + + '" class="li_name"><p class="name">'
  197 + + data.data[i].NAME
  198 + + '</p><img src="../static/images/arrow_right.png" /><div class="clearfix"></div></li>';
  199 + }
  200 + $(".book_box ul").html(teach_html);
  201 + var li_length = $(".book_box ul li").length;
  202 + for (var k = 0; k < li_length; k++) {
  203 + var books = [];
  204 + var book_html = "";
  205 + var book_id = $(".book_box ul").children("li")
  206 + .eq(k).attr("data-id");
  207 +
  208 + if (textBook(book_id).length > 0) {
  209 +
  210 + books = textBook($(".book_box ul li").eq(k)
  211 + .attr("data-id"));
  212 + $(".book_box ul li").eq(k).append('<div class="float_box"><ul><div class="clearfix"></div></ul></div>');
  213 +
  214 + for (var j = 0; j < books.length; j++) {
  215 + console.log("j:" + j);
  216 + book_html += '<li data-id=' + books[j].id
  217 + + '>' + books[j].name + '</li>';
  218 + }
  219 + $(".float_box").eq(k).children("ul").find(
  220 + ".clearfix").before(book_html);
  221 + TEXTBOOK_ID = books[0].id;
  222 + }
  223 +
  224 + }
  225 + getChapter(TEXTBOOK_ID);
  226 + $("#book_name").text(
  227 + $(".name").eq(0).text()
  228 + + "/"
  229 + + $(".float_box").eq(0).find('li')
  230 + .eq(0).text());
  231 + }else{
  232 + window.top.loading.remove();
  233 + }
  234 +
  235 + },
  236 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  237 + // 错误信息
  238 + alert("Code State"+XMLHttpRequest.status+"State"+XMLHttpRequest.readyState+"Wrong message:"+textStatus+"");
  239 + window.top.loading.remove();
  240 + }
  241 + })
  242 +
  243 + }
  244 + function textBook(id){ //获取教材
  245 + var textBookName=[];
  246 + $.ajax({
  247 + url:url+"/SunvoteEducation/api/v1/textbook",
  248 + async:false,
  249 + type:"post",
  250 + data:{teaching_material_id:id,subject_id:subject_id,grade_id:""},
  251 + success:function(data){
  252 + if(data.data.length>0){
  253 + for(var i=0;i<data.data.length;i++){
  254 + textBookName[i]={"name":data.data[i].NAME,"id":data.data[i].ID};
  255 + }
  256 + }
  257 + },
  258 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  259 + // 错误信息
  260 + alert("Code State"+XMLHttpRequest.status+"State"+XMLHttpRequest.readyState+"Wrong message:"+textStatus+"");
  261 + window.top.loading.remove();
  262 + }
  263 + })
  264 + return textBookName;
  265 + }
  266 + function getClassName(){ //获取中文班级名
  267 + $.ajax({
  268 + url:url+"/SunvoteEducation/api/v1/classname",
  269 + async:false,
  270 + type:"post",
  271 + data:{id:class_id},
  272 + success:function(data){
  273 + $(".classList li").html(data.data);
  274 + },
  275 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  276 + // 错误信息
  277 + alert("Code State"+XMLHttpRequest.status+"State"+XMLHttpRequest.readyState+"Wrong message:"+textStatus+"");
  278 + window.top.loading.remove();
  279 + }
  280 + })
  281 + }
  282 + function star(index,num){ //难度星级
  283 + $(".star").eq(index).append('<ul></ul>');
  284 + var li_html="";
  285 + for(var i=1;i<=num;i++){
  286 + li_html +='<li class="on"></li>';
  287 + }
  288 + for(var j=num;j<5;j++){
  289 + li_html += '<li class="off"></li>';
  290 + }
  291 +
  292 + $(".star").eq(index).find("ul").html(li_html);
  293 + }
  294 +
  295 + $(".section").on("click",".add",function(event){ //展开菜单
  296 + event.stopPropagation();
  297 + var that=$(this).closest("li");
  298 + if($(".tab .active").attr("data-index")==1){
  299 + if(that.attr("data-img-click")==0){
  300 + getMenu(that.attr("data-id"),that);
  301 + }
  302 + that.attr("data-img-click",1);
  303 + }else{
  304 + that.attr("data-img-click",1);
  305 + }
  306 +
  307 + if(that.children('ul').length>0)
  308 + that.children('ul').slideToggle(function(){
  309 + if(that.children('ul').css("display")=="block")
  310 + that.children('img').attr("src","../static/images/reduce.png");
  311 + else
  312 + that.children('img').attr("src","../static/images/add.png");
  313 + });
  314 + });
  315 + $(".section").on("click","span",function(event){ //点击菜单获取题目
  316 + window.top.loading.show();
  317 + event.stopPropagation();
  318 + pageNum=1;
  319 + $(".question_box ul").html("");
  320 + var that=$(this).closest("li");
  321 + if($(".tab .active").attr("data-index")==1){
  322 + paper_title = this.textContent;
  323 + getQuestion(that);
  324 + $(".menu_active").removeClass();
  325 + that.addClass("menu_active");
  326 + }else{
  327 + paper_title = this.textContent;
  328 + getQuestion(that);
  329 + $(".menu_active").removeClass();
  330 + that.addClass("menu_active");
  331 + }
  332 +
  333 + });
  334 + $(".book_box").children("ul").on("mouseover","li",function(event){ //教材版本交互
  335 + event.stopPropagation();
  336 + $(this).children(".float_box").css("display","block");
  337 + });
  338 + $(".book_box").children("ul").on("mouseleave","li",function(event){ //教材版本交互
  339 + event.stopPropagation();
  340 + $(this).children(".float_box").css("display","none");
  341 + });
  342 + $(".float_box").on("mouseleave",function(event){ //教材版本交互
  343 + event.stopPropagation();
  344 + $(this).css("display","none");
  345 + });
  346 + $(document).on("click",".float_box li",function(event){ //教材版本交互
  347 + event.stopPropagation();
  348 + var id=$(this).attr("data-id");
  349 + $("#book_name").text($(this).closest(".li_name").children(".name").text()+"/"+$(this).text());
  350 + $(".float_box").css("display","none");
  351 + $(".book_box").slideToggle();
  352 + getChapter(id);
  353 + });
  354 + $(".book").click(function(){ //教材版本下拉框交互
  355 + $(".book_box").slideToggle();
  356 + })
  357 + $(document).on("click",".check_box",function(){ //选中题目
  358 +
  359 + if($(this).hasClass("checked")){
  360 + var id=$(this).closest("li").attr("data-id");
  361 + var que_index= -1 ;
  362 + for(var tp = 0 ; tp < question_box.length; tp++){
  363 + if(question_box[tp].id == id){
  364 + que_index = tp;
  365 + }
  366 + }
  367 + $(this).removeClass("checked");
  368 + question_box.splice(que_index,1);
  369 + question_num--;
  370 + }else{
  371 + //question_box[question_num].id =$(this).closest("li").attr("data-id");
  372 + //question_box[question_num].knowledge_id =$(this).closest("li").attr("data-knowledge");
  373 + question_box[question_num] = {id:$(this).closest("li").attr("data-id"),knowledge_id:$(this).closest("li").attr("data-knowledge")};
  374 + question_num++;
  375 + $(this).addClass("checked");
  376 + }
  377 + $("#all_que_num").html(question_num);
  378 + });
  379 + $(".clear_que").click(function(){ //清空
  380 + question_num=0;
  381 + question_box=[];
  382 + $(".checked").removeClass("checked");
  383 + $("#all_que_num").html(question_num);
  384 + });
  385 + $(".tab li").click(function(){ //教材与知识点选择
  386 + window.top.loading.show();
  387 + pageNum=1;
  388 + $(this).siblings().removeClass("active");
  389 + $(this).addClass("active");
  390 + if($(this).index()==0){
  391 + getTeachingMaterial();
  392 + $(".choose_book").css("display","block");
  393 + //getChapter(TEXTBOOK_ID);
  394 + }else{
  395 + $(".choose_book").css("display","none");
  396 + getPoint();
  397 + }
  398 + });
  399 + $(".topic").click(function(){
  400 + if(parseInt($("#all_que_num").text())>0){
  401 + paper_time = parseInt($("#all_que_num").text()) > 75 ? "150" : (parseInt($("#all_que_num").text()) * 2);
  402 + $("#title").val(paper_title);
  403 + $("#time").val(paper_time);
  404 + $('#myModal').modal('show');
  405 + }else{
  406 + alert("Please select question first")
  407 + }
  408 + });
  409 + $(".view_more").click(function(){ //加载更多
  410 + flag++;
  411 + if(end>0){
  412 + $(".view_more p").html("No more");
  413 + return;
  414 + }
  415 + if(flag==1){
  416 + window.top.loading.show();
  417 + pageNum++;
  418 + getQuestion($(".menu_active"));
  419 + }
  420 + })
  421 + $("#submit").click(function(){
  422 + var question_arry=[];
  423 + for(var i=0;i<question_num;i++){
  424 + question_arry[i]={
  425 + score: "0",
  426 + part_score: "0",
  427 + question_id: question_box[i].id,
  428 + knowledge_id:question_box[i].knowledge_id,
  429 + rank: i.toString(),
  430 + no_name: i.toString()
  431 + };
  432 +
  433 + }
  434 + var data={
  435 + title: $("#title").val(),
  436 + exam_time: $("#time").val(),
  437 + paper_type: "101",
  438 + subject_id: subject_id,
  439 + grade_id: "",
  440 + class_id: class_id,
  441 + user_id: user_id,
  442 + score: "",
  443 + questions: question_arry
  444 + };
  445 + sessionStorage.setItem("data",JSON.stringify(data));
  446 + location.href="paper_view.do?classID="+class_id+"&userid="+user_id;
  447 +
  448 + })
0 449 \ No newline at end of file
... ...
WebRoot/static/js/en_test_list.js 0 → 100644
  1 +var option_html = "";
  2 +var subject_id = "";
  3 +
  4 +function getQueryString(name) {
  5 + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  6 + var r = window.location.search.substr(1).match(reg);
  7 + if (r != null)
  8 + return unescape(r[2]);
  9 + return null;
  10 +}
  11 +var class_id = getQueryString("classid");
  12 +$(document).ready(
  13 + function() {
  14 +
  15 + $.ajax({
  16 + url : url + "/teacher/info",
  17 + async : false,
  18 + type : "post",
  19 + success : function(data) {
  20 + subject_id = data.data.subjectList[0].SUBJECT_ID;
  21 + user_id = data.data.ID;
  22 + if (data.data.classInfoList.length > 0) {
  23 + for (var i = 0; i < data.data.classInfoList.length; i++) {
  24 + option_html += '<option value="'
  25 + + data.data.classInfoList[i].CLASS_ID
  26 + + '">'
  27 + + data.data.classInfoList[i].CLASS_NAME
  28 + + '</option>'
  29 + }
  30 + $("#dealer_id_2").html(option_html);
  31 + }
  32 + getList();
  33 + },
  34 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  35 + // 错误信息
  36 + alert("Status code:"+XMLHttpRequest.status+"Status:"+XMLHttpRequest.readyState+"wrong massage:"+textStatus+"");
  37 + window.top.loading.remove();
  38 + }
  39 + })
  40 + // 日期框
  41 + $('.date-picker').datepicker({
  42 + autoclose : true,
  43 + todayHighlight : true
  44 + });
  45 + window.top.loading.remove();
  46 + })
  47 +function getList(start_date, end_date, class_id) { // 获取测验列表
  48 + var tab_html = "";
  49 + if(class_id == null){
  50 + class_id = getQueryString("classid");
  51 + }
  52 + $.ajax({
  53 + url : url + "/api/v1/testpaper",
  54 + async : false,
  55 + type : "post",
  56 + data : {
  57 + test_type : "101",
  58 + user_id : user_id,
  59 + subject_id : subject_id,
  60 + class_id : class_id,
  61 + currentpage : "1",
  62 + showcount : "",
  63 + start_date : start_date,
  64 + end_date : end_date
  65 + },
  66 + success : function(data) {
  67 + console.log(data);
  68 + for (var i = 0; i < data.data.length; i++) {
  69 + tab_html += '<tr><td>'
  70 + + (i + 1)
  71 + + '</td><td>'
  72 + + data.data[i].name
  73 + + '</td><td>'
  74 + + getClassName(data.data[i].classId)
  75 + + '</td><td>'
  76 + + data.data[i].createDate
  77 + + '</td><td><a onclick="window.top.loading.show();jump($(this));" data-id="'
  78 + + data.data[i].testpaperId
  79 + + '" >View</a> &nbsp;&nbsp;&nbsp;&nbsp; <!-- <a onclick="window.top.loading.show();ansync($(this)); " data-id="'
  80 + + data.data[i].testpaperId + '" >班级分析</a> --></td></tr>'
  81 + }
  82 + $("#tab_body").html(tab_html);
  83 + },
  84 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  85 + // 错误信息
  86 + alert("Status code:"+XMLHttpRequest.status+"Status:"+XMLHttpRequest.readyState+"wrong massage:"+textStatus+"");
  87 + window.top.loading.remove();
  88 + }
  89 + });
  90 +}
  91 +function jump(obj) { // 预览测验详情
  92 + var id = obj.attr("data-id");
  93 + location.href = "paper_view1.do?testpaperId=" + id;
  94 +}
  95 +
  96 +function ansync(obj){
  97 + // 班级分析
  98 + var id = obj.attr("data-id");
  99 + location.href = "classansync.do?testpaperId=" + id;
  100 +}
  101 +
  102 +function getSubjectName(id) { // 获取科目中文名
  103 + var subjectName = "";
  104 + $.ajax({
  105 + url : url + " /api/v1/subjectcname",
  106 + async : false,
  107 + type : "post",
  108 + data : {
  109 + id : id
  110 + },
  111 + success : function(data) {
  112 + subjectName = data.data;
  113 + }
  114 + })
  115 + return subjectName;
  116 +}
  117 +function getClassName(id) { // 获取班级中文名
  118 + var className = "";
  119 + $.ajax({
  120 + url : url + "/api/v1/classname",
  121 + async : false,
  122 + type : "post",
  123 + data : {
  124 + id : id
  125 + },
  126 + success : function(data) {
  127 + className = data.data;
  128 + },
  129 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  130 + // 错误信息
  131 + alert("Status code:"+XMLHttpRequest.status+"Status:"+XMLHttpRequest.readyState+"wrong massage:"+textStatus+"");
  132 + window.top.loading.remove();
  133 + }
  134 + })
  135 + return className;
  136 +}
  137 +function tosearch() { //搜索
  138 + var start_date = $("#lastStart").val();
  139 + var end_date = $("#lastEnd").val();
  140 + var class_id = $("#dealer_id_2").val();
  141 + getList(start_date, end_date, class_id);
  142 +}
0 143 \ No newline at end of file
... ...
WebRoot/static/js/lang.js 0 → 100644
  1 +function SetCookie(name, value) {
  2 + var key = '';
  3 + var Days = 2;
  4 + var exp = new Date();
  5 + var domain = "";
  6 + exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
  7 + if (key == null || key == "") {
  8 + document.cookie = name + "=" + encodeURI(value) + ";expires=" + exp.toGMTString() + ";path=/;domain=" + domain + ";";
  9 + }
  10 + else {
  11 + var nameValue = GetCookie(name);
  12 + if (nameValue == "") {
  13 + document.cookie = name + "=" + key + "=" + encodeURI(value) + ";expires=" + exp.toGMTString() + ";path=/;domain=" + domain + ";";
  14 + }
  15 + else {
  16 + var keyValue = getCookie(name, key);
  17 + if (keyValue != "") {
  18 + nameValue = nameValue.replace(key + "=" + keyValue, key + "=" + encodeURI(value));
  19 + document.cookie = name + "=" + nameValue + ";expires=" + exp.toGMTString() + ";path=/;domain=" + domain + ";";
  20 + }
  21 + else {
  22 + document.cookie = name + "=" + nameValue + "&" + key + "=" + encodeURI(value) + ";expires=" + exp.toGMTString() + ";path=/;" + domain + ";";
  23 + }
  24 + }
  25 + }
  26 + }
  27 + function GetCookie(name) {
  28 + var nameValue = "";
  29 + var key = "";
  30 + var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  31 + if (arr = document.cookie.match(reg)) {
  32 + nameValue = decodeURI(arr[2]);
  33 + }
  34 + if (key != null && key != "") {
  35 + reg = new RegExp("(^| |&)" + key + "=([^(;|&|=)]*)(&|$)");
  36 + if (arr = nameValue.match(reg)) {
  37 + return decodeURI(arr[2]);
  38 + }
  39 + else return null;
  40 + }
  41 + else {
  42 + return nameValue;
  43 + }
  44 + }
  45 +
  46 + function lang(){
  47 + var language = (GetCookie("lang") || navigator.browserLanguage || navigator.language).toLowerCase();
  48 + return language.substring(0,2) ;
  49 + }
... ...
WebRoot/static/login/en_logo.png 0 → 100644

4.49 KB

WebRoot/static/login/en_title.png 0 → 100644

12.7 KB