Ext.QuickTips.init();
Ext.define('erp.controller.plm.project.ProjectScheme', {
extend: 'Ext.app.Controller',
FormUtil: Ext.create('erp.util.FormUtil'),
GridUtil: Ext.create('erp.util.GridUtil'),
BaseUtil: Ext.create('erp.util.BaseUtil'),
views:[
'core.form.Panel','plm.project.ProjectScheme',
'core.button.Save','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload','core.button.ResAudit',
'core.button.Audit','core.button.Close','core.button.Delete','core.button.Update','core.button.DeleteDetail','core.button.ResSubmit',
'core.form.CheckBoxGroup','core.trigger.DbfindTrigger','core.form.MultiField','core.toolbar.Toolbar','core.form.FileField',
'core.trigger.TextAreaTrigger','core.form.YnField','core.form.SpecialContainField','core.grid.ItemGrid','core.form.CheckBoxGroupEndwithS'
],
init:function(){
var me = this;
this.control({
'erpSaveButton': {
click: function(btn){
var form = me.getForm(btn);
if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
me.BaseUtil.getRandomNumber();//自动添加编号
}
this.FormUtil.beforeSave(this);
}
},
'erpDeleteButton' : {
afterrender: function(btn){
var status = Ext.getCmp('pe_statuscode');
if(status && status.value != 'ENTERING'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onDelete(Ext.getCmp('pe_id').value);
}
},
'erpUpdateButton': {
afterrender: function(btn){
var status = Ext.getCmp('pe_statuscode');
if(status && status.value != 'ENTERING'){
btn.hide();
}
},
click: function(btn){
//me.FormUtil.onUpdate(this);
me.onUpdate(this);
}
},
'erpAddButton': {
click: function(){
me.FormUtil.onAdd('addProjectEvaluation', '新增项目方案库', 'jsps/plm/project/projectScheme.jsp?whoami=ProjectScheme');
}
},
'erpCloseButton': {
click: function(btn){
me.FormUtil.beforeClose(me);
}
},
'erpSubmitButton': {
afterrender: function(btn){
var status = Ext.getCmp('pe_statuscode');
if(status && status.value != 'ENTERING'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onSubmit(Ext.getCmp('pe_id').value);
}
},
'erpResSubmitButton': {
afterrender: function(btn){
var status = Ext.getCmp('pe_statuscode');
if(status && status.value != 'COMMITED'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onResSubmit(Ext.getCmp('pe_id').value);
}
},
'erpAuditButton': {
afterrender: function(btn){
var status = Ext.getCmp('pe_statuscode');
if(status && status.value != 'COMMITED'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onAudit(Ext.getCmp('pe_id').value);
}
},
'erpResAuditButton': {
afterrender: function(btn){
var status = Ext.getCmp('pe_statuscode');
if(status && status.value != 'AUDITED'){
btn.hide();
}
},
click: function(btn){
me.FormUtil.onResAudit(Ext.getCmp('pe_id').value);
}
}
});
},
getForm: function(btn){
return btn.ownerCt.ownerCt;
},
onUpdate: function(me){
var mm = this;
var form = Ext.getCmp('form');
var s2 = '';
var grids = Ext.ComponentQuery.query('gridpanel');
var removea = new Array();
Ext.each(grids,function(g,index){
if(g.xtype=='itemgrid'){
g.updateValue();
removea.push(g);
}
});
Ext.each(removea,function(r,index){
Ext.Array.remove(grids,r);
});
if(grids.length > 0){//check所有grid是否已修改
Ext.each(grids, function(grid, index){
if(grid.GridUtil){
var msg = grid.GridUtil.checkGridDirty(grid);
if(msg.length > 0){
s2 = s2 + '
' + grid.GridUtil.checkGridDirty(grid);
}
}
});
}
if(form && form.getForm().isValid()){
//form里面数据
var r = form.getValues(false, true);
//去除ignore字段
var keys = Ext.Object.getKeys(r), f;
Ext.each(keys, function(k){
f = form.down('#' + k);
if(f && f.logic == 'ignore') {
delete r[k];
}
});
if(!mm.FormUtil.contains(form.updateUrl, '?caller=', true)){
form.updateUrl = form.updateUrl + "?caller=" + caller;
}
var params = [];
if(grids.length > 0){
var param = grids[0].GridUtil.getGridStore();
if(grids[0].necessaryField.length > 0 && (param == null || param == '')){
warnMsg('明细表还未添加数据,是否继续?', function(btn){
if(btn == 'yes'){
params = unescape("[" + param.toString().replace(/\\/g,"%") + "]");
} else {
return;
}
});
} else {
params = unescape("[" + param.toString().replace(/\\/g,"%") + "]");
}
}
mm.update(r, params);
}else{
mm.checkForm(form);
}
},
update: function(){
var me = this, params = new Object();
var r = arguments[0];
Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
if(contains(k, 'ext-', true)){
delete r[k];
}
});
params.formStore = unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
params.param = unescape(arguments[1].toString().replace(/\\/g,"%"));
for(var i=2; i