332 lines
12 KiB
Plaintext
332 lines
12 KiB
Plaintext
|
|
<!DOCTYPE html
|
|||
|
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|||
|
|
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
|
|||
|
|
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
|
|||
|
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
|||
|
|
<style type="text/css">
|
|||
|
|
.select2-container .select2-selection--single {
|
|||
|
|
height: 34px;
|
|||
|
|
line-height: 34px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.select2-selection__arrow {
|
|||
|
|
margin-top: 3px;
|
|||
|
|
}
|
|||
|
|
</style>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<script type="text/javascript">
|
|||
|
|
function saveRankTypeFun() {
|
|||
|
|
// console.log($("#addForm").serialize());
|
|||
|
|
$('#addForm').data('bootstrapValidator').updateStatus('examnum', 'NOT_VALIDATED', null).validateField('examnum');
|
|||
|
|
$('#addForm').data('bootstrapValidator').updateStatus('examminutes', 'NOT_VALIDATED', null).validateField('examminutes');
|
|||
|
|
$("#addForm").bootstrapValidator('validate');//提交验证
|
|||
|
|
if ($("#addForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
|
|||
|
|
$.post(ext.contextPath + "/exam/examplan/saveExamPlan.do", $("#addForm").serialize(), function (result) {
|
|||
|
|
|
|||
|
|
if (result == 1) {
|
|||
|
|
closeModal('subModal');
|
|||
|
|
$("#table").bootstrapTable('refresh');
|
|||
|
|
} else if (result == 0) {
|
|||
|
|
showAlert('d', '用户信息保存失败');
|
|||
|
|
} else {
|
|||
|
|
showAlert('d', result);
|
|||
|
|
}
|
|||
|
|
}, 'json');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$("#addForm").bootstrapValidator({
|
|||
|
|
live: 'disabled',//验证时机,enabled是内容有变化就验证(默认),disabled和submitted是提交再验证
|
|||
|
|
fields: {
|
|||
|
|
examname: {
|
|||
|
|
validators: {
|
|||
|
|
notEmpty: {
|
|||
|
|
message: '考试名称不能为空'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
examnum: {
|
|||
|
|
validators: {
|
|||
|
|
notEmpty: {
|
|||
|
|
message: '允许考试次数不能为空'
|
|||
|
|
},
|
|||
|
|
regexp: {
|
|||
|
|
regexp: /^[0-9]*$/,
|
|||
|
|
message: '允许考试次数必须为数字'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// releasetime: {
|
|||
|
|
// validators: {
|
|||
|
|
// notEmpty: {
|
|||
|
|
// message: '发布时间不能为空'
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
// },
|
|||
|
|
startdate: {
|
|||
|
|
validators: {
|
|||
|
|
notEmpty: {
|
|||
|
|
message: '考试开始日期不能为空'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
enddate: {
|
|||
|
|
validators: {
|
|||
|
|
notEmpty: {
|
|||
|
|
message: '考试结束日期不能为空'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
examminutes: {
|
|||
|
|
validators: {
|
|||
|
|
notEmpty: {
|
|||
|
|
message: '考试时间(分钟)不能为空'
|
|||
|
|
},
|
|||
|
|
regexp: {
|
|||
|
|
regexp: /^[0-9]*$/,
|
|||
|
|
message: '考试时间(分钟)必须为数字'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
examuserids: {
|
|||
|
|
validators: {
|
|||
|
|
notEmpty: {
|
|||
|
|
message: '考试人员不能为空'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
var showUser4SelectsFun = function() {
|
|||
|
|
var userIds= $("#examuserids").val();
|
|||
|
|
$.post(ext.contextPath + '/user/userForSelect.do', {formId:"addForm",hiddenId:"examuserids",textId:"auditMan",userIds:userIds} , function(data) {
|
|||
|
|
$("#user4SelectDiv").html(data);
|
|||
|
|
openModal("user4SelectModal");
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
function gotoDate(){
|
|||
|
|
var sdt = $('#startdate').val();
|
|||
|
|
var edt = $('#enddate').val();
|
|||
|
|
|
|||
|
|
if(sdt!=null && sdt!='' && edt!=null && edt!=''){
|
|||
|
|
if(edt<sdt){
|
|||
|
|
alert('结束时间不能小于开始时间!');
|
|||
|
|
$('#enddate').val('');
|
|||
|
|
$('#_examminutes').val('');
|
|||
|
|
$('#examminutes').val('');
|
|||
|
|
}else{
|
|||
|
|
var sdttime = new Date(sdt);
|
|||
|
|
var endtime = new Date(edt);
|
|||
|
|
var span = endtime.getTime() - sdttime.getTime();
|
|||
|
|
|
|||
|
|
//相差分钟数
|
|||
|
|
var leave1 = span % (24 * 3600 * 1000);
|
|||
|
|
var hours = Math.floor(leave1 / (60 * 1000))
|
|||
|
|
$('#_examminutes').val(hours);//用于显示
|
|||
|
|
$('#examminutes').val(hours);//存数据库
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$(function () {
|
|||
|
|
// $("#computescore").change(function(){
|
|||
|
|
// if(this.value=="否"){
|
|||
|
|
// $("#passscore-label").hide();
|
|||
|
|
// $("#passscore-div").hide();
|
|||
|
|
// $("#passscore").val("");
|
|||
|
|
// }else if(this.value=="是"){
|
|||
|
|
// $("#passscore-label").show();
|
|||
|
|
// $("#passscore-div").show();
|
|||
|
|
// $("#passscore").val("60");
|
|||
|
|
// }
|
|||
|
|
// })
|
|||
|
|
|
|||
|
|
$("#examtype").change(function(){
|
|||
|
|
if(this.value=="正式考试"){
|
|||
|
|
$("#frequency-div").hide();
|
|||
|
|
|
|||
|
|
|
|||
|
|
// $("#computescore-label").show();
|
|||
|
|
// $("#computescore-div").show();
|
|||
|
|
$("#computescore").val("是");
|
|||
|
|
// $("#passscore-label").show();
|
|||
|
|
// $("#passscore-div").show();
|
|||
|
|
// $("#passscore").val("60");
|
|||
|
|
|
|||
|
|
}else if(this.value=="模拟考试"){
|
|||
|
|
$("#frequency-div").show();
|
|||
|
|
|
|||
|
|
|
|||
|
|
// $("#computescore-label").hide();
|
|||
|
|
// $("#computescore-div").hide();
|
|||
|
|
$("#computescore").val("否");
|
|||
|
|
// $("#passscore-label").hide();
|
|||
|
|
// $("#passscore-div").hide();
|
|||
|
|
// $("#passscore").val("");
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
$("#startdate").datetimepicker({
|
|||
|
|
language:'zh-CN',
|
|||
|
|
format: 'yyyy-mm-dd hh:ii',
|
|||
|
|
dateFormat: 'yyyy-mm-dd',//日期显示格式
|
|||
|
|
timeFormat: 'HH:mm',//时间显示格式
|
|||
|
|
startView: "year", //初始化视图是‘年’
|
|||
|
|
minView: 0,
|
|||
|
|
maxView: "year",
|
|||
|
|
minuteStep: 30,//分钟间隔1分钟
|
|||
|
|
autoclose: true
|
|||
|
|
}).on('changeDate', function () {
|
|||
|
|
$('#addForm')
|
|||
|
|
.data('bootstrapValidator')
|
|||
|
|
.updateStatus('startdate', 'NOT_VALIDATED', null)
|
|||
|
|
.validateField('startdate');
|
|||
|
|
gotoDate();
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
$("#enddate").datetimepicker({
|
|||
|
|
language:'zh-CN',
|
|||
|
|
format: 'yyyy-mm-dd hh:ii',
|
|||
|
|
dateFormat: 'yyyy-mm-dd',//日期显示格式
|
|||
|
|
timeFormat: 'HH:mm',//时间显示格式
|
|||
|
|
startView: "year", //初始化视图是‘年’
|
|||
|
|
minView: 0,
|
|||
|
|
maxView: "year",
|
|||
|
|
minuteStep: 30,//分钟间隔1分钟
|
|||
|
|
autoclose: true
|
|||
|
|
}).on('changeDate', function () {
|
|||
|
|
$('#addForm')
|
|||
|
|
.data('bootstrapValidator')
|
|||
|
|
.updateStatus('enddate', 'NOT_VALIDATED', null)
|
|||
|
|
.validateField('enddate');
|
|||
|
|
gotoDate();
|
|||
|
|
});
|
|||
|
|
// $("#startdate").datepicker('setDate',new Date());
|
|||
|
|
});
|
|||
|
|
</script>
|
|||
|
|
<div class="modal fade" id="subModal">
|
|||
|
|
<div class="modal-dialog">
|
|||
|
|
<div class="modal-content" style="width: 800px">
|
|||
|
|
<div class="modal-header">
|
|||
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|||
|
|
<span aria-hidden="true">×</span></button>
|
|||
|
|
<h4 class="modal-title">新增界面</h4>
|
|||
|
|
</div>
|
|||
|
|
<div class="modal-body">
|
|||
|
|
<!-- 新增界面formid强制为addForm -->
|
|||
|
|
<form class="form-horizontal" id="addForm">
|
|||
|
|
<div id="alertDiv"></div>
|
|||
|
|
<input type="hidden" name="id" value="${examPlan.id}" />
|
|||
|
|
<!-- 界面提醒div强制id为alertdiv -->
|
|||
|
|
<div class="form-group">
|
|||
|
|
<label class="col-sm-2 control-label">*考试名称</label>
|
|||
|
|
<div class="col-sm-10">
|
|||
|
|
<input type="text" class="form-control" id="examname" name="examname" placeholder="考试名称" value="${examPlan.examname}" style="border-radius:4px">
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="form-group">
|
|||
|
|
<label class="col-sm-2 control-label">*考试方式</label>
|
|||
|
|
<div class="col-sm-4">
|
|||
|
|
<select id="exammethod" name="exammethod" class="form-control select2">
|
|||
|
|
<option value="应知考试" selected>应知考试</option>
|
|||
|
|
<option value="应会考试">应会考试</option>
|
|||
|
|
</select>
|
|||
|
|
</div>
|
|||
|
|
<label class="col-sm-2 control-label">*考试类型</label>
|
|||
|
|
<div class="col-sm-4">
|
|||
|
|
<select id="examtype" name="examtype" class="form-control select2">
|
|||
|
|
<option value="正式考试" selected>正式考试</option>
|
|||
|
|
<option value="模拟考试">模拟考试</option>
|
|||
|
|
</select>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="form-group">
|
|||
|
|
<label class="col-sm-2 control-label">*考试开始时间</label>
|
|||
|
|
<div class="col-sm-4">
|
|||
|
|
<div class="input-group date">
|
|||
|
|
<div class="input-group-addon">
|
|||
|
|
<i class="fa fa-calendar"></i>
|
|||
|
|
</div>
|
|||
|
|
<input type="text" class="form-control" id="startdate" name="startdate" placeholder="请选择"/>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<label class="col-sm-2 control-label">*考试结束时间</label>
|
|||
|
|
<div class="col-sm-4">
|
|||
|
|
<div class="input-group date">
|
|||
|
|
<div class="input-group-addon">
|
|||
|
|
<i class="fa fa-calendar"></i>
|
|||
|
|
</div>
|
|||
|
|
<input type="text" class="form-control" id="enddate" name="enddate" placeholder="请选择"/>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="form-group">
|
|||
|
|
<label class="col-sm-2 control-label" id="computescore-label">*是否计分</label>
|
|||
|
|
<div class="col-sm-4" id="computescore-div">
|
|||
|
|
<select id="computescore" name="computescore" class="form-control select2">
|
|||
|
|
<option value="是" selected>是</option>
|
|||
|
|
<option value="否">否</option>
|
|||
|
|
</select>
|
|||
|
|
</div>
|
|||
|
|
<label class="col-sm-2 control-label" id="passscore-label">*及格分数</label>
|
|||
|
|
<div class="col-sm-4" id="passscore-div">
|
|||
|
|
<input type="text" class="form-control" id="passscore" name="passscore" placeholder="及格分数" value="60" style="border-radius:4px">
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="form-group">
|
|||
|
|
<label class="col-sm-2 control-label">*允许考试次数</label>
|
|||
|
|
<div class="col-sm-4">
|
|||
|
|
<input type="text" class="form-control" id="examnum" name="examnum" placeholder="允许考试次数" value="1" style="border-radius:4px">
|
|||
|
|
</div>
|
|||
|
|
<label class="col-sm-2 control-label">*考试时长(分钟)</label>
|
|||
|
|
<div class="col-sm-4">
|
|||
|
|
<input type="text" class="form-control" id="examminutes" name="examminutes" placeholder="根据时间自动计算" value="" style="border-radius:4px" readonly="true">
|
|||
|
|
<input type="hidden" class="form-control" id="_examminutes" name="_examminutes" >
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="form-group" id="frequency-div" style="display: none;">
|
|||
|
|
<label class="col-sm-2 control-label">*考试频率</label>
|
|||
|
|
<div class="col-sm-6">
|
|||
|
|
<select id="frequency" name="frequency" class="form-control select2">
|
|||
|
|
<option value="每天" selected>每天</option>
|
|||
|
|
<option value="每周">每周</option>
|
|||
|
|
<option value="每月">每月</option>
|
|||
|
|
<!-- <option value="一次">一次</option> -->
|
|||
|
|
</select>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="form-group">
|
|||
|
|
<label class="col-sm-2 control-label">考试人员</label>
|
|||
|
|
<div class="col-sm-10">
|
|||
|
|
<textarea class="form-control" rows="2" id ="auditMan" name ="auditMan" placeholder="点击选择" onclick="showUser4SelectsFun();" value="${examPlan.memo}"></textarea>
|
|||
|
|
<input id="examuserids" name="examuserids" type="hidden" />
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="form-group">
|
|||
|
|
<label class="col-sm-2 control-label">备注</label>
|
|||
|
|
<div class="col-sm-10">
|
|||
|
|
<textarea class="form-control" rows="2" id ="memo" name ="memo" placeholder="备注..." value="${examPlan.memo}"></textarea>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</form>
|
|||
|
|
</div>
|
|||
|
|
<div class="modal-footer">
|
|||
|
|
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
|
|||
|
|
<button type="button" class="btn btn-primary" onclick="saveRankTypeFun()">保存</button>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<!-- /.modal-content -->
|
|||
|
|
</div>
|
|||
|
|
<!-- /.modal-dialog -->
|
|||
|
|
</div>
|