| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- /**
- * 新增任务
- */
- Ext.define('erp.view.core.window.Task', {
- extend : 'Ext.window.Window',
- alias : 'widget.taskwindow',
- requires : ['erp.view.core.trigger.DbfindTrigger','erp.view.core.form.FileField'],
- width : '80%',
- height : 410,
- cls : 'custom-blue',
- closeAction : 'destroy',
- title : '添加任务',
- sourceform : null,
- initComponent : function() {
- var me = this;
- me.items = me.items || [];
- me.items.push(me.createTaskForm());
- this.callParent(arguments);
- if (me.sourceform) {
- me.setDefaultValue(me.sourceform);
- }
- },
- createTaskForm : function() {
- var me = this;
- return Ext.create('Ext.form.Panel', {
- bodyStyle : 'background:#f1f2f5;border:none;',
- layout : 'column',
- defaults : {
- columnWidth : 1/3,
- margin : '2 2 2 2'
- },
- items : [{
- xtype : 'textfield',
- name : 'name',
- fieldLabel : '任务名称',
- allowBlank : false
- },{
- xtype : 'textfield',
- name : 'sourcecode',
- fieldLabel: '关联单号',
- readOnly : true
- },{
- xtype : 'datetimefield',
- name : 'startdate',
- fieldLabel : '开始时间',
- allowBlank : false
- },{
- xtype : 'datetimefield',
- name : 'enddate',
- fieldLabel : '结束时间',
- allowBlank : false
- },{
- xtype : 'numberfield',
- name : 'duration',
- fieldLabel : '持续时间(时)',
- hideTrigger : true,
- readOnly : true,
- value : 24
- },{
- xtype:'checkbox',
- boxLabel:'是否需要确认',
- checked:true,
- name:'type',
- inputValue:1
- },{
- xtype : 'fieldcontainer',
- fieldLabel : '处理人',
- name : 'resourcename',
- columnWidth : 1,
- layout : 'hbox',
- defaults : {
- margin : '0 2 0 2'
- },
- getSubmitData : function() {
- var c = this.query('checkbox[value=true]'), names = new Array();
- Ext.each(c, function(){
- names.push(this.boxLabel);
- });
- c = this.query('dbfindtrigger');
- Ext.each(c, function(){
- if(!Ext.isEmpty(this.value)) {
- names.push(this.value);
- }
- });
- return names.join(',');
- },
- items : [{
- xtype : 'dbfindtrigger',
- name : 'ma_recorder',
- isFormField : false,
- margin : '0 2 0 4',
- labelWidth : 40,
- fieldLabel : '其他',
- listeners : {
- aftertrigger : function(t, r) {
- t.setValue(r.get('em_name'));
- }
- }
- },{
- xtype: 'button',
- iconCls: 'x-button-icon-add',
- cls: 'x-btn-tb',
- handler: function(b){
- b.ownerCt.insert(b.ownerCt.items.items.length - 1, {
- xtype: 'dbfindtrigger',
- name : 'ma_recorder',
- isFormField : false,
- listeners : {
- aftertrigger : function(t, r) {
- t.setValue(r.get('em_name'));
- }
- }
- });
- }
- }]
- },{
- xtype:'mfilefield',
- name:'attachs',
- columnWidth:1,
- id:'attachs'
- },{
- xtype : 'textarea',
- name : 'description',
- fieldLabel : '描述',
- allowBlank : false,
- height : 160,
- columnWidth : 1,
- value : (window.errmessage || '')
- },{
- xtype : 'hidden',
- name : 'sourcelink'
- }],
- buttonAlign : 'center',
- buttons : [{
- text : '重置',
- cls : 'x-btn-blue',
- handler : function(b) {
- b.ownerCt.ownerCt.getForm().reset();
- }
- },{
- text : '确定',
- cls : 'x-btn-blue',
- formBind: true,
- handler : function(b) {
- me.onTaskAdd(b.ownerCt.ownerCt);
- }
- },{
- text : '关闭',
- cls : 'x-btn-blue',
- handler : function(b) {
- b.ownerCt.ownerCt.ownerCt.close();
- }
- }]
- });
- },
- onTaskAdd : function(form) {
- var me = this;
- var start = form.down('field[name=startdate]'),
- end = form.down('field[name=enddate]'),
- dur = form.down('field[name=duration]'),
- name = form.down('fieldcontainer[name=resourcename]');
- dur.setValue(Ext.Number.toFixed((end.getValue().getTime() - start.getValue().getTime())/(1000*60*60), 2));
- var v = form.getValues();
- Ext.each(Ext.Object.getKeys(v), function(k){//去掉页面非表单定义字段
- if(contains(k, 'ext-', true)){
- delete v[k];
- }
- });
- v.resourcename = name.getSubmitData();
- form.setLoading(true);
- Ext.Ajax.request({
- url : basePath + 'plm/task/addbilltask.action',
- params : {
- formStore : unescape(Ext.encode(v).replace(/\\/g,"%"))
- },
- callback : function(opt, s, res) {
- form.setLoading(false);
- var r = Ext.decode(res.responseText);
- if (r.success) {
- alert('添加成功!');
- me.close();
- } else if(r.exceptionInfo) {
- showError(r.exceptionInfo);
- }
- }
- });
- },
- setDefaultValue : function(form) {
- var me = this;
- me.down('textfield[name=name]').setValue(form.title);
- if (form.codeField) {
- var c = form.down('#' + form.codeField);
- if (c) {
- me.down('textfield[name=sourcecode]').setValue(c.getValue());
- }
- var u = new String(window.location.href);
- u = u.substr(u.indexOf('jsps'));
- me.down('field[name=sourcelink]').setValue(u);
- }
- if (form.uulistener) {
- var t = me.down('fieldcontainer[name=resourcename]');
- Ext.each(form.uulistener, function(u){
- var f = form.down('#' + u.uu_field);
- if(f) {
- if(!(u.uu_ftype == 1 && f.value == em_code) && !(u.uu_ftype == 2 && f.value == em_name)) {//排除自己
- if(f.value && !t.down('checkbox[boxLabel=' + f.value + ']')) {
- t.insert(0, {
- xtype : 'checkbox',
- name : 'man',
- isFormField : false,
- checked : true,
- boxLabel : f.value
- });
- }
- }
- }
- });
- }
- }
- });
|