ScopeField.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. Ext.define('erp.view.core.form.ScopeField', {
  2. extend: 'Ext.form.FieldContainer',
  3. alias: 'widget.erpFtNumberField',
  4. layout: 'column',
  5. value: "",
  6. items: [],
  7. initComponent : function(){
  8. this.callParent(arguments);
  9. var me = this;
  10. me.insert(0, {
  11. xtype: 'numberfield',
  12. maxValue:99,
  13. minValue:0,
  14. id: me.name + '_from',
  15. name: me.name + '_from',
  16. columnWidth: 0.5,
  17. fieldStyle: me.fieldStyle,
  18. listeners: {
  19. blur: function(f){
  20. if(f.value<0||f.value>100){
  21. f.reset();
  22. }
  23. var to = me.items.items[1].value;
  24. if(to&&to!=''&&f.value>to){
  25. f.reset();
  26. showError('起始值不能大于结束值');
  27. return;
  28. }
  29. }
  30. }
  31. });
  32. me.insert(1, {
  33. xtype: 'numberfield',
  34. columnWidth: 0.5,
  35. maxValue:100,
  36. minValue:0,
  37. id: me.name + '_to',
  38. name: me.name + '_to',
  39. fieldStyle: me.fieldStyle,
  40. listeners: {
  41. blur: function(f){
  42. var from = me.items.items[0].value;
  43. var to = f.value;
  44. if(f.value<0||f.value>100){
  45. f.reset();
  46. }
  47. if(from&&from>to){
  48. f.reset();
  49. showError('结束值不能小于起始值');
  50. return;
  51. }
  52. }
  53. }
  54. });
  55. },
  56. listeners: {
  57. afterrender: function(){
  58. this.getEl().dom.childNodes[1].style.height = 22;
  59. this.getEl().dom.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. });