Home.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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-50 small-50',
  36. },
  37. items: [{
  38. xtype: 'studentgender',
  39. padding: '0 0 0 14',
  40. margin: '0 16 0 0',
  41. }, {
  42. xtype: 'chinessavg',
  43. padding: '0 0 0 14',
  44. margin: 0,
  45. }]
  46. }],
  47. initComponent: function() {
  48. this.lastTime = Ext.Date.now();
  49. this.callParent(arguments);
  50. },
  51. listeners: {
  52. onTabActivate: function(p) {
  53. return;
  54. p.refreshId = window.setInterval((p.refreshStores.bind(p)()).bind(p), p.REFRESH_INTERVALS);
  55. },
  56. onTabDeactivate: function(p) {
  57. return;
  58. p.lastTime = 0;
  59. window.clearInterval(p.refreshId);
  60. }
  61. },
  62. refreshStores: function() {
  63. return;
  64. var me = this,
  65. lastTime = me.lastTime || 0,
  66. now = Ext.Date.now(),
  67. viewModel = me.getViewModel(),
  68. stores = viewModel.storeInfo;
  69. if(now - lastTime > me.REFRESH_INTERVALS) {
  70. for(var key in stores) {
  71. var store = stores[key];
  72. store.load();
  73. }
  74. me.lastTime = Ext.Date.now();
  75. }
  76. return me.refreshStores;
  77. }
  78. });