Toolbar.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. Ext.define('erp.view.fa.fix.datalist.Toolbar', {
  2. extend: 'Ext.toolbar.Paging',
  3. alias: 'widget.erpDatalistToolbar',
  4. doRefresh:function(){
  5. //window.location = basePath + "jsps/common/datalist.jsp?whoami=" + caller + "&urlcondition=" + condition;
  6. //Ext.getCmp('grid').getColumnsAndStore(caller, condition, 1, pageSize);
  7. this.moveFirst();
  8. },
  9. items: [{
  10. xtype: 'erpAddButton',
  11. cls: 'x-btn-gray-1'
  12. },'-',{
  13. name: 'export',
  14. text: $I18N.common.button.erpExportButton,
  15. iconCls: 'x-button-icon-excel',
  16. cls: 'x-btn-gray-1',
  17. width: 70,
  18. handler: function(){
  19. var grid = Ext.getCmp('grid');
  20. grid.BaseUtil.exportexcel(grid);
  21. }
  22. },'-',{
  23. itemId: 'close',
  24. text: $I18N.common.button.erpCloseButton,
  25. iconCls: 'x-button-icon-close',
  26. width: 70,
  27. cls: 'x-btn-gray-1',
  28. handler: function(){
  29. var main = parent.Ext.getCmp("content-panel");
  30. main.getActiveTab().close();
  31. }
  32. }],
  33. updateInfo : function(){
  34. var page=this.child('#inputItem').getValue();
  35. var me = this,
  36. displayItem = me.child('#displayItem'),
  37. //store = me.store,//update by yingp
  38. pageData = me.getPageData();
  39. pageData.fromRecord=(page-1)*pageSize+1;
  40. pageData.toRecord=page*pageSize > dataCount ? dataCount : page*pageSize;//
  41. pageData.total=dataCount;
  42. /* me.store.totalCount = dataCount;
  43. me.store.pageSize = pageSize;
  44. pageData.pageCount = Math.ceil(dataCount / pageSize);*/
  45. dataCount, msg;
  46. if (displayItem) {
  47. if (dataCount === 0) {
  48. msg = me.emptyMsg;
  49. } else {
  50. msg = Ext.String.format(
  51. me.displayMsg,
  52. pageData.fromRecord,
  53. pageData.toRecord,
  54. pageData.total
  55. );
  56. }
  57. displayItem.setText(msg);
  58. me.doComponentLayout();
  59. }
  60. },
  61. getPageData : function(){
  62. var store = this.store,
  63. totalCount = store.getTotalCount();
  64. totalCount=dataCount;
  65. return {
  66. total : totalCount,
  67. currentPage : store.currentPage,
  68. pageCount: Math.ceil(dataCount / pageSize),
  69. fromRecord: ((store.currentPage - 1) * store.pageSize) + 1,
  70. toRecord: Math.min(store.currentPage * store.pageSize, totalCount)
  71. };
  72. },
  73. onPagingKeyDown : function(field, e){
  74. var me = this,
  75. k = e.getKey(),
  76. pageData = me.getPageData(),
  77. increment = e.shiftKey ? 10 : 1,
  78. pageNum = 0;
  79. if (k == e.RETURN) {
  80. e.stopEvent();
  81. pageNum = me.readPageFromInput(pageData);
  82. if (pageNum !== false) {
  83. pageNum = Math.min(Math.max(1, pageNum), pageData.pageCount);
  84. me.child('#inputItem').setValue(pageNum);
  85. if(me.fireEvent('beforechange', me, pageNum) !== false){
  86. page = pageNum;
  87. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  88. }
  89. }
  90. } else if (k == e.HOME || k == e.END) {
  91. e.stopEvent();
  92. pageNum = k == e.HOME ? 1 : pageData.pageCount;
  93. field.setValue(pageNum);
  94. } else if (k == e.UP || k == e.PAGEUP || k == e.DOWN || k == e.PAGEDOWN) {
  95. e.stopEvent();
  96. pageNum = me.readPageFromInput(pageData);
  97. if (pageNum) {
  98. if (k == e.DOWN || k == e.PAGEDOWN) {
  99. increment *= -1;
  100. }
  101. pageNum += increment;
  102. if (pageNum >= 1 && pageNum <= pageData.pages) {
  103. field.setValue(pageNum);
  104. }
  105. }
  106. }
  107. me.updateInfo();
  108. fn(me,pageNum);
  109. },
  110. moveFirst : function(){
  111. var me = this;
  112. me.child('#inputItem').setValue(1);
  113. value=1;
  114. page = value;
  115. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  116. me.updateInfo();
  117. fn(me,value);
  118. },
  119. movePrevious : function(){
  120. var me = this;
  121. me.child('#inputItem').setValue(me.child('#inputItem').getValue()-1);
  122. value=me.child('#inputItem').getValue();
  123. page = value;
  124. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  125. me.updateInfo();
  126. fn(me,value);
  127. },
  128. moveNext : function(){
  129. var me = this,
  130. last = me.getPageData().pageCount;
  131. total=last;
  132. me.child('#inputItem').setValue(me.child('#inputItem').getValue()+1);
  133. value=me.child('#inputItem').getValue();
  134. page = value;
  135. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  136. me.updateInfo();
  137. fn(me,value);
  138. },
  139. moveLast : function(){
  140. var me = this,
  141. last = me.getPageData().pageCount;
  142. total=last;
  143. me.child('#inputItem').setValue(last);
  144. value=me.child('#inputItem').getValue();
  145. page = value;
  146. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  147. me.updateInfo();
  148. fn(me,value);
  149. },
  150. onLoad : function() {
  151. var e = this, d, b, c, a;
  152. if (!e.rendered) {
  153. return
  154. }
  155. d = e.getPageData();
  156. b = d.currentPage;
  157. c = Math.ceil(dataCount / pageSize);
  158. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  159. e.child("#afterTextItem").setText(a);
  160. e.child("#inputItem").setValue(b);
  161. e.child("#first").setDisabled(b === 1);
  162. e.child("#prev").setDisabled(b === 1);
  163. e.child("#next").setDisabled(b === c || c===1);//
  164. e.child("#last").setDisabled(b === c || c===1);
  165. e.child("#refresh").enable();
  166. e.updateInfo();
  167. e.fireEvent("change", e, d);
  168. },
  169. afterOnLoad : function() {
  170. var e = this, d, c, a;
  171. if (!e.rendered) {
  172. return
  173. }
  174. d = e.getPageData();
  175. b = d.currentPage;
  176. c = Math.ceil(dataCount / pageSize);
  177. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  178. e.child("#afterTextItem").setText(a);
  179. e.updateInfo();
  180. e.fireEvent("change", e, d);
  181. e.child('#last').setDisabled(c <= 1 || page == c);
  182. e.child('#next').setDisabled(c <= 1 || page == c);
  183. }
  184. });
  185. function fn(me,value){
  186. me.child('#last').setDisabled(value==total);
  187. me.child('#next').setDisabled(value==total);
  188. me.child('#first').setDisabled(value<=1);
  189. me.child('#prev').setDisabled(value<=1);
  190. }