OtherField.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 f = this;
  20. var len = v.length,items=[];
  21. if(f.items.length>0)f.removeAll(true);
  22. for (i = 0; i < len; i++) {
  23. items.push({
  24. boxLabel:v[i].name,
  25. checked:v[i].checked,
  26. groupId:v[i].groupId,
  27. listeners:{
  28. change:function(f,v){
  29. var id = f.groupId;
  30. var boxLabel = f.boxLabel;
  31. var viewModel = f.ownerCt.ownerCmp.ownerCt.ownerCt.getViewModel();
  32. var records = viewModel.data.powergrid.getData().items;
  33. for (i = 0; i < records.length; i++) {
  34. if(records[i].get('groupId')==id){
  35. var other = records[i].get('other');
  36. Ext.Array.each(other,function(o){
  37. if(boxLabel==o.name){
  38. o.checked = v
  39. }
  40. });
  41. records[i].dirty = true
  42. }
  43. }
  44. }
  45. }
  46. });
  47. }
  48. f.add(items);
  49. }
  50. }
  51. });