$(function(){
/*创建答案列表*/
var score=0;
function creat(str_ans,a_num,fraction){
$(".section").remove();
$(".content").append('
')
var str=str_ans.split(',');
q_num=str.length;
for(var i=0;i'+(i+1)+'、 ');
for(var j=0;j'+option+'');
}else
$(".question"+(i+1)+' ul').append(''+option+' ');
}
}else{
alert("题目"+(i+1)+":"+String.fromCharCode(code)+"答案错误,超出选项数");
//return;
}
}
}
/***********
*1、单选题
*2、完形填空
*3、阅读理解
*4、判断题
*5、多选题
***********/
var type_2=1;
var index_s_2=1;
var index_e_2=5;
var answer_2='a,b,c,d,a';
var num_ans_2=4;
function addQuestion(type,str_ans,a_num,index_s_2,index_e_2){
console.log($(".section").length);
var question_num=SectionToChinese($(".section").length+1);
switch(type){
case 1: //单选题
$(".content").append('');
var str=str_ans.split(',');
q_num=str.length;
if(q_num!==(index_e_2-index_s_2+1)){
alert("答案长度错误,请检查后重新填写");
return;
}
for(var i=index_s_2;i<=index_e_2;i++){
str_temp=str[i-index_s_2];
str_temp=str_temp.toUpperCase()
code = str_temp.charCodeAt();
on_index=code-65;
if(code<(65+a_num)){
console.log(str_temp);
$(".section-1 .question_list").append('');
for(var j=0;j'+option+'');
}else
$(".question"+i+' ul').append(''+option+' ');
}
}else{
alert("题目"+(i)+":"+String.fromCharCode(code)+"答案错误,超出选项数");
//return;
}
}
break;
case 2: //完形填空
$(".content").append('');
var str=str_ans.split(',');
q_num=str.length;
if(q_num!==(index_e_2-index_s_2+1)){
alert("答案长度错误,请检查后重新填写");
return;
}
for(var i=index_s_2;i<=index_e_2;i++){
str_temp=str[i-index_s_2];
str_temp=str_temp.toUpperCase()
code = str_temp.charCodeAt();
on_index=code-65;
if(code<(65+a_num)){
console.log(str_temp);
$(".section-2 .question_list").append('');
for(var j=0;j'+option+'');
}else
$(".question"+i+' ul').append(''+option+' ');
}
}else{
alert("题目"+(i)+":"+String.fromCharCode(code)+"答案错误,超出选项数");
//return;
}
}
break;
case 3: //阅读理解
$(".content").append('');
var str=str_ans.split(',');
q_num=str.length;
if(q_num!==(index_e_2-index_s_2+1)){
alert("答案长度错误,请检查后重新填写");
return;
}
for(var i=index_s_2;i<=index_e_2;i++){
str_temp=str[i-index_s_2];
str_temp=str_temp.toUpperCase()
code = str_temp.charCodeAt();
on_index=code-65;
if(code<(65+a_num)){
console.log(str_temp);
$(".section-3 .question_list").append('');
for(var j=0;j'+option+'');
}else
$(".question"+i+' ul').append(''+option+' ');
}
}else{
alert("题目"+(i)+":"+String.fromCharCode(code)+"答案错误,超出选项数");
//return;
}
}
break;
}
}
//addQuestion(1,answer_2,num_ans_2,index_s_2,index_e_2);
//addQuestion(2,answer_2,num_ans_2,6,10);
//addQuestion(3,answer_2,num_ans_2,11,15);
//addQuestion(1);
//creat("A,B,a,D,C,E,b",4);
$(document).on('click','.remove',function(){ //删除按钮
$(this).parent().parent().remove();
})
$("#fast_submit").click(function(){ //点击确定,创建答案列表
$("#addQuestion").attr("disabled","disabled");
var answer=$("#answer").val();
var num_ans=$("#num_ans").val();
var fraction=$("#fraction").val();
if(answer==''){
alert("请输入题目答案,以分号隔开");
return;
}else if(fraction==''){
alert("请输入题目分数");
return;
}
//$(".fast").toggle();
//$(".modal-backdrop").remove();
$('.fast').modal('hide');
score += parseInt(fraction)*answer.split(",").length;
creat(answer,num_ans,fraction);
})
var type_2=1;
var index_s_2=1;
var index_e_2=5;
var answer_2='a,b,c,d,a';
var num_ans_2=4;
/*添加试题的确定按钮*/
$("#addQuestion_submit").click(function(){
$("#fast").attr("disabled","disabled");
var type_2=$("#type").val();
var index_s_2=$("#index_s_2").val();
var index_e_2=$("#index_e_2").val();
var answer_2=$("#answer_2").val();
var num_ans_2=$("#num_ans_2").val();
var fraction2=$("#fraction2").val();
if(index_s_2==''){
alert("请输入题目开始序号");
return;
}else if(index_e_2==''){
alert("请输入题目结束序号");
return;
}
$('.addQuestion').modal('hide');
})
/*更改考试时长*/
$("#time_submit").click(function(){
var test_time=$("#enter_time").val();
if(test_time==''){
alert("请输入考试时间");
return;
}
$("#time").html(test_time);
$('.test_time').modal('hide');
})
/*更改单选答案*/
$(document).on('click','.single li',function(){
$(this).siblings().removeClass("on");
$(this).addClass("on");
})
/*提交保存数据*/
$("#save").click(function(){
var url= URL;
var data={
title: $(".text-center").html(),
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,
score:score,
questions:[]
}
var rank=0;
if($(".section").length>0){
for(i=0;i<$(".section").length;i++){
rank++;
data.questions[i]={
chapter_id: "0",
problem_type_id: "0",
knowledge_id: "0",
content: $(".que_name").text(),
option_num: "",
option_content: "",
answer: "",
difficulty: "",
analysis: "",
question_from: "",
score:parseInt($(".section").eq(i).attr("data-fraction")),
part_score: "",
remark: "",
rank: rank,
no_name: $(".que_num").text(),
questions:[]
}
for(j=0;j<$(".section").eq(i).find(".question_list").children(".question").length;j++){
rank++;
data.questions[i].questions[j]={
chapter_id: "0",
problem_type_id: "0",
knowledge_id: "0",
content: "",
option_num: $(".question").eq(j).find("li").length,
option_content: "",
answer: $(".question").eq(j).find(".on").text(),
difficulty: "0",
analysis: "",
question_from: "1",
score: parseInt($(".section").eq(i).attr("data-fraction")),
part_score: "0",
remark: "",
rank: rank,
no_name: (i+1)+'.'+(j+1),
}
}
}
}
if(data.questions.length>0){
data=JSON.stringify(data);
dataJson={"json":data};
console.log(data);
// ajax_submit(url,dataJson);
var suc=ajax_submit(url,dataJson);
if(suc==1){
}
}
else
alert("请添加试题");
})
})
/*ajax封装函数*/
function ajax_submit(url,data){
$(".loading").css("display","block");
var flag=0;
$.ajax({
url:url,
type:"POST",
//async:false,
data:data,
dataType:"json",
success:function(data){
flag=1;
$(".loading").css("display","none");
// alert("保存成功");
// window.close();
window.location.href = JUMP_URL ;
}
})
return flag;
}
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.push(array[i]);
}
/*当它等于的时候放哪,这里我想选择放到队列的前面,也就是从unshift后的第一个位置放置*/
if(parseInt(array[i].rank)===parseInt(random.rank)){
arrayTemp.splice(unshiftHead,0,array[i]);
}
}
/*将对应项覆盖原来的记录*/
for(var j = head , u=0;j <= tail;j++,u++){
array.splice(j,1,arrayTemp[u]);
}
/*寻找中间项所在的index*/
var nowIndex = array.indexOf(random);
/*设置出口,当要放进去的片段只有2项的时候就可以收工了*/
if(arrayTemp.length <= 2){
return;
}
/*递归,同时应用其左右两个区域*/
fastSort(array,head,nowIndex);
fastSort(array,nowIndex+1,tail);
}
if(testData.questions.length > 0 && testData.questions[0].questions.length > 1){
fastSort(testData.questions[0].questions,0,testData.questions[0].questions.length-1);
}
creatHtml(testData);
function creatHtml(data){
console.log(data);
if(data.questions.length>0){
$(".time").removeAttr("data-target");
$(".btn_box").remove();
}
$(".header_box h1").html(data.title);
$("#time").html(data.exam_time);
for(var i=0;i '+data.questions[i].no_name+' '+''+data.questions[i].content+'
')
if(data.questions.length>0){$(".remove").remove();}
for(var j=0;j'+(j+1)+'、 ');
for(var k=0;k'+String.fromCharCode(0x41+k)+'');
}else
$(".question"+(j+1)+' ul').append(''+String.fromCharCode(0x41+k)+' ');
}
}
}
}
/*数字转汉字数字*/
var chnNumChar = ["零","一","二","三","四","五","六","七","八","九"];
var chnUnitSection = ["","万","亿","万亿","亿亿"];
var chnUnitChar = ["","十","百","千"];
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;
}
//alert(SectionToChinese(123));
//
//