Toolbar.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. Ext.define('erp.view.common.editDatalist.Toolbar', {
  2. extend: 'Ext.toolbar.Paging',
  3. alias: 'widget.erpEditDatalistToolbar',
  4. requires: ['erp.view.core.button.VastSave','erp.view.core.button.Refresh','erp.view.core.button.VastGet','erp.view.core.button.VastSendOut','erp.view.core.button.ScanDatalistDetail'],
  5. doRefresh:function(){
  6. this.moveFirst();
  7. },
  8. items: ['-',{
  9. name: 'export',
  10. tooltip: $I18N.common.button.erpExportButton,
  11. iconCls: 'x-button-icon-excel',
  12. cls: 'x-btn-tb',
  13. width: 24,
  14. handler: function(){
  15. var grid = Ext.getCmp('grid');
  16. grid.BaseUtil.createExcel(caller, 'datalist', grid.getCondition());
  17. }
  18. },'-',{
  19. itemId: 'close',
  20. tooltip:$I18N.common.button.erpCloseButton,
  21. iconCls: 'x-button-icon-close',
  22. width: 24,
  23. cls: 'x-btn-tb',
  24. handler: function(){
  25. var main = parent.Ext.getCmp("content-panel");
  26. main.getActiveTab().close();
  27. }
  28. },'-', {
  29. xtype: 'erpRefreshButton',
  30. cls: 'x-btn-blue',
  31. hidden: true,
  32. width: 80
  33. },'-', {
  34. xtype: 'erpVastSaveButton',
  35. cls: 'x-btn-blue',
  36. hidden: true,
  37. width: 80
  38. },'-', {
  39. xtype: 'erpVastGetButton',
  40. cls: 'x-btn-blue',
  41. hidden: true,
  42. width: 80
  43. },'-', {
  44. xtype: 'erpVastSendOutButton',
  45. cls: 'x-btn-blue',
  46. hidden: true,
  47. width: 80
  48. },'-',{
  49. xtype: 'erpScanDatalistDetail',
  50. cls: 'x-btn-blue',
  51. hidden: true,
  52. width: 80
  53. }],
  54. updateInfo : function(){
  55. var page=this.child('#inputItem').getValue();
  56. var me = this,
  57. displayItem = me.child('#displayItem'),
  58. // store = me.store,//update by yingp
  59. pageData = me.getPageData();
  60. pageData.fromRecord=(page-1)*pageSize+1;
  61. pageData.toRecord=page*pageSize > dataCount ? dataCount : page*pageSize;//
  62. pageData.total=dataCount;
  63. /*
  64. * me.store.totalCount = dataCount; me.store.pageSize = pageSize;
  65. * pageData.pageCount = Math.ceil(dataCount / pageSize);
  66. */
  67. dataCount, msg;
  68. if (displayItem) {
  69. if (dataCount === 0) {
  70. msg = me.emptyMsg;
  71. } else {
  72. msg = Ext.String.format(
  73. me.displayMsg,
  74. pageData.fromRecord,
  75. pageData.toRecord,
  76. pageData.total
  77. );
  78. }
  79. displayItem.setText(msg);
  80. me.doComponentLayout();
  81. }
  82. },
  83. getPageData : function(){
  84. var store = this.store,
  85. totalCount = store.getTotalCount();
  86. totalCount=dataCount;
  87. return {
  88. total : totalCount,
  89. currentPage : store.currentPage,
  90. pageCount: Math.ceil(dataCount / pageSize),
  91. fromRecord: ((store.currentPage - 1) * store.pageSize) + 1,
  92. toRecord: Math.min(store.currentPage * store.pageSize, totalCount)
  93. };
  94. },
  95. onPagingKeyDown : function(field, e){
  96. var me = this,
  97. k = e.getKey(),
  98. pageData = me.getPageData(),
  99. increment = e.shiftKey ? 10 : 1,
  100. pageNum = 0;
  101. if (k == e.RETURN) {
  102. e.stopEvent();
  103. pageNum = me.readPageFromInput(pageData);
  104. if (pageNum !== false) {
  105. pageNum = Math.min(Math.max(1, pageNum), pageData.pageCount);
  106. me.child('#inputItem').setValue(pageNum);
  107. if(me.fireEvent('beforechange', me, pageNum) !== false){
  108. page = pageNum;
  109. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  110. }
  111. }
  112. } else if (k == e.HOME || k == e.END) {
  113. e.stopEvent();
  114. pageNum = k == e.HOME ? 1 : pageData.pageCount;
  115. field.setValue(pageNum);
  116. } else if (k == e.UP || k == e.PAGEUP || k == e.DOWN || k == e.PAGEDOWN) {
  117. e.stopEvent();
  118. pageNum = me.readPageFromInput(pageData);
  119. if (pageNum) {
  120. if (k == e.DOWN || k == e.PAGEDOWN) {
  121. increment *= -1;
  122. }
  123. pageNum += increment;
  124. if (pageNum >= 1 && pageNum <= pageData.pages) {
  125. field.setValue(pageNum);
  126. }
  127. }
  128. }
  129. me.updateInfo();
  130. fn(me,pageNum);
  131. },
  132. moveFirst : function(){
  133. var me = this;
  134. me.child('#inputItem').setValue(1);
  135. value=1;
  136. page = value;
  137. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  138. me.updateInfo();
  139. fn(me,value);
  140. },
  141. movePrevious : function(){
  142. var me = this;
  143. me.child('#inputItem').setValue(me.child('#inputItem').getValue()-1);
  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. moveNext : function(){
  151. var me = this,
  152. last = me.getPageData().pageCount;
  153. total=last;
  154. me.child('#inputItem').setValue(me.child('#inputItem').getValue()+1);
  155. value=me.child('#inputItem').getValue();
  156. page = value;
  157. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  158. me.updateInfo();
  159. fn(me,value);
  160. },
  161. moveLast : function(){
  162. var me = this,
  163. last = me.getPageData().pageCount;
  164. total=last;
  165. me.child('#inputItem').setValue(last);
  166. value=me.child('#inputItem').getValue();
  167. page = value;
  168. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  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. }