MrpReplace.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. Ext.define('erp.view.pm.mps.MrpReplace',{
  2. extend: 'Ext.Viewport',
  3. layout: 'fit',
  4. hideBorders: true,
  5. initComponent : function(){
  6. var me = this;
  7. Ext.apply(me, {
  8. items: [{
  9. layout: 'anchor',
  10. items: [{
  11. xtype: 'MrpReplaceGrid',
  12. anchor:'100% 100%',
  13. selModel: Ext.create('Ext.selection.CheckboxModel',{
  14. ignoreRightMouseSelection : false,
  15. listeners:{
  16. selectionchange:function(selectionModel, selected, options){
  17. }
  18. },
  19. getEditor: function(){
  20. return null;
  21. },
  22. onRowMouseDown: function(view, record, item, index, e) {//改写的onRowMouseDown方法
  23. var me = Ext.getCmp('grid');
  24. var bool = true;
  25. var items = me.selModel.getSelection();
  26. Ext.each(items, function(item, index){
  27. if(this.index == record.index){
  28. bool = false;
  29. me.selModel.deselect(record);
  30. Ext.Array.remove(items, item);
  31. Ext.Array.remove(me.multiselected, record);
  32. }
  33. });
  34. Ext.each(me.multiselected, function(item, index){
  35. items.push(item);
  36. });
  37. me.selModel.select(items);
  38. if(bool){
  39. view.el.focus();
  40. var checkbox = item.childNodes[0].childNodes[0].childNodes[0];
  41. if(checkbox.getAttribute && checkbox.getAttribute('class') == 'x-grid-row-checker'){
  42. me.multiselected.push(record);
  43. items.push(record);
  44. me.selModel.select(items);
  45. } else {
  46. me.selModel.deselect(record);
  47. Ext.Array.remove(me.multiselected, record);
  48. }
  49. }
  50. me.summary();
  51. },
  52. onHeaderClick: function(headerCt, header, e) {
  53. if (header.isCheckerHd) {
  54. e.stopEvent();
  55. var isChecked = header.el.hasCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');
  56. if (isChecked) {
  57. this.deselectAll(true);
  58. var grid = Ext.getCmp('batchDealGridPanel');
  59. this.deselect(grid.multiselected);
  60. grid.multiselected = new Array();
  61. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  62. Ext.each(els, function(el, index){
  63. el.setAttribute('class','x-grid-row-checker');
  64. });
  65. header.el.removeCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  66. } else {
  67. var grid = Ext.getCmp('batchDealGridPanel');
  68. this.deselect(grid.multiselected);
  69. grid.multiselected = new Array();
  70. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  71. Ext.each(els, function(el, index){
  72. el.setAttribute('class','x-grid-row-checker');
  73. });
  74. this.selectAll(true);
  75. header.el.addCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  76. }
  77. }
  78. }
  79. })
  80. }]
  81. }]
  82. });
  83. me.callParent(arguments);
  84. }
  85. });