Toolbar.js 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. Ext.define('erp.view.common.batchDeal.Toolbar', {
  2. extend: 'Ext.toolbar.Paging',
  3. alias: 'widget.erpBatchToolbar',
  4. doRefresh:function(){
  5. //this.ownerCt.getGridColumnsAndStore(grid, null, page, pageSize);
  6. window.location.reload();
  7. },
  8. beforePageText : "第",
  9. afterPageText : "页,共 {0} 页",
  10. firstText : "第一页",
  11. prevText : "上一页",
  12. nextText : "下一页",
  13. lastText : "最后页",
  14. refreshText : "刷新",
  15. displayMsg : "显示 {0} - {1}条,共 {2} 条",
  16. emptyMsg : '没有数据',
  17. cls: 'u-toolbar',
  18. items: ['-',{
  19. id: 'erpAddButton',
  20. name: 'add',
  21. tooltip: $I18N.common.button.erpAddButton,
  22. iconCls: 'x-button-icon-add',
  23. cls: 'x-btn-tb',
  24. width: 24,
  25. hidden: true,
  26. handler: function(btn){
  27. var g = btn.ownerCt.ownerCt, u = g.BaseUtil;
  28. u.onAdd(caller, u.getActiveTab().title, url);
  29. }
  30. },'-',{
  31. itemId: 'close',
  32. tooltip:$I18N.common.button.erpCloseButton,
  33. iconCls: 'x-button-icon-close',
  34. width: 24,
  35. cls: 'x-btn-tb',
  36. handler: function(){
  37. var main = parent.Ext.getCmp("content-panel");
  38. if(!main){
  39. var main = parent.parent.Ext.getCmp("content-panel");
  40. }
  41. if(main)
  42. main.getActiveTab().close();
  43. else if(typeof parentDoc !== 'undefined' && parentDoc) {
  44. var doc = parent.Ext.getCmp(parentDoc);
  45. if(doc) {
  46. doc.fireEvent('close', doc);
  47. }
  48. }
  49. }
  50. },{
  51. id:'list_summary',
  52. xtype:'tbtext'
  53. }],
  54. exportData : function(grid, btn, title, customFields) {
  55. if(!btn.locked) {
  56. if(dataCount > 6000) {
  57. btn.setDisabled(true);
  58. btn.locked = true;
  59. setTimeout(function(){
  60. btn.setDisabled(false);
  61. btn.locked = false;
  62. }, 8000);
  63. }
  64. grid.BaseUtil.createExcel(caller, 'datalist', grid.getCondition(), title, null, customFields);
  65. }
  66. },
  67. updateInfo : function(){
  68. var page = this.child('#inputItem').getValue();
  69. var me = this,
  70. displayItem = me.child('#displayItem'), msg,
  71. pageData = me.getPageData();
  72. pageData.fromRecord = (page-1)*pageSize+1;
  73. dataCount=me.ownerCt.dataCount=dataCount;
  74. pageData.toRecord = page*pageSize > dataCount ? dataCount : page*pageSize;//
  75. pageData.total=dataCount;
  76. if (displayItem) {
  77. if (dataCount === 0) {
  78. msg = me.emptyMsg;
  79. } else {
  80. msg = Ext.String.format(
  81. me.displayMsg,
  82. pageData.fromRecord,
  83. pageData.toRecord,
  84. pageData.total
  85. );
  86. }
  87. displayItem.setText(msg);
  88. me.doComponentLayout();
  89. }
  90. },
  91. getPageData : function(){
  92. var store = this.store,
  93. totalCount = store.getTotalCount();
  94. totalCount=this.ownerCt.dataCount||dataCount;
  95. return {
  96. total : totalCount,
  97. currentPage : page,
  98. pageCount: Math.ceil(dataCount / pageSize),
  99. fromRecord: ((store.currentPage - 1) * store.pageSize) + 1,
  100. toRecord: Math.min(store.currentPage * store.pageSize, totalCount)
  101. };
  102. },
  103. onPagingKeyDown : function(field, e){
  104. var me = this, k = e.getKey(), grid = me.ownerCt,
  105. pageData = me.getPageData(),
  106. increment = e.shiftKey ? 10 : 1, pageNum = 0, s = Ext.EventObject;
  107. caller=grid.caller||caller;
  108. if (k == s.RETURN) {
  109. e.stopEvent();
  110. pageNum = me.readPageFromInput(pageData);
  111. if (pageNum !== false) {
  112. pageNum = Math.min(Math.max(1, pageNum), pageData.pageCount);
  113. me.child('#inputItem').setValue(pageNum);
  114. if(me.fireEvent('beforechange', me, pageNum) !== false){
  115. page = pageNum;
  116. grid.getGridColumnsAndStore(grid, null, page, pageSize);
  117. }
  118. }
  119. } else if (k == s.HOME || k == s.END) {
  120. e.stopEvent();
  121. pageNum = k == s.HOME ? 1 : pageData.pageCount;
  122. field.setValue(pageNum);
  123. } else if (k == s.UP || k == s.PAGEUP || k == s.DOWN || k == s.PAGEDOWN) {
  124. e.stopEvent();
  125. pageNum = me.readPageFromInput(pageData);
  126. if (pageNum) {
  127. if (k == s.DOWN || k == s.PAGEDOWN) {
  128. increment *= -1;
  129. }
  130. pageNum += increment;
  131. if (pageNum >= 1 && pageNum <= pageData.pages) {
  132. field.setValue(pageNum);
  133. }
  134. }
  135. }
  136. me.updateInfo();
  137. fn(me, pageNum);
  138. },
  139. moveFirst : function(){
  140. var form=Ext.getCmp('dealerform');
  141. var cond = form.getCondition();
  142. var me = this, grid = me.ownerCt;
  143. me.child('#inputItem').setValue(1);
  144. value = 1;
  145. page = value;
  146. caller=grid.caller||caller;
  147. if(cond != null && cond !=''){
  148. var param = {caller: caller, condition: cond,_config:getUrlParam('_config')};
  149. param.page = page;
  150. param.pageSize = pageSize;
  151. me.ownerCt.getGridColumnsAndStore(grid, null,param);
  152. }else{
  153. me.ownerCt.getGridColumnsAndStore(grid, null,null);
  154. }
  155. me.updateInfo();
  156. fn(me,value);
  157. },
  158. movePrevious : function(){
  159. var form=Ext.getCmp('dealerform');
  160. var cond = form.getCondition();
  161. var me = this, grid = me.ownerCt;
  162. me.child('#inputItem').setValue(me.child('#inputItem').getValue()-1);
  163. value = me.child('#inputItem').getValue();
  164. page = value;
  165. caller=grid.caller||caller;
  166. if(cond != null && cond !=''){
  167. var param = {caller: caller, condition: cond,_config:getUrlParam('_config')};
  168. param.page = page;
  169. param.pageSize = pageSize;
  170. me.ownerCt.getGridColumnsAndStore(grid, null,param);
  171. }else{
  172. me.ownerCt.getGridColumnsAndStore(grid, null,null);
  173. }
  174. me.updateInfo();
  175. fn(me,value);
  176. },
  177. moveNext : function(){
  178. var form=Ext.getCmp('dealerform');
  179. var cond = form.getCondition();
  180. var me = this,
  181. last = me.getPageData().pageCount,
  182. grid = me.ownerCt;
  183. total = last;
  184. me.child('#inputItem').setValue(me.child('#inputItem').getValue()+1);
  185. value = me.child('#inputItem').getValue();
  186. page = value;
  187. caller=grid.caller||caller;
  188. if(cond != null && cond !=''){
  189. var param = {caller: caller, condition: cond,_config:getUrlParam('_config')};
  190. param.page = page;
  191. param.pageSize = pageSize;
  192. me.ownerCt.getGridColumnsAndStore(grid, null,param);
  193. }else{
  194. me.ownerCt.getGridColumnsAndStore(grid, null,null);
  195. }
  196. me.updateInfo();
  197. fn(me,value);
  198. },
  199. moveLast : function(){
  200. var form=Ext.getCmp('dealerform');
  201. var cond = form.getCondition();
  202. var me = this,
  203. last = me.getPageData().pageCount,
  204. grid = me.ownerCt;
  205. total = last;
  206. me.child('#inputItem').setValue(last);
  207. value = me.child('#inputItem').getValue();
  208. page = value;
  209. caller=grid.caller||caller;
  210. if(cond != null && cond !=''){
  211. var param = {caller: caller, condition: cond,_config:getUrlParam('_config')};
  212. param.page = page;
  213. param.pageSize = pageSize;
  214. me.ownerCt.getGridColumnsAndStore(grid, null,param);
  215. }else{
  216. me.ownerCt.getGridColumnsAndStore(grid, null,null);
  217. }
  218. me.updateInfo();
  219. fn(me,value);
  220. },
  221. onLoad : function() {
  222. var e = this, d, b, c, a;
  223. if (!e.rendered) {
  224. return
  225. }
  226. dataCount=this.ownerCt.dataCount||dataCount;
  227. d = e.getPageData();
  228. b = d.currentPage;
  229. c = Math.ceil(dataCount / pageSize);
  230. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  231. e.child("#afterTextItem").setText(a);
  232. e.child("#inputItem").setValue(b);
  233. e.child("#first").setDisabled(b === 1);
  234. e.child("#prev").setDisabled(b === 1);
  235. e.child("#next").setDisabled(b === c || c===1);//
  236. e.child("#last").setDisabled(b === c || c===1);
  237. e.child("#refresh").enable();
  238. e.updateInfo();
  239. e.fireEvent("change", e, d);
  240. },
  241. onPagingBlur : function(e){
  242. var inputItem = this.child("#inputItem"),
  243. curPage;
  244. dataCount = 10;
  245. dataCount=this.ownerCt.dataCount||dataCount;
  246. if (inputItem) {
  247. curPage = this.getPageData().currentPage;
  248. var e = this, d, b, c, a;
  249. d = e.getPageData();
  250. b = d.currentPage;
  251. c = Math.ceil(dataCount / pageSize);
  252. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  253. e.child("#afterTextItem").setText(a);
  254. e.child("#inputItem").setValue(b);
  255. e.child("#first").setDisabled(b === 1);
  256. e.child("#prev").setDisabled(b === 1);
  257. e.child("#next").setDisabled(b === c || c===1);
  258. e.child("#last").setDisabled(b === c || c===1);
  259. }
  260. },
  261. afterOnLoad : function(num) {
  262. var e = this, d, c, a, grid = e.ownerCt;
  263. if (!e.rendered) {
  264. return
  265. }
  266. d = e.getPageData();
  267. dataCount=this.ownerCt.dataCount||dataCount;
  268. b = d.currentPage;
  269. c = Math.ceil(dataCount / pageSize);
  270. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  271. e.child("#afterTextItem").setText(a);
  272. //解决抬头筛选 页码不对
  273. if(num && num == 1) e.child("#inputItem").setValue(1);
  274. e.updateInfo();
  275. e.fireEvent("change", e, d);
  276. e.child('#last').setDisabled(c <= 1 || page == c);
  277. e.child('#next').setDisabled(c <= 1 || page == c);
  278. /**
  279. * 反馈编号:2017030224
  280. * wsy
  281. */
  282. e.child("#first").setDisabled(page<=1);
  283. e.child("#prev").setDisabled(page<=1);
  284. if(grid.noCount) {
  285. var m = e.down('#more');
  286. if(!m) {
  287. m = Ext.create('Ext.panel.Tool', {
  288. id: 'more',
  289. type: 'right',
  290. margin: '0 5 0 5',
  291. handler: function() {
  292. grid.getCount(null, null, true);
  293. m.hide();
  294. grid.noCount = false;
  295. }
  296. });
  297. e.add(m);
  298. } else {
  299. m.show();
  300. }
  301. }
  302. }
  303. });
  304. function fn(me,value){
  305. me.child('#last').setDisabled(value == total);
  306. me.child('#next').setDisabled(value == total);
  307. me.child('#first').setDisabled(value <= 1);
  308. me.child('#prev').setDisabled(value <= 1);
  309. }