Toolbar.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. Ext.define('erp.view.common.dbfind.Toolbar', {
  2. extend: 'Ext.toolbar.Paging',
  3. alias: 'widget.erpDbfindToolbar',
  4. doRefresh:function(){
  5. this.moveFirst();
  6. },
  7. updateInfo : function(){
  8. var page = this.child('#inputItem').getValue();
  9. var me = this,
  10. displayItem = me.child('#displayItem'),
  11. pageData = me.getPageData();
  12. pageData.fromRecord = (page-1)*pageSize+1;
  13. pageData.toRecord = page*pageSize > dataCount ? dataCount : page*pageSize;//
  14. pageData.total=dataCount;
  15. dataCount, msg;
  16. if (displayItem) {
  17. if (dataCount === 0) {
  18. msg = me.emptyMsg;
  19. } else {
  20. msg = Ext.String.format(
  21. me.displayMsg,
  22. pageData.fromRecord,
  23. pageData.toRecord,
  24. pageData.total
  25. );
  26. }
  27. displayItem.setText(msg);
  28. me.doComponentLayout();
  29. }
  30. },
  31. getPageData : function(){
  32. var store = this.store,
  33. totalCount = store.getTotalCount();
  34. totalCount=dataCount;
  35. return {
  36. total : totalCount,
  37. currentPage : page,
  38. pageCount: Math.ceil(dataCount / pageSize),
  39. fromRecord: ((store.currentPage - 1) * store.pageSize) + 1,
  40. toRecord: Math.min(store.currentPage * store.pageSize, totalCount)
  41. };
  42. },
  43. onPagingKeyDown : function(field, e){
  44. var me = this, k = e.getKey(), grid = me.ownerCt,
  45. pageData = me.getPageData(),
  46. increment = e.shiftKey ? 10 : 1, pageNum = 0, s = Ext.EventObject;
  47. if (k == s.RETURN) {
  48. e.stopEvent();
  49. pageNum = me.readPageFromInput(pageData);
  50. if (pageNum !== false) {
  51. pageNum = Math.min(Math.max(1, pageNum), pageData.pageCount);
  52. me.child('#inputItem').setValue(pageNum);
  53. if(me.fireEvent('beforechange', me, pageNum) !== false){
  54. page = pageNum;
  55. grid.getColumnsAndStore(caller, null, page, pageSize);
  56. }
  57. }
  58. } else if (k == s.HOME || k == s.END) {
  59. e.stopEvent();
  60. pageNum = k == s.HOME ? 1 : pageData.pageCount;
  61. field.setValue(pageNum);
  62. } else if (k == s.UP || k == s.PAGEUP || k == s.DOWN || k == s.PAGEDOWN) {
  63. e.stopEvent();
  64. pageNum = me.readPageFromInput(pageData);
  65. if (pageNum) {
  66. if (k == s.DOWN || k == s.PAGEDOWN) {
  67. increment *= -1;
  68. }
  69. pageNum += increment;
  70. if (pageNum >= 1 && pageNum <= pageData.pages) {
  71. field.setValue(pageNum);
  72. }
  73. }
  74. }
  75. me.updateInfo();
  76. fn(me, pageNum);
  77. },
  78. moveFirst : function(){
  79. var me = this;
  80. me.child('#inputItem').setValue(1);
  81. value = 1;
  82. page = value;
  83. me.ownerCt.getColumnsAndStore(caller, null, page, pageSize);
  84. me.updateInfo();
  85. fn(me,value);
  86. },
  87. movePrevious : function(){
  88. var me = this;
  89. me.child('#inputItem').setValue(me.child('#inputItem').getValue()-1);
  90. value = me.child('#inputItem').getValue();
  91. page = value;
  92. me.ownerCt.getColumnsAndStore(caller, null, page, pageSize);
  93. me.updateInfo();
  94. fn(me,value);
  95. },
  96. moveNext : function(){
  97. var me = this,
  98. last = me.getPageData().pageCount;
  99. total = last;
  100. me.child('#inputItem').setValue(me.child('#inputItem').getValue()+1);
  101. value = me.child('#inputItem').getValue();
  102. page = value;
  103. me.ownerCt.getColumnsAndStore(caller, null, page, pageSize);
  104. me.updateInfo();
  105. fn(me,value);
  106. },
  107. moveLast : function(){
  108. var me = this,
  109. last = me.getPageData().pageCount;
  110. total = last;
  111. me.child('#inputItem').setValue(last);
  112. value = me.child('#inputItem').getValue();
  113. page = value;
  114. me.ownerCt.getColumnsAndStore(caller, null, page, pageSize);
  115. me.updateInfo();
  116. fn(me,value);
  117. },
  118. onLoad : function() {
  119. var e = this, d, b, c, a;
  120. if (!e.rendered) {
  121. return
  122. }
  123. d = e.getPageData();
  124. b = d.currentPage;
  125. c = Math.ceil(dataCount / pageSize);
  126. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  127. e.child("#afterTextItem").setText(a);
  128. e.child("#inputItem").setValue(b);
  129. e.child("#first").setDisabled(b === 1);
  130. e.child("#prev").setDisabled(b === 1);
  131. e.child("#next").setDisabled(b === c || c===1);//
  132. e.child("#last").setDisabled(b === c || c===1);
  133. e.child("#refresh").enable();
  134. e.updateInfo();
  135. e.fireEvent("change", e, d);
  136. },
  137. onPagingBlur : function(e){
  138. var inputItem = this.child("#inputItem"),
  139. curPage;
  140. if (inputItem) {
  141. curPage = this.getPageData().currentPage;
  142. var e = this, d, b, c, a;
  143. d = e.getPageData();
  144. b = d.currentPage;
  145. c = Math.ceil(dataCount / pageSize);
  146. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  147. e.child("#afterTextItem").setText(a);
  148. e.child("#inputItem").setValue(b);
  149. e.child("#first").setDisabled(b === 1);
  150. e.child("#prev").setDisabled(b === 1);
  151. e.child("#next").setDisabled(b === c || c===1);
  152. e.child("#last").setDisabled(b === c || c===1);
  153. }
  154. },
  155. afterOnLoad : function(num) {
  156. var e = this, d, c, a, grid = e.ownerCt;
  157. if (!e.rendered) {
  158. return
  159. }
  160. d = e.getPageData();
  161. b = d.currentPage;
  162. c = Math.ceil(dataCount / pageSize);
  163. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  164. e.child("#afterTextItem").setText(a);
  165. //解决抬头筛选 页码不对
  166. if(num && num == 1) e.child("#inputItem").setValue(1);
  167. e.updateInfo();
  168. e.fireEvent("change", e, d);
  169. e.child('#last').setDisabled(c <= 1 || page == c);
  170. e.child('#next').setDisabled(c <= 1 || page == c);
  171. }
  172. });
  173. function fn(me,value){
  174. me.child('#last').setDisabled(value == total);
  175. me.child('#next').setDisabled(value == total);
  176. me.child('#first').setDisabled(value <= 1);
  177. me.child('#prev').setDisabled(value <= 1);
  178. }