/** * Created by zhouy on 2018/11/8. */ Ext.define('saas.view.sys.power.GroupGrid', { extend: 'Ext.grid.Panel', requires: [ 'saas.view.sys.power.OtherField' ], xtype: 'power-grid', plugins: { cellediting: { clicksToEdit: 1 } }, bind:{ store: '{powergrid}' }, features : [Ext.create('Ext.grid.feature.Grouping',{ showSummaryRow: true, startCollapsed: false, groupHeaderTpl: '{name}'+'模块' })], initId:0, dataUrl:'http://192.168.253.31:8560/api/account/role/power/resource', 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); } } }), viewConfig: { stripeRows: false, enableTextSelection: false, markDirty: false }, trackMouseOver: false, columns: [{ header: '单据名称', dataIndex: 'groupName', xtype: '', flex: 1.5, stopSelection: false },{ header: '查询', dataIndex: 'query', xtype: 'checkcolumn', headerCheckbox: true, menuDisabled:true, flex: 1, stopSelection: false }, { header: '保存', dataIndex: 'add', xtype: 'checkcolumn', headerCheckbox: true, menuDisabled:true, flex: 1, stopSelection: false }, { header: '修改', dataIndex: 'update', xtype: 'checkcolumn', headerCheckbox: true, menuDisabled:true, flex: 1, stopSelection: false }, { header: '删除', dataIndex: 'delete', xtype: 'checkcolumn', headerCheckbox: true, menuDisabled:true, flex: 1, stopSelection: false }, { header: '审核', dataIndex: 'audit', xtype: 'checkcolumn', headerCheckbox: true, menuDisabled:true, flex: 1, stopSelection: false }, { header: '反审核', dataIndex: 'unAudit', xtype: 'checkcolumn', headerCheckbox: true, menuDisabled:true, flex: 1, stopSelection: false }, { header: '导入', dataIndex: 'fileImport', xtype: 'checkcolumn', headerCheckbox: true, menuDisabled:true, flex: 1, stopSelection: false }, { header: '导出', dataIndex: 'fileExport', xtype: 'checkcolumn', headerCheckbox: true, menuDisabled:true, flex: 1, stopSelection: false }, { header: '打印', dataIndex: 'print', xtype: 'checkcolumn', headerCheckbox: true, menuDisabled:true, flex: 1, stopSelection: false },{ text: '其它', flex: 2.7, dataIndex:'other', xtype: 'widgetcolumn', menuDisabled:true, producesHTML: false, widget: { xtype: 'powerotherfield', bind:'{record.other}' } }], initComponent: function () { var me = this; var formModel = me.$initParent.getViewModel(); me.store = Ext.create('Ext.data.Store',{ fields:[ {name: 'groupId',type:'int'}, {name: 'groupName',type:'string'}, {name: 'moduleName',type:'string'}, {name: 'query',type:'bool'}, {name: 'add', type: 'bool'}, {name: 'delete', type: 'bool'}, {name: 'audit', type: 'bool'}, {name: 'update', type: 'bool'}, {name: 'unAudit', type: 'bool'}, {name: 'fileExport', type: 'bool'}, {name: 'fileImport', type: 'bool'}, {name: 'print', type: 'bool'}, {name: 'other', calculate: function(data) { var other = data['other']; return other; }} ], groupField:'moduleName', proxy: { timeout:8000, type: 'ajax', url: me.dataUrl, actionMethods: { read: 'GET' }, reader: { type: 'json', rootProperty: 'data', } }, listeners:{ beforeload: function (store, op) { var id = me.initId; Ext.apply(store.proxy.extraParams, { id:id }); } } // 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}]}] }), formModel.set('powergrid', me.store); me.callParent(arguments); }, defaultListenerScope: true, listeners: { columnshow: 'onColumnToggle', columnhide: 'onColumnToggle' }, selectAllPower: function(record){ var me = this; me.setAllOthers(record,true); }, deselectAllPower:function(record){ var me = this; me.setAllOthers(record,false); }, setAllOthers:function(record,bool){ var data = {}; data.add = bool; data.query = bool; data.delete = bool; data.audit = bool; data.update = bool; data.unAudit= bool; data.fileExport= bool; data.fileImport= bool; data.print= bool; var other=record.get('other'); Ext.Array.each(other,function(o){ o.checked=bool; }) data.other = other; data.id = record.get('id'); data.groupId = record.get('groupId'); data.groupName = record.get('groupName'); data.moduleName = record.get('moduleName'); record.set(data); } });