MultiField.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. Ext.define('erp.view.ma.jprocess.MultiField', {
  2. extend: 'Ext.form.FieldContainer',
  3. alias: 'widget.multifield',
  4. layout: 'column',
  5. baseCls: 'x-field',//fieldContainer默认为x-component x-container x-container-default
  6. cls: 'x-form-field-multi',
  7. height: 23,
  8. fieldConfig: null,
  9. initComponent : function(){
  10. this.callParent(arguments);
  11. var me = this;
  12. var cw = me.columnWidth > 0.3 ? 0.3 : 0.45;
  13. me.insert(0, {
  14. xtype: 'dbfindtrigger',
  15. name: me.name,
  16. columnWidth: cw,
  17. fieldStyle: me.fieldStyle,
  18. allowBlank: me.allowBlank,
  19. value: me.value,
  20. groupName:me.groupName,
  21. fieldConfig: me.fieldConfig,
  22. editable: false,
  23. autoDbfind:false,
  24. listeners: {
  25. change: function(f){
  26. me.value = f.value;
  27. if(Ext.isEmpty(f.value)) {
  28. me.secondField.setValue('');
  29. }
  30. },
  31. aftertrigger : function(t, r) {
  32. t.setValue(r.get('em_code'));
  33. me.secondField.setValue(r.get('em_name'));
  34. }
  35. }
  36. });
  37. me.insert(1, {
  38. xtype: 'textfield',
  39. name: me.secondname,
  40. groupName:me.groupName,
  41. columnWidth: 1 - cw,
  42. readOnly: true,
  43. fieldStyle: 'background:#f1f1f1;',
  44. value: me.secondvalue
  45. });
  46. me.firstField = me.items.items[0];
  47. me.secondField = me.items.items[1];
  48. },
  49. listeners: {
  50. afterrender: function(){//去掉fieldContainer默认的高度和滚动样式
  51. this.getEl().dom.childNodes[1].style.overflow = 'hidden';
  52. }
  53. },
  54. isValid: function(){
  55. return this.firstField.isValid();
  56. },
  57. setValue: function(value){
  58. this.firstField.setValue(value);
  59. },
  60. getValue: function(){
  61. return this.value;
  62. },
  63. setReadOnly: function(bool){
  64. this.firstField.setReadOnly(bool);
  65. },
  66. setFieldStyle: function(style){
  67. this.firstField.setFieldStyle(style);
  68. }
  69. });