Blame view

WebRoot/static/js/control-604.js 26.4 KB
83b5ddeb   孙向锦   模板添加
1
2
3
4
5
6
7
8
9
10
  var questionNUm = 0;
  /*数字转汉字数字*/
  var chnNumChar = [ "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" ];
  var chnUnitSection = [ "", "万", "亿", "万亿", "亿亿" ];
  var chnUnitChar = [ "", "十", "百", "千" ];
  /* 快速创建答案列表 */
  var score = 0;
  var total_score = 0;
  var answerLen = 0;
  
eca4feb5   孙向锦   管理员功能完善
11
  
83b5ddeb   孙向锦   模板添加
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  $(function() {
  	
  
  	function creat(str_ans, a_num, fraction) {
  		// $(".section").remove();
  		answer_index_b = $(".section").length + 1;
  		/*
  		 * $(".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>')
  		 */
  		var str = str_ans.split('');
5d2c2033   孙向锦   自定义出题
26
  		console.log(str);
83b5ddeb   孙向锦   模板添加
27
28
29
30
  		for (i = 0; i < str.length; i++) {
  			if (str[i] == " ") {
  				str.splice(i, 1);
  				i = i - 1;
5d2c2033   孙向锦   自定义出题
31
32
  			}
  		}
83b5ddeb   孙向锦   模板添加
33
34
  		q_num = str.length;
  		$(".content").append('<div class="section section-'	+ answer_index_b+ ' single" data-fraction="'+ fraction+ '" data-score="'
ffa525ff   孙向锦   修改出卷页面
35
  								+ (q_num * fraction) + '" style="margin-top:80px;"><div class="title"><h3>第'	+ answer_index_b+ '大题(单选)总分: '
83b5ddeb   孙向锦   模板添加
36
37
38
39
40
41
42
  								+ q_num	+ ' X '	+ fraction	+ ' = '	+ (q_num * fraction)
  								+ ' 分<!--<span>请在试题选项上点击,亮色为该试题的正确答案&nbsp; </span> --></h3> </div><div class="question_list"></div></div>');
  		for (var i = 0; i < q_num; i++) {
  			str_temp = str[i];
  			str_temp = str_temp.toUpperCase()
  			code = str_temp.charCodeAt();
  			on_index = code - 65;
10146a46   孙向锦   创建试卷
43
  			questionNUm++;
83b5ddeb   孙向锦   模板添加
44
  			if (code < (65 + a_num)) {
5d2c2033   孙向锦   自定义出题
45
  				console.log(str_temp);
83b5ddeb   孙向锦   模板添加
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
  				$(".section-" + answer_index_b + " .question_list").append(
  						'<div class="question question' + (questionNUm)
  								+ '"><span>' + (questionNUm)
  								+ '、</span><ul></ul></div>');
  				for (var j = 0; j < a_num; j++) {
  					option = String.fromCharCode(0x41 + j);
  					if (on_index == j) {
  						console.log(on_index + "---" + j);
  						$(".question" + (questionNUm) + ' ul').append(
  								'<li class="btn btn-default on">' + option
  										+ '</li>');
  					} else
  						$(".question" + (questionNUm) + ' ul').append(
  								'<li class="btn btn-default">' + option
  										+ '</li>');
  				}
  			} else {
  				alert("题目" + (i + 1) + ":" + String.fromCharCode(code)
  						+ "答案错误,超出选项数");
  				// return;
5d2c2033   孙向锦   自定义出题
66
67
  			}
  		}
83b5ddeb   孙向锦   模板添加
68
  		$(".section-" + answer_index_b).attr("data-score",
ffa525ff   孙向锦   修改出卷页面
69
  				q_num * fraction);
10146a46   孙向锦   创建试卷
70
71
  		total_score += q_num * fraction;
  		$("#score_all").text(total_score);
5d2c2033   孙向锦   自定义出题
72
73
  	}
  
83b5ddeb   孙向锦   模板添加
74
75
76
  	/***************************************************************************
  	 * 1、单选题 2、完形填空 3、阅读理解 4、判断题 5、多选题
  	 **************************************************************************/
5d2c2033   孙向锦   自定义出题
77
  
83b5ddeb   孙向锦   模板添加
78
  	function addQuestion(type, a_num, index_s_2, index_e_2, fraction2) {
5d2c2033   孙向锦   自定义出题
79
  		console.log(type);
83b5ddeb   孙向锦   模板添加
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
  		answer_index_b = $(".section").length + 1;
  		var question_num = SectionToChinese($(".section").length + 1);
  		switch (type) {
  		case 1: // 单选题
  			// alert(typeof(index_s_2));
  			$(".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>');
  			for (i = index_s_2; i <= index_e_2; i++) {
  				$(".section-" + answer_index_b + " .question_list").append(
  						'<div class="question question' + i + '"><span>' + i
  								+ '、</span><ul></ul></div>');
  				for (var j = 0; j < a_num; j++) {
  					option = String.fromCharCode(0x41 + j);
  					$(".section-" + answer_index_b + " .question" + i + ' ul')
  							.append(
  									'<li class="btn btn-default">' + option
  											+ '</li>');
5d2c2033   孙向锦   自定义出题
105
  				}
83b5ddeb   孙向锦   模板添加
106
  			}
5d2c2033   孙向锦   自定义出题
107
  			break;
83b5ddeb   孙向锦   模板添加
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
  		case 2: // 完形填空
  			$(".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>');
  			for (var i = index_s_2; i <= index_e_2; i++) {
  				$(".section-" + answer_index_b + " .question_list").append(
  						'<div class="question question' + i + '"><span>' + i
  								+ '、</span><ul></ul></div>');
  				for (var j = 0; j < a_num; j++) {
  					option = String.fromCharCode(0x41 + j);
  					$(".section-" + answer_index_b + " .question" + i + ' ul')
  							.append(
  									'<li class="btn btn-default">' + option
  											+ '</li>');
5d2c2033   孙向锦   自定义出题
128
  				}
83b5ddeb   孙向锦   模板添加
129
  			}
5d2c2033   孙向锦   自定义出题
130
  			break;
83b5ddeb   孙向锦   模板添加
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
  		case 3: // 阅读理解
  			$(".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>');
  			for (var i = index_s_2; i <= index_e_2; i++) {
  				$(".section-" + answer_index_b + " .question_list").append(
  						'<div class="question question' + i + '"><span>' + i
  								+ '、</span><ul></ul></div>');
  				for (var j = 0; j < a_num; j++) {
  					option = String.fromCharCode(0x41 + j);
  					$(".section-" + answer_index_b + " .question" + i + ' ul')
  							.append(
  									'<li class="btn btn-default">' + option
  											+ '</li>');
5d2c2033   孙向锦   自定义出题
151
  				}
83b5ddeb   孙向锦   模板添加
152
  			}
5d2c2033   孙向锦   自定义出题
153
  			break;
83b5ddeb   孙向锦   模板添加
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
  		case 4: // 判断题
  			$(".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>');
  			for (var i = index_s_2; i <= index_e_2; i++) {
  				$(".section-" + answer_index_b + " .question_list").append(
  						'<div class="question question' + i + '"><span>' + i
  								+ '、</span><ul></ul></div>');
  				for (var j = 0; j < a_num; j++) {
  					if (j % 2 == 0)
  						option = "√";
  					else
  						option = "×";
  					$(".section-" + answer_index_b + " .question" + i + ' ul')
  							.append(
  									'<li class="btn btn-default">' + option
  											+ '</li>');
5d2c2033   孙向锦   自定义出题
177
  				}
83b5ddeb   孙向锦   模板添加
178
  			}
5d2c2033   孙向锦   自定义出题
179
  			break;
83b5ddeb   孙向锦   模板添加
180
181
182
183
184
185
186
187
188
189
190
191
192
  		/*
  		 * case 5: //多选题 $(".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>');
  		 * for(var i=index_s_2;i<=index_e_2;i++){
  		 * $(".section-"+answer_index_b+" .question_list").append('<div
  		 * class="question question'+i+'"><span>'+i+'</span><ul></ul></div>');
  		 * for(var j=0;j<a_num;j++){ option=String.fromCharCode(0x41+j);
  		 * $(".section-"+answer_index_b+" .question"+i+' ul').append('<li class="btn btn-default">'+option+'</li>'); } }
  		 */
5f403333   jack   1,完善数字题
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
  		
  			case 5: $(".content") //多选题
  			.append(
  					'<div class="section section-'
  							+ answer_index_b
  							+ ' check" data-fraction="'
  							+ fraction2
  							+ '" data-score="'
  							+ ((index_e_2 - index_s_2 + 1) * fraction2)
  							+ '"> <div class="title"><h3>第'
  							+ answer_index_b
  							+ '大题(多选)总分: '
  							+ (index_e_2 - index_s_2 + 1)
  							+ ' X '
  							+ fraction2
  							+ ' = '
  							+ ((index_e_2 - index_s_2 + 1) * fraction2)
  							+ ' 分<!--<span>请在试题选项上点击,亮色为该试题的正确答案&nbsp; </span>--></h3> </div> <div class="question_list"></div></div>');
  	for (var i = index_s_2; i <= index_e_2; i++) {
  		questionNUm++;
  		$(".section-" + answer_index_b + " .question_list").append(
  				'<div class="question question' + questionNUm
  						+ '"><span>' + questionNUm
  						+ '、</span><ul></ul></div>');
  		for (var j = 0; j < a_num; j++) {
  			option = String.fromCharCode(0x41 + j);
  			$(
  					".section-" + answer_index_b + " .question"
  							+ questionNUm + ' ul').append(
  					'<li class="btn btn-default">' + option + '</li>');
  		}
  	}
  	total_score += ((index_e_2 - index_s_2 + 1) * fraction2);
  	$("#score_all").text(total_score);
  	break;
  			case 6: // 数字题
  				// $(".content").html("");
  					$(".content")
  							.append(
  									'<div class="section section-'
  											+ answer_index_b
  											+ ' number" data-fraction="'
  											+ fraction2
  											+ '" data-score="'
  											+ ((index_e_2 - index_s_2 + 1) * fraction2)
  											+ '"> <div class="title"><h3>第'
  											+ answer_index_b
  											+ '大题(数字题)总分: '
  											+ (index_e_2 - index_s_2 + 1)
  											+ ' X '
  											+ fraction2
  											+ ' = '
  											+ ((index_e_2 - index_s_2 + 1) * fraction2)
  											+ ' 分<!--<span>请在试题选项上点击,亮色为该试题的正确答案&nbsp; </span>--></h3> </div> <div class="question_list"></div></div>');
  					for (var i = index_s_2; i <= index_e_2; i++) {
  						questionNUm++;
  						$(".section-" + answer_index_b + " .question_list").append(
  								'<div class="question question' + questionNUm
  										+ '"><span>' + questionNUm
  										+ '、</span><ul><li class="btn btn-default on" contenteditable="true" onkeyup="NumberCheck(this.innerText,this)">请输入答案</li></ul></div>');
  //						for (var j = 0; j < a_num; j++) {
  //							option = String.fromCharCode(0x41 + j);
  //							$(
  //									".section-" + answer_index_b + " .question"
  //											+ questionNUm + ' ul').append(
  //									'<li class="btn btn-default">' + option + '</li>');
  //						}
  					}
  					total_score += ((index_e_2 - index_s_2 + 1) * fraction2);
  					$("#score_all").text(total_score);
  					break;
5d2c2033   孙向锦   自定义出题
264
  		}
83b5ddeb   孙向锦   模板添加
265
266
267
  		// $(".section-"+answer_index_b).attr("data-score",$(".section-"+answer_index_b).find(".question").length*fraction2);
  		$(".section0").attr("data-score",
  				$(".section0").find(".question").length * fraction2);
5d2c2033   孙向锦   自定义出题
268
269
  	}
  
83b5ddeb   孙向锦   模板添加
270
  	$(document).on('click', '.remove', function() { // 删除按钮
5d2c2033   孙向锦   自定义出题
271
272
  		$(this).parent().parent(".section").remove();
  	})
83b5ddeb   孙向锦   模板添加
273
274
275
276
277
278
279
  
  	$("#fast_submit").click(function() { // 点击确定,创建答案列表
  	// $("#addQuestion").attr("disabled","disabled");
  		var answer = $("#answer").val();
  		var num_ans = $("#num_ans").val();
  		var fraction = $("#fraction").val();
  		if (answer == '') {
ee61a3f0   孙向锦   增强判断
280
  			alert("请输入题目答案");
5d2c2033   孙向锦   自定义出题
281
  			return;
83b5ddeb   孙向锦   模板添加
282
  		} else if (fraction == '') {
5d2c2033   孙向锦   自定义出题
283
284
285
  			alert("请输入题目分数");
  			return;
  		}
10146a46   孙向锦   创建试卷
286
  		var frac = parseFloat(fraction);
83b5ddeb   孙向锦   模板添加
287
288
289
  		if (frac > 0) {
  			// score += parseInt(fraction)*answer.split(",").length;
  			creat(answer, num_ans, fraction);
67dfaf5c   孙向锦   提交代码
290
  			$('.fast').modal('hide');
83b5ddeb   孙向锦   模板添加
291
  		} else {
67dfaf5c   孙向锦   提交代码
292
293
294
  			alert("请输入正确分数");
  			return;
  		}
83b5ddeb   孙向锦   模板添加
295
  	})
5d2c2033   孙向锦   自定义出题
296
  
83b5ddeb   孙向锦   模板添加
297
298
  	/* 添加试题的确定按钮 */
  	$("#addQuestion_submit").click(function() {
803a7d44   jack   1.增加数字题
299
300
  		 $("#fast").attr("disabled","disabled");
  		var type_2 =  parseInt($("#type").val());
83b5ddeb   孙向锦   模板添加
301
302
303
304
305
306
  		var index_s_2 = 1;// parseInt($("#index_s_2").val())
  		var index_e_2 = parseInt($("#index_s_2").val());
  		// var answer_2=$("#answer_2").val();
  		var num_ans_2 = $("#num_ans_2").val();
  		var fraction2 = parseFloat($("#fraction2").val());
  		if (isNaN(index_s_2)) {
5d2c2033   孙向锦   自定义出题
307
308
  			alert("请输入题目开始序号");
  			return;
83b5ddeb   孙向锦   模板添加
309
310
  		} else if (isNaN(index_e_2)) {
  			alert("请输入题目个数");// alert("请输入题目结束序号");
5d2c2033   孙向锦   自定义出题
311
  			return;
83b5ddeb   孙向锦   模板添加
312
  		} else if (isNaN(fraction2)) {
ee61a3f0   孙向锦   增强判断
313
314
  			alert("请输入题目分数");
  			return;
5d2c2033   孙向锦   自定义出题
315
  		}
67dfaf5c   孙向锦   提交代码
316
  		var iindex_e_2 = parseInt(index_e_2);
83b5ddeb   孙向锦   模板添加
317
  		if (iindex_e_2 < 1 || iindex_e_2 > 100) {
67dfaf5c   孙向锦   提交代码
318
319
320
  			alert("题目个数不合法");
  			return;
  		}
83b5ddeb   孙向锦   模板添加
321
322
  		// console.log(typeof(type_2));
  		addQuestion(type_2, num_ans_2, index_s_2, index_e_2, fraction2);
5d2c2033   孙向锦   自定义出题
323
324
  		$('.addQuestion').modal('hide');
  	})
83b5ddeb   孙向锦   模板添加
325
326
  	$("#type").change(function() {
  		if ($("#type").val() == 4) {
5d2c2033   孙向锦   自定义出题
327
  			$("#num_ans_2").val(2);
83b5ddeb   孙向锦   模板添加
328
329
  			$("#num_ans_2").attr("disabled", "disabled");
  		} else {
5d2c2033   孙向锦   自定义出题
330
331
  			$("#num_ans_2").removeAttr("disabled");
  			$("#num_ans_2").val(4);
83b5ddeb   孙向锦   模板添加
332
  
5d2c2033   孙向锦   自定义出题
333
334
  		}
  	})
83b5ddeb   孙向锦   模板添加
335
336
337
338
  	/* 更改考试时长 */
  	$("#time_submit").click(function() {
  		var test_time = $("#enter_time").val();
  		if (test_time == '') {
5d2c2033   孙向锦   自定义出题
339
340
341
342
343
344
  			alert("请输入考试时间");
  			return;
  		}
  		$("#time").html(test_time);
  		$('.test_time').modal('hide');
  	})
83b5ddeb   孙向锦   模板添加
345
346
  	/* 更改单选答案 */
  	$(document).on('click', '.single li', function() {
5d2c2033   孙向锦   自定义出题
347
348
349
  		$(this).siblings().removeClass("on");
  		$(this).addClass("on");
  	})
83b5ddeb   孙向锦   模板添加
350
351
352
353
  	/* 更改多选答案 */
  	$(document).on('click', '.check li', function() {
  		// $(this).siblings().removeClass("on");
  		if ($(this).hasClass('on')) {
67dfaf5c   孙向锦   提交代码
354
  			$(this).removeClass("on");
83b5ddeb   孙向锦   模板添加
355
  		} else {
67dfaf5c   孙向锦   提交代码
356
357
  			$(this).addClass("on");
  		}
5d2c2033   孙向锦   自定义出题
358
  	})
83b5ddeb   孙向锦   模板添加
359
360
361
  	/* 提交保存数据 */
  	$("#save").click(function() {
  						var url = URL;
5d2c2033   孙向锦   自定义出题
362
  
83b5ddeb   孙向锦   模板添加
363
364
365
366
367
368
369
370
371
372
373
  						var data = {
  							title : $(".header_box h1").text(),
  							exam_time : parseInt($("#time").text()),
  							paper_type : testData.paper_type,
  							subject_id : testData.subject_id,
  							grade_id : testData.grade_id,
  							user_id : testData.user_id,
  							school_id : testData.school_id,
  							score : total_score,
  							questions : []
  						}
5d2c2033   孙向锦   自定义出题
374
  
83b5ddeb   孙向锦   模板添加
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
  						if ($(".section").length > 0) {
  							var rank = 0
  							for (i = 0; i < $(".section").length; i++) {
  								// rank++;
  								data.questions[i] = {
  									chapter_id : "0",
  									problem_type_id : "0",
  									knowledge_id : "0",
  									// content:
  									// $(".section").eq(i).find(".que_name").text(),
  									option_num : "",
  									option_content : "",
  									answer : "",
  									difficulty : "",
  									analysis : "",
  									question_from : "",
  									score : parseFloat($(".section").eq(i)
  											.attr("data-score")),
  									part_score : "",
  									remark : "",
  									rank : rank,
  									no_name : $(".section").eq(i).find(
  											".que_num").text(),
  									questions : []
  								}
  								for (j = 0; j < $(".section").eq(i).find(
  										".question_list").children(".question").length; j++) {
  									rank++;
  									var on_num = $(".section").eq(i).find(
  											".question").eq(j).find(".on").length;
  									var answer = "";
  									for (k = 0; k < on_num; k++) {
  										answer += $(".section").eq(i).find(
  												".question").eq(j).find(".on")
  												.eq(k).text();
  										// console.log(answer);
  									}
5f403333   jack   1,完善数字题
412
  									if (answer == ''||answer.indexOf("请输入答案")>=0) {
83b5ddeb   孙向锦   模板添加
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
  										alert("还有试题未编辑答案。");
  										return;
  									}
  									data.questions[i].questions[j] = {
  										chapter_id : "0",
  										problem_type_id : "0",
  										knowledge_id : "0",
  										content : "",
  										option_num : $(".section").eq(i).find(
  												".question").eq(j).find("li").length,
  										option_content : "",
  										answer : answer,
  										difficulty : "0",
  										analysis : "",
  										question_from : "1",
  										score : parseFloat($(".section").eq(i)
  												.attr("data-fraction")),
  										part_score : "0",
  										remark : "",
  										rank : rank,
  										no_name : rank,
  									}
  								}
  							}
  						}
  
  						if (data.questions.length > 0) {
  							data = JSON.stringify(data);
  							dataJson = {
  								"json" : data
  							};
  							console.log(data);
803a7d44   jack   1.增加数字题
445
  							//ajax_submit(url, dataJson);
83b5ddeb   孙向锦   模板添加
446
447
448
  						} else
  							alert("请添加试题");
  					});
5d2c2033   孙向锦   自定义出题
449
  
83b5ddeb   孙向锦   模板添加
450
451
452
453
454
455
456
457
458
459
460
461
  	/* ajax封装函数 */
  	function ajax_submit(url, data) {
  		$(".loading").css("display", "block");
  		console.log(data);
  		$.ajax({
  			url : url,
  			type : "POST",
  			data : data,
  			dataType : "json",
  			contentType : "application/x-www-form-urlencoded; charset=utf-8",
  			success : function(data) {
  				$(".loading").css("display", "none");
4b347a15   孙向锦   修改编辑试题后,添加的返回路径
462
463
464
465
466
  				if(testData.paper_type == '1'){
  					window.location.href = JUMP_URL + "?a=1&defaulturl=../paper/list2.do";
  				}else{
  					window.location.href = JUMP_URL + "?a=1&defaulturl=../paper/list4.do?school_id=" + testData.school_id ;
  				}
83b5ddeb   孙向锦   模板添加
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
  			}
  		})
  	}
  	function fastSort(array, head, tail) {
  		// 考虑到给每个分区操作的时候都是在原有的数组中进行操作的,所以这里head,tail来确定分片的位置
  		/* 生成随机项 */
  		var randomnum = parseInt((head + tail) / 2);
  		var random = array[randomnum];
  		/* 将小于random的项放置在其左边 策略就是通过一个临时的数组来储存分好区的结果,再到原数组中替换 */
  		var arrayTemp = [];
  		var unshiftHead = 0;
  		for (var i = head; i <= tail; i++) {
  			if (parseInt(array[i].rank) < parseInt(random.rank)) {
  				arrayTemp.unshift(array[i]);
  				unshiftHead++;
  			} else if (parseInt(array[i].rank) > parseInt(random.rank)) {
  				arrayTemp.push(array[i]);
  			}
  			/* 当它等于的时候放哪,这里我想选择放到队列的前面,也就是从unshift后的第一个位置放置 */
  			if (parseInt(array[i].rank) === parseInt(random.rank)) {
  				arrayTemp.splice(unshiftHead, 0, array[i]);
  			}
5d2c2033   孙向锦   自定义出题
489
  		}
83b5ddeb   孙向锦   模板添加
490
491
492
493
494
495
  		/* 将对应项覆盖原来的记录 */
  		for (var j = head, u = 0; j <= tail; j++, u++) {
  			array.splice(j, 1, arrayTemp[u]);
  		}
  		/* 寻找中间项所在的index */
  		var nowIndex = array.indexOf(random);
5d2c2033   孙向锦   自定义出题
496
  
83b5ddeb   孙向锦   模板添加
497
498
499
  		/* 设置出口,当要放进去的片段只有2项的时候就可以收工了 */
  		if (arrayTemp.length <= 2) {
  			return;
5d2c2033   孙向锦   自定义出题
500
  		}
83b5ddeb   孙向锦   模板添加
501
502
503
  		/* 递归,同时应用其左右两个区域 */
  		fastSort(array, head, nowIndex);
  		fastSort(array, nowIndex + 1, tail);
5d2c2033   孙向锦   自定义出题
504
  	}
83b5ddeb   孙向锦   模板添加
505
  	function creatHtml(data) {
96cc2079   jack   1.轻松考-增加题目根据rank字...
506
507
508
509
510
511
512
513
514
515
516
517
  		data.questions.sort(function (a, b) {
  //			if (a.rank < b.rank) {
  //				return -1;
  //			} else if (a.rank == b.rank) {
  //				return 0;
  //			} else {
  //				return 1;
  //			}
  			var rankA = isNaN(parseInt(a.rank))?0:parseInt(a.rank);
  			var rankB = isNaN(parseInt(b.rank))?0:parseInt(b.rank);
  			return rankA-rankB;
  		})
5d2c2033   孙向锦   自定义出题
518
  		console.log(data);
83b5ddeb   孙向锦   模板添加
519
  		$(".header_box h1").html(data.title);
5d2c2033   孙向锦   自定义出题
520
  		$("#time").html(data.exam_time);
83b5ddeb   孙向锦   模板添加
521
522
523
524
525
  		if(data.score != null && data.score > 0 && data.score != ''){
  			$("#score_all").html(data.score);
  		}
  
  		if (data.questions.length > 0) {
0b46638a   孙向锦   标准答案
526
527
528
529
  			$(".time").removeAttr("data-target");
  			$(".remove").remove();
  			$(".btn_box").remove();
  		}
83b5ddeb   孙向锦   模板添加
530
531
532
  
  		for (var i = 0; i < data.questions.length; i++) {
  			if (data.questions[i].questions) {
96cc2079   jack   1.轻松考-增加题目根据rank字...
533
534
535
536
537
538
539
540
541
542
543
544
545
  				var sortTemp = data.questions[i].questions.sort(function (a, b) {
  //					if (parseInt(a.rank) < parseInt(b.rank)) {
  //						return -1;
  //					} else if (a.rank == b.rank) {
  //						return 0;
  //					} else {
  //						return 1;
  //					}
  					var rankA = isNaN(parseInt(a.rank))?0:parseInt(a.rank);
  					var rankB = isNaN(parseInt(b.rank))?0:parseInt(b.rank);
  					return rankA-rankB;
  				})
  				console.log(sortTemp)
83b5ddeb   孙向锦   模板添加
546
547
548
549
550
551
  				$(".content")
  						.append(
  								'<div class="section section-'
  										+ i
  										+ '" data-fraction="'
  										+ data.questions[i].score
ffa525ff   孙向锦   修改出卷页面
552
  										+ '" style="margin-top:80px;"> <h3><span class="que_num">'
83b5ddeb   孙向锦   模板添加
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
  										+ '第'
  										+ (i + 1)
  										+ '大题总分:'
  										+ data.questions[i].questions.length
  										+ " X "
  										+ (parseFloat(data.questions[i].sug_score) / data.questions[i].questions.length)
  										+ " = "
  										+ data.questions[i].sug_score
  										+ '</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>');
  			} else {
  				if (i == 0) {
  					$(".content")
  							.append(
ffa525ff   孙向锦   修改出卷页面
569
  									'<div class="section section0"> <div class="question_list" style="margin-top:80px"></div></div>');
0b46638a   孙向锦   标准答案
570
  				}
83b5ddeb   孙向锦   模板添加
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
  				$(".section0").find(".question_list").append(
  						'<div class="question question' + (i + 1) + '"><span>'
  								+ (++questionNUm) + '、</span><ul></ul></div>');
  				for (var k = 0; k < parseInt(data.questions[i].option_num); k++) {
  					str_temp = data.questions[i].answer;
  					$(".section0").find(".question" + (i + 1) + ' ul').append(
  							'<li class="btn btn-default">'
  									+ String.fromCharCode(0x41 + k) + '</li>');
  					for (var l = 0; l < str_temp.length; l++) {
  						str_temp_arry = str_temp.split('');
  						code = str_temp_arry[l].charCodeAt();
  						on_index = code - 65;
  						if (on_index == k) {
  							$(".section0").find(
  									".question" + (i + 1) + ' ul li').eq(
  									on_index).attr("class",
  									"btn btn-default on");
  						}
0b46638a   孙向锦   标准答案
589
590
  					}
  				}
5d2c2033   孙向锦   自定义出题
591
  			}
83b5ddeb   孙向锦   模板添加
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
  
  			if (data.questions[i].questions) {
  				for (var j = 0; j < data.questions[i].questions.length; j++) {
  					$(".section-" + i).find(".question_list").append(
  							'<div class="question question' + (j + 1)
  									+ '"><span>' + (++questionNUm)
  									+ '、</span><ul></ul></div>');
  					if ($(".section-" + i).find(".que_name").text() == "判断题") {
  						for (var k = 0; k < parseInt(data.questions[i].questions[j].option_num); k++) {
  							str_temp = data.questions[i].questions[j].answer;
  							if (k % 2 == 0) {
  								$(".section-" + i).find(
  										".question" + (j + 1) + ' ul').append(
  										'<li class="btn btn-default">√</li>');
  							} else if (k % 2 == 1) {
  								$(".section-" + i).find(
  										".question" + (j + 1) + ' ul').append(
  										'<li class="btn btn-default">×</li>');
0b46638a   孙向锦   标准答案
610
  							}
83b5ddeb   孙向锦   模板添加
611
612
613
614
615
  
  							if (str_temp == "√")
  								$(".section-" + i).find(
  										".question" + (j + 1) + ' ul li').eq(0)
  										.attr("class", "btn btn-default on");
0b46638a   孙向锦   标准答案
616
  							else
83b5ddeb   孙向锦   模板添加
617
618
619
  								$(".section-" + i).find(
  										".question" + (j + 1) + ' ul li').eq(1)
  										.attr("class", "btn btn-default on");
5d2c2033   孙向锦   自定义出题
620
  						}
83b5ddeb   孙向锦   模板添加
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
  					} else {
  						for (var k = 0; k < parseInt(data.questions[i].questions[j].option_num); k++) {
  							str_temp = data.questions[i].questions[j].answer;
  							$(".section-" + i).find(
  									".question" + (j + 1) + ' ul').append(
  									'<li class="btn btn-default">'
  											+ String.fromCharCode(0x41 + k)
  											+ '</li>');
  							for (var l = 0; l < str_temp.length; l++) {
  								str_temp_arry = str_temp.split('');
  								code = str_temp_arry[l].charCodeAt();
  								on_index = code - 65;
  								if (on_index == k) {
  									$(".section-" + i).find(
  											".question" + (j + 1) + ' ul li')
  											.eq(on_index).attr("class",
  													"btn btn-default on");
  								}
0b46638a   孙向锦   标准答案
639
  							}
5d2c2033   孙向锦   自定义出题
640
641
642
643
644
645
  						}
  					}
  				}
  			}
  		}
  	}
7242423d   孙向锦   添加固件管理
646
  
83b5ddeb   孙向锦   模板添加
647
648
649
650
651
652
653
654
655
656
657
658
659
  	
  	/*快速建题中,每输入五个答案就加一个空格*/
  	$("#answer").on("input propertychange", function(event) {
  		var answerStr = "";
  		answerStr = $("#answer").val();
  		var result = "";
  		if (answerStr.length > 5) {
  			answerStr = answerStr.replace(new RegExp(" ", "gm"), "");
  			for (var i = 0; i < answerStr.length; i++) {
  				result += answerStr[i];
  				if (i % 5 == 4 && i != answerStr.length - 1) {
  					result += " ";
  				}
0b46638a   孙向锦   标准答案
660
  			}
83b5ddeb   孙向锦   模板添加
661
662
  		} else {
  			result = answerStr;
7242423d   孙向锦   添加固件管理
663
  		}
83b5ddeb   孙向锦   模板添加
664
665
666
667
668
669
670
  		$("#answer").val(result);
  		if (answerStr.length > 0) {
  			$(".tips").text("共" + answerStr.length + "题");
  		} else {
  			$(".tips").text("");
  		}
  	})
5d2c2033   孙向锦   自定义出题
671
  
83b5ddeb   孙向锦   模板添加
672
  	
5d2c2033   孙向锦   自定义出题
673
  
83b5ddeb   孙向锦   模板添加
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
  	function SectionToChinese(section) {
  		var strIns = '', chnStr = '';
  		var unitPos = 0;
  		var zero = true;
  		while (section > 0) {
  			var v = section % 10;
  			if (v === 0) {
  				if (!zero) {
  					zero = true;
  					chnStr = chnNumChar[v] + chnStr;
  				}
  			} else {
  				zero = false;
  				strIns = chnNumChar[v];
  				strIns += chnUnitChar[unitPos];
  				chnStr = strIns + chnStr;
  			}
  			unitPos++;
  			section = Math.floor(section / 10);
  		}
  		return chnStr;
  	}
5d2c2033   孙向锦   自定义出题
696
  
83b5ddeb   孙向锦   模板添加
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
  	
  	if (template != null && template.length > 0) {
  		
  			$("#addQuestion").attr("disabled", "disabled");
  			$("#fast").attr("disabled", "disabled");
  			for (var i = 0; i < template.length; i++) {
  				if (template[i].type == 1) {
  					var answer = "";
  					for (var j = 0; j < template[i].questionNum; j++) {
  						answer += "1";
  					}
  					creat(answer, template[i].optionNum, template[i].score);
  				}
  				if (template[i].type == 2) {
  					addQuestion(5, template[i].optionNum, 1,
  							template[i].questionNum, template[i].score);
  				}
  			}
eef2f078   孙向锦   修改域名问题
715
716
717
718
719
720
721
  			if(testData != null){
  				$(".header_box h1").html(testData.title);
  				$("#time").html(testData.exam_time);
  				if(testData.score != null && testData.score > 0 && testData.score != ''){
  					$("#score_all").html(testData.score);
  				}
  			}
83b5ddeb   孙向锦   模板添加
722
723
724
725
726
  		
  	}else if (testData != null && testData.questions != null
  			&& testData.questions.length > 0) {
  		fastSort(testData.questions, 0, testData.questions.length - 1);
  		for (var i = 0; i < testData.questions.length; i++) {
5d2c2033   孙向锦   自定义出题
727
  
83b5ddeb   孙向锦   模板添加
728
729
730
731
732
733
734
  			if (testData.questions[0].questions
  					&& testData.questions[0].questions.length > 1) {
  				fastSort(testData.questions[i].questions, 0,
  						testData.questions[i].questions.length - 1);
  			}
  		}
  		creatHtml(testData);
ffa525ff   孙向锦   修改出卷页面
735
736
737
738
  	}else{
  		if(testData != null){
  			$(".header_box h1").html(testData.title);
  			$("#time").html(testData.exam_time);
eef2f078   孙向锦   修改域名问题
739
  			if(testData.score != null && testData.score > 0 && testData.score != ''){
ffa525ff   孙向锦   修改出卷页面
740
741
742
  				$("#score_all").html(testData.score);
  			}
  		}
83b5ddeb   孙向锦   模板添加
743
  	}
803a7d44   jack   1.增加数字题
744
745
746
747
748
749
750
751
752
753
754
755
756
757
  	
  	$(".content").on("focus",".number .on",function(){
  		if($(this).text()=="请输入答案")
  			$(this).text("");
  		
  		
  	})
  	$(".content").on("blur",".number .on",function(){
  		if($(this).text()==""){
  			$(this).text("请输入答案");
  		}
  		
  	})
  	
83b5ddeb   孙向锦   模板添加
758
  })
803a7d44   jack   1.增加数字题
759
760
761
762
763
764
765
766
767
768
769
770
771
772
  
  /**
   * 数字校验
   * @param e
   */
  function keydown2(e){
  		var reg= /^[0-9]*$/;
  		console.log(reg.test(e.text()));
  		console.log(e.text())
  		if(!reg.test(e.text())){
  			e.text("");
  		}
  	}
  
5f403333   jack   1,完善数字题
773
  function NumberCheck(num,obj) {
803a7d44   jack   1.增加数字题
774
      var str = num;
5f403333   jack   1,完善数字题
775
776
      //callback(str,obj)
      console.log("num:"+num)
803a7d44   jack   1.增加数字题
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
      var len1 = str.substr(0, 1);
      var len2 = str.substr(1, 1);
      //如果第一位是0,第二位不是点,就用数字把点替换掉
      if (str.length > 1 && len1 == 0 && len2 != ".") {
        str = str.substr(1, 1);
      }
      //第一位不能是.
      if (len1 == ".") {
        str = "";
      }
      //限制只能输入一个小数点
      if (str.indexOf(".") != -1) {
        var str_ = str.substr(str.indexOf(".") + 1);
        if (str_.indexOf(".") != -1) {
          str = str.substr(0, str.indexOf(".") + str_.indexOf(".") + 1);
        }
      }
      //正则替换,保留数字和小数点
5f403333   jack   1,完善数字题
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
      str = str.replace(/[^\-?\d.]/g,'')
      
      obj.innerText=str
      
      callback(str,obj)
  }
  function callback(tp,obj) {
  	var _div = obj//document.querySelector('.number .on');
  	var range = document.createRange();
  
  	range.selectNodeContents(_div);
  	range.collapse(false);
  
  	var sel = window.getSelection();
  	sel.removeAllRanges();
  	sel.addRange(range);
803a7d44   jack   1.增加数字题
811
  }