Toolbar.js 8.4 KB

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