ConMonthDateField.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /**
  2. * From-To monthdatefield
  3. * @author yingp
  4. */
  5. Ext.define('erp.view.core.form.ConMonthDateField', {
  6. extend: 'Ext.form.FieldContainer',
  7. alias: 'widget.conmonthdatefield',
  8. layout: 'column',
  9. value: "BETWEEN '' AND ''",
  10. items: [],
  11. height: 22,
  12. initComponent : function(){
  13. this.callParent(arguments);
  14. var me = this;
  15. me.insert(0, Ext.create('erp.view.core.form.MonthDateField', {
  16. columnWidth: 0.5,
  17. fieldStyle: me.fieldStyle,
  18. listeners: {
  19. change: function(){
  20. var from = me.items.items[0].value;
  21. var to = me.items.items[1].value;
  22. me.items.items[1].setMinValue(from);
  23. from = from == null || from == '' ? to == null || to == '' ? '' : to : from;
  24. to = to == null || to == '' ? from == null || from == '' ? '' : from : to;
  25. me.setValueString(from, to);
  26. }
  27. }
  28. }));
  29. me.insert(1, Ext.create('erp.view.core.form.MonthDateField', {
  30. columnWidth: 0.5,
  31. fieldStyle: me.fieldStyle,
  32. listeners: {
  33. change: function(){
  34. var from = me.items.items[0].value;
  35. var to = me.items.items[1].value;
  36. me.items.items[0].setMaxValue(to);
  37. from = from == null || from == '' ? to == null || to == '' ? '' : to : from;
  38. to = to == null || to == '' ? from == null || from == '' ? '' : from : to;
  39. me.setValueString(from, to);
  40. }
  41. }
  42. }));
  43. },
  44. getValue: function(){
  45. return this.value;
  46. },
  47. setValue: function(v){
  48. var from = this.items.items[0];
  49. var to = this.items.items[1];
  50. from.setValue(v);
  51. to.setValue(v);
  52. },
  53. setValueString: function(from, to) {
  54. this.firstVal = from;
  55. this.secondVal = to;
  56. // 针对使用到from-to期间的视图,传入参数
  57. if(this.name.toUpperCase().indexOf('YM_VIEW_PARAM') > -1 ||
  58. (this.logic && this.logic.toUpperCase() == 'YM_VIEW_PARAM'))
  59. this.value = 'ym_view_param.set_from(' + from + ')=' + from +
  60. ' AND ym_view_param.set_to(' + to + ')=' + to;
  61. else
  62. this.value = "BETWEEN " + from + " AND " + to;
  63. },
  64. listeners: {
  65. afterrender: function(){
  66. var tb = this.getEl().dom;
  67. if(tb.nodeName != 'TABLE') {
  68. tb.childNodes[1].style.height = 22;
  69. tb.childNodes[1].style.overflow = 'hidden';
  70. }
  71. var from = this.items.items[0].value;
  72. var to = this.items.items[1].value;
  73. this.items.items[1].setMinValue(from);
  74. this.items.items[0].setMaxValue(to);
  75. from = from == null || from == '' ? to == null || to == '' ? '' : to : from;
  76. to = to == null || to == '' ? from == null || from == '' ? '' : from : to;
  77. this.setValueString(from, to);
  78. }
  79. }
  80. });