JprocessClassify.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. Ext.define('erp.view.common.JProcessDeploy.JprocessClassify',{
  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: 'fit',
  10. items: [{
  11. xtype: 'erpGridPanel2',
  12. anchor:'100% 100%',
  13. autoScroll : true,
  14. height:height,//坑爹的样式
  15. layout : 'fit',
  16. region:'center',
  17. bodyStyle: 'background-color:#f1f1f1;',
  18. plugins: [Ext.create('erp.view.core.grid.HeaderFilter')],
  19. condition:"1=1",
  20. headerCt: Ext.create("Ext.grid.header.Container",{
  21. forceFit: false,
  22. sortable: true,
  23. enableColumnMove:true,
  24. enableColumnResize:true,
  25. enableColumnHide: true
  26. }),
  27. invalidateScrollerOnRefresh: false,
  28. viewConfig: {
  29. trackOver: false
  30. },
  31. buffered: true,
  32. sync: true,
  33. multiselected: [],
  34. selModel: Ext.create('Ext.selection.CheckboxModel',{
  35. ignoreRightMouseSelection : false,
  36. listeners:{
  37. selectionchange:function(selectionModel, selected, options){
  38. }
  39. },
  40. getEditor: function(){
  41. return null;
  42. },
  43. onRowMouseDown: function(view, record, item, index, e) {//改写的onRowMouseDown方法
  44. var me = Ext.getCmp('grid');
  45. var bool = true;
  46. var items = me.selModel.getSelection();
  47. Ext.each(items, function(item, index){
  48. if(this.index == record.index){
  49. bool = false;
  50. me.selModel.deselect(record);
  51. Ext.Array.remove(items, item);
  52. Ext.Array.remove(me.multiselected, record);
  53. }
  54. });
  55. Ext.each(me.multiselected, function(item, index){
  56. items.push(item);
  57. });
  58. if(bool){
  59. view.el.focus();
  60. var checkbox = item.childNodes[0].childNodes[0].childNodes[0];
  61. if(checkbox.getAttribute && checkbox.getAttribute('class') == 'x-grid-row-checker'){
  62. me.multiselected.push(record);
  63. items.push(record);
  64. me.selModel.select(me.multiselected);
  65. } else {
  66. me.selModel.deselect(record);
  67. Ext.Array.remove(me.multiselected, record);
  68. }
  69. }
  70. if(items.length>0){
  71. Ext.getCmp('moveto').setDisabled(false);
  72. }else {
  73. Ext.getCmp('moveto').setDisabled(true);
  74. }
  75. },
  76. onHeaderClick: function(headerCt, header, e) {
  77. if (header.isCheckerHd) {
  78. e.stopEvent();
  79. var isChecked = header.el.hasCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');
  80. if (isChecked) {
  81. this.deselectAll(true);
  82. var grid = Ext.getCmp('grid');
  83. this.deselect(grid.multiselected);
  84. grid.multiselected = new Array();
  85. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  86. Ext.each(els, function(el, index){
  87. el.setAttribute('class','x-grid-row-checker');
  88. });
  89. header.el.removeCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  90. Ext.getCmp('moveto').setDisabled(true);
  91. } else {
  92. var grid = Ext.getCmp('grid');
  93. this.deselect(grid.multiselected);
  94. grid.multiselected = new Array();
  95. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  96. Ext.each(els, function(el, index){
  97. el.setAttribute('class','x-grid-row-checker');
  98. });
  99. this.selectAll(true);
  100. Ext.getCmp('moveto').setDisabled(false);
  101. header.el.addCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  102. }
  103. }
  104. }
  105. }),
  106. getMultiSelected: function(){
  107. var grid = this;
  108. var items = grid.selModel.getSelection();
  109. Ext.each(items, function(item, index){
  110. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  111. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  112. grid.multiselected.push(item);
  113. }
  114. });
  115. var records=Ext.Array.unique(grid.multiselected);
  116. var params = new Object();
  117. params.caller = caller;
  118. var data = new Array();
  119. Ext.each(records, function(record, index){
  120. if(grid.keyField && this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  121. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  122. bool = true;
  123. var o = new Object();
  124. o[grid.keyField] = record.data[grid.keyField];
  125. if(grid.necessaryFields){
  126. Ext.each(grid.necessaryFields, function(f, index){
  127. var v = record.data[f];
  128. if(Ext.isDate(v)){
  129. v = Ext.Date.toString(v);
  130. }
  131. o[f] = v;
  132. });
  133. }
  134. data.push(o);
  135. }
  136. });
  137. params.data = Ext.encode(data);
  138. return params;
  139. }
  140. }]
  141. }]
  142. });
  143. me.callParent(arguments);
  144. }
  145. });