Ext.define('erp.view.core.form.PlanDate', {
extend: 'Ext.form.FieldContainer',
alias: 'widget.plandate',
layout: 'hbox',
items: [],
height: 22,
initComponent : function(){
this.callParent(arguments);
var me = this;
me.insert(0, {
xtype: 'combo',
flex: 1,
editable: false,
fieldStyle: 'background:#C1CDC1',
store: Ext.create('Ext.data.Store', {
fields: ['display', 'value'],
data : [
{"display":"月计划", "value": '月计划'},
{"display":"年计划", "value": '年计划'},
{"display":"季度计划", "value": '季度计划'}
]
}),
queryMode: 'local',
displayField: 'display',
valueField: 'value',
value: '月计划',
listeners: {
select: function(combo, records, obj){
me.changePlan(combo.value);
}
}
});
me.insert(1, Ext.create('erp.view.core.form.MonthDateField', {
flex: 1,
editable: false,
fromnow: true,
name: me.name,
// listeners: {
// render: function(f){
// if(me.items.items[0].value != '月计划'){
// alert(f.value);
// alert(me.items.items[0].value);
//// me.items.items[1].setValue(f.value);
// me.changePlan(me.items.items[0].value);
// }
// }
// }
}));
me.insert(2, {
flex: 3,
xtype: 'displayfield',
listeners: {
change: function(f){
var form = f.up('erpWorkPlanFormPanel');
if(form){
var type = form.down('dbfindtrigger').value;
var lastplan = form.down('workplanfield');
var nextplan = form.down('workplanfield2');
var summary = form.down('#wp_summary');
var title = '';//nextplan计划标题
var title2 = '';//lastplan计划标题
var val = this.ownerCt.items.items[0].value,
val2 = this.ownerCt.items.items[1].value,
y,m;
switch (val) {
case '月计划':
if(/^[1-9]\d{3}[0-1]\d$/.test(val2)){
y = val2.toString().substring(0, 4);
m = val2.toString().substr(4);
title = em_name + '的' + y + '年' + m + '月' + type;
if(m != '01'){
var moo = (m-1)<10 ? ('0'+(m-1)) : (m-1);
lastplan.setTitle('
'+y+'年'+moo+'月份计划');
summary.setTitle('
'+y+'年'+moo+'月份总结');
title2 = em_name + '的' + y + '年' + moo + '月' + type;
} else {
title2 = em_name + '的' + (y-1) + '年' + 12 + '月' + type;
lastplan.setTitle('
'+(y-1)+'年'+12+'月份计划');
summary.setTitle('
'+(y-1)+'年'+12+'月份总结');
}
nextplan.setTitle('
'+y+'年'+m+'月份计划');
}
break;
case '年计划':
if(/^[1-9]\d{3}$/.test(val2)){
y = val2.toString().substring(0, 4);
title = em_name + '的' + y + '年年度' + type;
title2 = em_name + '的' + (y-1) + '年年度' + type;
lastplan.setTitle('
'+(y-1)+'年年度计划');
summary.setTitle('
'+(y-1)+'年年度总结');
nextplan.setTitle('
'+y+'年年度计划');
}
break;
case '季度计划':
if(/^[1-9]\d{3}[1-4]$/.test(val2)){
y = val2.toString().substring(0, 4);
m = Number(val2.toString().substr(4));
title = em_name + '的' + y + '年第' + m + '季度' + type;
if(m != 1){
title2 = em_name + '的' + y + '年第' + (m-1) + '季度' + type;
lastplan.setTitle('
'+y+'年第'+(m-1)+'季度计划');
summary.setTitle('
'+y+'年第'+(m-1)+'季度总结');
} else {
title2 = em_name + '的' + (y-1) + '年第' + 4 + '季度' + type;
lastplan.setTitle('
'+(y-1)+'年第'+4+'季度计划');
summary.setTitle('
'+(y-1)+'年第'+4+'季度总结');
}
nextplan.setTitle('
'+y+'年'+m+'季度计划');
}
break;
default:
break;
}
form.down('#lasttitle').setValue(title2);//一定要先给title2赋值
form.down('textfield').setValue(title);
form.down('#import').setText('查看'+title2+'完成情况');
}
}
}
});
me.setValue(me.value);
},
changePlan: function(val, v){
var me = this;
var value = me.items.items[1].value;
me.items.items[1].destroy(true);
switch (val) {
case '月计划':
me.insert(1, Ext.create('erp.view.core.form.MonthDateField', {
flex: 1,
editable: false,
fromnow: true,
value: value,
name: me.name,
listeners: {
afterrender: function(f){
if(v){
f.setDisabled(true);
}
},
change: function(){
me.showValue();
}
}
}));
break;
case '年计划':
me.insert(1, Ext.create('erp.view.core.form.YearDateField', {
flex: 1,
editable: false,
fromnow: true,
value: v==null? value : v,
name: me.name,
listeners: {
afterrender: function(f){
if(v){
f.setDisabled(true);
}
},
change: function(){
me.showValue();
}
}
}));
break;
case '季度计划':
me.insert(1, {
xtype: 'fieldcontainer',
flex: 2,
layout: 'hbox',
items: [Ext.create('erp.view.core.form.YearDateField', {
flex: 1,
editable: false,
fromnow: true,
listeners: {
afterrender: function(f){
if(v){
f.fromnow = false;
f.setValue(v.substring(0, 4));
f.setDisabled(true);
}
},
change: function(f){
f.ownerCt.value = f.value + '' + f.ownerCt.down('combobox').value;
me.showValue();
}
}
}),{
flex: 1.5,
xtype: 'combobox',
editable: false,
store: Ext.create('Ext.data.Store', {
fields: ['display', 'value'],
data : [
{"display":"第一季度", "value": 1},
{"display":"第二季度", "value": 2},
{"display":"第三季度", "value": 3},
{"display":"第四季度", "value": 4}
]
}),
queryMode: 'local',
displayField: 'display',
valueField: 'value',
value: 1,
name: me.name,
listeners: {
afterrender: function(f){
if(v){
f.setValue(v.substring(4));
f.setDisabled(true);
}
},
change: function(f){
f.ownerCt.value = f.ownerCt.down('yeardatefield').value + '' + f.value;
me.showValue();
}
}
}],
listeners: {
afterrender: function(f){
f.value = f.ownerCt.down('yeardatefield').value + '' + f.down('combobox').value;
me.showValue();
}
}
});
break;
default:
break;
}
this.showValue();
},
reset: function(){
var me = this;
me.items.items[0].reset();
me.items.items[1].reset();
},
setValue: function(value){
var me = this;
if(value && contains(value, ';')){
var p = value.split(';')[0],
v = value.split(';')[1];
if(!Ext.isEmpty(p)){
me.items.items[0].setValue(p);
me.items.items[0].setDisabled(true);
me.items.items[1].setValue(v);
me.items.items[1].setDisabled(true);
if(p != '月计划'){
me.changePlan(p, v);
}
}
}
this.showValue();
},
listeners: {
afterrender: function(){
this.getEl().dom.childNodes[1].style.height = 22;
this.getEl().dom.childNodes[1].style.overflow = 'hidden';
}
},
getValue: function(){//以;隔开{类型;值}
var me = this;
return me.items.items[0].value + ';' + me.items.items[1].value;
},
isValid: function(){
return true;
},
showValue: function(){
var val = this.items.items[0].value,
value = this.items.items[1].value,
s = '',
y,m;
switch (val) {
case '月计划':
if(/^[1-9]\d{3}[0-1]\d$/.test(value)){
y = value.toString().substring(0, 4);
m = value.toString().substr(4);
var d = new Date(y, Number(m), 1);
d = new Date(d.getTime() - 24*60*60*1000).getDate();
s = y + '-' + m + '-01 ~ ' + y + '-' + m + '-' + d;
}
break;
case '年计划':
if(/^[1-9]\d{3}$/.test(value)){
y = value.toString().substring(0, 4);
s = y + '-01-01 ~ ' + y + '-12-31';
}
break;
case '季度计划':
if(/^[1-9]\d{3}[1-4]$/.test(value)){
y = value.toString().substring(0, 4);
m = Number(value.toString().substr(4));
var d = new Date(y, Number(3*m), 1);
d = new Date(d.getTime() - 24*60*60*1000).getDate();
s = y + '-' + (3*m - 2) + '-01 ~ ' + y + '-' + 3*m + '-' + d;
}
break;
default:
break;
}
this.down('displayfield').setValue(s);
}
});