RepaymentDetailGrid.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. Ext.define('erp.view.fa.fp.RepaymentDetailGrid',{
  2. extend:'Ext.grid.Panel',
  3. alias:'widget.RepaymentdetailGrid',
  4. requires:['erp.view.fa.fp.PPDtoolbar'],
  5. layout:'fit',
  6. id:'RepaymentdetailGrid',
  7. emptyText : $I18N.common.grid.emptyText,
  8. columnLines : true,
  9. autoScroll : true,
  10. detno:'ppdd_detno',
  11. keyField:'ppdd_id',
  12. mainField:'ppdd_ppdid',
  13. columns:[],
  14. multiselected: [],
  15. bodyStyle:'bachgroud-color:#f1f1f1;',
  16. plugins:Ext.create('Ext.grid.plugin.CellEditing',{
  17. clicksToEdit:1
  18. }),
  19. bbar:{
  20. xtype: 'erpPPDToolbar'
  21. },
  22. GridUtil:Ext.create('erp.util.GridUtil'),
  23. BaseUtil:Ext.create('erp.util.BaseUtil'),
  24. selModel: Ext.create('Ext.selection.CheckboxModel',{
  25. // checkOnly:true,
  26. ignoreRightMouseSelection : false,
  27. getEditor: function(){
  28. return null;
  29. },
  30. onRowMouseDown: function(view, record, item, index, e) {//改写的onRowMouseDown方法
  31. var status = Ext.getCmp('cm_statuscode');
  32. var me = Ext.getCmp('RepaymentdetailGrid');
  33. if(status&&status.value=='AUDITED'){
  34. var bool = true;
  35. var items = me.selModel.getSelection();
  36. Ext.each(items, function(item, index){
  37. if(this.index == record.index){
  38. bool = false;
  39. me.selModel.deselect(record);
  40. Ext.Array.remove(items, item);
  41. Ext.Array.remove(me.multiselected, record);
  42. }
  43. });
  44. Ext.each(me.multiselected, function(item, index){
  45. items.push(item);
  46. });
  47. me.selModel.select(items);
  48. if(bool){
  49. view.el.focus();
  50. var checkbox = item.childNodes[0].childNodes[0].childNodes[0];
  51. if(checkbox.getAttribute && checkbox.getAttribute('class') == 'x-grid-row-checker'){
  52. me.multiselected.push(record);
  53. items.push(record);
  54. me.selModel.select(items);
  55. } else {
  56. me.selModel.deselect(record);
  57. Ext.Array.remove(me.multiselected, record);
  58. }
  59. }
  60. }else{
  61. me.selModel.select(index);
  62. }
  63. },
  64. onHeaderClick: function(headerCt, header, e) {
  65. if (header.isCheckerHd) {
  66. e.stopEvent();
  67. var isChecked = header.el.hasCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');
  68. if (isChecked) {
  69. this.deselectAll(true);
  70. var grid = Ext.getCmp('RepaymentdetailGrid');
  71. this.deselect(grid.multiselected);
  72. grid.multiselected = new Array();
  73. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  74. Ext.each(els, function(el, index){
  75. el.setAttribute('class','x-grid-row-checker');
  76. });
  77. header.el.removeCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  78. } else {
  79. var grid = Ext.getCmp('batchDealGridPanel');
  80. this.deselect(grid.multiselected);
  81. grid.multiselected = new Array();
  82. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  83. Ext.each(els, function(el, index){
  84. el.setAttribute('class','x-grid-row-checker');
  85. });
  86. this.selectAll(true);
  87. header.el.addCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  88. }
  89. }
  90. }
  91. }),
  92. getMultiSelected: function(){
  93. var grid = this;
  94. var items = grid.selModel.getSelection();
  95. Ext.each(items, function(item, index){
  96. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  97. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  98. grid.multiselected.push(item);
  99. }
  100. });
  101. return Ext.Array.unique(grid.multiselected);
  102. },
  103. initComponent:function(){
  104. this.callParent(arguments);
  105. //得到页面上显示的formCondition属性
  106. var gridCondition=this.BaseUtil.getUrlParam('gridCondition');
  107. var condition="";
  108. if(gridCondition==null){
  109. var urlCondition = this.BaseUtil.getUrlParam('formCondition');
  110. //定义通过IS拆分后的数组
  111. var cons=null;
  112. //存在urlCondition的情况下
  113. if(urlCondition){
  114. //对urlCondition进行拆分 urlCondition的格式一般为pp_idIS1
  115. cons = urlCondition.split("IS");
  116. }
  117. var pp_id=0;
  118. if(cons!=null){
  119. if(cons[0]&&cons[1]){
  120. if(cons[0]!=null&&cons[0]!=''){
  121. if(cons[1]>0){
  122. pp_id=cons[1];
  123. }else{
  124. pp_id=0;
  125. }
  126. }
  127. }
  128. }
  129. condition ="cmd_cmid='"+cm_id+"'";
  130. }else condition=gridCondition.replace(/IS/g,'=');
  131. this.getMyData(condition);
  132. },
  133. getMyData:function(condition){
  134. var me = this;
  135. var params = {
  136. caller:"Repayment",
  137. condition:condition
  138. };
  139. if(me.columns && me.columns.length > 2){
  140. me.GridUtil.loadNewStore(me,params);
  141. } else {
  142. me.GridUtil.getGridColumnsAndStore(me,'common/singleGridPanel.action',params);
  143. }
  144. }
  145. });