Toolbar.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  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. iconCls: 'x-button-icon-query',
  30. tooltip: $I18N.common.tip.searchlist,
  31. width: 24,
  32. cls: 'x-btn-tb',
  33. id: 'searchlist'
  34. }, {
  35. xtype: 'erpRefreshButton',
  36. cls: 'x-btn-gray',
  37. hidden: true,
  38. width: 80
  39. },{
  40. xtype: 'erpVastSaveButton',
  41. cls: 'x-btn-gray',
  42. hidden: true,
  43. width: 80
  44. },{
  45. xtype: 'erpVastGetButton',
  46. cls: 'x-btn-gray',
  47. hidden: true,
  48. width: 80
  49. },{
  50. xtype: 'erpVastSendOutButton',
  51. cls: 'x-btn-gray',
  52. hidden: true,
  53. width: 80
  54. },{
  55. xtype: 'erpScanDatalistDetail',
  56. cls: 'x-btn-gray',
  57. hidden: true,
  58. width: 80
  59. }],
  60. updateInfo : function(){
  61. var page = this.child('#inputItem').getValue();
  62. var me = this,
  63. displayItem = me.child('#displayItem'),
  64. pageData = me.getPageData();
  65. pageData.fromRecord = (page-1)*pageSize+1;
  66. pageData.toRecord = page*pageSize > dataCount ? dataCount : page*pageSize;//
  67. pageData.total=dataCount;
  68. dataCount, msg;
  69. if (displayItem) {
  70. if (dataCount === 0) {
  71. msg = me.emptyMsg;
  72. } else {
  73. msg = Ext.String.format(
  74. me.displayMsg,
  75. pageData.fromRecord,
  76. pageData.toRecord,
  77. pageData.total
  78. );
  79. }
  80. displayItem.setText(msg);
  81. me.doComponentLayout();
  82. }
  83. },
  84. getPageData : function(){
  85. var store = this.store,
  86. totalCount = store.getTotalCount();
  87. totalCount=dataCount;
  88. return {
  89. total : totalCount,
  90. currentPage : page,
  91. pageCount: Math.ceil(dataCount / pageSize),
  92. fromRecord: ((store.currentPage - 1) * store.pageSize) + 1,
  93. toRecord: Math.min(store.currentPage * store.pageSize, totalCount)
  94. };
  95. },
  96. onPagingKeyDown : function(field, e){
  97. var me = this, k = e.getKey(), grid = me.ownerCt,
  98. pageData = me.getPageData(),
  99. increment = e.shiftKey ? 10 : 1, pageNum = 0, s = Ext.EventObject;
  100. if (k == s.RETURN) {
  101. e.stopEvent();
  102. pageNum = me.readPageFromInput(pageData);
  103. if (pageNum !== false) {
  104. pageNum = Math.min(Math.max(1, pageNum), pageData.pageCount);
  105. me.child('#inputItem').setValue(pageNum);
  106. if(me.fireEvent('beforechange', me, pageNum) !== false){
  107. page = pageNum;
  108. grid.getColumnsAndStore(caller, null, page, pageSize);
  109. }
  110. }
  111. } else if (k == s.HOME || k == s.END) {
  112. e.stopEvent();
  113. pageNum = k == s.HOME ? 1 : pageData.pageCount;
  114. field.setValue(pageNum);
  115. } else if (k == s.UP || k == s.PAGEUP || k == s.DOWN || k == s.PAGEDOWN) {
  116. e.stopEvent();
  117. pageNum = me.readPageFromInput(pageData);
  118. if (pageNum) {
  119. if (k == s.DOWN || k == s.PAGEDOWN) {
  120. increment *= -1;
  121. }
  122. pageNum += increment;
  123. if (pageNum >= 1 && pageNum <= pageData.pages) {
  124. field.setValue(pageNum);
  125. }
  126. }
  127. }
  128. me.updateInfo();
  129. fn(me, pageNum);
  130. },
  131. moveFirst : function(){
  132. var me = this;
  133. me.child('#inputItem').setValue(1);
  134. value = 1;
  135. page = value;
  136. me.ownerCt.getColumnsAndStore(caller, null, page, pageSize);
  137. me.updateInfo();
  138. fn(me,value);
  139. },
  140. movePrevious : function(){
  141. var me = this;
  142. me.child('#inputItem').setValue(me.child('#inputItem').getValue()-1);
  143. value = me.child('#inputItem').getValue();
  144. page = value;
  145. me.ownerCt.getColumnsAndStore(caller, null, page, pageSize);
  146. me.updateInfo();
  147. fn(me,value);
  148. },
  149. moveNext : function(){
  150. var me = this,
  151. last = me.getPageData().pageCount;
  152. total = last;
  153. me.child('#inputItem').setValue(me.child('#inputItem').getValue()+1);
  154. value = me.child('#inputItem').getValue();
  155. page = value;
  156. me.ownerCt.getColumnsAndStore(caller, null, page, pageSize);
  157. me.updateInfo();
  158. fn(me,value);
  159. },
  160. moveLast : function(){
  161. var me = this,
  162. last = me.getPageData().pageCount;
  163. total = last;
  164. me.child('#inputItem').setValue(last);
  165. value = me.child('#inputItem').getValue();
  166. page = value;
  167. me.ownerCt.getColumnsAndStore(caller, null, page, pageSize);
  168. me.updateInfo();
  169. fn(me,value);
  170. },
  171. onLoad : function() {
  172. var e = this, d, b, c, a;
  173. if (!e.rendered) {
  174. return
  175. }
  176. d = e.getPageData();
  177. b = d.currentPage;
  178. c = Math.ceil(dataCount / pageSize);
  179. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  180. e.child("#afterTextItem").setText(a);
  181. e.child("#inputItem").setValue(b);
  182. e.child("#first").setDisabled(b === 1);
  183. e.child("#prev").setDisabled(b === 1);
  184. e.child("#next").setDisabled(b === c || c===1);//
  185. e.child("#last").setDisabled(b === c || c===1);
  186. e.child("#refresh").enable();
  187. e.updateInfo();
  188. e.fireEvent("change", e, d);
  189. },
  190. onPagingBlur : function(e){
  191. var inputItem = this.child("#inputItem"),
  192. curPage;
  193. if (inputItem) {
  194. curPage = this.getPageData().currentPage;
  195. var e = this, d, b, c, a;
  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.child("#inputItem").setValue(b);
  202. e.child("#first").setDisabled(b === 1);
  203. e.child("#prev").setDisabled(b === 1);
  204. e.child("#next").setDisabled(b === c || c===1);
  205. e.child("#last").setDisabled(b === c || c===1);
  206. }
  207. },
  208. afterOnLoad : function(num) {
  209. var e = this, d, c, a, grid = e.ownerCt;
  210. if (!e.rendered) {
  211. return
  212. }
  213. d = e.getPageData();
  214. b = d.currentPage;
  215. c = Math.ceil(dataCount / pageSize);
  216. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  217. e.child("#afterTextItem").setText(a);
  218. if(num && num == 1) e.child("#inputItem").setValue(1);
  219. e.updateInfo();
  220. e.fireEvent("change", e, d);
  221. e.child('#last').setDisabled(c <= 1 || page == c);
  222. e.child('#next').setDisabled(c <= 1 || page == c);
  223. }
  224. });
  225. function fn(me,value){
  226. me.child('#last').setDisabled(value==total);
  227. me.child('#next').setDisabled(value==total);
  228. me.child('#first').setDisabled(value<=1);
  229. me.child('#prev').setDisabled(value<=1);
  230. }