/**
* Created by zhouy on 2018/11/8.
*/
Ext.define('saas.view.sys.power.GroupGrid', {
extend: 'Ext.grid.Panel',
xtype: 'power-grid',
bind:{
store: '{powergrid}'
},
tbar:['->',{
xtype:'button',
text:'保存',
name:'savepower',
margin:'0 10 0 2',
style:'background:#fff;border-color:#34baf6'
}],
features : [Ext.create('Ext.grid.feature.Grouping',{
collapsible:false,
showSummaryRow: false,
groupHeaderTpl: Ext.create('Ext.XTemplate',
'
{rows:this.formatName}
',
{
formatName: function(name) {
return name[0].data.moduleName+'模块';
}
}
)
})],
dataUrl:'/api/account/role/power/resource',
selModel: {
showHeaderCheckbox:false,
checkOnly:true,
type:'checkboxmodel',
listeners:{
select:function(selModel,record,c,d){
selModel.view.ownerCt.selectAllPower(record);
},
deselect:function(selModel,record){
selModel.view.ownerCt.deselectAllPower(record);
}
}
},
viewConfig: {
stripeRows: false,
enableTextSelection: false,
markDirty: false
},
trackMouseOver: false,
columns: {
defaults:{
onTitleElClick:function(a,b,c,d){
var me = this;
var dataIndex = this.dataIndex;
var records = me.ownerCt.ownerCt.store.data.items;
var isAllCheck = true;
Ext.Array.each(records,function(rec){
var data = rec.get(dataIndex);
if(data!=null&&(typeof data)=='boolean'){
if(!data){
isAllCheck = false
}
}
});
Ext.Array.each(records,function(rec){
var data = rec.get(dataIndex);
if(data!=null&&(typeof data)=='boolean'){
if(data!=!isAllCheck){
rec.set(dataIndex,!isAllCheck)
}
}
});
me.setHeaderStatus(!isAllCheck);
},
doUpdateHeaderState: function(e) {
return true;
}
},
items:[{
header: '单据名称',
dataIndex: 'groupName',
xtype: '',
flex: 2.7,
stopSelection: false,
menuDisabled:true,
},{
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.5,
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,
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: 'moduleId',type:'int'},
{name: 'groupName',type:'string'},
{name: 'moduleName',type:'string'},
{name: 'add'},
{name: 'delete'},
{name: 'update'},
{name: 'audit'},
{name: 'unAudit'},
{name: 'fileExport'},
{name: 'fileImport'},
{name: 'print'},
{name: 'other', calculate: function(data) {
var groupId = data['groupId'];
var other = data['other'];
Ext.Array.each(other,function(o){
o.groupId=groupId;
})
return other;
}}
],
groupField:'moduleId',
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);
},
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 = record.get('add')==null?null:bool;
data.query = record.get('query')==null?null:bool;
data.delete = record.get('delete')==null?null:bool;
data.audit = record.get('audit')==null?null:bool;
data.update = record.get('update')==null?null:bool;
data.unAudit= record.get('unAudit')==null?null:bool;
data.fileExport= record.get('fileExport')==null?null:bool;
data.fileImport= record.get('fileImport')==null?null:bool;
data.print= record.get('print')==null?null: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);
}
});