Commit 5d2c20339b498830f42e08b8b21342175eb229f7
1 parent
cea072ff
自定义出题
Showing
5 changed files
with
427 additions
and
11 deletions
WebRoot/WEB-INF/jsp/sunvote/coursemanagement/coursemanagement_edit.jsp
@@ -65,6 +65,14 @@ | @@ -65,6 +65,14 @@ | ||
65 | </td> | 65 | </td> |
66 | </tr> | 66 | </tr> |
67 | <tr> | 67 | <tr> |
68 | + <td style="width:75px;text-align: right;padding-top: 13px;">学期:</td> | ||
69 | + <select class="chosen-select form-control" name="TERM_ID" id="TERM_ID" data-placeholder="学期"> | ||
70 | + <c:forEach var="item" items="${subjects}"> | ||
71 | + <option value="${item.ID}" <c:if test="${pd.TERM_ID==item.TERM_ID}">selected="true"</c:if>>${item.NAME}</option> | ||
72 | + </c:forEach> | ||
73 | + </select> | ||
74 | + </tr> | ||
75 | + <%-- <tr> | ||
68 | <td style="width:75px;text-align: right;padding-top: 13px;">开始时间:</td> | 76 | <td style="width:75px;text-align: right;padding-top: 13px;">开始时间:</td> |
69 | <td><input class="span10 date-picker" name="START_DATE" id="START_DATE" value="${pd.START_DATE}" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" placeholder="开始时间" title="开始时间" style="width:98%;"/></td> | 77 | <td><input class="span10 date-picker" name="START_DATE" id="START_DATE" value="${pd.START_DATE}" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" placeholder="开始时间" title="开始时间" style="width:98%;"/></td> |
70 | </tr> | 78 | </tr> |
@@ -75,7 +83,7 @@ | @@ -75,7 +83,7 @@ | ||
75 | <tr> | 83 | <tr> |
76 | <td style="width:75px;text-align: right;padding-top: 13px;">备注:</td> | 84 | <td style="width:75px;text-align: right;padding-top: 13px;">备注:</td> |
77 | <td><input type="text" name="REMARK" id="REMARK" value="${pd.REMARK}" maxlength="255" placeholder="这里输入备注" title="备注" style="width:98%;"/></td> | 85 | <td><input type="text" name="REMARK" id="REMARK" value="${pd.REMARK}" maxlength="255" placeholder="这里输入备注" title="备注" style="width:98%;"/></td> |
78 | - </tr> | 86 | + </tr> --%> |
79 | <tr> | 87 | <tr> |
80 | <td style="text-align: center;" colspan="10"> | 88 | <td style="text-align: center;" colspan="10"> |
81 | <a class="btn btn-mini btn-primary" onclick="save();">保存</a> | 89 | <a class="btn btn-mini btn-primary" onclick="save();">保存</a> |
WebRoot/WEB-INF/jsp/sunvote/teacher/creat_question.jsp
@@ -29,7 +29,7 @@ | @@ -29,7 +29,7 @@ | ||
29 | <div class="btn_box pull-right"> | 29 | <div class="btn_box pull-right"> |
30 | <input type="button" class="btn btn-success btn-lg" name="save" value="保存" id="save"/> | 30 | <input type="button" class="btn btn-success btn-lg" name="save" value="保存" id="save"/> |
31 | <button type="button" class="btn btn-success btn-lg" data-toggle="modal" data-target=".fast" id="fast">快速出题</button> | 31 | <button type="button" class="btn btn-success btn-lg" data-toggle="modal" data-target=".fast" id="fast">快速出题</button> |
32 | - <!-- <button type="button" class="btn btn-success btn-lg" data-toggle="modal" data-target=".addQuestion" id="addQuestion">添加试题</button> --> | 32 | + <button type="button" class="btn btn-success btn-lg" data-toggle="modal" data-target=".addQuestion" id="addQuestion">添加试题</button> |
33 | <div class="clearfix"></div> | 33 | <div class="clearfix"></div> |
34 | </div> | 34 | </div> |
35 | </div> | 35 | </div> |
@@ -147,13 +147,6 @@ | @@ -147,13 +147,6 @@ | ||
147 | <div class="clearfix"></div> | 147 | <div class="clearfix"></div> |
148 | </div> | 148 | </div> |
149 | <div class="form-group"> | 149 | <div class="form-group"> |
150 | - <label for="answer_2" class="col-sm-2 control-label">试题答案</label> | ||
151 | - <div class="col-sm-10"> | ||
152 | - <input type="text" class="form-control" id="answer_2" placeholder="输入题目答案,以分号隔开"> | ||
153 | - </div> | ||
154 | - <div class="clearfix"></div> | ||
155 | - </div> | ||
156 | - <div class="form-group"> | ||
157 | <label for="num_ans_2" class="col-sm-2 control-label">选项个数</label> | 150 | <label for="num_ans_2" class="col-sm-2 control-label">选项个数</label> |
158 | <div class="col-sm-10"> | 151 | <div class="col-sm-10"> |
159 | <select class="form-control" id="num_ans_2"> | 152 | <select class="form-control" id="num_ans_2"> |
@@ -223,7 +216,7 @@ | @@ -223,7 +216,7 @@ | ||
223 | //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"}]}]}; | 216 | //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"}]}]}; |
224 | //var testData={"title":"TEST1","exam_time":46,"paper_type":"1","subject_id":"1","grade_id":"1","user_id":"1","score":5,"questions":[]}; | 217 | //var testData={"title":"TEST1","exam_time":46,"paper_type":"1","subject_id":"1","grade_id":"1","user_id":"1","score":5,"questions":[]}; |
225 | </script> | 218 | </script> |
226 | -<script type="text/javascript" src="../static/js/control.js"></script> | 219 | +<script type="text/javascript" src="../static/js/control-604.js"></script> |
227 | 220 | ||
228 | 221 | ||
229 | </body> | 222 | </body> |
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp
@@ -94,7 +94,7 @@ | @@ -94,7 +94,7 @@ | ||
94 | </div> | 94 | </div> |
95 | <c:forEach items="${pd.TEACHER}" var="var" varStatus="vs"> | 95 | <c:forEach items="${pd.TEACHER}" var="var" varStatus="vs"> |
96 | <div class="class"> | 96 | <div class="class"> |
97 | - <p>${var.GRADE_NAME}${var.SUBJECT_NAME} <span>${var.CLASS_NAME}</span></p> | 97 | + <p><a href="javascript:;">${var.GRADE_NAME}${var.SUBJECT_NAME} <span>${var.CLASS_NAME}</span></a></p> |
98 | </div> | 98 | </div> |
99 | </c:forEach> | 99 | </c:forEach> |
100 | <div class="test">测验</div> | 100 | <div class="test">测验</div> |
WebRoot/static/js/control-604.js
0 → 100644
1 | +$(function(){ | ||
2 | + /*快速创建答案列表*/ | ||
3 | + var score=0; | ||
4 | + function creat(str_ans,a_num,fraction){ | ||
5 | + $(".section").remove(); | ||
6 | + $(".content").append('<div class="section section-1 single" data-fraction="'+fraction+'" data-score=""> <div class="title"> <h3><span class="que_num">一、</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>') | ||
7 | + var str=str_ans.split(''); | ||
8 | + console.log(str); | ||
9 | + for(i=0;i<str.length;i++){ | ||
10 | + if(str[i] == " "){ | ||
11 | + str.splice(i,1); | ||
12 | + i= i-1; | ||
13 | + } | ||
14 | + } | ||
15 | + q_num=str.length; | ||
16 | + for(var i=0;i<q_num;i++){ | ||
17 | + str_temp=str[i]; | ||
18 | + str_temp=str_temp.toUpperCase() | ||
19 | + code = str_temp.charCodeAt(); | ||
20 | + on_index=code-65; | ||
21 | + if(code<(65+a_num)){ | ||
22 | + console.log(str_temp); | ||
23 | + $(".question_list").append('<div class="question question'+(i+1)+'"><span>'+(i+1)+'、</span><ul></ul></div>'); | ||
24 | + for(var j=0;j<a_num;j++){ | ||
25 | + option=String.fromCharCode(0x41+j); | ||
26 | + if(on_index==j){ | ||
27 | + console.log(on_index+"---"+j); | ||
28 | + $(".question"+(i+1)+' ul').append('<li class="btn btn-default on">'+option+'</li>'); | ||
29 | + }else | ||
30 | + $(".question"+(i+1)+' ul').append('<li class="btn btn-default">'+option+'</li>'); | ||
31 | + } | ||
32 | + }else{ | ||
33 | + alert("题目"+(i+1)+":"+String.fromCharCode(code)+"答案错误,超出选项数"); | ||
34 | + //return; | ||
35 | + } | ||
36 | + } | ||
37 | + $(".section-1").attr("data-score",$(".section-1").find(".question").length*fraction); | ||
38 | + } | ||
39 | + | ||
40 | + /*********** | ||
41 | + *1、单选题 | ||
42 | + *2、完形填空 | ||
43 | + *3、阅读理解 | ||
44 | + *4、判断题 | ||
45 | + *5、多选题 | ||
46 | + ***********/ | ||
47 | + | ||
48 | + function addQuestion(type,a_num,index_s_2,index_e_2,fraction2){ | ||
49 | + console.log(type); | ||
50 | + answer_index_b=$(".section").length+1; | ||
51 | + var question_num=SectionToChinese($(".section").length+1); | ||
52 | + switch(type){ | ||
53 | + case 1: //单选题 | ||
54 | + //alert(typeof(index_s_2)); | ||
55 | + $(".content").append('<div class="section section-'+answer_index_b+' single" data-fraction="'+fraction2+'" data-score=""> <div class="title"> <h3><span class="que_num">'+question_num+'、</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>'); | ||
56 | + for(i=index_s_2;i<=index_e_2;i++){ | ||
57 | + $(".section-"+answer_index_b+" .question_list").append('<div class="question question'+i+'"><span>'+i+'、</span><ul></ul></div>'); | ||
58 | + for(var j=0;j<a_num;j++){ | ||
59 | + option=String.fromCharCode(0x41+j); | ||
60 | + $(".section-"+answer_index_b+" .question"+i+' ul').append('<li class="btn btn-default">'+option+'</li>'); | ||
61 | + } | ||
62 | + } | ||
63 | + break; | ||
64 | + case 2: //完形填空 | ||
65 | + $(".content").append('<div class="section section-'+answer_index_b+' single" data-fraction="'+fraction2+'" data-score=""> <div class="title"> <h3><span class="que_num">'+question_num+'、</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>'); | ||
66 | + for(var i=index_s_2;i<=index_e_2;i++){ | ||
67 | + $(".section-"+answer_index_b+" .question_list").append('<div class="question question'+i+'"><span>'+i+'、</span><ul></ul></div>'); | ||
68 | + for(var j=0;j<a_num;j++){ | ||
69 | + option=String.fromCharCode(0x41+j); | ||
70 | + $(".section-"+answer_index_b+" .question"+i+' ul').append('<li class="btn btn-default">'+option+'</li>'); | ||
71 | + } | ||
72 | + } | ||
73 | + break; | ||
74 | + case 3: //阅读理解 | ||
75 | + $(".content").append('<div class="section section-'+answer_index_b+' single" data-fraction="'+fraction2+'" data-score=""> <div class="title"> <h3><span class="que_num">'+question_num+'、</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>'); | ||
76 | + for(var i=index_s_2;i<=index_e_2;i++){ | ||
77 | + $(".section-"+answer_index_b+" .question_list").append('<div class="question question'+i+'"><span>'+i+'、</span><ul></ul></div>'); | ||
78 | + for(var j=0;j<a_num;j++){ | ||
79 | + option=String.fromCharCode(0x41+j); | ||
80 | + $(".section-"+answer_index_b+" .question"+i+' ul').append('<li class="btn btn-default">'+option+'</li>'); | ||
81 | + } | ||
82 | + } | ||
83 | + break; | ||
84 | + case 4: //判断题 | ||
85 | + $(".content").append('<div class="section section-'+answer_index_b+' single" data-fraction="'+fraction2+'" data-score=""> <div class="title"> <h3><span class="que_num">'+question_num+'、</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>'); | ||
86 | + for(var i=index_s_2;i<=index_e_2;i++){ | ||
87 | + $(".section-"+answer_index_b+" .question_list").append('<div class="question question'+i+'"><span>'+i+'、</span><ul></ul></div>'); | ||
88 | + for(var j=0;j<a_num;j++){ | ||
89 | + if(j%2==0) | ||
90 | + option="√"; | ||
91 | + else | ||
92 | + option="×"; | ||
93 | + $(".section-"+answer_index_b+" .question"+i+' ul').append('<li class="btn btn-default">'+option+'</li>'); | ||
94 | + } | ||
95 | + } | ||
96 | + break; | ||
97 | + case 5: //多选题 | ||
98 | + $(".content").append('<div class="section section-'+answer_index_b+' check" data-fraction="'+fraction2+'" data-score=""> <div class="title"> <h3><span class="que_num">'+question_num+'、</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>'); | ||
99 | + for(var i=index_s_2;i<=index_e_2;i++){ | ||
100 | + $(".section-"+answer_index_b+" .question_list").append('<div class="question question'+i+'"><span>'+i+'、</span><ul></ul></div>'); | ||
101 | + for(var j=0;j<a_num;j++){ | ||
102 | + option=String.fromCharCode(0x41+j); | ||
103 | + $(".section-"+answer_index_b+" .question"+i+' ul').append('<li class="btn btn-default">'+option+'</li>'); | ||
104 | + } | ||
105 | + } | ||
106 | + break; | ||
107 | + } | ||
108 | + $(".section-"+answer_index_b).attr("data-score",$(".section-"+answer_index_b).find(".question").length*fraction2); | ||
109 | + } | ||
110 | + | ||
111 | + $(document).on('click','.remove',function(){ //删除按钮 | ||
112 | + $(this).parent().parent(".section").remove(); | ||
113 | + }) | ||
114 | + | ||
115 | + $("#fast_submit").click(function(){ //点击确定,创建答案列表 | ||
116 | + $("#addQuestion").attr("disabled","disabled"); | ||
117 | + var answer=$("#answer").val(); | ||
118 | + var num_ans=$("#num_ans").val(); | ||
119 | + var fraction=$("#fraction").val(); | ||
120 | + if(answer==''){ | ||
121 | + alert("请输入题目答案,以分号隔开"); | ||
122 | + return; | ||
123 | + }else if(fraction==''){ | ||
124 | + alert("请输入题目分数"); | ||
125 | + return; | ||
126 | + } | ||
127 | + $('.fast').modal('hide'); | ||
128 | + //score += parseInt(fraction)*answer.split(",").length; | ||
129 | + creat(answer,num_ans,fraction); | ||
130 | + }) | ||
131 | + | ||
132 | + /*添加试题的确定按钮*/ | ||
133 | + $("#addQuestion_submit").click(function(){ | ||
134 | + $("#fast").attr("disabled","disabled"); | ||
135 | + var type_2=parseInt($("#type").val()); | ||
136 | + var index_s_2=parseInt($("#index_s_2").val()); | ||
137 | + var index_e_2=parseInt($("#index_e_2").val()); | ||
138 | + //var answer_2=$("#answer_2").val(); | ||
139 | + var num_ans_2=$("#num_ans_2").val(); | ||
140 | + var fraction2=parseInt($("#fraction2").val()); | ||
141 | + if(index_s_2==''){ | ||
142 | + alert("请输入题目开始序号"); | ||
143 | + return; | ||
144 | + }else if(index_e_2==''){ | ||
145 | + alert("请输入题目结束序号"); | ||
146 | + return; | ||
147 | + } | ||
148 | + //console.log(typeof(type_2)); | ||
149 | + addQuestion(type_2,num_ans_2,index_s_2,index_e_2,fraction2); | ||
150 | + $('.addQuestion').modal('hide'); | ||
151 | + }) | ||
152 | + $("#type").change(function(){ | ||
153 | + if($("#type").val()==4){ | ||
154 | + $("#num_ans_2").val(2); | ||
155 | + $("#num_ans_2").attr("disabled","disabled"); | ||
156 | + }else{ | ||
157 | + $("#num_ans_2").removeAttr("disabled"); | ||
158 | + $("#num_ans_2").val(4); | ||
159 | + | ||
160 | + } | ||
161 | + }) | ||
162 | + /*更改考试时长*/ | ||
163 | + $("#time_submit").click(function(){ | ||
164 | + var test_time=$("#enter_time").val(); | ||
165 | + if(test_time==''){ | ||
166 | + alert("请输入考试时间"); | ||
167 | + return; | ||
168 | + } | ||
169 | + $("#time").html(test_time); | ||
170 | + $('.test_time').modal('hide'); | ||
171 | + }) | ||
172 | + /*更改单选答案*/ | ||
173 | + $(document).on('click','.single li',function(){ | ||
174 | + $(this).siblings().removeClass("on"); | ||
175 | + $(this).addClass("on"); | ||
176 | + }) | ||
177 | + /*更改多选答案*/ | ||
178 | + $(document).on('click','.check li',function(){ | ||
179 | + //$(this).siblings().removeClass("on"); | ||
180 | + $(this).addClass("on"); | ||
181 | + }) | ||
182 | + /*提交保存数据*/ | ||
183 | + $("#save").click(function(){ | ||
184 | + var url=URL; | ||
185 | + for(i=0;i<$(".section").length;i++){ | ||
186 | + score+=parseInt($(".section").eq(i).attr("data-score")); | ||
187 | + } | ||
188 | + var data={ | ||
189 | + title: $(".header_box h1").text(), | ||
190 | + exam_time: parseInt($("#time").text()), | ||
191 | + paper_type: testData.paper_type, | ||
192 | + subject_id: testData.subject_id, | ||
193 | + grade_id: testData.grade_id, | ||
194 | + user_id: testData.user_id, | ||
195 | + score:score, | ||
196 | + questions:[] | ||
197 | + } | ||
198 | + | ||
199 | + if($(".section").length>0){ | ||
200 | + var rank=0 | ||
201 | + for(i=0;i<$(".section").length;i++){ | ||
202 | + rank++; | ||
203 | + data.questions[i]={ | ||
204 | + chapter_id: "0", | ||
205 | + problem_type_id: "0", | ||
206 | + knowledge_id: "0", | ||
207 | + content: $(".section").eq(i).find(".que_name").text(), | ||
208 | + option_num: "", | ||
209 | + option_content: "", | ||
210 | + answer: "", | ||
211 | + difficulty: "", | ||
212 | + analysis: "", | ||
213 | + question_from: "", | ||
214 | + score:parseInt($(".section").eq(i).attr("data-fraction")), | ||
215 | + part_score: "", | ||
216 | + remark: "", | ||
217 | + rank: rank, | ||
218 | + no_name: $(".section").eq(i).find(".que_num").text(), | ||
219 | + questions:[] | ||
220 | + } | ||
221 | + for(j=0;j<$(".section").eq(i).find(".question_list").children(".question").length;j++){ | ||
222 | + rank++; | ||
223 | + var on_num=$(".section").eq(i).find(".question").eq(j).find(".on").length; | ||
224 | + var answer=""; | ||
225 | + for(k=0;k<on_num;k++){ | ||
226 | + answer+=$(".section").eq(i).find(".question").eq(j).find(".on").eq(k).text(); | ||
227 | + //console.log(answer); | ||
228 | + } | ||
229 | + data.questions[i].questions[j]={ | ||
230 | + chapter_id: "0", | ||
231 | + problem_type_id: "0", | ||
232 | + knowledge_id: "0", | ||
233 | + content: "", | ||
234 | + option_num: $(".section").eq(i).find(".question").eq(j).find("li").length, | ||
235 | + option_content: "", | ||
236 | + answer: answer, | ||
237 | + difficulty: "0", | ||
238 | + analysis: "", | ||
239 | + question_from: "1", | ||
240 | + score: parseInt($(".section").eq(i).attr("data-fraction")), | ||
241 | + part_score: "0", | ||
242 | + remark: "", | ||
243 | + rank: rank, | ||
244 | + no_name: (i+1)+'.'+(j+1), | ||
245 | + } | ||
246 | + } | ||
247 | + } | ||
248 | + } | ||
249 | + | ||
250 | + if(data.questions.length>0){ | ||
251 | + data=JSON.stringify(data); | ||
252 | + dataJson={"json":data}; | ||
253 | + console.log(data); | ||
254 | + ajax_submit(url,dataJson); | ||
255 | + } | ||
256 | + else | ||
257 | + alert("请添加试题"); | ||
258 | + }) | ||
259 | +}) | ||
260 | + | ||
261 | + | ||
262 | + | ||
263 | + | ||
264 | +/*ajax封装函数*/ | ||
265 | +function ajax_submit(url,data){ | ||
266 | + $(".loading").css("display","block"); | ||
267 | + | ||
268 | + $.ajax({ | ||
269 | + url:url, | ||
270 | + type:"POST", | ||
271 | + data:data, | ||
272 | + dataType:"json", | ||
273 | + success:function(data){ | ||
274 | + $(".loading").css("display","none"); | ||
275 | + window.location.href = JUMP_URL ; | ||
276 | + } | ||
277 | + }) | ||
278 | +} | ||
279 | +function fastSort(array,head,tail){ | ||
280 | + //考虑到给每个分区操作的时候都是在原有的数组中进行操作的,所以这里head,tail来确定分片的位置 | ||
281 | + /*生成随机项*/ | ||
282 | + var randomnum = parseInt((head + tail) / 2 ); | ||
283 | + var random = array[randomnum]; | ||
284 | + /*将小于random的项放置在其左边 策略就是通过一个临时的数组来储存分好区的结果,再到原数组中替换*/ | ||
285 | + var arrayTemp = []; | ||
286 | + var unshiftHead = 0; | ||
287 | + for(var i = head;i <= tail;i++){ | ||
288 | + if(parseInt(array[i].rank)<parseInt(random.rank)){ | ||
289 | + arrayTemp.unshift(array[i]); | ||
290 | + unshiftHead++; | ||
291 | + }else if(parseInt(array[i].rank)>parseInt(random.rank)){ | ||
292 | + arrayTemp.push(array[i]); | ||
293 | + } | ||
294 | + /*当它等于的时候放哪,这里我想选择放到队列的前面,也就是从unshift后的第一个位置放置*/ | ||
295 | + if(parseInt(array[i].rank)===parseInt(random.rank)){ | ||
296 | + arrayTemp.splice(unshiftHead,0,array[i]); | ||
297 | + } | ||
298 | + } | ||
299 | + /*将对应项覆盖原来的记录*/ | ||
300 | + for(var j = head , u=0;j <= tail;j++,u++){ | ||
301 | + array.splice(j,1,arrayTemp[u]); | ||
302 | + } | ||
303 | + /*寻找中间项所在的index*/ | ||
304 | + var nowIndex = array.indexOf(random); | ||
305 | + | ||
306 | + /*设置出口,当要放进去的片段只有2项的时候就可以收工了*/ | ||
307 | + if(arrayTemp.length <= 2){ | ||
308 | + return; | ||
309 | + } | ||
310 | + /*递归,同时应用其左右两个区域*/ | ||
311 | + fastSort(array,head,nowIndex); | ||
312 | + fastSort(array,nowIndex+1,tail); | ||
313 | + } | ||
314 | +if(testData.questions.length > 0){ | ||
315 | + fastSort(testData.questions,0,testData.questions.length-1); | ||
316 | + for(var i = 0 ; i < testData.questions.length;i++){ | ||
317 | + if(testData.questions[0].questions.length > 1){ | ||
318 | + fastSort(testData.questions[i].questions,0,testData.questions[i].questions.length-1); | ||
319 | + } | ||
320 | + } | ||
321 | + | ||
322 | +} | ||
323 | +creatHtml(testData); | ||
324 | +function creatHtml(data){ | ||
325 | + console.log(data); | ||
326 | + $(".header_box h1").html(data.title); | ||
327 | + $("#time").html(data.exam_time); | ||
328 | + for(var i=0;i<data.questions.length;i++){ | ||
329 | + $(".content").append('<div class="section section-'+i+'" data-fraction="'+data.questions[i].score+'"> <h3><span class="que_num">'+data.questions[i].no_name+'</span>'+'<span class="que_name">'+data.questions[i].content+'</span></h3> <input type="button" class="btn btn-danger pull-right remove" name="remove" value="删除" /> <div class="question_list"></div></div>') | ||
330 | + if(data.questions.length>0){ | ||
331 | + $(".time").removeAttr("data-target"); | ||
332 | + $(".remove").remove(); | ||
333 | + $(".btn_box").remove(); | ||
334 | + } | ||
335 | + for(var j=0;j<data.questions[i].questions.length;j++){ | ||
336 | + $(".section-"+i).find(".question_list").append('<div class="question question'+(j+1)+'"><span>'+(j+1)+'、</span><ul></ul></div>'); | ||
337 | + if($(".section-"+i).find(".que_name").text()=="判断题"){ | ||
338 | + for(var k=0;k<parseInt(data.questions[i].questions[j].option_num);k++){ | ||
339 | + str_temp=data.questions[i].questions[j].answer; | ||
340 | + if(k%2==0){ | ||
341 | + $(".section-"+i).find(".question"+(j+1)+' ul').append('<li class="btn btn-default">√</li>'); | ||
342 | + }else if(k%2==1){ | ||
343 | + $(".section-"+i).find(".question"+(j+1)+' ul').append('<li class="btn btn-default">×</li>'); | ||
344 | + } | ||
345 | + | ||
346 | + if(str_temp=="√") | ||
347 | + $(".section-"+i).find(".question"+(j+1)+' ul li').eq(0).attr("class","btn btn-default on"); | ||
348 | + else | ||
349 | + $(".section-"+i).find(".question"+(j+1)+' ul li').eq(1).attr("class","btn btn-default on"); | ||
350 | + } | ||
351 | + }else{ | ||
352 | + for(var k=0;k<parseInt(data.questions[i].questions[j].option_num);k++){ | ||
353 | + str_temp=data.questions[i].questions[j].answer; | ||
354 | + $(".section-"+i).find(".question"+(j+1)+' ul').append('<li class="btn btn-default">'+String.fromCharCode(0x41+k)+'</li>'); | ||
355 | + for(var l=0;l<str_temp.length;l++){ | ||
356 | + str_temp_arry=str_temp.split(''); | ||
357 | + code=str_temp_arry[l].charCodeAt(); | ||
358 | + on_index=code-65; | ||
359 | + if(on_index==k){ | ||
360 | + $(".section-"+i).find(".question"+(j+1)+' ul li').eq(on_index).attr("class","btn btn-default on"); | ||
361 | + } | ||
362 | + } | ||
363 | + } | ||
364 | + } | ||
365 | + } | ||
366 | + } | ||
367 | + } | ||
368 | +/*快速建题中,每输入五个答案就加一个空格*/ | ||
369 | +$("#answer").on("input propertychange",function(){ | ||
370 | + if($("#answer").val().length%5==0) | ||
371 | + $("#answer").val($("#answer").val()+" "); | ||
372 | +}) | ||
373 | + | ||
374 | +/*数字转汉字数字*/ | ||
375 | +var chnNumChar = ["零","一","二","三","四","五","六","七","八","九"]; | ||
376 | + var chnUnitSection = ["","万","亿","万亿","亿亿"]; | ||
377 | + var chnUnitChar = ["","十","百","千"]; | ||
378 | + | ||
379 | + function SectionToChinese(section){ | ||
380 | + var strIns = '', chnStr = ''; | ||
381 | + var unitPos = 0; | ||
382 | + var zero = true; | ||
383 | + while(section > 0){ | ||
384 | + var v = section % 10; | ||
385 | + if(v === 0){ | ||
386 | + if(!zero){ | ||
387 | + zero = true; | ||
388 | + chnStr = chnNumChar[v] + chnStr; | ||
389 | + } | ||
390 | + }else{ | ||
391 | + zero = false; | ||
392 | + strIns = chnNumChar[v]; | ||
393 | + strIns += chnUnitChar[unitPos]; | ||
394 | + chnStr = strIns + chnStr; | ||
395 | + } | ||
396 | + unitPos++; | ||
397 | + section = Math.floor(section / 10); | ||
398 | + } | ||
399 | + return chnStr; | ||
400 | + } | ||
401 | + | ||
402 | + | ||
403 | + | ||
404 | + | ||
405 | + |
src/com/fh/controller/sunvote/coursemanagement/CourseManagementController.java
@@ -30,6 +30,7 @@ import com.fh.service.sunvote.coursemanagement.CourseManagementManager; | @@ -30,6 +30,7 @@ import com.fh.service.sunvote.coursemanagement.CourseManagementManager; | ||
30 | import com.fh.service.sunvote.sclass.SClassManager; | 30 | import com.fh.service.sunvote.sclass.SClassManager; |
31 | import com.fh.service.sunvote.subject.SubjectManager; | 31 | import com.fh.service.sunvote.subject.SubjectManager; |
32 | import com.fh.service.sunvote.teacher.TeacherManager; | 32 | import com.fh.service.sunvote.teacher.TeacherManager; |
33 | +import com.fh.service.sunvote.term.TermManager; | ||
33 | 34 | ||
34 | /** | 35 | /** |
35 | * 说明:任课管理 | 36 | * 说明:任课管理 |
@@ -53,6 +54,9 @@ public class CourseManagementController extends BaseController { | @@ -53,6 +54,9 @@ public class CourseManagementController extends BaseController { | ||
53 | @Resource(name="subjectService") | 54 | @Resource(name="subjectService") |
54 | private SubjectManager subjectService; | 55 | private SubjectManager subjectService; |
55 | 56 | ||
57 | + @Resource(name="termService") | ||
58 | + private TermManager termService; | ||
59 | + | ||
56 | /**保存 | 60 | /**保存 |
57 | * @param | 61 | * @param |
58 | * @throws Exception | 62 | * @throws Exception |
@@ -96,6 +100,7 @@ public class CourseManagementController extends BaseController { | @@ -96,6 +100,7 @@ public class CourseManagementController extends BaseController { | ||
96 | ModelAndView mv = this.getModelAndView(); | 100 | ModelAndView mv = this.getModelAndView(); |
97 | PageData pd = new PageData(); | 101 | PageData pd = new PageData(); |
98 | pd = this.getPageData(); | 102 | pd = this.getPageData(); |
103 | + | ||
99 | coursemanagementService.edit(pd); | 104 | coursemanagementService.edit(pd); |
100 | mv.addObject("msg","success"); | 105 | mv.addObject("msg","success"); |
101 | mv.setViewName("save_result"); | 106 | mv.setViewName("save_result"); |
@@ -144,6 +149,9 @@ public class CourseManagementController extends BaseController { | @@ -144,6 +149,9 @@ public class CourseManagementController extends BaseController { | ||
144 | List<PageData> subjects = subjectService.listAll(pd); | 149 | List<PageData> subjects = subjectService.listAll(pd); |
145 | mv.addObject("subjects", subjects); | 150 | mv.addObject("subjects", subjects); |
146 | 151 | ||
152 | + List<PageData> terms = termService.listAll(pd); | ||
153 | + mv.addObject("terms", terms); | ||
154 | + | ||
147 | mv.addObject("msg", "save"); | 155 | mv.addObject("msg", "save"); |
148 | mv.addObject("pd", pd); | 156 | mv.addObject("pd", pd); |
149 | return mv; | 157 | return mv; |
@@ -166,6 +174,8 @@ public class CourseManagementController extends BaseController { | @@ -166,6 +174,8 @@ public class CourseManagementController extends BaseController { | ||
166 | mv.addObject("classs",classs); | 174 | mv.addObject("classs",classs); |
167 | List<PageData> subjects = subjectService.listAll(pd); | 175 | List<PageData> subjects = subjectService.listAll(pd); |
168 | mv.addObject("subjects", subjects); | 176 | mv.addObject("subjects", subjects); |
177 | + List<PageData> terms = termService.listAll(pd); | ||
178 | + mv.addObject("terms", terms); | ||
169 | 179 | ||
170 | mv.addObject("msg", "edit"); | 180 | mv.addObject("msg", "edit"); |
171 | mv.addObject("pd", pd); | 181 | mv.addObject("pd", pd); |