Ext.define('saas.override.grid.feature.Grouping', {
override: 'Ext.grid.feature.Grouping',
setup: function(rows, rowValues) {
var me = this,
data = me.refreshData,
view = rowValues.view,
// Need to check if groups have been added since init(), such as in the case of stateful grids.
isGrouping = view.isGrouping = !me.disabled && me.getGridStore().isGrouped(),
bufferedRenderer = view.bufferedRenderer;
me.skippedRows = 0;
if (bufferedRenderer) {
bufferedRenderer.variableRowHeight = view.hasVariableRowHeight() || isGrouping;
}
data.groupField = me.getGroupField();
data.header = me.getGroupedHeader(data.groupField);
data.doGrouping = isGrouping;
//权限界面的BUG 修改groupHeaderTpl属性会导致报错 暂时修改源码属性 hey
if(me.grid.xtype=='power-grid'){
me.groupHeaderTpl = Ext.create('Ext.XTemplate',
'
{rows:this.formatName}
',
{
formatName: function(name) {
return name[0].data.moduleName+'模块';
}
}
)
}
rowValues.groupHeaderTpl = Ext.XTemplate.getTpl(me, 'groupHeaderTpl');
if (isGrouping && me.showSummaryRow) {
data.summaryData = me.generateSummaryData();
}
},
getMetaGroup: function(group) {
var me = this,
id = me.getId == null ? me.id : me.getId(),
key, metaGroup, Model, modelData, groupPlaceholder, aggregateRecord, groupingContext;
// Get the group from a member record or the group name
if (group.isModel || typeof group === 'string') {
group = me.getGroup(group);
}
if (group) {
key = group.getGroupKey();
groupingContext = group.$groupingContext || (group.$groupingContext = {});
metaGroup = groupingContext[id];
if (!metaGroup) {
Model = me.getGridStore().getModel();
// Add a placeholder record which represents the group if collapsed.
modelData = {};
modelData[me.getGroupField()] = key;
// Create the two records a group needs to produce a UI.
// One to represent a collapsed group.
// And one to append to the end of an expanded group.
groupPlaceholder = new Model(modelData);
groupPlaceholder.isNonData = groupPlaceholder.isCollapsedPlaceholder = true;
groupPlaceholder.groupKey = key;
aggregateRecord = new Ext.data.Model(modelData);
aggregateRecord.isNonData = aggregateRecord.isSummary = true;
aggregateRecord.groupKey = key;
metaGroup = groupingContext[id] = {
placeholder: groupPlaceholder,
isCollapsed: false,
lastGroup: null,
lastGroupGeneration: null,
lastFilterGeneration: null,
aggregateRecord: aggregateRecord
};
}
}
return metaGroup;
}
});