Grouping.js 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. Ext.define('saas.override.grid.feature.Grouping', {
  2. override: 'Ext.grid.feature.Grouping',
  3. setup: function(rows, rowValues) {
  4. var me = this,
  5. data = me.refreshData,
  6. view = rowValues.view,
  7. // Need to check if groups have been added since init(), such as in the case of stateful grids.
  8. isGrouping = view.isGrouping = !me.disabled && me.getGridStore().isGrouped(),
  9. bufferedRenderer = view.bufferedRenderer;
  10. me.skippedRows = 0;
  11. if (bufferedRenderer) {
  12. bufferedRenderer.variableRowHeight = view.hasVariableRowHeight() || isGrouping;
  13. }
  14. data.groupField = me.getGroupField();
  15. data.header = me.getGroupedHeader(data.groupField);
  16. data.doGrouping = isGrouping;
  17. //权限界面的BUG 修改groupHeaderTpl属性会导致报错 暂时修改源码属性 hey
  18. if(me.grid.xtype=='power-grid'){
  19. me.groupHeaderTpl = Ext.create('Ext.XTemplate',
  20. '<div>{rows:this.formatName}</div>',
  21. {
  22. formatName: function(name) {
  23. return name[0].data.moduleName+'模块';
  24. }
  25. }
  26. )
  27. }
  28. rowValues.groupHeaderTpl = Ext.XTemplate.getTpl(me, 'groupHeaderTpl');
  29. if (isGrouping && me.showSummaryRow) {
  30. data.summaryData = me.generateSummaryData();
  31. }
  32. },
  33. getMetaGroup: function(group) {
  34. var me = this,
  35. id = me.getId == null ? me.id : me.getId(),
  36. key, metaGroup, Model, modelData, groupPlaceholder, aggregateRecord, groupingContext;
  37. // Get the group from a member record or the group name
  38. if (group.isModel || typeof group === 'string') {
  39. group = me.getGroup(group);
  40. }
  41. if (group) {
  42. key = group.getGroupKey();
  43. groupingContext = group.$groupingContext || (group.$groupingContext = {});
  44. metaGroup = groupingContext[id];
  45. if (!metaGroup) {
  46. Model = me.getGridStore().getModel();
  47. // Add a placeholder record which represents the group if collapsed.
  48. modelData = {};
  49. modelData[me.getGroupField()] = key;
  50. // Create the two records a group needs to produce a UI.
  51. // One to represent a collapsed group.
  52. // And one to append to the end of an expanded group.
  53. groupPlaceholder = new Model(modelData);
  54. groupPlaceholder.isNonData = groupPlaceholder.isCollapsedPlaceholder = true;
  55. groupPlaceholder.groupKey = key;
  56. aggregateRecord = new Ext.data.Model(modelData);
  57. aggregateRecord.isNonData = aggregateRecord.isSummary = true;
  58. aggregateRecord.groupKey = key;
  59. metaGroup = groupingContext[id] = {
  60. placeholder: groupPlaceholder,
  61. isCollapsed: false,
  62. lastGroup: null,
  63. lastGroupGeneration: null,
  64. lastFilterGeneration: null,
  65. aggregateRecord: aggregateRecord
  66. };
  67. }
  68. }
  69. return metaGroup;
  70. }
  71. });