Ext.QuickTips.init(); Ext.define('erp.controller.plm.task.ProjectMainTask', { extend: 'Ext.app.Controller', FormUtil: Ext.create('erp.util.FormUtil'), GridUtil: Ext.create('erp.util.GridUtil'), BaseUtil: Ext.create('erp.util.BaseUtil'), views:[ 'plm.task.ProjectMainTask','core.form.Panel','core.grid.Panel2','core.grid.YnColumn','core.button.ImportExcel','core.button.Load','core.button.ImportMpp', 'core.button.Add','core.button.Submit','core.button.Audit','core.button.Save','core.button.Close','core.button.ResSubmit','core.form.HrefField','core.button.ExportExcelButton', 'core.button.Upload','core.button.Update','core.button.Delete','core.button.ResAudit','core.button.DeleteDetail','core.button.CreateCheckList','core.grid.detailAttach', 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.trigger.MultiDbfindTrigger','core.button.TurnTask','core.button.End','core.button.ResEnd' ], init:function(){ var me=this,statuscode=null; this.control({ 'erpGridPanel2': { itemclick: this.onGridItemClick }, '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); }, afterender:function(btn){ if(statuscode!='ENTERING'){ btn.hide(); } } }, 'erpUpdateButton':{ click:function(){ this.FormUtil.onUpdate(this); }, beforerender:function(btn){ btn.formBind=true; }, afterrender:function(btn){ statuscode=Ext.getCmp('pt_statuscode').getValue(); if(statuscode!='ENTERING'){ btn.hide(); } } }, 'erpDeleteButton':{ click:function(){ this.FormUtil.onDelete(Ext.getCmp("pt_id").getValue()); }, afterrender:function(btn){ statuscode=Ext.getCmp('pt_statuscode').getValue(); if(statuscode!='ENTERING'){ btn.hide(); } } }, /* 'erpImportExcelButton':{ afterrender:function(btn){ if(statuscode!='ENTERING'){ btn.hide(); } } },*/ 'erpLoadButton':{ afterrender:function(btn){ if(statuscode!='ENTERING'){ btn.hide(); } }, click:function(button){ warnMsg("确认要载入任务节点吗?", function(btn){ if(btn == 'yes'){ me.LoadTaskNode(button); } }); } }, 'erpExportExcelButton':{ afterrender:function(btn){ btn.exportCaller='ImportProjectTask'; } }, /* 'erpDeleteDetailButton': { afterrender: function(btn){ btn.ownerCt.add({ id:'attachform', xtype:'form', layout:'column', bodyStyle: 'background: transparent no-repeat 0 0;border: none;', items: [{ xtype: 'filefield', name: 'file', buttonOnly: true, hideLabel: true, disabled:true, width: 90, height: 17, id:'attachfile', buttonConfig: { iconCls: 'x-button-icon-pic', text: '上传附件', }, listeners: { change: function(field){ var filename = ''; if(contains(field.value, "\\", true)){ filename = field.value.substring(field.value.lastIndexOf('\\') + 1); } else { filename = field.value.substring(field.value.lastIndexOf('/') + 1); } field.ownerCt.getForm().submit({ url: basePath + 'common/upload.action?em_code=' + em_code, waitMsg: "正在解析文件信息", success: function(fp,o){ if(o.result.error){ showError(o.result.error); } else { Ext.Msg.alert("恭喜", filename + " 上传成功!"); field.setDisabled(true); var record=Ext.getCmp('grid').selModel.lastSelected; if(record){ record.set('attachs',filename+";"+o.result.filepath); } } } }); } }}] }); } },*/ 'erpSubmitButton':{ click:function(btn){ var id=Ext.getCmp('pt_id').getValue(); var recorddate = Ext.Date.format(Ext.getCmp('pt_recorddate').value, 'Ymd'); //不要给默认录入日期 提示交期不能为空不让提交 if(Ext.Date.format(Ext.getCmp('pt_taskstartdate').getValue(), 'Ymd') < recorddate){ showError('节点开始日期小于单据录入日期,单据提交失败!');return; } me.FormUtil.onSubmit(id); }, afterrender:function(btn){ if(statuscode!='ENTERING'){ btn.hide(); } } }, 'erpResSubmitButton':{ click:function(btn){ var id=Ext.getCmp('pt_id').getValue(); me.FormUtil.onResSubmit(id); }, afterrender:function(btn){ if(statuscode!='COMMITED'){ btn.hide(); } } }, 'erpAuditButton':{ click:function(btn){ var id=Ext.getCmp('pt_id').getValue(); me.FormUtil.onAudit(id); }, afterrender:function(btn){ if(statuscode!='COMMITED'){ btn.hide(); } } }, 'erpResAuditButton':{ click:function(btn){ var id=Ext.getCmp('pt_id').getValue(); me.FormUtil.onResAudit(id); }, afterrender:function(btn){ statuscode=Ext.getCmp('pt_statuscode').getValue(); if(statuscode!='AUDITED'){ btn.hide(); } } }, 'erpEndButton':{ click:function(btn){ var id=Ext.getCmp('pt_id').getValue(); warnMsg('确认结案研发任务书吗?', function(btn){ if(btn == 'yes'){ me.FormUtil.onEnd(id); } else { return; } }); }, afterrender:function(btn){ statuscode=Ext.getCmp('pt_statuscode').getValue(); if(statuscode!='AUDITED'&&statuscode!='DOING'){ btn.hide(); } } }, 'erpResEndButton':{ click:function(btn){ var id=Ext.getCmp('pt_id').getValue(); me.FormUtil.onResEnd(id); }, afterrender:function(btn){ statuscode=Ext.getCmp('pt_statuscode').getValue(); if(statuscode!='FINISHED'){ btn.hide(); } } }, 'erpTurnTaskButton':{ click:function(btn){ me.TurnTask(btn); }, afterrender:function(btn){ if(statuscode!='AUDITED'){ btn.hide(); } } }, 'filefield[id=excelfile]':{ change: function(field){ if(contains(field.value, "\\", true)){ filename = field.value.substring(field.value.lastIndexOf('\\') + 1); } else { filename = field.value.substring(field.value.lastIndexOf('/') + 1); } field.ownerCt.getForm().submit({ url: basePath + 'common/upload.action?em_code=' + em_code, waitMsg: "正在解析文件信息", success: function(fp,o){ if(o.result.error){ showError(o.result.error); } else { var filePath=o.result.filepath; var keyValue=Ext.getCmp('pt_id').getValue(); var startdate=Ext.getCmp('pt_taskstartdate').getValue(); if(!startdate||startdate==""||startdate==null){ showError('请先设置节点开始时间'); return; }else { Ext.Ajax.request({//拿到form的items url : basePath + 'plm/main/ImportExcel.action', params:{ id:keyValue, fileId:filePath, startdate:startdate }, method : 'post', callback : function(options,success,response){ var result=Ext.decode(response.responseText); if(result.success){ var grid=Ext.getCmp('grid'); var param={ caller:caller, condition:'ptid='+keyValue }; grid.GridUtil.loadNewStore(grid,param); }else{ if(result.exceptionInfo != null){ showError(result.exceptionInfo);return; } } } }); } } } }); } }, 'filefield[id=mppfile]':{ change: function(field){ if(contains(field.value, "\\", true)){ filename = field.value.substring(field.value.lastIndexOf('\\') + 1); } else { filename = field.value.substring(field.value.lastIndexOf('/') + 1); } field.ownerCt.getForm().submit({ url: basePath + 'common/upload.action?em_code=' + em_code, waitMsg: "正在解析文件信息", success: function(fp,o){ if(o.result.error){ showError(o.result.error); } else { var filePath=o.result.filepath; var keyValue=Ext.getCmp('pt_id').getValue(); var startdate=Ext.getCmp('pt_taskstartdate').getValue(); if(!startdate||startdate==""||startdate==null){ showError('请先设置节点开始时间'); return; }else { Ext.Ajax.request({//拿到form的items url : basePath + 'plm/main/ImportMpp.action', params:{ id:keyValue, fileId:filePath, startdate:startdate }, method : 'post', callback : function(options,success,response){ var result=Ext.decode(response.responseText); if(result.success){ var grid=Ext.getCmp('grid'); var param={ caller:caller, condition:'ptid='+keyValue }; grid.GridUtil.loadNewStore(grid,param); }else{ if(result.exceptionInfo != null){ showError(res.exceptionInfo);return; } } } }); } } } }); } }, 'erpCloseButton': { click: function(btn){ this.FormUtil.beforeClose(this); }, afterrender:function(btn){ statuscode=Ext.getCmp('pt_statuscode').getValue(); if(statuscode!='ENTERING'){ Ext.getCmp('grid').setReadOnly(true); } } }, 'htmleditor[name=pt_prjcode]':{ afterrender:function(editor){ editor.getToolbar().hide(); editor.readOnly=true; editor.setValue('' + editor.value + ''); } }, 'htmleditor[name=pt_prcode]':{ afterrender:function(editor){ editor.getToolbar().hide(); editor.readOnly=true; editor.setValue('' + editor.value + ''); } }, 'multidbfindtrigger[name=resourcecode]':{ afterrender:function(trigger){ trigger.gridKey='pt_prjid'; trigger.mappinggirdKey='tm_prjid'; trigger.gridErrorMessage='请选择该任务的项目ID'; } }, 'button[id=mutidbaffirm]':{ beforerender:function(btn){ btn.handler=function(){ var win=btn.ownerCt.ownerCt; var trigger=win.dbtriggr; if(trigger.multistore){ var me = Ext.getCmp('multigrid'); trigger.setValue(me.multiselected.substring(1)); win.close(); } else { if(!trigger.ownerCt){ var grid = trigger.owner; var record = grid.selModel.lastSelected; var multidata=new Object(); var multivalue=trigger.multiValue; var units=0; if(multivalue.length>0){ var keys=Ext.Object.getKeys(multivalue[0].data); var key=null; Ext.each(trigger.multiValue, function(item, index){ for(var i=0;i100 || units==100 )&&ds.field=='resourceunits'){ var arr=multidata['tm_employeecode'].split(","); var un=parseInt(100/(arr.length)),lastValue=""; for(var i=0;i' + val + ''; }, flex: 1,cls :'x-grid-header-1'}] }] }] }] }); } else { var data=Ext.decode(data); Ext.getCmp('smallgrid').getStore().loadData(data); menu.items.items[0].items.items[1].taskid=record.data.id; if(menu.items.items[0].activeTab.title=='任务日志'){ me.getLogData(menu.items.items[0].activeTab); } } menu.alignTo(el, 'tl-bl?',[280, 0]); menu.show(); } } , getLogData:function(tab){ Ext.Ajax.request({ url : basePath + 'common/getFieldsDatas.action', params: { fields:'WR_ID,WR_PERCENTDONE,WR_RECORDDATE,WR_RECORDER,WR_REDCORD', caller:'WorkRecord', condition:'wr_taskid='+tab.taskid }, method : 'post', async:true, callback : function(options,success,response){ var localJson = new Ext.decode(response.responseText); tab.items.items[0].getStore().loadData(new Ext.decode(localJson.data)); } }); }, getData:function(keyValue,url){ var data=new Array(); Ext.Ajax.request({ url : basePath + url, params: { id: keyValue }, method : 'post', async:false, callback : function(options,success,response){ var localJson = new Ext.decode(response.responseText); data=localJson.data; } }); return data; }, TurnTask:function(btn){ var form=btn.ownerCt.ownerCt; var id=Ext.getCmp('pt_id').getValue(); Ext.Ajax.request({ url : basePath + form.TurnTaskUrl, params: { id: id }, method : 'post', callback : function(options,success,response){ var localJson = new Ext.decode(response.responseText); if(localJson.success){ Ext.Msg.alert('提示','任务节点激活成功!',function(){window.location.reload();}); } else { if(localJson.exceptionInfo){ var str = localJson.exceptionInfo; if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面 str = str.replace('AFTERSUCCESS', ''); submitSuccess(function(){ window.location.reload(); }); } showMessage("提示", str);return; } } } }); }, LoadTaskNode:function(btn){ var form=btn.ownerCt.ownerCt; var keyValue=Ext.getCmp('pt_id').getValue(); var producttype=Ext.getCmp('pt_producttype').getValue(); form.FormUtil.setLoading(true); Ext.Ajax.request({ url : basePath + form.LoadTaskNodeUrl, params: { id:keyValue, type:producttype }, method : 'post', callback : function(options,success,response){ var localJson = new Ext.decode(response.responseText); form.FormUtil.setLoading(false); if(localJson.success){ Ext.Msg.alert('提示','载入成功!',function(){ var grid=Ext.getCmp('grid'); var param={caller:caller,condition:'ptid='+keyValue}; grid.GridUtil.loadNewStore(grid,param); }); } else { if(localJson.exceptionInfo){ var str = localJson.exceptionInfo; showMessage("提示", str);return; } } } }); }, openFormUrl:function(value, keyField, url, title){ url =url+'?formCondition='+keyField+"="+value; var panel = Ext.getCmp(keyField + "=" + value); var main = parent.Ext.getCmp("content-panel"); var showtitle=''; url = url.replace(/IS/g, "=\'").replace(/&/g, "\'&"); if(!panel){ if (title && title.toString().length>4) { showtitle = title.toString().substring(0,4); } panel = { title : showtitle, tag : 'iframe', tabConfig:{tooltip:title.toString() + '(' + keyField + "=" + value + ')'}, frame : true, border : false, layout : 'fit', iconCls : 'x-tree-icon-tab-tab', html : '', closable : true, listeners : { close : function(){ main.setActiveTab(main.getActiveTab().id); } } }; openTab(panel, keyField + "=" + value); }else{ main.setActiveTab(panel); } }, getForm: function(btn){ return btn.ownerCt.ownerCt; } });