CheckBoxContainer.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. Ext.define('erp.view.core.form.CheckBoxContainer', {
  2. extend: 'Ext.form.Panel',
  3. alias: 'widget.erpcheckboxcontainer',
  4. layout:'column',
  5. labelAlign:'top',
  6. bodyStyle: {
  7. background: '#f0f0f0',
  8. padding: '10px'
  9. },
  10. //baseCls: 'x-field',//fieldContainer默认为x-component x-container x-container-default
  11. initComponent : function(){
  12. this.callParent(arguments);
  13. var me = this;
  14. var logic=this.logic;
  15. this.title='<div style="color:black;fony-size:14px;">'+this.fieldLabel+'</div>';
  16. var arr=logic.split(";");
  17. var value=this.value;
  18. var checked=false;
  19. for(var i=1;i<arr.length+1;i++){
  20. if(value&&value.split(";")[i-1]==1){
  21. checked=true;
  22. }else checked=false;
  23. me.insert(i, {
  24. xtype: 'checkboxfield',
  25. fieldStyle: null,
  26. fieldLabel :null,
  27. cls : null,
  28. columnWidth:0.25,
  29. labelAlign:'right',
  30. boxLabel:arr[i-1],
  31. checked:checked,
  32. listeners:{
  33. change:function(field,newValue,oldValue){
  34. if(newValue){
  35. field.value=1;
  36. me.setFiledValue();
  37. }else field.value=-1;
  38. }
  39. }
  40. });
  41. }
  42. me.insert(0,{
  43. xtype:'hidden',
  44. name:this.name,
  45. id:this.name+"_checks",
  46. value:this.value
  47. });
  48. },
  49. listeners: {
  50. afterrender: function(){//去掉fieldContainer默认的高度和滚动样式
  51. this.getEl().dom.childNodes[1].style.height = 22;
  52. this.getEl().dom.childNodes[1].style.overflow = 'hidden';
  53. }
  54. },
  55. isValid: function(){
  56. return this.items.items[0].isValid();
  57. },
  58. setValue: function(value){
  59. this.value=value;
  60. },
  61. isDirty:function(){
  62. return true;
  63. },
  64. setFiledValue:function(field){
  65. var value="";
  66. var items=this.items.items;
  67. for(var i=1;i<items.length;i++){
  68. if(items[i].value){
  69. value+="1;";
  70. }else {
  71. value+="-1;";
  72. }
  73. }
  74. value=value.substring(0,value.length-1);
  75. this.items.items[0].setValue(value);
  76. },
  77. getValue: function(){
  78. return this.value;
  79. },
  80. setReadOnly: function(bool){
  81. this.items.items[0].setReadOnly(bool);
  82. },
  83. setFieldStyle: function(style){
  84. this.items.items[0].setFieldStyle(style);
  85. }
  86. });