1. 本界面实现的功能:
1. 页面初始化的时候,学年学期是当前学年学期,且能加载当前学年学期的数据。
2. 能根据学年学期查找数据。
3. 评价课程类别+评价分类+总分只能是唯一的,且必填。
4. 如果评价课程类别+评价分类+总分被使用就不能删除。
5. 能无限添加记录条数。
2.evaluationcontrol.jsp页面 源代码:
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ include file="/apframe/common.jsp"%>
<script type='text/javascript' src='<foundation:root/>dwr/interface/evaluationcontrolService.js'></script>
</head>
<body>
<div align="center"><br></div><script type="text/javascript">
var infoForm=null; //教学评价安排信息表单
var addFormNum=0;
var addoredit; // addoredit=0为增加,addoredit=1为修改
var fileup=null;
var currentXnxqid;//当前学年学期
var arrCau = new Array();//评价课程类别
var arrClassify = new Array();//评价分类
//定义固定的部分
var fp=new Ext.FormPanel( {
buttonAlign:'center',
frame:true,
height : 50,
split : true,
margins:'3 0 0 0',
collapsible : true,
autoScroll:true,
labelAlign : 'right',
region : "center",
title:'学期评教控制基本信息:',
buttons : [{
text :'保存',
id:'onSaveButton',
handler:onSave,
align:'center'
}],
border : false,
bodyBorder:false,
items : [{
layout : 'column',
items : [
{
columnWidth : .23,
layout : 'form',
labelWidth:55,
items : [
{xtype:'hidden',id:'PJ_SEM_TEA_EVAL_ID'},
{
xtype:"combo",
id:'PSTE_XNXQ01ID',
fieldLabel : '学年学期',
width : 100,
mode : 'local',
triggerAction : 'all',
editable:true,
selectOnFocus : true,
forceSelection : true,
displayField : 'text',
valueField : 'value',
readOnly : true,
store : new Ext.data.SimpleStore({
fields: ['value', 'text']
}),
listeners :{
"expand":function(){this.innerList.dom.style.overflowX="hidden";},
select:function(){
//移除选择前的学年学期下的数据显示控件
if(addFormNum > 0){
for(; addFormNum > 0 ; addFormNum--){
var id = "attment" + addFormNum
fp.remove(Ext.getCmp(id));
}
}
//查询学期评教控制表的信息(主表)
pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectsemteaevalebyxnxq",{PSTE_XNXQ01ID:$value('PSTE_XNXQ01ID')},function(list){
if(parseInt(list.length)>0){//有数据 修改
addoredit=1;
$set('PSTE_XNXQ01ID',list[0].PSTE_XNXQ01ID);
$set('PJ_SEM_TEA_EVAL_ID',list[0].PJ_SEM_TEA_EVAL_ID);
document.getElementsByName("PSTE_INDEX_SCORE_INPUT")[list[0].PSTE_INDEX_SCORE_INPUT-1].checked=true;
document.getElementsByName("PSTE_STU_SEE_RES_CONT")[list[0].PSTE_STU_SEE_RES_CONT-1].checked=true;
//查询学期评教控制详细表信息(子表) 动态显示
var semTeaEvalId=list[0].PJ_SEM_TEA_EVAL_ID;//学期评教控制表ID
pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectsemteaevaledelbyxnxq",{PSTED_SEM_TEA_EVAL_ID:semTeaEvalId},function(del){
if(parseInt(del.length)>0){
for ( var k = 1; k <= del.length; k++) {
addTextfield();
$('PSTED_CLASSIFY_ID'+addFormNum).store.loadData(getClassify());
$('PSTED_CLASSIFY_ID'+addFormNum).reset();
$set('PSTED_EVA_COU_CAT_ID'+k,del[k-1].PSTED_EVA_COU_CAT_ID);
$set('PSTED_CLASSIFY_ID'+k,del[k-1].PSTED_CLASSIFY_ID);
$set('PSTED_SCORE'+k,del[k-1].PSTED_SCORE);
//若已存在评价信息,则相应的总分不允许修改或删除。
pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectDuplicateRecords",{PTEA_XNXQ01ID:$value('PSTE_XNXQ01ID'),PCEA_CLASSIFY_ID:$value('PSTED_CLASSIFY_ID'+addFormNum),PJ_EVA_COU_CAT_ID:$value('PSTED_EVA_COU_CAT_ID'+addFormNum)},function(li){
if(parseInt(li.length)>0)
{
$('PSTED_CLASSIFY_ID'+addFormNum).disable();
$('PSTED_EVA_COU_CAT_ID'+addFormNum).disable();
$('PSTED_SCORE'+addFormNum).disable();
$('DEL_BUTTON'+addFormNum).disable();
}
});
}
}
});
}
else{//无数据 增加
addoredit=0;
document.getElementsByName("PSTE_INDEX_SCORE_INPUT")[0].checked=true;
document.getElementsByName("PSTE_STU_SEE_RES_CONT")[0].checked=true;
//初始化动态添加列表
for(var i=0;i<1;i++){
addTextfield();
}
}
});
}
}
},{height:10},
{
columnWidth : .08,
labelWidth:40,
layout : 'form',
items : [ new Ext.Button({text:'添加',iconCls : 'icon-add',handler:addTextfield}),{height:20}]
}
]
},
{
columnWidth : .39,
labelWidth:120,
layout : 'form',
items : [
{
xtype: 'panel',
layout: 'form',
items: [{xtype:'hidden',name:'PSTE_INDEX_SCORE_INPUTVALUE'},
{
xtype : 'radio',
labelSeparator:'',
fieldLabel: '指标分值输入方式:',
name : 'PSTE_INDEX_SCORE_INPUT',
boxLabel : '直接输入分值',
checked : true,
inputValue:'1'
},
{
xtype : 'radio',
labelSeparator:'',
labelSeparator: '',
name : 'PSTE_INDEX_SCORE_INPUT',
boxLabel : '输入权重,由系统计算分值',
checked : false,
inputValue:'2'
}
]
}
]
},{
columnWidth : .38,
labelWidth:110,
layout : 'form',
hidden:true,
items : [
{
xtype: 'panel',
layout: 'form',
items: [{xtype:'hidden',name:'PSTE_STU_SEE_RES_CONTVALUE'},
{
xtype : 'radio',
labelSeparator:'',
fieldLabel: '学生查看成绩控制:',
name : 'PSTE_STU_SEE_RES_CONT',
boxLabel : '直接查看成绩',
checked : true,
inputValue:'1'
},
{
xtype : 'radio',
labelSeparator: '',
name : 'PSTE_STU_SEE_RES_CONT',
boxLabel : '只能查看已评课程成绩',
checked : false,
inputValue:'2'
},
{
xtype : 'radio',
labelSeparator: '',
name : 'PSTE_STU_SEE_RES_CONT',
boxLabel : '全部评完后才能查看',
checked : false,
inputValue:'3'
}
]
}
]
}]
}]
});
//动态添加控件
function addTextfield(){
addFormNum++;
fileup=new Ext.form.FieldSet({
layout : 'table',
id:'attment'+addFormNum,
border : false,
autoHeight : true,
columnWidth : 1,
items : [
{
columnWidth : .30,
labelWidth:90,
layout : 'form',
height:25,
items : [
{
xtype:"combo",
id:'PSTED_EVA_COU_CAT_ID'+addFormNum,
fieldLabel : '评价课程类别',
width : 120,
mode : 'local',
triggerAction : 'all',
editable:true,
selectOnFocus : true,
forceSelection : true,
displayField : 'text',
valueField : 'value',
readOnly : true,
allowBlank : false,
store : new Ext.data.SimpleStore({
fields: ['value', 'text'],
data : getPeccName()
})
}
]
},
{width:50},
{
columnWidth : .30,
labelWidth:70,
layout : 'form',
height:25,
items : [
{
xtype:"combo",
id:'PSTED_CLASSIFY_ID'+addFormNum,
fieldLabel : '评价分类',
width : 120,
mode : 'local',
triggerAction : 'all',
allowBlank : false,
editable:true,
selectOnFocus : true,
forceSelection : true,
displayField : 'text',
valueField : 'value',
readOnly : true,
store : new Ext.data.SimpleStore({
fields: ['value', 'text'],
data : getClassify()
}),
listeners:{'select':function(){
if(addFormNum>1){//同一学年学期 评价课程类别与评价分类不能重复
var courseIdCurrent=$value('PSTED_EVA_COU_CAT_ID'+addFormNum);
var classifyCurrent=$value('PSTED_CLASSIFY_ID'+addFormNum);
arrCau = [];//评价课程类别初始化
arrClassify = [];//评价分类初始化
fp.findBy(function(val){
if(val.getId().indexOf("PSTED_EVA_COU_CAT_ID")!=-1 )
{
var cauId= val.getId().substr(20);
arrCau.push(cauId);
}
});
for(var i=0;i<arrCau.length-1;i++){
var courseId=$value('PSTED_EVA_COU_CAT_ID'+arrCau[i]);
var classifyId=$value('PSTED_CLASSIFY_ID'+arrCau[i]);
if(courseIdCurrent==courseId && classifyCurrent==classifyId){
Ext.Msg.alert("提示:","评价课程类别与评价分类,不能重复,请重新选择!");
$('PSTED_EVA_COU_CAT_ID'+addFormNum).setValue("");
$('PSTED_CLASSIFY_ID'+addFormNum).setValue("");
}
}
}
}}
}
]
},
{width:50},
{
columnWidth : .1,
labelWidth:40,
layout : 'form',
height:25,
items : [
{
xtype:"numberfield",
fieldLabel : '总分',
id:'PSTED_SCORE'+addFormNum,
width : 60,
//value :'100',
value :addFormNum,
allowBlank : false,
decimalPrecision : 2,
allowNegative : false
}
]
},
{width:50},
{
columnWidth : .08,
layout : 'form',
labelWidth : 10,
height:25,
items : [
{
xtype:'button',
text:'删除',
iconCls : 'icon-delete',
id:'DEL_BUTTON'+addFormNum,
handler:function(){
fp.remove(this.ownerCt.ownerCt);
fp.doLayout();
//addFormNum--;
}
}
]
}]
})
fp.add(fileup);//添加
fp.doLayout();//重新布局
}
//保存
function onSave(){
var jsonObj="";
jsonObj=fp.getForm().getValues(false);
var validEva=true;
var validCau=true;
var validScore=true;
var num=0;
arrCau=[];
arrClassify=[];
fp.findBy(function(val){
if(val.getId().indexOf("PSTED_EVA_COU_CAT_ID")!=-1 )
{
var cauId= val.getId().substr(20);
arrCau.push(cauId);
if($('PSTED_EVA_COU_CAT_ID'+cauId).isValid()==false)
validEva=false;
}
if(val.getId().indexOf("PSTED_CLASSIFY_ID")!=-1 )
{
var classify= val.getId().substr(17);
arrClassify.push(classify);
if($('PSTED_CLASSIFY_ID'+classify).isValid()==false)
validCau=false;
}
if(val.getId().indexOf("PSTED_SCORE")!=-1 )
{
var scoreId= val.getId().substr(11);
if($('PSTED_SCORE'+scoreId).isValid()==false)
validScore=false;
}
});
//如果评价课程类别、评价分类、总分都不为空的话
if(validEva && validCau && validScore){
if(arrCau.length>0){//同一学年学期 评价课程类别与评价分类不能重复
var courseIdCurrent="";
var classifyIdCurrent="";
var courseId="";
var classifyId="";
for(var i=0;i<arrCau.length;i++){
for (var j=i+1;j<arrCau.length;j++){
courseIdCurrent=$value('PSTED_EVA_COU_CAT_ID'+arrCau[i]);
classifyIdCurrent=$value('PSTED_CLASSIFY_ID'+arrClassify[i]);
courseId=$value('PSTED_EVA_COU_CAT_ID'+arrCau[j]);
classifyId=$value('PSTED_CLASSIFY_ID'+arrClassify[j]);
alert("i:"+i+"j:"+j+"courseIdCurrent:"+courseIdCurrent+"courseId:"+courseId+"classifyIdCurrent:"+classifyIdCurrent+"classifyId:"+classifyId);
if(courseIdCurrent==courseId && classifyIdCurrent==classifyId){
Ext.Msg.alert("提示:","第"+(i+1)+"行与第"+(j+1)+"行是同一重复记录,请重新选择!");
return;
}
}
}
}
jsonObj.PSTE_XNXQ01ID=$value("PSTE_XNXQ01ID");//学年学期
var tempModel1 = document.getElementsByName('PSTE_INDEX_SCORE_INPUT');//遍历指标分值输入方式
for(var i =0;i<tempModel1.length;i++){
if(tempModel1[i].checked){
jsonObj.PSTE_INDEX_SCORE_INPUT = tempModel1[i].value;
}
}
var tempModel2 = document.getElementsByName('PSTE_STU_SEE_RES_CONT');//遍历学生查看成绩控制
for(var i =0;i<tempModel2.length;i++){
if(tempModel2[i].checked){
jsonObj.PSTE_STU_SEE_RES_CONT = tempModel2[i].value;
}
}
jsonObj.CREATOR='<foundation:property value="#session.userObject.userid"/>';
if(addoredit==0){
resourceService.getId("PJ_SEM_TEA_EVAL.PJ_SEM_TEA_EVAL_ID",function(id){
jsonObj.PJ_SEM_TEA_EVAL_ID=id;
});
evaluationcontrolService.insertEvaluationControl(jsonObj, function(c){
if(c){
for(var i=1 ; i<=arrCau.length;i++ ){
jsonObj.PJ_SEM_TEA_EVAL_ID=jsonObj.PJ_SEM_TEA_EVAL_ID;
jsonObj.PSTED_EVA_COU_CAT_ID=$value('PSTED_EVA_COU_CAT_ID'+arrCau[i-1]);
jsonObj.PSTED_CLASSIFY_ID=$value('PSTED_CLASSIFY_ID'+arrCau[i-1]) ;
jsonObj.PSTED_SCORE=$value('PSTED_SCORE'+arrCau[i-1]) ;
pageCall.invokeNamedSqlForInsert("evaluationcontrol.insertEvaluationControlKidInfo",jsonObj,function(c){
});
}
Ext.Msg.alert("提示:","学期评教控制添加成功!");
} else {
Ext.Msg.alert("提示:","学期评教控制添加失败!");
}
});
}
else if(addoredit==1){
var arrUpdate = new Array();
evaluationcontrolService.updateEvaluationControl(jsonObj, function(c){
if(c){
if(addFormNum>=1){
arrUpdate.push({PSTE_XNXQ01ID:$value("PSTE_XNXQ01ID")});
pageCall.invokeNamedSqlForBatchDelete("evaluationcontrol.deletClassificationControlInfo",arrUpdate,function(){
for(var i=1 ; i<=arrCau.length;i++ ){
jsonObj.PSTE_XNXQ01ID=$value('PSTE_XNXQ01ID');
jsonObj.PSTED_EVA_COU_CAT_ID=$value('PSTED_EVA_COU_CAT_ID'+arrCau[i-1]);
jsonObj.PSTED_CLASSIFY_ID=$value('PSTED_CLASSIFY_ID'+arrClassify[i-1]) ;
jsonObj.PSTED_SCORE=$value('PSTED_SCORE'+arrClassify[i-1]) ;
pageCall.invokeNamedSqlForInsert("evaluationcontrol.insertEvaluationControlKidInfo",jsonObj,function(c){
Ext.Msg.alert("提示:","学期评教控制修改成功!");
});
}
});
}
else{
Ext.Msg.alert("提示:","学期评教控制修改成功!");
}
}else{
Ext.Msg.alert("提示:","学期评教控制修改失败!");
}
});
}
//}
}
}
// 学年学期
function getChargeYearPos(){
var arr = new Array();
pageCall.queryNamedSqlForList("evaluationcontrol.selectChargeYearName",{},function(obj){
for(var k = 0; k < obj.length; k++){
arr.push([obj[k].XNXQ01ID, obj[k].TERMCNAME]);
}
});
return arr;
}
// 评价课程类别
function getPeccName(){
var arr = new Array();
pageCall.queryNamedSqlForList("evaluationcontrol.selectPeccName",{},function(obj){
for(var k = 0; k < obj.length; k++){
arr.push([obj[k].PJ_EVA_COU_CAT_ID, obj[k].PECC_NAME]);
}
});
return arr;
}
// 评价分类
function getClassify(){
var arr = new Array();
pageCall.queryNamedSqlForList("evaluationcontrol.selectClassify",{},function(obj){
for(var k = 0; k < obj.length; k++){
arr.push([obj[k].PJ_CLASSIFY_ID, obj[k].PC_NAME]);
}
});
return arr;
}
var innerPanel = new Ext.Panel({
layout : 'border',
border : false,
title:'学期评教控制',
iconCls : 'icon-plugin',
split : true,
items:[fp]
});var bigTabPanel = new Ext.TabPanel({
region : 'center',
activeTab: 0,
border : false,
frame:false,
items:[innerPanel]
});
Ext.onReady(function(){
new Ext.Viewport({
layout : 'border',
split : true,
items:[bigTabPanel]
});
//初始化学年学期,设置为当前学年学期
Ext.getCmp('PSTE_XNXQ01ID').store.loadData(getChargeYearPos());
pageCall.queryNamedSqlForObj('evaluationcontrol.selectCurrentYearName',{},function(xnxq){
currentXnxqid = xnxq.XNXQ01ID;
$set("PSTE_XNXQ01ID",currentXnxqid);
});
//初始化学年学期下的数据
//查询学期评教控制表的信息(主表)
pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectsemteaevalebyxnxq",{PSTE_XNXQ01ID:$value('PSTE_XNXQ01ID')},function(list){
if(parseInt(list.length)>0){//有数据 修改
addoredit=1;
$set('PSTE_XNXQ01ID',list[0].PSTE_XNXQ01ID);
$set('PJ_SEM_TEA_EVAL_ID',list[0].PJ_SEM_TEA_EVAL_ID);
document.getElementsByName("PSTE_INDEX_SCORE_INPUT")[list[0].PSTE_INDEX_SCORE_INPUT-1].checked=true;
document.getElementsByName("PSTE_STU_SEE_RES_CONT")[list[0].PSTE_STU_SEE_RES_CONT-1].checked=true;
//查询学期评教控制详细表信息(子表) 动态显示
var semTeaEvalId=list[0].PJ_SEM_TEA_EVAL_ID;//学期评教控制表ID
pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectsemteaevaledelbyxnxq",{PSTED_SEM_TEA_EVAL_ID:semTeaEvalId},function(del){
if(parseInt(del.length)>0){
for ( var k = 1; k <= del.length; k++) {
addTextfield();
$('PSTED_CLASSIFY_ID'+addFormNum).store.loadData(getClassify());
$('PSTED_CLASSIFY_ID'+addFormNum).reset();
$set('PSTED_EVA_COU_CAT_ID'+k,del[k-1].PSTED_EVA_COU_CAT_ID);
$set('PSTED_CLASSIFY_ID'+k,del[k-1].PSTED_CLASSIFY_ID);
$set('PSTED_SCORE'+k,del[k-1].PSTED_SCORE);
//若已存在评价信息,则相应的总分不允许修改或删除。
pageCall.queryNamedSqlForJsonArr("evaluationcontrol.selectDuplicateRecords",{PTEA_XNXQ01ID:$value('PSTE_XNXQ01ID'),PCEA_CLASSIFY_ID:$value('PSTED_CLASSIFY_ID'+addFormNum),PJ_EVA_COU_CAT_ID:$value('PSTED_EVA_COU_CAT_ID'+addFormNum)},function(li){
if(parseInt(li.length)>0)
{
$('PSTED_CLASSIFY_ID'+addFormNum).disable();
$('PSTED_EVA_COU_CAT_ID'+addFormNum).disable();
$('PSTED_SCORE'+addFormNum).disable();
$('DEL_BUTTON'+addFormNum).disable();
}
});
}
}
});
}
else{//无数据 增加
addoredit=0;
document.getElementsByName("PSTE_INDEX_SCORE_INPUT")[0].checked=true;
document.getElementsByName("PSTE_STU_SEE_RES_CONT")[0].checked=true;
//初始化动态添加列表
for(var i=0;i<1;i++){
addTextfield();
}
}
});
});
</script>
</body>
</html>