/** * Created by zhouy on 2018/11/8. */ Ext.define('saas.view.sys.power.GroupGrid', { extend: 'Ext.grid.Panel', requires: [ // 'Ext.selection.CellModel', 'saas.view.sys.power.OtherField' ], xtype: 'power-grid', plugins: { cellediting: { clicksToEdit: 1 } }, store:Ext.create('Ext.data.Store',{ fields:[ {name: 'query',type:'bool'}, {name: 'add', type: 'bool'}, {name: 'save', type: 'bool'}, {name: 'delete', type: 'bool'}, {name: 'audit', type: 'bool'}, {name: 'resAudit', type: 'bool'}, {name: 'import', type: 'bool'}, {name: 'export', type: 'bool'}, {name: 'others', calculate: function(data) { var others = data['others']; return others; }} ], data: [{"query":true,"add":false,"delete":false,"audit":true,"resAudit":true,"import":true,"export":true},{"query":true,"add":false,"delete":false,"audit":true,"resAudit":true,"import":true,"export":true,"others":[{'resouceId':1,'text':'权限1','value':'true'}]}, {"query":true,"add":false,"delete":false,"audit":true,"resAudit":true,"import":true,"export":true,"others":[{'resouceId':100,'text':'权限2','value':true},{'resouceId':101,'text':'权限2.1','value':true}]}, {"query":true,"add":false,"delete":false,"audit":true,"resAudit":true,"import":true,"export":true,"others":[{'resouceId':1000,text:'权限3','value':true},{'resouceId':1001,'text':'权限3.1','value':true},{'resouceId':1002,'text':'权限1','value':true},{'resouceId':100,'text':'权限3.2','value':true}]}] }), selModel:Ext.create('Ext.selection.CheckboxModel', { checkOnly: true, listeners: { 'select': function (selModel, record) { selModel.view.ownerCt.selectAllPower(record); }, 'deselect': function (selModel, record) { selModel.view.ownerCt.deselectAllPower(record); } } }), height: 350, viewConfig: { stripeRows: false, enableTextSelection: false, markDirty: false }, trackMouseOver: false, //disableSelection: true, columns: [{ header: '查询', dataIndex: 'query', xtype: 'checkcolumn', headerCheckbox: true, width: 90, stopSelection: false }, { header: '新增', dataIndex: 'add', xtype: 'checkcolumn', headerCheckbox: true, width: 90, stopSelection: false }, { header: '修改', dataIndex: 'save', xtype: 'checkcolumn', headerCheckbox: true, width: 90, stopSelection: false }, { header: '删除', dataIndex: 'delete', xtype: 'checkcolumn', headerCheckbox: true, width: 90, stopSelection: false }, { header: '审核', dataIndex: 'audit', xtype: 'checkcolumn', headerCheckbox: true, width: 90, stopSelection: false }, { header: '反审核', dataIndex: 'resAudit', xtype: 'checkcolumn', headerCheckbox: true, width: 90, stopSelection: false }, { header: '导入', dataIndex: 'import', xtype: 'checkcolumn', headerCheckbox: true, width: 90, stopSelection: false }, { header: '导出', dataIndex: 'export', xtype: 'checkcolumn', headerCheckbox: true, width: 90, stopSelection: false }, { text: '其它', width: 160, dataIndex:'others', xtype: 'widgetcolumn', producesHTML: false, widget: { xtype: 'powerotherfield', bind:'{record.others}' } }], // Dispatch named listener and handler methods to this instance defaultListenerScope: true, listeners: { columnshow: 'onColumnToggle', columnhide: 'onColumnToggle' }, selectAllPower: function(record){ var me = this;data={"query":true,"add":true,"save":true,"delete":true,"audit":true,"resAudit":true,"import":true,"export":true}; me.setAllOthers(record,true,data); }, deselectAllPower:function(record){ var me = this;data={"query":false,"add":false,"save":false,"delete":false,"audit":false,"resAudit":false,"import":false,"export":false}; me.setAllOthers(record,false,data); }, setAllOthers:function(record,bool,data){ var others=record.get('others'); Ext.Array.each(others,function(o){ o.value=bool; }) data.others = others record.set(data); } }, function(WidgetGrid) { /*var prototype = WidgetGrid.prototype, columns = prototype.columns, len = columns.length, i, tbar = prototype.tbar = []; // Create tbar on the prototype with a button for each column for (i = 0; i < len; i++) { tbar.push({ text: columns[i].text, enableToggle: true, pressed: true, toggleHandler: 'onButtonToggle' }); }*/ });