KeyData.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. Ext.define('saas.view.home.charts.KeyData', {
  2. extend: 'Ext.panel.Panel',
  3. xtype: 'key-data',
  4. id: 'key_data',
  5. cls: 'quick-graph-panel',
  6. title: '关键数据',
  7. layout: 'fit',
  8. height: 300,
  9. cardTpl: [
  10. '<div class="x-container">',
  11. '<tpl for=".">',
  12. '<div class="x-box x-box-{color}">',
  13. '<div class="x-box-content">',
  14. '<tpl if="showIcon">',
  15. '<div class="x-icon x-icon-{icon}"></div>',
  16. '</tpl>',
  17. '<div class="x-text',
  18. // '<tpl if="!showIcon">',
  19. // ' x-text-small',
  20. // '</tpl>',
  21. '">',
  22. // '<tpl if="!showIcon">',
  23. // '<div class="x-icon-small x-icon-{icon}"></div>',
  24. // '</tpl>',
  25. '<div class="x-key"><span>{label}</span></div>',
  26. '<div class="x-value"><span>{value}</span></div>',
  27. '</div>',
  28. '</div>',
  29. '</div>',
  30. '</tpl>',
  31. '</div>'
  32. ],
  33. cards: [{
  34. color: 'green',
  35. showIcon: true,
  36. icon: 'storageTotal',
  37. name: 'storageTotal',
  38. label: '库存总额',
  39. value: '0'
  40. }, {
  41. color: 'yellow',
  42. showIcon: true,
  43. icon: 'receiveTotal',
  44. name: 'receiveTotal',
  45. label: '应收总额',
  46. value: '0'
  47. }, {
  48. color: 'red',
  49. showIcon: true,
  50. icon: 'payTotal',
  51. name: 'payTotal',
  52. label: '应付总额',
  53. value: '0'
  54. }, {
  55. color: 'blue',
  56. showIcon: true,
  57. icon: 'balanceTotal',
  58. name: 'balanceTotal',
  59. label: '账户余额',
  60. value: '0'
  61. }],
  62. initComponent: function () {
  63. var me = this;
  64. var store = Ext.create('Ext.data.Store', {
  65. fields: ['color', 'showIcon', 'icon', 'label', 'value'],
  66. data: me.cards,
  67. updateValue: function(datas) {
  68. this.each(function(r, index) {
  69. // var v = datas[r.get('name')];
  70. // var d = saas.util.BaseUtil.formatAmount(v);
  71. var d = Ext.util.Format.number(datas[r.get('name')], '0,000.00');
  72. r.set('value', d);
  73. });
  74. },
  75. // updateShowIcon: function(show) {
  76. // this.each(function(r) {
  77. // r.set('showIcon', show);
  78. // });
  79. // }
  80. });
  81. var view = Ext.create('Ext.view.View', {
  82. store: store,
  83. tpl: new Ext.XTemplate(me.cardTpl),
  84. itemSelector: 'div.x-box',
  85. listeners: {
  86. itemclick: function(th, record, item, index, e, eOpts) {
  87. console.log('xxxx');
  88. // saas.util.BaseUtil.openTab(record.get('viewType'), record.get('title'), record.get('id'));
  89. }
  90. }
  91. });
  92. Ext.apply(me, {
  93. items: [view]
  94. });
  95. me.view = view;
  96. me.callParent(arguments);
  97. },
  98. listeners: {
  99. // afterlayout: function() {
  100. // var me = this,
  101. // box = me.getBox(),
  102. // view = me.view,
  103. // width = box.width,
  104. // store = view.store;
  105. // store.updateShowIcon(width >= 450);
  106. // },
  107. },
  108. updateValue: function(datas) {
  109. var me = this,
  110. view = me.view,
  111. store = view.store;
  112. store.updateValue(datas);
  113. },
  114. // updateShowIcon: function(showIcon) {
  115. // var me = this,
  116. // view = me.view,
  117. // store = view.store;
  118. // store.updateShowIcon(showIcon);
  119. // }
  120. });