/** * 选择年份picker */ Ext.define('erp.view.core.form.YearDateField', { extend: 'Ext.form.field.Trigger', alias: 'widget.yeardatefield', triggerCls: Ext.baseCSSPrefix + "form-date-trigger", initComponent : function(){ this.callParent(arguments); if(this.fromnow){ this.minYear = new Date().getFullYear(); this.setMinValue(this.minYear); } }, onTriggerClick: function(){ var me = this; if(this.yearPicker && !this.yearPicker.hidden){ this.yearPicker.hide(); return; } this.createyearPicker().show(); this.yearPicker.prevEl.dom.onclick = function(){//翻页时刷新样式 me.setMaxValue(me.maxYear); me.setMinValue(me.minYear); }; this.yearPicker.nextEl.dom.onclick = function(){ me.setMaxValue(me.maxYear); me.setMinValue(me.minYear); }; }, fromnow: false, regex: /^[1-9]\d{3}$/, regexText: '格式不正确!', createyearPicker: function(){ var b = this, a = b.yearPicker; if (!a) { b.yearPicker = a = Ext.create("Ext.picker.Month", { renderTo : Ext.getBody(), floating : true, ownerCt: b, listeners : { scope : b, cancelclick : b.onCancelClick, okclick : b.onOkClick, yeardblclick : b.onOkClick, afterrender: function(p){ if(b.maxValue){ p.setMaxDate(b.maxValue); } if(b.minValue){ p.setMinDate(b.minValue); } } }, setMaxDate : function(dt){ this.maxDate = dt; var years = this.years; Ext.each(years.elements, function(el){ if(Number(el.innerHTML) > dt.getFullYear()){ el.style.color = '#EEE9E9'; } else { el.style.color = 'black'; } }); }, setMinDate : function(dt){ this.minDate = dt; var years = this.years; Ext.each(years.elements, function(el){ if(Number(el.innerHTML) < dt.getFullYear()){ el.style.color = '#EEE9E9'; } else { el.style.color = 'black'; } }); }, totalYears: 10, yearOffset: 5, renderTpl: [ '