ProjectDetGrid.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. Ext.define('erp.view.scm.qc.ProjectDetGrid',{
  2. extend:'Ext.grid.Panel',
  3. alias:'widget.projectdet',
  4. requires: ['erp.view.core.toolbar.Toolbar'],
  5. layout:'fit',
  6. id:'projectdetGrid',
  7. emptyText : $I18N.common.grid.emptyText,
  8. columnLines : true,
  9. autoScroll : true,
  10. detno:'vd_detno',
  11. keyField:'vd_id',
  12. mainField:'vd_veid',
  13. columns:[],
  14. multiselected: [],
  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. groupHeaderTpl: '{name} (Count:{rows.length})'
  21. }),{
  22. ftype : 'summary',
  23. showSummaryRow : false,//不显示默认合计行
  24. generateSummaryData: function(){
  25. var me = this,
  26. data = {},
  27. store = me.view.store,
  28. columns = me.view.headerCt.getColumnsForTpl(),
  29. i = 0,
  30. length = columns.length,
  31. comp;
  32. //将feature的data打印在toolbar上面
  33. for (i = 0, length = columns.length; i < length; ++i) {
  34. comp = Ext.getCmp(columns[i].id);
  35. data[comp.id] = me.getSummary(store, comp.summaryType, comp.dataIndex, false);
  36. var tb = Ext.getCmp(columns[i].dataIndex + '_' + comp.summaryType);
  37. if(tb){
  38. var val = data[comp.id];
  39. if(columns[i].xtype == 'numbercolumn' || /^numbercolumn-\d*$/.test(columns[i].columnId)) {
  40. val = Ext.util.Format.number(val, (columns[i].format || '0,000.000'));
  41. }
  42. tb.setText(tb.text.split(':')[0] + ':' + val);
  43. }
  44. }
  45. return data;
  46. }
  47. }],
  48. bbar: {xtype: 'erpToolbar',id: 'projectdettool'},
  49. GridUtil:Ext.create('erp.util.GridUtil'),
  50. BaseUtil:Ext.create('erp.util.BaseUtil'),
  51. setReadOnly: function(bool){
  52. this.readOnly = bool;
  53. },
  54. /**
  55. * 修改为selection改变时,summary也动态改变
  56. */
  57. getMultiSelected: function(){
  58. var grid = this;
  59. var items = grid.selModel.getSelection();
  60. Ext.each(items, function(item, index){
  61. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  62. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  63. grid.multiselected.push(item);
  64. }
  65. });
  66. return Ext.Array.unique(grid.multiselected);
  67. },
  68. initComponent:function(){
  69. this.callParent(arguments);
  70. //得到页面上显示的formCondition属性
  71. var urlCondition = this.BaseUtil.getUrlParam('gridCondition');
  72. var condition='';
  73. if(urlCondition){
  74. condition = urlCondition.replace('ved_veid','vd_veid');
  75. condition = condition.replace('IS','=');
  76. }
  77. this.getMyData(condition);
  78. },
  79. getMyData:function(condition){
  80. var me = this;
  81. var caller = (me.caller&&me.caller!='')?me.caller:'ProjectDet';
  82. var params = {
  83. caller:caller,
  84. condition:condition
  85. };
  86. if(me.columns && me.columns.length > 2){
  87. me.GridUtil.loadNewStore(me,params);
  88. } else {
  89. me.GridUtil.getGridColumnsAndStore(me,'common/singleGridPanel.action',params);
  90. }
  91. }
  92. });