PayBalancePRDetailGrid.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. Ext.define('erp.view.fa.arp.paybalanceprdetail.PayBalancePRDetailGrid',{
  2. extend:'Ext.grid.Panel',
  3. alias:'widget.paybalanceprdetail',
  4. requires:['erp.view.fa.arp.paybalanceprdetail.PBPDtoolbar'],
  5. layout:'fit',
  6. id:'paybalanceprdetailGrid',
  7. emptyText : $I18N.common.grid.emptyText,
  8. columnLines : true,
  9. autoScroll : true,
  10. detno:'pbpd_detno',
  11. keyField:'pbpd_id',
  12. mainField:'pbpd_pbid',
  13. columns:[],
  14. lastSelectedRecord:[],
  15. multiselected: [],
  16. bodyStyle:'bachgroud-color:#f1f1f1;',
  17. plugins:Ext.create('Ext.grid.plugin.CellEditing',{
  18. clicksToEdit:1
  19. }),
  20. features : [Ext.create('Ext.grid.feature.Grouping',{
  21. //startCollapsed: true,
  22. groupHeaderTpl: '{name} (Count:{rows.length})'
  23. }),{
  24. ftype : 'summary',
  25. showSummaryRow : false,//不显示默认合计行
  26. generateSummaryData: function(){
  27. var me = this,
  28. data = {},
  29. store = me.view.store,
  30. columns = me.view.headerCt.getColumnsForTpl(),
  31. i = 0,
  32. length = columns.length,
  33. //fieldData,
  34. //key,
  35. comp;
  36. //将feature的data打印在toolbar上面
  37. for (i = 0, length = columns.length; i < length; ++i) {
  38. comp = Ext.getCmp(columns[i].id);
  39. data[comp.id] = me.getSummary(store, comp.summaryType, comp.dataIndex, false);
  40. var tb = Ext.getCmp(columns[i].dataIndex + '_' + comp.summaryType);
  41. if(tb){
  42. tb.setText(tb.text.split(':')[0] + ':' + data[comp.id]);
  43. }
  44. }
  45. return data;
  46. }
  47. }],
  48. bbar:{
  49. xtype: 'erpPBPDtoolbar'
  50. },
  51. GridUtil:Ext.create('erp.util.GridUtil'),
  52. BaseUtil:Ext.create('erp.util.BaseUtil'),
  53. setReadOnly: function(bool){
  54. this.readOnly = bool;
  55. },
  56. selModel: Ext.create('Ext.selection.CheckboxModel',{
  57. checkOnly:true,
  58. ignoreRightMouseSelection : false,
  59. getEditor: function(){
  60. return null;
  61. },
  62. onHeaderClick: function(headerCt, header, e) {
  63. if (header.isCheckerHd) {
  64. e.stopEvent();
  65. var isChecked = header.el.hasCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');
  66. if (isChecked) {
  67. this.deselectAll(true);
  68. var grid = Ext.getCmp('paypleasedetailGrid');
  69. this.deselect(grid.multiselected);
  70. grid.multiselected = new Array();
  71. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  72. Ext.each(els, function(el, index){
  73. el.setAttribute('class','x-grid-row-checker');
  74. });
  75. header.el.removeCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  76. } else {
  77. var grid = Ext.getCmp('paypleasedetailGrid');
  78. this.deselect(grid.multiselected);
  79. grid.multiselected = new Array();
  80. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  81. Ext.each(els, function(el, index){
  82. el.setAttribute('class','x-grid-row-checker');
  83. });
  84. this.selectAll(true);
  85. header.el.addCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  86. }
  87. }
  88. }
  89. }),
  90. /**
  91. * 修改为selection改变时,summary也动态改变
  92. */
  93. getMultiSelected: function(){
  94. var grid = this;
  95. var items = grid.selModel.getSelection();
  96. Ext.each(items, function(item, index){
  97. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  98. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  99. grid.multiselected.push(item);
  100. }
  101. });
  102. return Ext.Array.unique(grid.multiselected);
  103. },
  104. initComponent:function(){
  105. this.callParent(arguments);
  106. //得到页面上显示的formCondition属性
  107. var urlCondition = this.BaseUtil.getUrlParam('gridCondition');
  108. console.log(urlCondition);
  109. var condition='';
  110. if(urlCondition){
  111. condition = urlCondition.replace('pbd_pbid','pbpd_pbid');
  112. condition = condition.replace('IS','=');
  113. }
  114. //通过pp_id的值按条件查找PayPleaseDetail 表中的数据 condition为查找PayPleaseDetail的时候拼成的条件
  115. this.getMyData(condition);
  116. },
  117. getMyData:function(condition){
  118. var me = this;
  119. var caller = (me.caller&&me.caller!='')?me.caller:'PBPDGird';
  120. var params = {
  121. caller:caller,
  122. condition:condition
  123. };
  124. if(me.columns && me.columns.length > 2){
  125. me.GridUtil.loadNewStore(me,params);
  126. } else {
  127. me.GridUtil.getGridColumnsAndStore(me,'common/singleGridPanel.action',params);
  128. }
  129. }
  130. });