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