KnowledgeGrid.js 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. Ext.define('erp.view.oa.knowledge.KnowledgeGrid',{
  2. extend: 'Ext.grid.Panel',
  3. alias: 'widget.erpKnowledgeGridPanel',
  4. id: 'knowledgeGridPanel',
  5. emptyText : $I18N.common.grid.emptyText,
  6. columnLines : true,
  7. autoScroll : true,
  8. multiselected: [],
  9. store: [],
  10. columns: [],
  11. bodyStyle:'background-color:#f1f1f1;',
  12. GridUtil: Ext.create('erp.util.GridUtil'),
  13. BaseUtil: Ext.create('erp.util.BaseUtil'),
  14. selModel: Ext.create('Ext.selection.CheckboxModel',{
  15. ignoreRightMouseSelection : false,
  16. listeners:{
  17. selectionchange:function(selectionModel, selected, options){
  18. }
  19. },
  20. getEditor: function(){
  21. return null;
  22. },
  23. onRowMouseDown: function(view, record, item, index, e) {//改写的onRowMouseDown方法
  24. var me = Ext.getCmp('knowledgeGridPanel');
  25. var bool = true;
  26. var items = me.selModel.getSelection();
  27. Ext.each(items, function(item, index){
  28. if(this.index == record.index){
  29. bool = false;
  30. me.selModel.deselect(record);
  31. Ext.Array.remove(items, item);
  32. Ext.Array.remove(me.multiselected, record);
  33. }
  34. });
  35. Ext.each(me.multiselected, function(item, index){
  36. items.push(item);
  37. });
  38. me.selModel.select(items);
  39. if(bool){
  40. view.el.focus();
  41. var checkbox = item.childNodes[0].childNodes[0].childNodes[0];
  42. if(checkbox.getAttribute('class') == 'x-grid-row-checker'){
  43. //checkbox.setAttribute('class','x-grid-row-checker-checked');//只是修改了其样式,并没有将record加到selModel里面
  44. me.multiselected.push(record);
  45. items.push(record);
  46. me.selModel.select(items);
  47. } else {
  48. me.selModel.deselect(record);
  49. Ext.Array.remove(me.multiselected, record);
  50. //checkbox.setAttribute('class','x-grid-row-checker');
  51. }
  52. }
  53. },
  54. onHeaderClick: function(headerCt, header, e) {
  55. if (header.isCheckerHd) {
  56. e.stopEvent();
  57. var isChecked = header.el.hasCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');
  58. if (isChecked) {
  59. this.deselectAll(true);
  60. var grid = Ext.getCmp('batchDealGridPanel');
  61. this.deselect(grid.multiselected);
  62. grid.multiselected = new Array();
  63. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  64. Ext.each(els, function(el, index){
  65. el.setAttribute('class','x-grid-row-checker');
  66. });
  67. header.el.removeCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  68. } else {
  69. var grid = Ext.getCmp('batchDealGridPanel');
  70. this.deselect(grid.multiselected);
  71. grid.multiselected = new Array();
  72. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  73. Ext.each(els, function(el, index){
  74. el.setAttribute('class','x-grid-row-checker');
  75. });
  76. this.selectAll(true);
  77. header.el.addCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  78. }
  79. }
  80. }
  81. }),
  82. initComponent : function(){
  83. condition = this.BaseUtil.getUrlParam('urlcondition');
  84. condition = (condition == null) ? "1=1": condition;
  85. condition = condition.replace(/@/,"'%").replace(/@/,"%'");
  86. this.defaultCondition = condition;
  87. var gridParam = {caller: caller, condition: condition};
  88. this.GridUtil.getGridColumnsAndStore(this, 'common/singleGridPanel.action?', gridParam, "");
  89. this.callParent(arguments);
  90. }
  91. });