OtherField.js 1.8 KB

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