Toolbar.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. Ext.define('erp.view.common.vastDatalist.Toolbar', {
  2. extend: 'Ext.toolbar.Paging',
  3. alias: 'widget.erpVastDatalistToolbar',
  4. doRefresh:function(){
  5. this.moveFirst();
  6. },
  7. items: ['-',{
  8. xtype: 'erpVastDeleteButton',
  9. cls: 'x-btn-gray',
  10. hidden: true
  11. },{
  12. xtype: 'erpVastPostButton',
  13. cls: 'x-btn-gray',
  14. hidden: true
  15. },{
  16. xtype: 'erpVastCloseButton',
  17. cls: 'x-btn-gray',
  18. hidden: true
  19. },{
  20. xtype: 'erpVastReStartButton',
  21. cls: 'x-btn-gray',
  22. hidden: true
  23. },{
  24. xtype: 'erpVastFreezeButton',
  25. cls: 'x-btn-gray',
  26. hidden: true
  27. },{
  28. xtype: 'erpVastSendButton',
  29. cls: 'x-btn-gray',
  30. hidden: true
  31. },{
  32. xtype: 'erpVastAuditButton',
  33. cls: 'x-btn-gray',
  34. hidden: true
  35. },{
  36. xtype: 'erpVastSaveButton',
  37. cls: 'x-btn-gray',
  38. hidden: true
  39. },{
  40. xtype: 'erpVastSpareButton',
  41. cls: 'x-btn-gray',
  42. hidden: true
  43. },{
  44. xtype: 'erpVastSimulateButton',
  45. cls: 'x-btn-gray',
  46. hidden: true
  47. },{
  48. xtype: 'erpVastSubmitButton',
  49. cls: 'x-btn-gray',
  50. hidden: true
  51. },{
  52. xtype: 'erpVastWriexamButton',
  53. cls: 'x-btn-gray',
  54. hidden: true
  55. },{
  56. xtype: 'erpVastInterviewButton',
  57. cls: 'x-btn-gray',
  58. hidden: true
  59. },{
  60. xtype: 'erpVastJointalcpoolButton',
  61. cls: 'x-btn-gray',
  62. hidden: true
  63. },{
  64. xtype: 'erpVastWritemarkButton',
  65. cls: 'x-btn-gray',
  66. hidden: true
  67. },{
  68. xtype: 'erpVastIntermarkButton',
  69. cls: 'x-btn-gray',
  70. hidden: true
  71. },{
  72. xtype: 'erpVastTurnfullmembButton',
  73. cls: 'x-btn-gray',
  74. hidden: true
  75. },{
  76. xtype: 'erpVastTurnoverButton',
  77. cls: 'x-btn-gray',
  78. hidden: true
  79. },{
  80. xtype: 'erpVastTurnCareeButton',
  81. cls: 'x-btn-gray',
  82. hidden: true
  83. },{
  84. xtype: 'erpTurnfullmembButton',
  85. cls: 'x-btn-gray',
  86. hidden: true
  87. },{
  88. xtype: 'erpTurnPositionButton',
  89. cls: 'x-btn-gray',
  90. hidden: true
  91. },{
  92. xtype: 'erpTurnCareeButton',
  93. cls: 'x-btn-gray',
  94. hidden: true
  95. },{
  96. xtype: 'erpVastSocailaccountButton',
  97. cls: 'x-btn-gray',
  98. hidden: true
  99. },{
  100. xtype: 'erpVastSocailsecuButton',
  101. cls: 'x-btn-gray',
  102. hidden: true
  103. },{
  104. xtype: 'erpVastSendOutButton',
  105. cls: 'x-btn-gray',
  106. hidden: true
  107. },{
  108. xtype: 'erpVastGetButton',
  109. cls: 'x-btn-gray',
  110. hidden: true
  111. },{
  112. xtype: 'erpAgreeToPriceButton',
  113. cls: 'x-btn-gray',
  114. hidden: true
  115. },{
  116. xtype: 'erpAgreeAllToPriceButton',
  117. cls: 'x-btn-gray',
  118. hidden: true
  119. },{
  120. xtype: 'erpNotAgreeToPriceButton',
  121. cls: 'x-btn-gray',
  122. hidden: true
  123. },{
  124. xtype: 'erpSyncButton',
  125. cls: 'x-btn-gray',
  126. hidden: true
  127. },'-',{
  128. id:'datalistexport',
  129. name: 'export',
  130. text: '导出',
  131. iconCls: 'x-button-icon-excel',
  132. cls: 'x-btn-gray',
  133. width: 70,
  134. handler : function(i) {
  135. var me = i.ownerCt;
  136. me.exportData(me.ownerCt, i);
  137. }
  138. },{
  139. itemId: 'close',
  140. id:'closebutton',
  141. text: $I18N.common.button.erpCloseButton,
  142. iconCls: 'tree-delete',
  143. width: 70,
  144. cls: 'x-btn-gray',
  145. handler: function(){
  146. var main = parent.Ext.getCmp("content-panel");
  147. main.getActiveTab().close();
  148. }
  149. }],
  150. exportData : function(grid, btn, title, customFields) {
  151. if(!btn.locked) {
  152. var me = this;
  153. grid.BaseUtil.createExcel(caller, 'datalist', grid.getCondition(), title, null, customFields);
  154. if(dataCount > 6000) {
  155. me.insert(me.items.items.length - 2, {
  156. name: 'warn-tip',
  157. xtype: 'tbtext',
  158. text: '数据量较大,请耐心等待,不要重复点击。为减少服务器压力,单次导出上限为5万条.'
  159. });
  160. btn.setDisabled(true);
  161. btn.locked = true;
  162. setTimeout(function(){
  163. me.down('tbtext[name=warn-tip]').destroy();
  164. btn.setDisabled(false);
  165. btn.locked = false;
  166. }, 8000);
  167. }
  168. }
  169. },
  170. updateInfo : function(){
  171. var page=this.child('#inputItem').getValue();
  172. var me = this,
  173. displayItem = me.child('#displayItem'),
  174. //store = me.store,//update by yingp
  175. pageData = me.getPageData();
  176. pageData.fromRecord=(page-1)*pageSize+1;
  177. pageData.toRecord=page*pageSize > dataCount ? dataCount : page*pageSize;//
  178. pageData.total=dataCount;
  179. /* me.store.totalCount = dataCount;
  180. me.store.pageSize = pageSize;
  181. pageData.pageCount = Math.ceil(dataCount / pageSize);*/
  182. dataCount, msg;
  183. if (displayItem) {
  184. if (dataCount === 0) {
  185. msg = me.emptyMsg;
  186. } else {
  187. msg = Ext.String.format(
  188. me.displayMsg,
  189. pageData.fromRecord,
  190. pageData.toRecord,
  191. pageData.total
  192. );
  193. }
  194. displayItem.setText(msg);
  195. me.doComponentLayout();
  196. }
  197. },
  198. getPageData : function(){
  199. var store = this.store,
  200. totalCount = store.getTotalCount();
  201. totalCount=dataCount;
  202. return {
  203. total : totalCount,
  204. currentPage : store.currentPage,
  205. pageCount: Math.ceil(dataCount / pageSize),
  206. fromRecord: ((store.currentPage - 1) * store.pageSize) + 1,
  207. toRecord: Math.min(store.currentPage * store.pageSize, totalCount)
  208. };
  209. },
  210. onPagingKeyDown : function(field, e){
  211. var me = this,
  212. k = e.getKey(),
  213. pageData = me.getPageData(),
  214. increment = e.shiftKey ? 10 : 1,
  215. pageNum = 0;
  216. if (k == e.RETURN) {
  217. e.stopEvent();
  218. pageNum = me.readPageFromInput(pageData);
  219. if (pageNum !== false) {
  220. pageNum = Math.min(Math.max(1, pageNum), pageData.pageCount);
  221. me.child('#inputItem').setValue(pageNum);
  222. if(me.fireEvent('beforechange', me, pageNum) !== false){
  223. page = pageNum;
  224. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  225. }
  226. }
  227. } else if (k == e.HOME || k == e.END) {
  228. e.stopEvent();
  229. pageNum = k == e.HOME ? 1 : pageData.pageCount;
  230. field.setValue(pageNum);
  231. } else if (k == e.UP || k == e.PAGEUP || k == e.DOWN || k == e.PAGEDOWN) {
  232. e.stopEvent();
  233. pageNum = me.readPageFromInput(pageData);
  234. if (pageNum) {
  235. if (k == e.DOWN || k == e.PAGEDOWN) {
  236. increment *= -1;
  237. }
  238. pageNum += increment;
  239. if (pageNum >= 1 && pageNum <= pageData.pages) {
  240. field.setValue(pageNum);
  241. }
  242. }
  243. }
  244. me.updateInfo();
  245. fn(me,pageNum);
  246. },
  247. moveFirst : function(){
  248. var me = this;
  249. me.child('#inputItem').setValue(1);
  250. value=1;
  251. page = value;
  252. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  253. me.updateInfo();
  254. fn(me,value);
  255. },
  256. movePrevious : function(){
  257. var me = this;
  258. me.child('#inputItem').setValue(me.child('#inputItem').getValue()-1);
  259. value=me.child('#inputItem').getValue();
  260. page = value;
  261. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  262. me.updateInfo();
  263. fn(me,value);
  264. },
  265. moveNext : function(){
  266. var me = this,
  267. last = me.getPageData().pageCount;
  268. total=last;
  269. me.child('#inputItem').setValue(me.child('#inputItem').getValue()+1);
  270. value=me.child('#inputItem').getValue();
  271. page = value;
  272. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  273. me.updateInfo();
  274. fn(me,value);
  275. },
  276. moveLast : function(){
  277. var me = this,
  278. last = me.getPageData().pageCount;
  279. total=last;
  280. me.child('#inputItem').setValue(last);
  281. value=me.child('#inputItem').getValue();
  282. page = value;
  283. Ext.getCmp("grid").getColumnsAndStore(caller, condition, page, pageSize);
  284. me.updateInfo();
  285. fn(me,value);
  286. },
  287. onLoad : function() {
  288. var e = this, d, b, c, a;
  289. if (!e.rendered) {
  290. return
  291. }
  292. d = e.getPageData();
  293. b = d.currentPage;
  294. c = Math.ceil(dataCount / pageSize);
  295. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  296. e.child("#afterTextItem").setText(a);
  297. e.child("#inputItem").setValue(b);
  298. e.child("#first").setDisabled(b === 1);
  299. e.child("#prev").setDisabled(b === 1);
  300. e.child("#next").setDisabled(b === c);
  301. e.child("#last").setDisabled(b === c);
  302. e.child("#refresh").enable();
  303. e.updateInfo();
  304. e.fireEvent("change", e, d);
  305. }
  306. });
  307. function fn(me,value){
  308. me.child('#last').setDisabled(value==total);
  309. me.child('#next').setDisabled(value==total);
  310. me.child('#first').setDisabled(value<=1);
  311. me.child('#prev').setDisabled(value<=1);
  312. }