OtherField.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * Created by zhouy on 2018/11/8.
  3. */
  4. Ext.define('saas.view.sys.power.OtherField', {
  5. extend: 'Ext.form.FieldContainer',
  6. //extend: 'Ext.form.field.Text',
  7. alias: 'widget.powerotherfield',
  8. layout: 'column',
  9. defaults:{
  10. xtype:'checkbox',
  11. columnWidth:1
  12. },
  13. initComponent:function(){
  14. var me=this;
  15. me.callParent(arguments);
  16. },
  17. setHtml:function(v){
  18. this.setItems(v);
  19. },
  20. setItems:function(v){
  21. if(v){
  22. var len = v.length,items=[];
  23. if(this.items.length>0)this.removeAll(true);
  24. for (i = 0; i < len; i++) {
  25. items.push({
  26. boxLabel:v[i].name,
  27. checked:v[i].checked,
  28. groupId:v[i].groupId,
  29. listeners:{
  30. change:function(f,v){
  31. var id = f.groupId;
  32. var boxLabel = f.boxLabel;
  33. var viewModel = f.ownerCt.ownerCmp.ownerCt.ownerCt.getViewModel();
  34. var records = viewModel.data.powergrid.getData().items;
  35. for (i = 0; i < records.length; i++) {
  36. if(records[i].get('groupId')==id){
  37. var other = records[i].get('other');
  38. Ext.Array.each(other,function(o){
  39. if(boxLabel==o.name){
  40. o.checked = v
  41. }
  42. });
  43. records[i].dirty = true
  44. }
  45. }
  46. }
  47. }
  48. });
  49. }
  50. this.add(items);
  51. }
  52. }
  53. });