Home.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. Ext.define('school.view.home.Home', {
  2. extend: 'Ext.container.Container',
  3. xtype: 'home',
  4. id: 'home',
  5. requires: [
  6. 'Ext.layout.container.Border',
  7. 'Ext.ux.layout.ResponsiveColumn'
  8. ],
  9. controller: 'home',
  10. viewModel: {
  11. type: 'home'
  12. },
  13. cls: 'x-home-panel',
  14. padding: '0 16 0 0',
  15. layout: 'responsivecolumn',
  16. scrollable: true,
  17. REFRESH_INTERVALS: 5 * 60 * 1000, // 刷新间隔
  18. defaults: {
  19. shadow: true,
  20. cls: 'x-home-box',
  21. userCls: 'big-100 small-100',
  22. },
  23. items: [{
  24. style: {
  25. marginRight: '0',
  26. },
  27. xtype: 'infocard'
  28. }, {
  29. xtype: 'panel',
  30. style: {
  31. background: '#f4f4f4',
  32. },
  33. latyout: 'responsivecolumn',
  34. defaults: {
  35. userCls: 'x-home-chart big-100 small-100',
  36. },
  37. items: [{
  38. xtype: 'inoutrecord',
  39. padding: '0 0 0 14',
  40. }]
  41. }],
  42. initComponent: function() {
  43. this.lastTime = Ext.Date.now();
  44. this.callParent(arguments);
  45. },
  46. listeners: {
  47. onTabActivate: function(p) {
  48. p.refreshId = window.setInterval((p.refreshStores.bind(p)()).bind(p), p.REFRESH_INTERVALS);
  49. },
  50. onTabDeactivate: function(p) {
  51. p.lastTime = 0;
  52. window.clearInterval(p.refreshId);
  53. }
  54. },
  55. refreshStores: function() {
  56. var me = this,
  57. lastTime = me.lastTime || 0,
  58. now = Ext.Date.now(),
  59. viewModel = me.getViewModel(),
  60. stores = viewModel.storeInfo;
  61. if(now - lastTime > me.REFRESH_INTERVALS) {
  62. for(var key in stores) {
  63. var store = stores[key];
  64. store.load();
  65. }
  66. me.lastTime = Ext.Date.now();
  67. }
  68. return me.refreshStores;
  69. }
  70. });