AttentionGrade.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. Ext.define('erp.view.oa.attention.AttentionGrade',{
  2. extend: 'Ext.Viewport',
  3. layout: 'anchor',
  4. hideBorders: true,
  5. initComponent : function(){
  6. var me = this;
  7. Ext.apply(me, {
  8. items: [{
  9. region: 'south',
  10. xtype:'erpAttentionGridPanel',
  11. anchor: '100% 100%',
  12. dockedItems: [{
  13. xtype: 'toolbar',
  14. dock: 'top',
  15. style:'font-size:16px;height:40px',
  16. bodyStyle: 'font-size:16px;height:40px',
  17. items: [{
  18. xtype: 'button',
  19. iconCls: 'tree-add',
  20. id:'add',
  21. text: $I18N.common.button.erpAddButton,
  22. style:'margin-left:10px'
  23. },{
  24. xtype: 'button',
  25. id:'delete',
  26. iconCls: 'tree-delete',
  27. disabled:true,
  28. text: $I18N.common.button.erpDeleteButton,
  29. style:'margin-left:10px'
  30. }]
  31. }],
  32. selModel: Ext.create('Ext.selection.CheckboxModel',{
  33. ignoreRightMouseSelection : false,
  34. listeners:{
  35. selectionchange:function(selectionModel, selected, options){
  36. }
  37. },
  38. onRowMouseDown: function(view, record, item, index, e) {//改写的onRowMouseDown方法
  39. var me = Ext.getCmp('AttentionGridPanel');
  40. var bool = true;
  41. var items = me.selModel.getSelection();
  42. Ext.each(items, function(item, index){
  43. if(item.data == record.data){
  44. bool = false;
  45. me.selModel.deselect(record);
  46. Ext.Array.remove(items, item);
  47. Ext.Array.remove(me.multiselected, record);
  48. }
  49. });
  50. Ext.each(me.multiselected, function(item, index){
  51. items.push(item);
  52. });
  53. me.selModel.select(items);
  54. if(bool){
  55. view.el.focus();
  56. var checkbox = item.childNodes[0].childNodes[0].childNodes[0];
  57. if(checkbox.getAttribute('class') == 'x-grid-row-checker'){
  58. me.multiselected.push(record);
  59. items.push(record);
  60. me.selModel.select(items);
  61. } else {
  62. me.selModel.deselect(record);
  63. Ext.Array.remove(me.multiselected, record);
  64. }
  65. }
  66. if(items.length>0){
  67. Ext.getCmp('delete').setDisabled(false);
  68. }else {Ext.getCmp('delete').setDisabled(true);
  69. }
  70. },
  71. onHeaderClick: function(headerCt, header, e) {
  72. if (header.isCheckerHd) {
  73. e.stopEvent();
  74. var isChecked = header.el.hasCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');
  75. if (isChecked) {
  76. this.deselectAll(true);
  77. var grid = Ext.getCmp('AttentionGridPanel');
  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. header.el.removeCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  85. } else {
  86. header.el.addCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  87. var grid = Ext.getCmp('AttentionGridPanel');
  88. this.deselect(grid.multiselected);
  89. grid.multiselected = new Array();
  90. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  91. Ext.each(els, function(el, index){
  92. el.setAttribute('class','x-grid-row-checker');
  93. });
  94. this.selectAll(true);
  95. header.el.addCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  96. }
  97. }
  98. }
  99. }),
  100. }]
  101. });
  102. me.callParent(arguments);
  103. }
  104. });