ConMonthDateField.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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: null,
  10. items: [],
  11. initComponent : function(){
  12. this.cls = (this.cls || '') + ' x-form-field-multi';
  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. if(from && to) {
  57. // 针对使用到from-to期间的视图,传入参数
  58. if(this.name.toUpperCase().indexOf('YM_VIEW_PARAM') > -1 ||
  59. (this.logic && this.logic.toUpperCase() == 'YM_VIEW_PARAM'))
  60. this.value = 'ym_view_param.set_from(' + from + ')=' + from +
  61. ' AND ym_view_param.set_to(' + to + ')=' + to;
  62. else
  63. this.value = "BETWEEN " + from + " AND " + to;
  64. } else
  65. this.value = null;
  66. },
  67. listeners: {
  68. afterrender: function(){
  69. var from = this.items.items[0].value;
  70. var to = this.items.items[1].value;
  71. this.items.items[1].setMinValue(from);
  72. this.items.items[0].setMaxValue(to);
  73. from = from == null || from == '' ? to == null || to == '' ? '' : to : from;
  74. to = to == null || to == '' ? from == null || from == '' ? '' : from : to;
  75. this.setValueString(from, to);
  76. }
  77. }
  78. });