Toolbar.js 6.8 KB

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