/** * Created by zhouy on 2018/11/8. */ Ext.define('saas.view.sys.power.OtherField', { extend: 'Ext.form.FieldContainer', //extend: 'Ext.form.field.Text', alias: 'widget.powerotherfield', layout: 'column', defaults:{ xtype:'checkbox', columnWidth:1 }, initComponent:function(){ var me=this; me.callParent(arguments); }, setHtml:function(v){ this.setItems(v); }, setItems:function(v){ if(v){ var len = v.length,items=[]; if(this.items.length>0)this.removeAll(true); for (i = 0; i < len; i++) { items.push({ boxLabel:v[i].name, checked:v[i].checked, groupId:v[i].groupId, listeners:{ change:function(f,v){ var id = f.groupId; var boxLabel = f.boxLabel; var viewModel = f.ownerCt.ownerCmp.ownerCt.ownerCt.getViewModel(); var records = viewModel.data.powergrid.getData().items; for (i = 0; i < records.length; i++) { if(records[i].get('groupId')==id){ var other = records[i].get('other'); Ext.Array.each(other,function(o){ if(boxLabel==o.name){ o.checked = v } }); records[i].dirty = true } } } } }); } this.add(items); } } });