MailPaging.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. Ext.define('erp.view.oa.mail.MailPaging', {
  2. extend: 'Ext.toolbar.Paging',
  3. alias: 'widget.erpMailPaging',
  4. doRefresh:function(){
  5. this.moveFirst();
  6. },
  7. updateInfo : function(){
  8. var page=this.child('#inputItem').getValue();
  9. var me = this,
  10. displayItem = me.child('#displayItem'),
  11. pageData = me.getPageData();
  12. pageData.fromRecord=(page-1)*pageSize+1;
  13. pageData.toRecord=page*pageSize > dataCount ? dataCount : page*pageSize;//
  14. pageData.total=dataCount;
  15. dataCount, msg;
  16. if (displayItem) {
  17. if (dataCount === 0) {
  18. msg = me.emptyMsg;
  19. } else {
  20. msg = Ext.String.format(
  21. me.displayMsg,
  22. pageData.fromRecord,
  23. pageData.toRecord,
  24. pageData.total
  25. );
  26. }
  27. displayItem.setText(msg);
  28. me.doComponentLayout();
  29. }
  30. },
  31. getPageData : function(){
  32. var store = this.store,
  33. totalCount = store.getTotalCount();
  34. totalCount=dataCount;
  35. return {
  36. total : totalCount,
  37. currentPage : store.currentPage,
  38. pageCount: Math.ceil(dataCount / pageSize),
  39. fromRecord: ((store.currentPage - 1) * store.pageSize) + 1,
  40. toRecord: Math.min(store.currentPage * store.pageSize, totalCount)
  41. };
  42. },
  43. onPagingKeyDown : function(field, e){
  44. var me = this,
  45. k = e.getKey(),
  46. pageData = me.getPageData(),
  47. increment = e.shiftKey ? 10 : 1,
  48. pageNum = 0;
  49. if (k == e.RETURN) {
  50. e.stopEvent();
  51. pageNum = me.readPageFromInput(pageData);
  52. if (pageNum !== false) {
  53. pageNum = Math.min(Math.max(1, pageNum), pageData.pageCount);
  54. me.child('#inputItem').setValue(pageNum);
  55. if(me.fireEvent('beforechange', me, pageNum) !== false){
  56. page = pageNum;
  57. Ext.getCmp("grid").getGroupData(page, pageSize);
  58. }
  59. }
  60. } else if (k == e.HOME || k == e.END) {
  61. e.stopEvent();
  62. pageNum = k == e.HOME ? 1 : pageData.pageCount;
  63. field.setValue(pageNum);
  64. } else if (k == e.UP || k == e.PAGEUP || k == e.DOWN || k == e.PAGEDOWN) {
  65. e.stopEvent();
  66. pageNum = me.readPageFromInput(pageData);
  67. if (pageNum) {
  68. if (k == e.DOWN || k == e.PAGEDOWN) {
  69. increment *= -1;
  70. }
  71. pageNum += increment;
  72. if (pageNum >= 1 && pageNum <= pageData.pages) {
  73. field.setValue(pageNum);
  74. }
  75. }
  76. }
  77. me.updateInfo();
  78. fn(me,pageNum);
  79. },
  80. moveFirst : function(){
  81. var me = this;
  82. me.child('#inputItem').setValue(1);
  83. value=1;
  84. page = value;
  85. Ext.getCmp("grid").getGroupData(page, pageSize);
  86. me.updateInfo();
  87. fn(me,value);
  88. },
  89. movePrevious : function(){
  90. var me = this;
  91. me.child('#inputItem').setValue(me.child('#inputItem').getValue()-1);
  92. value=me.child('#inputItem').getValue();
  93. page = value;
  94. Ext.getCmp("grid").getGroupData(page, pageSize);
  95. me.updateInfo();
  96. fn(me,value);
  97. },
  98. moveNext : function(){
  99. var me = this,
  100. last = me.getPageData().pageCount;
  101. total=last;
  102. me.child('#inputItem').setValue(me.child('#inputItem').getValue()+1);
  103. value=me.child('#inputItem').getValue();
  104. page = value;
  105. Ext.getCmp("grid").getGroupData(page, pageSize);
  106. me.updateInfo();
  107. fn(me,value);
  108. },
  109. moveLast : function(){
  110. var me = this,
  111. last = me.getPageData().pageCount;
  112. total=last;
  113. me.child('#inputItem').setValue(last);
  114. value=me.child('#inputItem').getValue();
  115. page = value;
  116. Ext.getCmp("grid").getGroupData(page, pageSize);
  117. me.updateInfo();
  118. fn(me,value);
  119. },
  120. onLoad : function() {
  121. var e = this, d, b, c, a;
  122. if (!e.rendered) {
  123. return
  124. }
  125. d = e.getPageData();
  126. b = d.currentPage;
  127. c = Math.ceil(dataCount / pageSize);
  128. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  129. e.child("#afterTextItem").setText(a);
  130. e.child("#inputItem").setValue(b);
  131. e.child("#first").setDisabled(b === 1);
  132. e.child("#prev").setDisabled(b === 1);
  133. e.child("#next").setDisabled(b === c || c===1);//
  134. e.child("#last").setDisabled(b === c || c===1);
  135. e.child("#refresh").enable();
  136. e.updateInfo();
  137. e.fireEvent("change", e, d);
  138. },
  139. afterOnLoad : function() {
  140. var e = this, d, c, a;
  141. if (!e.rendered) {
  142. return
  143. }
  144. d = e.getPageData();
  145. b = d.currentPage;
  146. c = Math.ceil(dataCount / pageSize);
  147. a = Ext.String.format(e.afterPageText, isNaN(c) ? 1 : c);
  148. e.child("#afterTextItem").setText(a);
  149. e.updateInfo();
  150. e.fireEvent("change", e, d);
  151. e.child('#last').setDisabled(c <= 1 || page == c);
  152. e.child('#next').setDisabled(c <= 1 || page == c);
  153. }
  154. });
  155. function fn(me,value){
  156. me.child('#last').setDisabled(value==total);
  157. me.child('#next').setDisabled(value==total);
  158. me.child('#first').setDisabled(value<=1);
  159. me.child('#prev').setDisabled(value<=1);
  160. }