//思路:1. js新建类(暂且成为类) 这个类有两个输入的成员变量1.old_value 是盛放原值的对象 2.panel 需要提交的表单对象(formpanel)
// 2.eachFormPanle 遍历表单并与原值进行比较 不同的讲原值存在v_old 新值存入v_new
// 3.r_oldvale f返回原值 r_newvale 返回新值
var CheckChange = {
createNew: function(){
var checkChange = {};
var panel=new Object();
var old_value=new Object();
var v_old=new Object();
var v_new=new Object();
checkChange.name="";
checkChange.r_oldvale = function(){
eachFormPanle(this.panel,this.old_value);
return v_old;
};
checkChange.r_newvale = function(){
eachFormPanle(this.panel,this.old_value);
return v_new;
};
//递归遍历表单 与原值进行比较 不同的将原值放到 v_old对象 新值放到 v_new 对象
function eachFormPanle(panel,old_value){
panel.items.each(function(item,index,length){
if(item.getXType()=="panel"){
eachFormPanle(item,old_value);
}else if(item.getXType()!="button"){
var c_name=item.getName();
var c_textlable=item.fieldLabel;
//日期格式
if(item.getXType()=="datetimefield"){
//当old_value存在 并且 old_value与组件的值不相等时 存入object
if(old_value[c_name]!=item.getRawValue()){
v_old[c_textlable]=old_value[c_name];
v_new[c_textlable]=item.getRawValue();
}
}
//下拉框 下拉框需要获取中文值
else if(item.getXType()=="combo"){
if(old_value[c_name]!=item.getValue()){
v_old[c_textlable]=old_value[c_name];
v_new[c_textlable]=item.getEl().dom.value;
}
}
//其他
else{
if(old_value[c_name]!=item.getValue()){
v_old[c_textlable]=old_value[c_name];
v_new[c_textlable]=item.getValue();
}
}
}
});
}
return checkChange;
}
}
//调用
var checkChange = CheckChange.createNew();
checkChange.old_value=old_value;
checkChange.panel=addForm;
var old_changevalue=Ext.encode(checkChange.r_oldvale());
var new_changevalue=Ext.encode(checkChange.r_newvale());