FtNumberField.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /**
  2. * From-To numberfield
  3. * @author yingp
  4. */
  5. Ext.define('erp.view.core.form.FtNumberField', {
  6. extend: 'Ext.form.FieldContainer',
  7. alias: 'widget.erpFtNumberField',
  8. layout: 'column',
  9. value: "",
  10. height: 22,
  11. items: [],
  12. initComponent : function(){
  13. this.callParent(arguments);
  14. var me = this;
  15. me.insert(0, {
  16. xtype: 'numberfield',
  17. columnWidth: 0.5,
  18. fieldStyle: me.fieldStyle,
  19. listeners: {
  20. change: function(f){
  21. var from = f.value;
  22. var to = me.items.items[1].value;
  23. from = from == null || from == '' ? to == null || to == '' ? '' : to : from;
  24. to = to == null || to == '' ? from == null || from == '' ? '' : from : to;
  25. if(from == ''){
  26. me.value = '';
  27. } else {
  28. me.value = "BETWEEN " + from + " AND " + to;
  29. }
  30. }
  31. }
  32. });
  33. me.insert(1, {
  34. xtype: 'numberfield',
  35. columnWidth: 0.5,
  36. fieldStyle: me.fieldStyle,
  37. listeners: {
  38. change: function(f){
  39. var from = me.items.items[0].value;
  40. var to = f.value;
  41. from = from == null || from == '' ? to == null || to == '' ? '' : to : from;
  42. to = to == null || to == '' ? from == null || from == '' ? '' : from : to;
  43. if(from == ''){
  44. me.value = '';
  45. } else {
  46. me.value = "BETWEEN " + from + " AND " + to;
  47. }
  48. }
  49. }
  50. });
  51. },
  52. listeners: {
  53. afterrender: function(){
  54. var tb = this.getEl().dom;
  55. if(tb.nodeName == 'TABLE') {
  56. return;
  57. }
  58. tb.childNodes[1].style.height = 22;
  59. tb.childNodes[1].style.overflow = 'hidden';
  60. }
  61. },
  62. reset: function(){
  63. this.items.items[0].reset();
  64. this.items.items[1].reset();
  65. },
  66. getValue: function(){
  67. if(this.value != null && this.value != ''){
  68. if(this.items.items[0].value == null || this.items.items[0].value == ''){
  69. return this.items.items[1].value + '~' + this.items.items[1].value;
  70. } else if(this.items.items[1].value == null || this.items.items[1].value == ''){
  71. return this.items.items[0].value + '~' + this.items.items[0].value;
  72. } else {
  73. return this.items.items[0].value + '~' + this.items.items[1].value;
  74. }
  75. } else {
  76. return '';
  77. }
  78. },
  79. isValid: function(){
  80. return true;
  81. },
  82. setValue: function(value){
  83. if(value != null && value != '' && contains(value, '~', true)){
  84. this.items.items[0].setValue(value.split('~')[0]);
  85. this.items.items[1].setValue(value.split('~')[1]);
  86. }
  87. }
  88. });