ProjectCostBudgetGrid.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. Ext.define('erp.view.plm.project.ProjectCostBudgetGrid',{
  2. extend:'Ext.grid.Panel',
  3. alias:'widget.projectcostbudget',
  4. requires:['erp.view.plm.project.PBPDtoolbar'],
  5. layout:'fit',
  6. id:'projectCostBudgetGrid',
  7. emptyText : $I18N.common.grid.emptyText,
  8. columnLines : true,
  9. autoScroll : true,
  10. caller:'ProjectCostBudget',
  11. detno:'pcb_detno',
  12. keyField:'pcb_id',
  13. mainField:'pcb_prid',
  14. columns:[],
  15. bodyStyle:'bachgroud-color:#f1f1f1;',
  16. plugins:Ext.create('Ext.grid.plugin.CellEditing',{
  17. clicksToEdit:1
  18. }),
  19. features : [Ext.create('Ext.grid.feature.Grouping',{
  20. //startCollapsed: true,
  21. groupHeaderTpl: '{name} (Count:{rows.length})'
  22. }),{
  23. ftype : 'summary',
  24. showSummaryRow : false,//不显示默认合计行
  25. generateSummaryData: function(){
  26. var me = this,
  27. data = {},
  28. store = me.view.store,
  29. columns = me.view.headerCt.getColumnsForTpl(),
  30. i = 0,
  31. length = columns.length,
  32. //fieldData,
  33. //key,
  34. comp;
  35. //将feature的data打印在toolbar上面
  36. for (i = 0, length = columns.length; i < length; ++i) {
  37. comp = Ext.getCmp(columns[i].id);
  38. data[comp.id] = me.getSummary(store, comp.summaryType, comp.dataIndex, false);
  39. var tb = Ext.getCmp(columns[i].dataIndex + '_' + comp.summaryType);
  40. if(tb){
  41. tb.setText(tb.text.split(':')[0] + ':' + data[comp.id]);
  42. }
  43. }
  44. return data;
  45. }
  46. }],
  47. bbar:{
  48. xtype: 'erpPBPDtoolbar'
  49. },
  50. GridUtil:Ext.create('erp.util.GridUtil'),
  51. BaseUtil:Ext.create('erp.util.BaseUtil'),
  52. setReadOnly: function(bool){
  53. this.readOnly = bool;
  54. },
  55. /**
  56. * 修改为selection改变时,summary也动态改变
  57. */
  58. getMultiSelected: function(){
  59. var grid = this;
  60. var items = grid.selModel.getSelection();
  61. Ext.each(items, function(item, index){
  62. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  63. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  64. grid.multiselected.push(item);
  65. }
  66. });
  67. return Ext.Array.unique(grid.multiselected);
  68. },
  69. initComponent:function(){
  70. this.callParent(arguments);
  71. //得到页面上显示的formCondition属性
  72. var urlCondition = this.BaseUtil.getUrlParam('gridCondition');
  73. console.log(urlCondition);
  74. var condition='';
  75. if(urlCondition){
  76. condition = urlCondition.replace('pp_prid','pcb_prid');
  77. condition = condition.replace('IS','=');
  78. }
  79. //通过pp_id的值按条件查找PayPleaseDetail 表中的数据 condition为查找PayPleaseDetail的时候拼成的条件
  80. this.getMyData(condition);
  81. },
  82. getMyData:function(condition){
  83. var me = this;
  84. var caller = (me.caller&&me.caller!='')?me.caller:'ProjectCostBudget';
  85. var params = {
  86. caller:caller,
  87. condition:condition
  88. };
  89. if(me.columns && me.columns.length > 2){
  90. me.GridUtil.loadNewStore(me,params);
  91. } else {
  92. me.GridUtil.getGridColumnsAndStore(me,'common/singleGridPanel.action',params);
  93. }
  94. }
  95. });