Toolbar.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. Ext.define('erp.view.common.multiDbfind.Toolbar', {
  2. extend: 'Ext.toolbar.Paging',
  3. alias: 'widget.erpMultiDbfindToolbar',
  4. doRefresh:function(){
  5. var resgrid=Ext.getCmp('dbfindresultgrid');
  6. resgrid.selectObject=new Object();
  7. this.moveFirst(true);
  8. if(Ext.Object.getKeys(resgrid.selectObject).length==0){
  9. parent.Ext.getCmp('onlyChecked').hide();
  10. }
  11. },
  12. updateInfo : function(){
  13. var page=this.child('#inputItem').getValue();
  14. var me = this, displayItem = me.child('#displayItem'),
  15. pageData = me.getPageData();
  16. pageData.fromRecord=(page-1)*pageSize+1;
  17. pageData.toRecord=page*pageSize > dataCount ? dataCount : page*pageSize;
  18. pageData.total=dataCount;
  19. dataCount, msg;
  20. if (displayItem) {
  21. if (dataCount === 0) {
  22. msg = me.emptyMsg;
  23. } else {
  24. msg = Ext.String.format(
  25. me.displayMsg,
  26. pageData.fromRecord,
  27. pageData.toRecord,
  28. pageData.total
  29. );
  30. }
  31. displayItem.setText(msg);
  32. me.doComponentLayout();
  33. //修改表头全选checkbox选中状态
  34. var hd_checker = Ext.getCmp("dbfindGridPanel").getEl().select('div.x-column-header-checkbox');
  35. var hd = hd_checker.first();
  36. if(hd.hasCls('x-grid-hd-checker-on')){
  37. hd.removeCls('x-grid-hd-checker-on');
  38. }
  39. }
  40. },
  41. getPageData : function(){
  42. var store = this.store,
  43. totalCount = store.getTotalCount();
  44. totalCount=dataCount;
  45. return {
  46. total : totalCount,
  47. currentPage : store.currentPage,
  48. pageCount: Math.ceil(dataCount / pageSize),
  49. fromRecord: ((store.currentPage - 1) * store.pageSize) + 1,
  50. toRecord: Math.min(store.currentPage * store.pageSize, totalCount)
  51. };
  52. },
  53. onPagingKeyDown : function(field, e){
  54. var me = this,
  55. k = e.getKey(),
  56. pageData = me.getPageData(),
  57. increment = e.shiftKey ? 10 : 1,
  58. pageNum = 0;
  59. if (k == e.RETURN) {
  60. e.stopEvent();
  61. pageNum = me.readPageFromInput(pageData);
  62. if (pageNum !== false) {
  63. pageNum = Math.min(Math.max(1, pageNum), pageData.pageCount);
  64. me.child('#inputItem').setValue(pageNum);
  65. if(me.fireEvent('beforechange', me, pageNum) !== false){
  66. page = pageNum;
  67. Ext.getCmp("dbfindGridPanel").getColumnsAndStore(caller, condition, page, pageSize);
  68. }
  69. }
  70. } else if (k == e.HOME || k == e.END) {
  71. e.stopEvent();
  72. pageNum = k == e.HOME ? 1 : pageData.pageCount;
  73. field.setValue(pageNum);
  74. } else if (k == e.UP || k == e.PAGEUP || k == e.DOWN || k == e.PAGEDOWN) {
  75. e.stopEvent();
  76. pageNum = me.readPageFromInput(pageData);
  77. if (pageNum) {
  78. if (k == e.DOWN || k == e.PAGEDOWN) {
  79. increment *= -1;
  80. }
  81. pageNum += increment;
  82. if (pageNum >= 1 && pageNum <= pageData.pages) {
  83. field.setValue(pageNum);
  84. }
  85. }
  86. }
  87. me.updateInfo();
  88. fn(me,pageNum);
  89. },
  90. moveFirst : function(){
  91. var me = this;
  92. me.child('#inputItem').setValue(1);
  93. value=1;
  94. page = value;
  95. Ext.getCmp("dbfindGridPanel").headerfilter=true;//不出发grid取消全选
  96. Ext.getCmp("dbfindGridPanel").getColumnsAndStore(caller, condition, page, pageSize);
  97. me.updateInfo();
  98. fn(me,value);
  99. },
  100. movePrevious : function(){
  101. var me = this;
  102. me.child('#inputItem').setValue(me.child('#inputItem').getValue()-1);
  103. value=me.child('#inputItem').getValue();
  104. page = value;
  105. Ext.getCmp("dbfindGridPanel").headerfilter=true;
  106. Ext.getCmp("dbfindGridPanel").getColumnsAndStore(caller, condition, page, pageSize);
  107. me.updateInfo();
  108. fn(me,value);
  109. },
  110. moveNext : function(){
  111. var me = this,
  112. last = me.getPageData().pageCount;
  113. total=last;
  114. me.child('#inputItem').setValue(me.child('#inputItem').getValue()+1);
  115. value=me.child('#inputItem').getValue();
  116. page = value;
  117. Ext.getCmp("dbfindGridPanel").headerfilter=true;
  118. Ext.getCmp("dbfindGridPanel").getColumnsAndStore(caller, condition, page, pageSize);
  119. me.updateInfo();
  120. fn(me,value);
  121. },
  122. moveLast : function(){
  123. var me = this,
  124. last = me.getPageData().pageCount;
  125. total=last;
  126. me.child('#inputItem').setValue(last);
  127. value=me.child('#inputItem').getValue();
  128. page = value;
  129. Ext.getCmp("dbfindGridPanel").headerfilter=true;
  130. Ext.getCmp("dbfindGridPanel").getColumnsAndStore(caller, condition, page, pageSize);
  131. me.updateInfo();
  132. fn(me,value);
  133. },
  134. onLoad : function() {
  135. var e = this, d, b, c, a;
  136. if (!e.rendered) {
  137. return;
  138. }
  139. d = e.getPageData();
  140. b = d.currentPage;
  141. c = Math.ceil(dataCount / pageSize);
  142. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  143. e.child("#afterTextItem").setText(a);
  144. e.child("#inputItem").setValue(b);
  145. e.child("#first").setDisabled(b === 1);
  146. e.child("#prev").setDisabled(b === 1);
  147. e.child("#next").setDisabled(b === c || c===1);//
  148. e.child("#last").setDisabled(b === c || c===1);
  149. e.child("#refresh").enable();
  150. e.updateInfo();
  151. e.fireEvent("change", e, d);
  152. },
  153. afterOnLoad : function() {
  154. var e = this, d, c, a;
  155. if (!e.rendered) {
  156. return;
  157. }
  158. d = e.getPageData();
  159. b = d.currentPage;
  160. c = Math.ceil(dataCount / pageSize);
  161. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  162. e.child("#afterTextItem").setText(a);
  163. e.updateInfo();
  164. e.fireEvent("change", e, d);
  165. e.child('#last').setDisabled(c <= 1 || page == c);
  166. e.child('#next').setDisabled(c <= 1 || page == c);
  167. if(Ext.getCmp("dbfindGridPanel").noCount) {
  168. var m = e.down('#more');
  169. if(!m) {
  170. m = Ext.create('Ext.panel.Tool', {
  171. id: 'more',
  172. type: 'right',
  173. margin: '0 5 0 5',
  174. handler: function() {
  175. Ext.getCmp("dbfindGridPanel").getCount(null, null, true);
  176. m.hide();
  177. Ext.getCmp("dbfindGridPanel").noCount = false;
  178. }
  179. });
  180. e.add(m);
  181. } else {
  182. m.show();
  183. }
  184. }
  185. }
  186. });
  187. function fn(me,value){
  188. me.child('#last').setDisabled(value==total);
  189. me.child('#next').setDisabled(value==total);
  190. me.child('#first').setDisabled(value<=1);
  191. me.child('#prev').setDisabled(value<=1);
  192. }